通常robot上都有一块主机板(一台mini pc机或者就是笔记本),robot的电机板通过USB端口/串口连接主机板,而扫描传感器例如激光雷达也通过USB端口连接到主机板。
1.本地连接
直接在主机板上跑gmapping,amcl等节点。这样主机板也相当于控制器,直接与外围设备连接。
由于不涉及远程连接,在.bashrc中只需配置如下即可。
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
2.远程连接
将主机板(robot)和pc机连到同一个局域网下,
pc机ip地址 10.0.0.7 --远程控制
主机板ip地址 10.0.0.9 --主机
确保两者之间可以ping通
在pc机上,配置如下
export ROS_HOSTNAME=10.0.0.7
export ROS_MASTER_URI=http://10.0.0.9:11311
在主机板上,配置如下
export ROS_HOSTNAME=10.0.0.9
export ROS_MASTER_URI=http://10.0.0.9:11311
验证方式:
在主机板上执行命令roscore,在pc机上执行命令rosnode list可以查看到节点信息
注意事项:
1.在配置过程中,HOSTNAME和URI不可以写localhost,要直接写ip地址。
2.由于时间同步在ros中有重要作用,因此网络时间同步:使用chrony
sudo apt-get install chrony
sudo ntpdate ntp.ubuntu.com