ROS组网

参考ROS实战之ROS组网的搭建
ROS-ROS命令(三)ROS 信息命令
其实整个过程比想象中简单的多。

  1. 首先保证所有运行 ROS 的机器(no matter it is a raspberry or a dasktop or a laptop)都在一个局域网内,都能够和master Ping通,笔者在试验的时候slave之间居然不通,也是无语,但是仍然可以和master通信。所以,结论就是,所有非master都要和master能够ping通。
  2. Master主机上的/etc/hosts 列表上,ip和ip名字要维持好这个列表,在后面的过程中,slave(我暂且这么称呼)要和主master 链接的时候要对应查看这个list。
  3. 在每天机器上添加环境变量 export ROS_HOSTNAME = XXX. 其中XXX为主机hosts上list对应的IP和名字。名字可以更改,但是要和list保持一致。export ROS_HOSTNAME=XXX. export ROS_MASTER_URI=http://xxx.xxx.xxx.xxx:11311. 然后检查slave上的rostopic 是否已经和master同步了。
  4. 采用ROS命令来查看是否有slave已经加入到网络中,rosnode machine , 以及 rosnode ping
  5. 这样的话,实验室的optitrack可以通过ROS的VRPN包和(roslaunch vrpn_client_ros sample.launch) 和 Motive进行组网,进而和 ROS进行组网了。
    时间进入到2020年,ubuntu已经发布了20.04版本了,同时ROS继melodic之后,也发布了ROS1的下一个版本noetic。相信在不就的将来,ROS1会完全被ROS2所取代。机器人操作系统ROS 1.0 和 2.0 发展规划2018-2025(Open Robotics)译
    ROS2 ROS2的核心思想在于去中心化,简单来说就是ros1采用的是roscore这个东西来管理整个框架,但是一旦这个东西崩掉,那么整个系统就完蛋。那么,ROS2就可以采用DDS这个东西,有人比喻说是一种数据总线。当然,ROS2还有一个好东西就是FAST RTPS,也就是Fast real time publish subscribe,完成的是快速的订阅与发布机制。当然,这种东西要是实时性提高了就更好不过了。
  6. 今天遇到roscore运行一半卡主不动的情况,原因是之前在进行ros组网的时候,修改了/etc/hosts的内容导致。之前是为了组网进行修改的
  7. 在Matlab中完成与ROS系统的对接,类似与ROS组网,第一步完成在终端环境下两台电脑的组网,如果slave可以subscribe主机的topic,则在matlab中采用相同的配置环境即可。在matlab中设置环境为:
 setenv('ROS_MASTER_URI','http://172.17.6.99:11311');
 setenv('ROS_HOSTNAME','chasing');
 setenv('ROS_IP','172.17,142.17');

如果是本地回环(在本地运行roscore, 并在本地运行matlab显示),需要把对应的MASTER_URI和HOSTNAME设置为本地。
然后运行rosinit, 就可以查看话题了

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值