• ROS分布式通讯


    折腾了2个晚上,终于搞通了ros主从机通讯,说下需要注意的地方。

    首先确保主机和从机在一个网段,互相之间能ping通,这个不用多说。

    配置主机名和从机名

    配置主机名和从机名犯了个低级错误,后果很严重,需特别留意,比如我的命令行是这样

    redrose007@redrose007-desktop:~$
    

    我就想当然的以为主机名为redrose007,之后一直用这个进行配置,虽然两个机器能ping通,但无法使用ROS互相通讯。

    正确做法是通过hostname命令,查看主机名为redrose007-desktop,用这个进行配置才能保证通讯。

    主机配置

    /etc/hosts配置,配置后能ping通从机

    192.168.3.110 redrose007-desktop           #从机
    192.168.3.111 ros01-virtual-machine        #主机
    
    ping redrose007-desktop                    #畅通
    

    从机配置

    /etc/hosts配置,配置后能ping通主机

    192.168.3.110 redrose007-desktop           #从机
    192.168.3.111 ros01-virtual-machine        #主机
    
    ping ros01-virtual-machine                 #畅通
    

    配置系统环境变量

    主机配置

    ~/.bash配置

    export ROS_HOSTNAME=ros01-virtual-machine
    export ROS_MASTER_URI=http://192.168.3.111:11311
    export ROS_IP=192.168.3.110
    

    从机配置

    ~/.bash配置

    export ROS_HOSTNAME=redrose007-desktop
    export ROS_MASTER_URI=http://192.168.3.111:11311
    

    关闭防火墙

    ubuntu系统默认关闭防火墙,但还是确保两个机器防火墙都关闭了。

    检查防火墙状态,如果是inactive表示防火墙关闭。

    sudo ufw status verbose
    

    若防火墙未关闭,使用下面的命令关闭。

    sudo ufw disable
    

    验证

    配置后,主机启动talker程序,注意beginner_tutorials包需要使用github里的源码进行安装,具体安装步骤参考github工程下的readme。

    rosrun beginner_tutorials talker
    

    从机可以收到消息

    redrose007@redrose007-desktop:~$ rostopic list
    /chatter
    /rosout
    /rosout_agg
    redrose007@redrose007-desktop:~$ rostopic echo /chatter
    data: "Hi! Default Message! :	20"
    

    从机启动talker程序,主机也能收到消息,主从机配置完成。

  • 相关阅读:
    低耦合高内聚
    Python 爬虫库
    Python 爬虫的工具列表
    selenium对浏览器操作、鼠标操作等总结
    简单文件操作
    环境错误2
    环境错误
    pip list 警告消除方法
    python 安装scrapy错误
    按是否执行程序的角度划分:静态测试、动态测试
  • 原文地址:https://www.cnblogs.com/weiweiting/p/12578070.html
Copyright © 2020-2023  润新知