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"