柚子快報(bào)激活碼778899分享:【樹(shù)莓派4B】ROS分布式通信
柚子快報(bào)激活碼778899分享:【樹(shù)莓派4B】ROS分布式通信
提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
文章目錄
前言一、ROS分布式通信是什么?二、搭建步驟1.前提準(zhǔn)備,配置樹(shù)莓派靜態(tài)IP2.修改配置文件3.測(cè)試
總結(jié)
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
在學(xué)習(xí)ROS的過(guò)程中,如何通過(guò)樹(shù)莓派作為主機(jī),PC作為從機(jī)(安裝的是windows+ubuntu雙系統(tǒng),有需要的小伙伴可以留言),實(shí)現(xiàn)分布式通信。以下關(guān)于分布式框架的搭建流程。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、ROS分布式通信是什么?
ROS(Robot Operating System)是一種用于機(jī)器人應(yīng)用程序開(kāi)發(fā)的框架,它支持分布式通信和模塊化架構(gòu)。 在ROS中,分布式通信是一種基本的通信方式,它允許不同的ROS節(jié)點(diǎn)(ROS Node)在不同的計(jì)算機(jī)上運(yùn)行,并通過(guò)ROS網(wǎng)絡(luò)進(jìn)行通信,以實(shí)現(xiàn)機(jī)器人系統(tǒng)的各個(gè)部分之間的信息交換和協(xié)作。
二、搭建步驟
1.前提準(zhǔn)備,配置樹(shù)莓派靜態(tài)IP
1.硬件準(zhǔn)備:使用顯示屏或 HDMI采集卡連接樹(shù)莓派并啟動(dòng);
2.為樹(shù)莓派連接無(wú)線(xiàn)網(wǎng)絡(luò);
3.為樹(shù)莓派配置靜態(tài)IP;
具體操作如圖:
樹(shù)莓派已經(jīng)連接上wifi 點(diǎn)開(kāi)wifi,選擇wifi設(shè)置 可以看到wifi的詳細(xì)信息,復(fù)制IPv4的地址 進(jìn)入IPv4,IPv4選擇手動(dòng),地址為剛才復(fù)制的地址,子網(wǎng)掩碼為255.255.255.0,網(wǎng)關(guān)為192.168.1.1,DNS為詳細(xì)信息中的DNS,配置好了后點(diǎn)擊應(yīng)用。
2.修改配置文件
分別修改不同計(jì)算機(jī)的 /etc/hosts 文件,在該文件中加入對(duì)方的IP地址和計(jì)算機(jī)名: @前面的為用戶(hù)名,@后面的為計(jì)算機(jī)名
下圖為樹(shù)莓派,即主機(jī)的IP為:192.168.1.122 計(jì)算機(jī)名:ubuntu 由于樹(shù)莓派配置了靜態(tài)IP,所以每次開(kāi)機(jī)IP都不會(huì)發(fā)生變化。
下圖為PC端,即從機(jī)的IP為:192.168.1.116 計(jì)算機(jī)名為:yang-lenovo PC端沒(méi)有配置靜態(tài)IP,每次連接wifi可能會(huì)發(fā)生變化,如果IP發(fā)生變化,后面的文件都需要修改。
PC端打開(kāi)終端輸入如下
sudo gedit /etc/hosts
將主機(jī)的IP和計(jì)算機(jī)名添加到其中,如第三行所示 同理樹(shù)莓派,即主機(jī)端相同的操作 設(shè)置完畢,可以通過(guò) ping 命令測(cè)試網(wǎng)絡(luò)通信是否正常。如圖所示
ping 計(jì)算機(jī)名orIP地址
出現(xiàn)如圖所示,說(shuō)明主機(jī)與從機(jī)端的通信已經(jīng)成功建立。
因?yàn)橄到y(tǒng)中只能存在一個(gè)Master,所以從機(jī)需要知道Master的位置。 在從機(jī)的.bashrc隱藏文件(ctrl+h打開(kāi))中添加如下內(nèi)容: ROS_HOSTNAME添加的是從機(jī)地址; ROS_MASTER_URI添加的是主機(jī)地址。 打開(kāi)終端輸入:
gedit ~/.bashrc
在末尾插入 export ROS_MASTER_URI=http://主機(jī)IP:11311 export ROS_HOSTNAME=從機(jī)IP
在此,主從分布式框架已經(jīng)搭建好了
3.測(cè)試
1.主機(jī)啟動(dòng) roscore(必須) 注意:當(dāng)設(shè)置從機(jī) ROS_MASTER_URI 為主機(jī)(不為從機(jī)本機(jī))后,從機(jī)上是不能運(yùn)行 roscore 的。 2.主機(jī)啟動(dòng)訂閱節(jié)點(diǎn),從機(jī)啟動(dòng)發(fā)布節(jié)點(diǎn),測(cè)試通信是否正常
3.反向測(cè)試,主機(jī)啟動(dòng)發(fā)布節(jié)點(diǎn),從機(jī)啟動(dòng)訂閱節(jié)點(diǎn),測(cè)試通信是否正常
以控制小海龜移動(dòng)為例:在主機(jī)終端啟動(dòng)master和小海龜節(jié)點(diǎn),在從機(jī)終端啟動(dòng)鍵盤(pán)節(jié)點(diǎn)進(jìn)行控制。
可以通過(guò)從機(jī)的鍵盤(pán)節(jié)點(diǎn)控制主機(jī)的小海龜移動(dòng),說(shuō)明分布式框架已經(jīng)搭建成功。
總結(jié)
當(dāng)然我們的多機(jī)通信不局限于兩臺(tái)計(jì)算機(jī)設(shè)備。 有問(wèn)題多多留言。
柚子快報(bào)激活碼778899分享:【樹(shù)莓派4B】ROS分布式通信
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。