ROS 多台電腦間進行通信


版權聲明:本文為博主原創文章,轉載請標明出處: 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 中的小烏龜盡情遨游啦! ~\(≧▽≦)/~啦啦啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM