在實現多機通訊時,官方教程講的很模糊,具體細節實現
主機(ROS2小車),從機(自己的電腦上的Ubuntu系統)
首先開啟兩個terminal,左邊的負責連線小車,右邊的負責實現從機的接受話題
主機terminal輸入
sudo sh pi@192.168.1.11
進入後再輸入
./run_docker.sh
然後就進入小車的docker了
然後輸入sudo vim ~/.bashrc,檢視裡面的引數
export ROS_DOMAIN_ID=32 #我的小車的引數是32,這個可能有所不同
主機操作結束
從機terminal輸入
sudo vim ~/.bashrc
在最後新增這四句話
export ROS_HOSTNAME=從機名字
export ROS_MASTER_URI=http://主機ip:11311
export ROS_IP=從機ip
export ROS_DOMAIN_ID=32 #前面講到的引數
新增完成後儲存並推出
之後回到從機terminal介面,輸入
source ~/.bashrc
從機操作結束
下面實現話題釋出:
主機terminal輸入: ros2 run demo_nodes_py talker
從機terminal輸入: ros2 run demo_nodes_py listener
然後就可以看到主機發布話題,從機接收話題了
真不容易,為這個搞了好幾天,外行人實在是太難了