除錯幾天,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...