ROS之實現多臺計算機之間的通訊(所有指令均在臺式機上操作)

本篇文章實現多臺計算機之間的ROS通訊,筆記本作爲master,放在turtlebot機器人上面,所有指令均在臺式機上操作。特別要注意的是多臺計算機都必須在一個網絡中,比如連接同一個路由器即可。在本文中筆記本連接ywifi,臺式機通過網線連接路由器。

一、時間同步

在臺式機和筆記本上分別運行:

sudo apt-get install chrony

二、獲得主機名hostname

1.在筆記本上運行

hostname

得到筆記本的主機名爲jenny     如下圖所示:


2.同理在臺式機上運行hostname得到我臺式機的主機名爲jennyvv

三、獲得臺式機和筆記本的IP

1.在筆記本上運行

ifconfig
得到筆記本的IP地址爲192.168.1.104

2.同理在臺式機上運行ifconfig得到臺式機的IP地址爲 192.168.1.110

四、修改/etc文件夾下的hosts文件,將兩電腦的IP和主機名綁定

首先安裝gksu

sudo apt-get install gksu
打開文件
gksu gedit /etc/hosts

以   IP  hostname 的形式添加,如下圖所示:

同理在臺式機上也要如此操作。

五、修改~/.bashrc文件

本文中將筆記本jenny作爲主機master, 通過如下命令編輯~/.bashrc文件

gedit ~/.bashrc
在筆記本這邊的~/.bashrc文件最後添加
export ROS_HOSTNAME=jenny
export ROS_MASTER_URI=http://jenny:11311

在臺式機上的~/.bashrc文件最後添加

export ROS_HOSTNAME=jennyvv
export ROS_MASTER_URI=http://jenny:11311

六、正式開始通訊

1.相互ping

在筆記本上ping臺式機:

ping jennyvv

得到的結果如下:


同時在臺式機上運行

ping jenny
得到與上圖相似的結果即爲通訊成功。

2.小例子:筆記本上發送命令控制檯式機上的小海龜作正方形運動,所有指令均在臺式機上面操作

A.首先在臺式機上面運行ssh進入到筆記本中

ssh jenny

若出現ssh:connect to host jenny port 22: Connect refused

這是因爲jenny筆記本上沒有安裝ssh服務器,通過如下指令安裝

sudo apt-get install openssh-server

再次運行ssh jenny,輸入密碼,當臺式機上@後面的主機名由@jennyvv變爲@jenny後即爲成功。


B.接着在上面那個終端後面運行(此時主機名爲@jenny)

roscore &

此時完成了在臺式機上控制筆記本運行節點管理器roscore

C.在臺式機上的新終端中啓動小海龜

rosrun turtlesim turtlesim_node


D.在臺式機的新終端中連接筆記本併發送命令令
ssh jenny
rosrun turtlesim draw_square

此時就可以看到小海龜在畫正方形的框了。



參考 《ros by example》第一版中的4.12章節

參考鏈接:https://blog.csdn.net/heyijia0327/article/details/42080641







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