在我看來,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 中的小烏龜盡情遨遊啦! ~\(≧▽≦)/~啦啦啦