ROS多機通信/在多臺機器上使用ROS系統/多臺電腦使用同一個主節點ROS master/ROS多機ssh通信

實現目標:當機器人運行后,在另外一臺電腦(除了機器人自身電腦外)控制,監控機器人。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

最近經常有實驗室同學問ROS多機通信,讓幫忙配置,特別是需要在移動機器上做實驗的時候。寫在這里方便新手查閱。

因為移動機器人上面電腦往往沒有顯示屏,或者我們需要遠程監控,因此需要在另外一臺電腦上面監控機器人運行狀態。

其實這里叫多機通信并不是很確切,通信是指另外的概念。這里更多是指多臺電腦共用同一個ROS節點。

網上教程很多,但是實現目的不同,對于新手而言有點難搞,這里的實現步驟針對于文首提到的實現目標。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

(0)為兩臺電腦安裝同步通信包及ssh服務

$sudo?apt-get?install?chrony

$sudo?apt-get?install?openssh-server

(1)兩臺電腦準備好后,在各自終端命令行查找本機IP。

$ ifconfig

記錄得到的兩個IP地址這里假設為:

機器人:192.168.1.101

監控機:192.168.1.102

(2)在./bashrc文件中添加配置信息。

機器人電腦中$sudo gedit ~/.bashrc

添加

ROS_MASTER_URI=http://192.168.1.101:11311

ROS_IP=http://192.168.1.101

監控電腦中$sudo gedit ~/.bashrc

添加

ROS_MASTER_URI=http://192.168.1.101:11311

ROS_IP=http://192.168.1.102

(3)配置完后source更新文件

$ source ./bashrc(兩臺電腦都要執行)

(4)獲取主機名

$ hostname

這里假設為 機器人為:robot ?監控機為:home

記錄兩臺電腦主機名,如果復雜可以修改,修改方法自行百度

(5)使用ssh服務從機登錄主機并控制主機

$ ssh robot@192.168.1.101

確定提示內容,輸入密碼即可登錄,登錄后該terminal即為有主機權限的terminal可直接進行命令行操作

$ roscore

打開主機master,即為兩臺電腦共用的master,在該terminal下可實現對主次節點的開啟和關閉

(6)從機訂閱主機話題

$ rostopic list

查看主機節點話題

重開terminal,即為從機自身terminal可以訂閱監視,同時在rviz可以訂閱,也可以直接往話題發消息

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容