远程遥控机器人

什么是远程,为什么需要远程?

远程指的是用远程的计算机来控制机器人,使用远程PC来调试开发,会方便很多。

1 远程计算机环境配置

远程计算机的系统版本和ROS版本必须和机器人上的工控机一致,否则会出现版本不统一的通信问题。

2 SSH登录到远程主机终端

打开机器人身上的工控机和用户手上远程计算机 步骤如下:

  • 1 使工控机和笔记本电脑必须处于同一局域网下(也就是连接着同一个路由器,尽量不要用手机热点)
  • 2 然后获取工控机的IP
  • 3 在远程计算机终端中登录工控机,@后面是工控机的IP地址
ssh -X handsfree@192.186.x.x
  • 4 在工控机端,使用同样的方法,登录到远程计算机
ssh -X user_name@192.186.y.y

如果也没有错误产生,说明二者可以正常通信,可以进行下一步

3 远程设置

上一步中,我们已经可以通过局域网互相访问,那么只需要进行下面的设置,ROS程序就可以在工控机和远程计算机上分别运行。遥控机器人就是通过机器人抽象节点在机器人端的工控机上运行,遥控节点在远程计算机上运行来实现的。

Tips : IP_OF_ROBOT_PC 是工控机的IP,IP_OF_REMOTE_PC是远程计算机的IP。

  • 在远程计算机中添加下面两行到~/.bashrc文件
export ROS_MASTER_URI=http://IP_OF_ROBOT_PC:11311   
export ROS_HOSTNAME=IP_OF_REMOTE_PC
  • 在机器人端工控机上添加下面两行到~/.bashrc文件,如图中最后两行所示
export ROS_MASTER_URI=http://IP_OF_ROBOT_PC:11311   
export ROS_HOSTNAME=IP_OF_ROBOT_PC

4 远程遥控机器人

  1. 启动机器人驱动节点
    在机器人端工控机上打开一个终端,并运行:

     roslaunch handsfree_hw handsfree_hw.launch
    

    该条命令打开了机器人驱动节点,该节点的作用是完成PC与机器人底层的通讯和相关指令与数据传输。

  2. 打开遥控节点
    在远程计算机打开一个终端,并运行:

roslaunch handsfree_teleop keyboard_teleop.launch

该条命令打开键盘控制节点,按照终端中的提示,我们就可以利用键盘控制机器人运动。如果一切正常的话,就表示我们就可以在远程计算机上共享机器人端工控机上ROS的信息了。
到此,完成ROS控制机器人功能的实现,如果一切正常的话,说明远程计算机设置没有问题,与机器人的通信也没有问题,接下来就可以进行更高级功能的测试了。

5 远程的其它介绍

如果只是为了遥控,只用ssh就够了,ROS的远程是把两台PC的通信连接起来,所有topic可以在两台PC同时操作,更常用的是,我们可以把rviz,rqt等ros工具运行在远程计算机上,把算法运行在工控机上。

results matching ""

    No results matching ""