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
