實現目標:當機器人運行后,在另外一臺電腦(除了機器人自身電腦外)控制,監控機器人。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
最近經常有實驗室同學問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可以訂閱,也可以直接往話題發消息