ROS 多臺電腦間進行通訊

版權聲明:本文爲博主原創文章,轉載請標明出處: http://www.cnblogs.com/liu-fa/p/5773822.html

在我看來,ROS最牛逼的地方就是它的通訊機制了,不單單是進程間通訊方便,就連不一樣設備間通訊也很方便,只需添加幾行代碼,你就能夠實現多電腦間的 Topi c共享, 遠程控制等功能。下面就讓咱們一塊兒來實現吧!html

這裏假設咱們有兩個電腦:電腦 A 爲主機端,電腦 B 爲控制端。最終要實如今 A 電腦上運行roscore,而且運行 Turtlesim 程序,而後在 B 電腦上運行鍵盤控制程序,控制 Turtlesim 小烏龜移動。node

1. 查看電腦A和電腦B的 IP 和 Hostname

查看IP,在控制檯輸入:

$ ifconfig

若是電腦鏈接的時有線網,則顯示結果中,etho 部分的 inet addr 後面就是該電腦的 IP 地址;bash

若是電腦鏈接的是無線,則 wlp3s0 部分的 inet addr 後就是 IP 地址spa

查看 Hostname,在控制檯輸入:

$ hostname

2. 修改hosts文件內容

使用以下指令,分別在電腦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 ] ***

3. 修改 .bashrc 文件

使用以下指令,分別在電腦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

4. 運行小烏龜程序

電腦A端:

首先啓動 ROS:
$ roscore
而後 Ctrl + T 打開新的控制檯,運行: $ rosrun turtlesim turtlesim_node

電腦B端:

$ rosrun turtlesim turtle_teleop_key

 如今,你就能夠用電腦 B 控制電腦 A 中的小烏龜盡情遨遊啦! ~\(≧▽≦)/~啦啦啦

相關文章
相關標籤/搜索