机器人操作系统ROS—分布式跨机通讯配置

ROS 机器人的实验和开发中,通常需要一台移动机器人和一台 PC 配合使用,不少初学者都会有个困惑,即PC和机器人上的ROS命令都只针对本机,而机器人上的ubuntu通常都不是桌面版,那么PC上那些可视化的工具怎么应用在机器人上呢?即怎么才能利用PC上的ROS指令和工具直接访问和展示机器人上的数据呢?其实非常简单,通过ROS_MASTER_URI就可以方便的实现,本文我们就来简单介绍一下吧。

1.确保机器人和 PC 处于同一网段

这个比较容易,通常情况下有两种方法:

1.1.连接到机器人的AP热点

机器人上安装网络模块,并启动AP热点,设置WIFI名称和密码,让PC连接到机器人上,此时他们会处于同一网段的局域网,缺点是如果机器人没有4/5G上网卡的话,PC会没法上网,比较不方便搜索资料。

1.2.连接到同一个WIFI路由器

统一都连接到家里的WIFI路由器上或自己手机的WIFI热点,这样就可以即能处于同一个网段,又都能上网了。

这里我采用第二种方法,并检查两端的IP地址,确保相互可以ping通!

PC IP:

机器人IP:

2.PC端设置ROS_MASTER_URI

2.1.机器人端配置

# 修改机器人端的配置
workpi-ubuntu:~$ vim ~/.bashrc
  source /opt/ros/melodic/setup.bash
  source /home/work/catkin_ws/devel/setup.bash

  export ROS_IP=`hostname -I | awk '{print $1}'`
  export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
  export ROS_MASTER_URI=http://`hostname -I | awk '{print $1}'`:11311    #master指向自己

# 使配置生效
work@pi-ubuntu:~$ source ~/.bashrc

启动成功时,会打印以下内容:

work@pi-ubuntu:~$ roscore
...
auto-starting new master
process[master]: started with pid [16462]
ROS_MASTER_URI=http://192.168.0.103:11311/
...

2.2.PC端设置

# 修改roscore指向配置
work@mars:~$ vim  ~/.bashrc
  # robot
  source /opt/ros/melodic/setup.bash
  source /home/work/catkin_ws/devel/setup.bash
  export ROS_IP=`hostname -I | awk '{print $1}'`
  export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
  export ROS_MASTER_URI=http://192.168.0.103:11311/   #master指向机器人

# 使配置生效
work@mars:~$ source ~/.bashrc

3.测试

3.1.机器人端启动

# 启动底盘控制
work@pi-ubuntu:~$ roslaunch base_control base_control.launch pub_imu:=true
# 启动摄像头
work@pi-ubuntu:~$ roslaunch robot_vision robot_camera.launch

3.2.PC端查看和展示机器人数据

# 查看机器人topic
work@mars:~$ rostopic list
# rqt查看图像
work@mars:~$ rqt_image_view

可以看到跟本地控制是一样的,剩下的就不用再多说了吧,rqt_graph、rviz搞起来!

yan 21.9.22 23:44

 

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。