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...