ROS實現多機通信
以ROS中烏龜的例子講述ROS多機通信的過程
主機
- 使用
ifconfig
查看本機的ip
,如:10.161.223.107 - 開啓一個終端,輸入
export ROS_IP=10.161.223.107
,修改主機的ROS_IP - 輸入
roscore
, 查找ROS_MASTER_URI
,如:ROS_MASTER_URI=http://10.161.223.107:11311/
- 在開啓一個終端,輸入:
export ROS_IP=10.161.223.107
和export ROS_MASTER_URI=//10.161.223.107:11311/
. 之後輸入:rosrun turtlesim turtlesim_node __name:=my_turtle
主機配置完成
從機
- 開啓一個終端,輸入:
export ROS_IP=10.161.223.107
, 從機ip
export ROS_MASTER_URI=http://10.161.223.107:11311/
, 主機
- 檢查鏈接是否正常通信:
rosnode ping my_turtle
- 從機控制主機烏龜運動:
rosrun turtlesim turtle_teleop_key
可能的問題
如果上述操作步驟不能實現從機控制主機烏龜的話或者出現無法通信等問題,在從機中使用ROS_HOSTNAME
替換 ROS_IP
,或者註釋~/.bashrc
中ROS_HOSTNAME
.