• SLAM从入门到精通(ROS网络通信)


    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

            之前我们学习ros的时候,大部分都是基于仿真来做的。但是最终,我们还是要把ros部署到小车上的。这就带来一个问题,首先小车肯定是要上ros的,毕竟小车要行走在各个地方。然而,我们在本地也是需要对小车进行控制的。这种控制,有可能是调试,有可能是监控,也有可能是发送任务。不管怎么说,本地pc也是需要对小车进行通信的。另外,对于真正的使用者来说,他可能手里也有一个发送任务的android pad,也是要发送任务给小车的。所以,这里就引申出一个需求,ros网络应该怎么搭建。

    1、网络构建

            要保证所有的设备都能正常通信,那么构建一个合理的wifi网络是必不可少的。router可以选用工业级的路由器,2.4g或者5g都可以。pad和pc都是成熟的电子产品,一般就是android系统和windows系统。robot的话,则需要一个配置一个无线模块,配置好分配的ip。这样一个简单的网络就算构建好了。

    2、ip配置

            一般来说,所有的设备配置在同一个网段即可。比如,router配置成192.168.0.1或者192.168.0.254,pad配置成192.168.0.101,robot配置成192.168.0.102,pc配置成192.168.0.103即可。

    3、master的选择

            目前为止还有一个事情没有决定,那就是robot和pc谁是master的问题。网上大部分的案例,都把robot设置成master,pc和pad当成slave。这是可以的。不过因为pc还会涉及到交通管制、任务分配、客户的业务系统对接等工作,这时候把ros一部分master做的活,例如move_base中的全局搜路和局部搜路放到pc来做,这也是较为常见的情形。

    4、ros ip设置

            前面讨论了各个模块ip的设置,那么怎么把他们和ros绑定在一起呢。其实也不复杂。最主要的工作就是设置ROS_MASTER_URI和ROS_HOSTNAME。pad可以这样设置,

    1. export ROS_MASTER_URI=http://192.168.0.102:11311
    2. export ROS_HOSTNAME=192.168.0.101

            robot这样设置,

    1. export ROS_MASTER_URI=http://192.168.0.102:11311
    2. export ROS_HOSTNAME=192.168.0.102

            最后pc这样设置,

    1. export ROS_MASTER_URI=http://192.168.0.102:11311
    2. export ROS_HOSTNAME=192.168.0.103

            通过观察,我们发现不同设备中,ROS_MASTER_URI都是一样的,端口11311也是固定的。但是ROS_HOSTNAME都是每个设备自己的ip,所以从这也看得出robot是ros的核心,其他设备本质上都是slave设备。

    5、启动顺序

            既然robot是核心,那么启动设备的时候,必须等robot成功启动之后,其他的pad、pc才能顺利启动。也就是说,robot上面的roscore先启动,其他设备才连的上去。

    6、测试方法

            手上有robot的同学可以直接在arm开发板设置好ros之后,连同pc一起测试。暂时还没有机器人的同学,可以通过多虚拟机+网络桥接的办法看看可不可以实现多设备之间的ros组网。如果可以在一台设备上roscore启动成功,另外一台设备上rosrun启动成功,那代表我们的配置是没有问题的。这也间接说明了ROS_MASTER_URI和ROS_HOSTNAME是设置成功的。

    7、额外pad的开发

            目前pad的系统以andoird为主,ros提供了一个rosjava包,勉强支持ros开发。如果用着不顺手,可以通过xmlrpc + rosrun client的办法来解决,这也算一个折中的思路吧。

  • 相关阅读:
    黑客(网络安全)技术自学30天
    PageRank(上):数据分析 | 数据挖掘 | 十大算法之一
    什么样的研发活动可享受研发费用加计扣?
    【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十五)
    基于SpringBoot的高校学科竞赛平台
    leetcode 10. 正则表达式匹配
    Spring简介
    金蝶云苍穹融资租赁系统V5.0发布。
    Windows下载最新谷歌浏览器
    使用C#在Windows上调用7-zip压缩文件
  • 原文地址:https://blog.csdn.net/feixiaoxing/article/details/133807903