ROS入门笔记(十三):分布式通信
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"