ROS多機械人通訊

2021-08-08 18:57:54 字數 2187 閱讀 9742

ros設計的靈魂就在於其分布式計算。乙個優秀的節點不需要考慮在哪台機器上執行,它允許實時分配計算量以最大化的利用系統資源。(有乙個特例——驅動節點必須執行在跟硬體裝置有物理連線的機器上)。在多個機械人上使用ros是一件很簡單的事,你只需要記住一下幾點:

1.你只需要乙個master,只要在乙個機器上執行它就可以了。

所有節點都必須通過配置 ros_master_uri連線到同乙個master。

2.任意兩台機器間任意兩端口都必須要有完整的、雙向連線的網路。(參考ros/networksetup).

3.每台機器都必須向其他機器廣播其能夠解析的名字。(參考 ros/networksetup).

本文實現兩台安裝了ubantu系統和ros的電腦之間的通訊。

步驟:

(1)相關軟體安裝

(2)獲取兩個主機的ip位址和主機名

(3)配置ros連線兩台電腦並執行示例

首先當然兩台系統要安裝ros,然後是同步包,實現兩台系統同步

sudo apt-get install chrony
系統連線需要安裝ssh

sudo apt-get install openssh-server
分別在兩台機器上

(1)檢視ip位址

ifconfig
台式為192.168.1.35

筆記本為192.168.1.6

(2)檢視主機名

hostname
(1)首先檢視兩台電腦的ssh是否啟動

ps -e|grep ssh
如果看到sshd那說明ssh-server已經啟動了,沒啟動就重啟

sudo /etc/init.d/ssh restart
(2)使用ssh連線電腦

首先互相ping對方電腦

ping

192.168

.1.35

出現如下說明網路通了。

64

bytes

from

192.168

.1.6: icmp_seq=1 ttl=64

time=0.293 ms

64bytes

from

192.168

.1.6: icmp_seq=2 ttl=64

time=0.403 ms

64bytes

from

192.168

.1.6: icmp_seq=3 ttl=64

time=0.389 ms

注意如果筆記本用wifi連線,台式用有線,可能會ping不通,就要想辦法ping通網路.

參考ssh連線配置方法。

在筆記本和台式電腦上都使用

ssh username@ip_address -p port

連線上對方的電腦。都能夠成功後

(3)配置ros_master_uri

設台式電腦的ip為192.168.1.35,筆記本的ip為192.168.1.6

(a)台式電腦操作如下

設定台式電腦為master

只有台式電腦上啟動

roscore
新建控制台

export ros_master_uri=

rosrun rospy_tutorials listener.py

(b)筆記本操作如下

export ros_master_uri=

rosrun rospy_tutorials talker.py

注意配置好ros_master_uri後,在ros_master_uri這台機器上執行roscore就行了,否則執行多個roscore就收不到訊號。

台式電腦的listener收到如下資訊說明ros不同機器通訊成功.

參考:

機械人ros通訊

除錯幾天,ros之間的通訊。雖然還有點bug,但總之網路配置成功,並且能夠正 常通訊,現在記錄一下這個過程。一,網路通訊除錯 1 利用ifconfig命令檢視主機master turtlebot的上網本 和客戶端即工作機的 ip。2 利用hostname命令檢視,上網本和工作機使用者名字。3 開啟h...

如何學習機械人Ros?

知乎乙個大牛說,他從大學開始學習ros,學習了3,4年,收穫最多的其實不是ros本身,而是通過ros實現的不同專案,用ros快速解決了自己問題。learn by doing.他以前給我們公司機械人建ros的wiki和pkg 安裝包配置檔案 他做了做了ros裡面的package,api以及相關的top...

ROS機械人安裝學習筆記

最近做的乙個專案需要在ubuntu16.04下做ros機械人作業系統開發,因為之前從沒接觸過linux和ros機械人,記錄下學習過程,以備後用。假設ubuntu16.04已經安裝好了,我們的目標是安裝ros kinetic,因為這個版本支援ubuntu16.04。1.新增軟體庫到sources.li...