当前位置: 首页 > news >正文

ROS1和ROS2使用桥接工具通信

前提:主从机在同一局域网内,可以互相ping通

我的两个设备其中一个无法连接wifi,ubuntu老生常谈的问题.....,获得新的技能:手机蓝牙提供网络,两个设备连接手机蓝牙就可以连接网络并且处于同一个局域网内。

我的主机为ROS1 noetic

从机为ROS2 foxy

安装依赖

主机ROS1 Noetic安装依赖

sudo apt-get install ros-noetic-ros1-bridge

从机ROS2 foxy安装依赖

sudo apt-get install ros-foxy-ros1-bridge

配置环境,在主机和从机的~/.bashrc中输入:

# 主机(ROS Noetic)
export ROS1_INSTALL_PATH=/opt/ros/noetic
source $ROS1_INSTALL_PATH/setup.bash# 从机(ROS 2 Foxy)
export ROS2_INSTALL_PATH=/opt/ros/foxy
source $ROS2_INSTALL_PATH/setup.bash

保存后,执行  source ~/.bashrc使得配置生效

网络连接

两个设备解析主机名需要配置网络,在~/.bashrc下添加

#主机添加本机的IP (使用ip addr查询)
export ROS_IP=192.168.1.XX
export ROS_MASTER_URI=http://192.168.1.XX:11311#在从机添加
export ROS_MASTER_URI=http://192.168.1.XX:11311   # 指向主机的 IP
export ROS_IP=192.168.1.yy                         # 设置本机 IP

启动桥接

主机上启动ros master

roscore

从机上启动桥接节点

ros2 run ros1_bridge dynamic_bridge --bridge-all-topics

测试通信

主机上启动发布节点

rosrun rospy_tutorials talker

从机上启动订阅节点

source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash
source ~/ros2_ws/install/setup.bash   # 如果你是从源码编译的 ros1_bridgeros2 run demo_nodes_cpp listener

测试桥接是否成功

主机上发送信息

rostopic pub /test_topic std_msgs/String "data: 'hello from ROS1'" -r 1

从机上查看是否有/test_topic相关话题

ros2 topic list

如果有就可以订阅该话题

ros2 topic echo /test_topic

如果能收到数据说明桥接成功

相关文章:

  • leeCode算法之独一无二出现次数
  • 自由浮动时间和总浮动时间对比
  • 贷中业务提额、降额策略
  • (eNSP)策略路由实验配置
  • Java中有哪些锁?
  • OpenShift AI - 模型注册管理
  • 绕线机的制作与研究
  • ‌人工智能在农作物病虫害识别中的应用前景分析
  • 【LUT技术专题】基于扩展卷积的极快速LUT算法
  • 如何快速获取旺店通奇门原始数据至本地
  • 嵌入式软件学习指南:从入门到进阶
  • STM32基础教程——软件SPI
  • Cadence 高速系统设计流程及工具使用二
  • 前端面经-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件
  • MDP相关内容
  • 贵州省棒球运动发展中长期规划(2024-2035)·棒球1号位
  • 第二天 网络与通信协议
  • 【c++】 我的世界
  • 汽车加气站操作工考试知识点总结
  • 手机端调试工具 eruda 使用方法
  • 第1现场 | 50多年来首次!印度举行大规模民防演习
  • 吴勇强、高颜已任南京市委常委
  • 三大交易所多举措支持科创债再扩容,约160亿证券公司科创债有望近期落地
  • 又一日军“慰安妇”制度受害者去世,大陆登记在册幸存者仅剩7人
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 陕西礼泉一村民被冒名贷款40余万,法院发现涉嫌经济犯罪驳回起诉