機械人ros通訊

2021-07-24 12:50:57 字數 1844 閱讀 3872

除錯幾天,ros之間的通訊。雖然還有點bug,但總之網路配置成功, 並且能夠正

常通訊,現在記錄一下這個過程。

一,網路通訊除錯

1)利用ifconfig命令檢視主機master(turtlebot的上網本)和客戶端即工作機的 ip。

2)利用hostname命令檢視,上網本和工作機使用者名字。

3)開啟host檔案,有兩種方式:

(1)gksu gedit /etc/hosts

(2)vim開啟,先獲取修改許可權 sudo chmod a+w /etc/hosts

vim /etc/hosts;(esc切換到命令模式,輸入:wq!)

4)將ip配置到hosts檔案中,第二行、第三行加入ip 和hostname,格式如下

ip   hostname,注中間是採用的tap鍵而不是空格鍵。

5)兩台電腦時鐘同步,sudo apt-get install chrony

6)檢視兩台電腦ssh伺服器的安裝

sudo apt-get install  openssh-server

檢測是否啟動:

ps -e|grep ssh

7)測試網路通訊,

1)兩台電腦ping自己的ip

2)互相ping ip,

如果沒有問題,則說明兩台電腦網路層是通的,在同乙個區域網中

二,ros系統配置

1)(上網本)輸入gedit ~/.bashrc

2)在文字中輸入

export ros_hostname=turtlebot_of_ip(上網本的ip)

export ros_master=http://turtlebot_of_ip:11311(工作本的ip)

3)終端執行

~/.bashrc

4)(工作本)同樣輸入gedit ~/.bashrc

5)  在最後新增如下**

6)終端執行

~/.bashrc

(注:如果想單獨執行,不需要遠端通訊,可以把ecport去掉即可)

三,測試

1)測試主機(上網本)

在上網本執行節點管理器roscore,工作本上執行rostopic list

如果工作正常則會出現兩行節點資訊(不再寫出)。說明兩台電腦ros之間可以通訊。

2)測試從工作本到上網本

上網本執行

roscore

roslaunch turtlebot_bringup minimal.launch

工作本上執行:

roslaunch turtlebot_teleop keyboard_teleop.launch

注:實現的功能是:工作本遙操作上網本,遠端控制機械人運動。

3)測上網本到工作本

工作本執行:

rostopic pub -r10 /hello std_msgs/string "hello"

上網本執行:

rostopic echo /hello

訊息「hello」開始列印每秒10次。

總結:經過兩天的測試,開始用了小烏龜那個測試,想實現小烏龜的遠端操控:

上網本執行:

roscore 

rosrun turtlesim turtlesim_node

工作本上執行:

rosrun turtlesim turtle_teleop_key

一直沒有調通,反覆檢視網路配置,客戶端和伺服器端都沒有問題。按照創客製造的部落格測試,都能通過。說明網路通訊沒有問題,已經完成。(小烏龜的例子除錯不通,我感覺像是我工作

ROS多機械人通訊

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

如何學習機械人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...