ROS入門筆記(十三):分布式通信
ROS是一種分布式軟件框架,節點之間通過松耦合的方式進行組合。
01 如何實現分布式多機通信
1.1 設置IP地址,確保底層鏈路的連通
步驟一,樹莓派和電腦必須在同一個局域網。
步驟二,輸入ifconfig,查看兩台計算機(ggk-pc,raspi2)的IP地址;
步驟三,IP地址分別設置在對方的hosts文件中,保存、退出;
$ sudo vi /etc/hosts
步驟四,在兩台計算機上分別使用ping命令測試網絡是否連通。
$ ping raspi2 #在ggk-pc電腦上
$ ping ggk-pc #在raspi2上
1.2 在從機端設置ROS_MASTER_URI,讓從機找到ROS Master
ROS Master 只能在一台計算機上運行,在另外一台計算機上設置環境變量,找到ROS Master在哪運行;
在樹莓派上
步驟一,啟動終端,輸入以下命令:
$ vi .bashrc
步驟二,拉到結尾,按小寫字母o,不是零;
步驟三,在結尾輸入以下命令,保存、退出即可;
ROS Master:默認端口號 11311
export ROS_MASTER_URI=http://hcx-pc:11311 #(當前終端有效)保存,退出
或者
echo"export ROS_MASTER_URI=http://hcx-pc:11311">>~/.bashrc # (所有終端有效)保存、退出
02 實戰操作
步驟一,主機端啟動ROS Master與海龜仿真節點;
$ roscore
$ rosrun turtlesim turtlesim_node
步驟二,從機端發布一個速度控制消息;
$ rostopic pub -r 10 /turtlel/cmd_vel
geometry_msgs/Twist "linear:
x:0.5
y:0.0
z:0.0
angular:
x:0.0
y:0.0
Z:0.5"