赞
踩
ifconfig
主从机都需要修改这个文件,这里ROS机器人用作主机,电脑用作从机。
sudo gedit ~/.bashrc
1)在主机(ROS机器人)的~/.bashrc文件末尾添加
export ROS_HOSTNAME=192.168.4.35 #主机IP地址
export ROS_MASTER_URI=http://192.168.4.35:11311 #主机IP地址:11311
export ROS_IP=190.168.4.35 #主机IP地址
2) 在从机(电脑)的~/.bashrc文件末尾添加
export ROS_HOSTNAME=192.168.4.58 #从机IP地址
export ROS_MASTER_URI=http://192.168.4.35:11311 #主机IP地址:11311
export ROS_IP=190.168.4.35 #主机IP地址
接下来将对方的IP添加进来,主机添加从机IP,从机添加主机IP。
sudo gedit /etc/hosts
主机中添加
192.168.4.58 robot #从机IP 从机名
从机中添加
192.168.4.35 ubuntu #主机IP 主机名
运行一个小海龟来验证一下。
主机(ROS机器人)中输入:
roscore
rosrun turtlesim turtlesim_node
从机(PC端)中输入:
rosrun turtlesim turtle_teleop_key
从机上键盘能控制小乌龟运动,就可以看出能在从机上控制主机,配置成功。配置完成后机器人的板卡运行压力就会小很多,rviz什么的就可以在电脑上运行,不用占用机器人主板的资源了。
但是会有一个问题,从机上好像就无法正常单独运行roscore了,必须依赖主机上的roscore。
解决方案:
方案一:远程登录软件todesk+显卡欺骗器(淘宝购买几块钱),在主机终端上运行roscore
方案二:或者使用ssh,在主机终端上运行roscore
远程控制的原因:
远程输入控制信息
远程查看效果,例如rviz
节约ros主控资源,提高运行效率
例如:我们设计了一台ROS机器人,其中ROS机器人上搭载Jetson板卡,我们将其设为ROS主机,主要负责激光雷达扫描、视觉信息读取、SLAM算法运行等工作;同时,我们将电脑端的ubuntu设为ROS从机,主要负责运行RVIZ、GAZEBO 以及键盘控制节点等功能。
采用这种控制方式可以大大节约Jetson板卡(ROS主机)的资源,从而使运行效率更高,更重要的是可以在PC端远程查看效果(例如rviz,一点儿都不卡顿!!!)。
无论是方式一,采用ROS从机连接ROS主机发出的WIFI
还是方式二,采用ROS从机、ROS主机连接到同一WIFI上
都是为了达到两者在同一局域网的目的,从而实现通信,推荐采用方案二
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。