在我看来,ROS最牛逼的地方就是它的通讯机制了,不单单是进程间通讯方便,就连不一样设备间通讯也很方便,只需添加几行代码,你就能够实现多电脑间的 Topi c共享, 远程控制等功能。下面就让咱们一块儿来实现吧!html
这里假设咱们有两个电脑:电脑 A 为主机端,电脑 B 为控制端。最终要实如今 A 电脑上运行roscore,而且运行 Turtlesim 程序,而后在 B 电脑上运行键盘控制程序,控制 Turtlesim 小乌龟移动。node
$ ifconfig
若是电脑链接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;bash
若是电脑链接的是无线,则 wlp3s0 部分的 inet addr 后就是 IP 地址。spa
$ hostname
使用以下指令,分别在电脑A和电脑B的打开 hosts 文件:code
$ sudo gedit /etc/hosts
在电脑A端的 hosts文件 中添加以下加粗指令:htm
127.0.0.1 localhost
127.0.1.1 [ hostname_A ] [IP_A] [ hostname_A ] [IP_B] [ hostname_B ] ***
同理,在电脑B端的 hosts 文件中,加入以下加粗指令:blog
127.0.0.1 localhost
127.0.1.1 [ hostname_B ] [IP_B] [ hostname_B ] [IP_A] [ hostname_A ] ***
使用以下指令,分别在电脑A和电脑B的打开 .bashrc 文件进程
$ sudo gedit ~/.bashrc
在电脑A端和电脑B端打开的 .bashrc 文件的最后一行,加入以下代码:get
export ROS_MASTER_URI=http://[hostname_A]:11311
[注意] 此处假设电脑A为主机,若是改为电脑B为主机,则只须要将此步中的 [hostname_A] 改为 [hostname_B] 便可。it
首先启动 ROS:
$ roscore
而后 Ctrl + T 打开新的控制台,运行: $ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
如今,你就能够用电脑 B 控制电脑 A 中的小乌龟尽情遨游啦! ~\(≧▽≦)/~啦啦啦