ROS項目開發實戰(二)——不同ROS版本的多計算機通信


    ROS多機通信就是多個裝有ROS的不同計算機之間共用同一個ROS主機(Master)實現節點與話題共享,本人經驗建議當你遇到以下問題時候可以嘗試使用多機通信解決:

Case①: 一個team多個成員共同開發一個ROS項目,但是不同成員可能安裝的ubuntu版本與ROS版本不同,當需要將各個成員完成的模塊進行集成調試時可以使用多機通信;

Case②:   當你要使用一個ROS包卻發現使用軟件源下載提示未發現軟件包,這種問題的基本原因就是你要下載的包不匹配你的ubuntu版本(包括32位、64位區分)、ros版本,這種情況你可以找一臺裝有匹配的ROS版本的電腦(或者虛擬機再安裝一個ubuntu及ROS),在兩臺計算機上進行交互調試。

    下面就直接開始設置,假設你有兩臺計算機A和B(在同一局域網下),現在要設置A爲主機。

一、網絡設置

1. 分別查看兩臺計算機IP與名稱

//分別打開A、B兩臺計算機終端並在其中輸入:
$ ifconfig    
//查看ip
$ hostname   
//查看name

    IP查看結果(當然點擊右上角系統設置,直接打開網絡也可以看到ip地址):

Name查看結果:

2. 查看計算機之間能否通信

    方法:在A、B計算機終端分別ping對方IP地址,命令如下:

//在A機終端輸入:ping B機IP :
$ ping 192.168.0.104  //IP根據自己實際情況 
//B機終端同上

    若通信成功,可以看到顯示接收到包的time,通常是0.3ms左右;

    若顯示以下結果,則通常是物理連接的問題,檢查你的網線跟路由器設置:

    From 192.168.1.2 icmp_seq=3 Destination Host Unreachable

3.修改A、B機hosts文件內容,並重啓網絡設置使其生效

    在A、B機上分別打開hosts文件終,端命令:

$ sudo gedit /etc/hosts

    然後在文件末添加A、B的IP與hostname(IP與hostname爲上面步驟1查看的結果)並保存(其中紅色區域爲添加的部分,注意這裏在A、B添加的內容是一樣的,添加時候不帶[]):


    添加完成後重啓A、B兩機網絡設置,終端命令:

sudo /etc/init.d/networking restart

二、ROS環境設置

    分別在A、B兩機上打開~/.bashrc 文件,在文件最後添加ROS主機與分機環境變量(這裏A、B兩機修改內容一樣,add爲修改內容),命令:

$ sudo gedit ~/.bashrc  //打開hosts文件
export ROS_HOSTNAME=hostname_B    #add
export ROS_MASTER_URI=http://hostname_A:11311              #add
//hostname爲上面步驟1的查看結果

    以下爲本人電腦上設置,其中X230爲主機:

三、通信測試

打開主機A,終端roscore啓動ROS,在主機B中直接rostopic list 查看話題,如下圖若可以查看到話題則表示成功:





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章