版權聲明:本文為博主原創文章,轉載請標明出處: http://www.cnblogs.com/liu-fa/p/5773822.html
在我看來,ROS最牛逼的地方就是它的通信機制了,不僅僅是進程間通信方便,就連不同設備間通信也很方便,只需添加幾行代碼,你就可以實現多電腦間的 Topi c共享, 遠程控制等功能。下面就讓我們一起來實現吧!
這里假設我們有兩個電腦:電腦 A 為主機端,電腦 B 為控制端。最終要實現在 A 電腦上運行roscore,並且運行 Turtlesim 程序,然后在 B 電腦上運行鍵盤控制程序,控制 Turtlesim 小烏龜移動。
1. 查看電腦A和電腦B的 IP 和 Hostname
查看IP,在控制台輸入:
$ ifconfig
如果電腦連接的時有線網,則顯示結果中,etho 部分的 inet addr 后面就是該電腦的 IP 地址;
如果電腦連接的是無線,則 wlp3s0 部分的 inet addr 后就是 IP 地址。
查看 Hostname,在控制台輸入:
$ hostname
2. 修改hosts文件內容
使用如下指令,分別在電腦A和電腦B的打開 hosts 文件:
$ sudo gedit /etc/hosts
在電腦A端的 hosts文件 中添加如下加粗指令:
127.0.0.1 localhost
127.0.1.1 [ hostname_A ] [IP_A] [ hostname_A ] [IP_B] [ hostname_B ] ***
同理,在電腦B端的 hosts 文件中,加入如下加粗指令:
127.0.0.1 localhost
127.0.1.1 [ hostname_B ] [IP_B] [ hostname_B ] [IP_A] [ hostname_A ] ***
3. 修改 .bashrc 文件
使用如下指令,分別在電腦A和電腦B的打開 .bashrc 文件
$ sudo gedit ~/.bashrc
在電腦A端和電腦B端打開的 .bashrc 文件的最后一行,加入如下代碼:
export ROS_MASTER_URI=http://[hostname_A]:11311
[注意] 此處假設電腦A為主機,如果改成電腦B為主機,則只需要將此步中的 [hostname_A] 改成 [hostname_B] 即可。
4. 運行小烏龜程序
電腦A端:
首先啟動 ROS:
$ roscore
然后 Ctrl + T 打開新的控制台,運行: $ rosrun turtlesim turtlesim_node
電腦B端:
$ rosrun turtlesim turtle_teleop_key
現在,你就可以用電腦 B 控制電腦 A 中的小烏龜盡情遨游啦! ~\(≧▽≦)/~啦啦啦