最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【自己動(dòng)手做一臺(tái)SLAM導(dǎo)航機(jī)器人】第五章:樹莓派3開發(fā)環(huán)境搭建

2023-03-20 05:19 作者:小虎哥哥愛學(xué)習(xí)  | 我要投稿

本專欄目錄

視頻教程

https://www.bilibili.com/video/BV1jS4y1a7Lz

通過前面一系列的鋪墊,相信大家對(duì)整個(gè)miiboo機(jī)器人的DIY有了一個(gè)清晰整體的認(rèn)識(shí)。接下來就正式進(jìn)入機(jī)器人大腦(嵌入式主板:樹莓派3)的開發(fā)。本章將從樹莓派3的開發(fā)環(huán)境搭建入手,為后續(xù)ros開發(fā)、slam導(dǎo)航及語音交互算法做準(zhǔn)備。本章內(nèi)容:

1.安裝系統(tǒng)ubuntu_mate_16.04

2.安裝ros-kinetic

3.裝機(jī)后一些實(shí)用軟件安裝和系統(tǒng)設(shè)置

4.PC端與robot端ROS網(wǎng)絡(luò)通信

5.Android手機(jī)端與robot端ROS網(wǎng)絡(luò)通信

6.樹莓派USB與tty串口號(hào)綁定

7.開機(jī)自啟動(dòng)ROS節(jié)點(diǎn)

下面這本書是本篇文章的參考文獻(xiàn),大家有需要可以入手一本:

1.安裝系統(tǒng)ubuntu_mate_16.04

安裝前先準(zhǔn)備好需要用到的材料,在樹莓派3上安裝ubuntu_mate_16.04需要用到的工具和材料,如圖1。

(圖1)材料準(zhǔn)備

1.1.格式化microSD卡

在向microSD卡燒入系統(tǒng)之前,需要先格式化好microSD卡。我這里使用DiskGenius工具將卡格式化為FAT32文件系統(tǒng)。DiskGenius下載地址:

http://www.diskgenius.cn/download.php

1.2.下載ubuntu-mate-16.04系統(tǒng)鏡像

直接前往ubuntu-mate的官網(wǎng)https://ubuntu-mate.org/download/。選擇如圖2所示的版本進(jìn)行下載就行了。

(圖2)ubuntu-mate-16.04下載頁面

1.3.系統(tǒng)燒錄

將下載好的系統(tǒng)鏡像文件ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz解壓得到ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img,該文件應(yīng)存放在英文路徑下。然后用Win32 Disk Imager工具將ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img燒錄到microSD卡,Win32 Disk Imager工具下載地址https://win32-disk-imager.en.lo4d.com/download。燒錄過程很簡單,打開Win32 Disk Imager工具,在[映像文件]欄中填入待燒錄的鏡像文件路徑,在[設(shè)備]欄中填入要燒錄的microSD卡,最后點(diǎn)擊[寫入]等待燒錄進(jìn)度完成就行了,如圖3。

(圖3)系統(tǒng)燒錄

1.4.上電開機(jī)

給樹莓派3主板連接上HDMI顯示器、鼠標(biāo)、鍵盤,并插入剛剛燒錄好系統(tǒng)的microSD卡,就可以上電了,如圖4。

(圖4)上電開機(jī)

第一次開機(jī),系統(tǒng)需要用戶填寫一些必要的設(shè)置項(xiàng),首先是系統(tǒng)語言設(shè)置,選擇默認(rèn)的語言English就行了,如圖5。

(圖5)語言設(shè)置

然后是wifi連接設(shè)置,這里選擇先不聯(lián)網(wǎng),這樣系統(tǒng)配置速度會(huì)快很多,等后面我們再進(jìn)行聯(lián)網(wǎng),如圖6。

(圖6)wifi連接設(shè)置

然后是時(shí)區(qū)設(shè)置,我們在中國,說以用鼠標(biāo)點(diǎn)擊地圖中的中國區(qū)域,會(huì)自動(dòng)鎖定到Shanghai時(shí)區(qū),如圖7。

(圖7)時(shí)區(qū)設(shè)置

然后是鍵盤設(shè)置,直接默認(rèn)就行了,如圖8。

(圖8)鍵盤設(shè)置

然后是用戶名和密碼設(shè)置,為了方便記憶,我將用戶名和密碼都設(shè)置成了ubuntu;這里需要特別注意,由于我們的系統(tǒng)用于機(jī)器人的開發(fā),為了讓機(jī)器人上電就能自動(dòng)進(jìn)入系統(tǒng),我們需要勾選[Log in automatically]選項(xiàng),也就是讓系統(tǒng)開機(jī)自動(dòng)登錄。如圖9。

(圖9)用戶名、密碼、開機(jī)自動(dòng)登錄設(shè)置

然后就進(jìn)入系統(tǒng)配置過程了,耐心等待配置進(jìn)度條完成,如圖10。

(圖10)系統(tǒng)配置過程

耐心等待,所有配置完成后,系統(tǒng)會(huì)自動(dòng)重啟一次,重啟完成后,就可以看到ubuntu-mate-16.04系統(tǒng)的真容了,如圖11。如果我們不想每次開機(jī)都看到這個(gè)歡迎界面,可以去掉勾選框中的勾,關(guān)閉就行了,下次就不會(huì)出現(xiàn)了。

(圖11)歡迎界面

最后,就可以見到ubuntu-mate-16.04系統(tǒng)的真容了,如圖12,到這里系統(tǒng)安裝就成功了。

(圖12)ubuntu-mate-16.04系統(tǒng)桌面

2.安裝ros-kinetic

安裝好系統(tǒng)ubuntu-mate-16.04后,就可以安裝對(duì)于我們機(jī)器人開發(fā)非常重要的ROS系統(tǒng)了,根據(jù)ubuntu的版本與ROS行版本之間的對(duì)于關(guān)系,這里我們安裝ros-kinetic這個(gè)發(fā)行版。

2.1.連接wifi網(wǎng)絡(luò)

由于安裝需要通過網(wǎng)絡(luò)在線進(jìn)行,所以需要先連接上wifi,在桌面右上角找到wifi樣式的圖標(biāo),在下拉欄中選擇[Edit Connections…],如圖13。

(圖13)編輯網(wǎng)絡(luò)連接

在彈出來的窗口中,點(diǎn)擊[Add]來添加我們的網(wǎng)絡(luò)連接,并選擇[Wi-Fi]連接類型,最后點(diǎn)擊[Create…]來創(chuàng)建,如圖14。

(圖14)創(chuàng)建網(wǎng)絡(luò)連接

在網(wǎng)絡(luò)連接的配置窗口中,首先設(shè)置[General]參數(shù),為了讓系統(tǒng)開機(jī)自啟動(dòng)后能自動(dòng)連接該網(wǎng)絡(luò),勾選前兩項(xiàng),如圖15。

(圖15)網(wǎng)絡(luò)連接General參數(shù)

然后設(shè)置[Wi-Fi]參數(shù),SSID欄填入自己家wifi的名字(我家的wifi名字叫error),Mode欄選擇Client,Device欄下拉填入自己的無線網(wǎng)卡號(hào),如圖16。

(圖16)網(wǎng)絡(luò)連接Wi-Fi參數(shù)

然后設(shè)置[Wi-Fi Security]參數(shù),Security欄填入自己家wifi的加密方式(一般的加密方式都是WPA&WPA2 Personal),Password欄填入wifi的連接密碼,最后點(diǎn)擊[save]保存設(shè)置好的參數(shù),如圖17。

(圖17)網(wǎng)絡(luò)連接Wi-Fi Security參數(shù)

最后找到[Enable Networking]選項(xiàng),去掉選項(xiàng)前面的勾,然后再勾上,讓網(wǎng)絡(luò)配置生效;稍等片刻,我們配置的wifi連接error將自動(dòng)連接上,這樣就連接網(wǎng)絡(luò)完成了,如圖18。

(圖18)重啟網(wǎng)絡(luò)使網(wǎng)路配置生效

為了讓機(jī)器人啟動(dòng)后,我們能通過網(wǎng)絡(luò)遠(yuǎn)程訪問,這里建議大家在樹莓派上設(shè)置成靜態(tài)IP分配,首先打開命令行終端用ifconfig查看一下當(dāng)前分配給樹莓派的IP地址,將這個(gè)IP地址綁定成靜態(tài)IP,這樣可以保證該IP不會(huì)與其他設(shè)備發(fā)生IP沖突,如圖19。

(圖19)查看IP地址

然后,對(duì)上面創(chuàng)建的網(wǎng)絡(luò)連接的[IPv4 Settings]參數(shù)進(jìn)行設(shè)置,Method欄選擇Manual,Addresses欄填入靜態(tài)IP參數(shù)(靜態(tài)IP設(shè)為192.168.0.117,子網(wǎng)掩碼設(shè)為255.255.255.0,網(wǎng)關(guān)設(shè)為192.168.0.1),DNS servers欄填入192.168.0.1,最后保存就行了,只需要重啟網(wǎng)絡(luò)靜態(tài)IP就設(shè)好了,如圖20。

(圖20)設(shè)置靜態(tài)IP

2.2.安裝ros-kinetic

其實(shí)在ubuntu上安裝ROS,有很詳細(xì)的ROS官方教程,感興趣的朋友可以直接參考官方教程http://wiki.ros.org/kinetic/Installation/Ubuntu。由于官方教程用英文書寫,為了方便大家閱讀,我將官方教程翻譯過來,方便大家學(xué)習(xí),下面正式進(jìn)入安裝。溫馨提醒,由于不同的編輯器對(duì)過長的句子換行的規(guī)則不同,下面的命令被自動(dòng)換行后可能影響正常的閱讀,請(qǐng)直接參閱官方教程中的命令http://wiki.ros.org/kinetic/Installation/Ubuntu。

(1)設(shè)置ubuntu的sources.list

打開命令行終端,輸入如下命令:

(2)設(shè)置keys

打開命令行終端,輸入如下命令:

(3)安裝ros-kinetic-desktop-full完整版

打開命令行終端,分別輸入如下兩條命令:

小技巧,如果安裝過程提示“下載錯(cuò)誤”,請(qǐng)耐心重試上面的兩條命令,這個(gè)錯(cuò)誤多半是由于網(wǎng)絡(luò)故障造成的。

(4)初始化rosdep

打開命令行終端,分別輸入如下兩條命令:

(5)配置環(huán)境變量

打開命令行終端,分別輸入如下兩條命令:

(6)安裝rosinstall

打開命令行終端,輸入如下命令:

(7)測試ros安裝成功與否

打開命令行終端,輸入如下命令:

如果此時(shí)出現(xiàn)以下內(nèi)容

那么恭喜你,ROS已經(jīng)成功的安裝上了?。?!

3.裝機(jī)后一些實(shí)用軟件安裝和系統(tǒng)設(shè)置

雖然我們順利安裝了ubuntu-mate-16.04系統(tǒng),并且在系統(tǒng)上裝好了ROS-kinetic發(fā)行版,為了后面跟高效和便捷的開發(fā),這里將進(jìn)行一些非常實(shí)用軟件的安裝和系統(tǒng)設(shè)置。

3.1.開機(jī)自動(dòng)登錄

裝完系統(tǒng)后第一次開機(jī),會(huì)要求設(shè)置用戶名和密碼,這里應(yīng)該設(shè)置用戶開機(jī)自動(dòng)登錄,只有登錄后樹莓派3才能自動(dòng)連接到無線網(wǎng)絡(luò),從而才能遠(yuǎn)程控制。如果裝機(jī)時(shí)已經(jīng)設(shè)置了,請(qǐng)直接跳過這一部分;如果你搞忘記或遺漏了,沒有設(shè)置開機(jī)自動(dòng)登錄,也不要緊,用下面的的方法進(jìn)行自動(dòng)登錄設(shè)置。

打開文件/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greet.conf,在[seat:*]節(jié)點(diǎn)下修改或添加以下代碼

3.2.超級(jí)用戶root密碼設(shè)置

裝完ubuntu-mate-16.04系統(tǒng)后,root用戶默認(rèn)是沒有密碼的;用普通用戶ubuntu的sudo權(quán)限去設(shè)置root用戶的密碼。

反正我們是用于學(xué)習(xí),出于方便記憶的考慮,所以和之前設(shè)置ubuntu的用戶名和密碼一樣,這里設(shè)置root的用戶名和密碼也一樣,也就是root用戶的密碼也是root。

root密碼設(shè)置成功后,su?root登錄進(jìn)去驗(yàn)證一下,如果能登錄就設(shè)置成功了。

3.3.擴(kuò)展SWAP空間

由于后續(xù)在樹莓派3上需要編譯一些大型的程序和運(yùn)行復(fù)雜的SLAM算法,默認(rèn)的物理內(nèi)存1GB是不夠用的,常常造成卡機(jī)死機(jī)等現(xiàn)象,這里需要添加SWAP擴(kuò)展空間,其實(shí)就是當(dāng)系統(tǒng)內(nèi)存不足時(shí)會(huì)用硬盤上SWAP分區(qū)作為虛擬內(nèi)存。

由于我的microSD卡是32GB的,所以可以多分配一些給SWAP,所以分配4GB給SWAP空間。具體步驟:

3.4.連接wifi網(wǎng)絡(luò)

為了讓機(jī)器人啟動(dòng)后,我們能通過網(wǎng)絡(luò)遠(yuǎn)程訪問,需要給機(jī)器人配置好網(wǎng)絡(luò)連接,并分配靜態(tài)IP,讓機(jī)器人開機(jī)后就能自動(dòng)連接wifi。關(guān)于設(shè)置的內(nèi)容已經(jīng)在上面安裝ros-kinetic

詳細(xì)介紹了,有需要的直接前去翻閱就行。

3.5.安裝chromium瀏覽器

前一段時(shí)間,在ubuntu-mate-16.04上安裝ROS后,ubuntu-mate-16.04系統(tǒng)自帶的Firefox瀏覽器不能用了,F(xiàn)irefox最近對(duì)這個(gè)故障進(jìn)行了修復(fù)。不過為了保險(xiǎn)起見,還是推薦安裝谷歌為linux系統(tǒng)推出的瀏覽器chromium,跟我們平時(shí)用的聞名于世的chrome瀏覽器是差不多的。安裝很簡單,就一條命令。

3.6.安裝vim、ssh工具

vim是Linux中一款很經(jīng)典的代碼文本編輯器,不論是本地還是遠(yuǎn)程編輯文本都很強(qiáng)大;ssh功能很強(qiáng)大,不緊可以提供用戶遠(yuǎn)程登錄控制系統(tǒng)和編輯文件,還提供命令終端下的scp遠(yuǎn)程文件傳輸。安裝很簡單,幾條命令就搞定。

3.7.通過ssh遠(yuǎn)程登錄到機(jī)器人

樹莓派3主板是安裝在miiboo機(jī)器人上的,由于機(jī)器人要在地上自由移動(dòng),給機(jī)器人上的樹莓派配一個(gè)HDMI顯示器和鼠標(biāo)鍵盤用于程序調(diào)試顯然是不方便的。一個(gè)很好的方法是,工作端PC和機(jī)器人連接到同一個(gè)路由器完成局域網(wǎng)組網(wǎng),然后在PC端用ssh遠(yuǎn)程登錄到機(jī)器人,這樣就可以在工作PC端對(duì)機(jī)器人上的程序和文件進(jìn)行調(diào)試開發(fā)了。

ssh遠(yuǎn)程登錄方法:

一旦PC端打開的終端窗口ssh遠(yuǎn)程登錄機(jī)器人后,就可以在該終端下像在機(jī)器人上使用終端一樣進(jìn)行操作了。PC端可以打開多個(gè)終端窗口ssh遠(yuǎn)程登錄機(jī)器人,這樣在不同的終端下可以開啟機(jī)器人上不同的程序。

3.8.在工作PC端遠(yuǎn)程編輯機(jī)器人上的文件

已經(jīng)介紹了通過ssh遠(yuǎn)程登錄機(jī)器人的方法,其實(shí)可以直接在登入的終端下用vim對(duì)機(jī)器人上的文件進(jìn)行查看編輯。但是,如果需要同時(shí)編輯多個(gè)文件,或?qū)σ粋€(gè)軟件項(xiàng)目源碼進(jìn)行編輯,vim就不方便了。

這里推薦在PC端安裝IDE開發(fā)工具(比較推薦atom,不過sublime text也不錯(cuò),根據(jù)個(gè)人喜好選擇吧),然后將機(jī)器人上的系統(tǒng)文件夾遠(yuǎn)程掛載在PC端系統(tǒng),這樣就可以在PC端上用IDE開發(fā)工具直接對(duì)遠(yuǎn)程掛載過來的文件及文件夾進(jìn)行編輯了。

在PC端安裝IDE開發(fā)工具atom很簡單,直接在ubuntu軟件中搜索atom,然后點(diǎn)擊安裝就行了,如圖21。

(圖21)在PC端安裝IDE開發(fā)工具atom

將機(jī)器人上的系統(tǒng)文件夾遠(yuǎn)程掛載在PC端系統(tǒng),首先打開[文件]管理器,找到左側(cè)欄的[連接到服務(wù)器],在服務(wù)器地址欄輸入遠(yuǎn)程文件地址(如sftp://192.168.0.117/home/ubuntu,這里的sftp是協(xié)議,192.168.0.117是遠(yuǎn)程設(shè)備IP地址,/home/ubuntu是遠(yuǎn)程設(shè)備中想要被掛載的文件夾請(qǐng)根據(jù)實(shí)際替換),然后點(diǎn)擊[連接],這是需要輸入遠(yuǎn)程設(shè)備的登錄名和密碼,如圖22。

(圖22)將機(jī)器人上的系統(tǒng)文件夾遠(yuǎn)程掛載在PC端系統(tǒng)

掛載好后,就可以使用各種我們喜歡的編輯工具對(duì)文件夾中的文件進(jìn)行編輯了,如圖23,不過遠(yuǎn)程文件系統(tǒng)掛載會(huì)比較占用網(wǎng)路帶寬,不用時(shí)建議盡量斷開。

(圖23)掛載好后的遠(yuǎn)程文件夾

4.PC端與robot端ROS網(wǎng)絡(luò)通信

PC端與robot端ROS網(wǎng)絡(luò)通信的設(shè)置,其實(shí)很簡單。就是要在PC端和機(jī)器人端都要指明master和hostname這兩個(gè)東西,我們都知道ROS基于的是一個(gè)分布式的通信機(jī)制,支持多機(jī)通信,并且只能有一個(gè)master設(shè)備作為對(duì)其他分部式設(shè)備的統(tǒng)一管理。

由于大部分節(jié)點(diǎn)算法都是運(yùn)行在機(jī)器人上,PC端只是用于遠(yuǎn)程調(diào)試,為了系統(tǒng)的效率與穩(wěn)定性,我把機(jī)器人端作為master。如圖24。

(圖24)PC端與robot端ROS網(wǎng)絡(luò)通信

首先,配置機(jī)器人端的ROS網(wǎng)絡(luò)參數(shù),打開機(jī)器人用戶目錄下的~/.bashrc配置文件,在最后添加兩個(gè)環(huán)境變量,如圖25。

(圖25)配置機(jī)器人端的ROS網(wǎng)絡(luò)參數(shù)

不難發(fā)現(xiàn)在機(jī)器人上mater和host的IP是一樣的,因?yàn)闄C(jī)器人被指定為了整個(gè)ROS網(wǎng)絡(luò)的master設(shè)備。修改好后,需要重啟系統(tǒng)使設(shè)置參數(shù)生效。

然后,配置PC端的ROS網(wǎng)絡(luò)參數(shù)。這里需要提醒一下,需要讓PC端與機(jī)器人出于同一局域網(wǎng)下,如果PC端使用的是虛擬機(jī)運(yùn)行ubuntu建議用物理橋接的方式給虛擬機(jī)連網(wǎng)。打開PC端用戶目錄下的~/.bashrc配置文件,在最后添加兩個(gè)環(huán)境變量,如圖26。

(圖26)配置PC端的ROS網(wǎng)絡(luò)參數(shù)

不難發(fā)現(xiàn)PC端上master填的是機(jī)器人IP地址,host為PC本地IP。修改好后,需要重啟系統(tǒng)使設(shè)置參數(shù)生效。

設(shè)置好PC端與robot端ROS網(wǎng)絡(luò)通信,在正是進(jìn)行ROS多機(jī)通信時(shí),需要首先在機(jī)器人上啟動(dòng)節(jié)點(diǎn)管理里master,啟動(dòng)命令是roscore,然后就可以在相應(yīng)的機(jī)器上啟動(dòng)需要的節(jié)點(diǎn)了。

5.Android手機(jī)端與robot端ROS網(wǎng)絡(luò)

通信

剛剛介紹了PC端與robot端ROS網(wǎng)絡(luò)通信,在有些情況下,使用Android手機(jī)端來調(diào)試監(jiān)控機(jī)器人會(huì)更方便。于是,參考ROS官網(wǎng)給的開發(fā)demo,我用ros-java庫也做了一個(gè)能跟robot端進(jìn)行ROS網(wǎng)絡(luò)通信的APP,我給這個(gè)APP取名叫Android_for_miiboo_robot.apk。如果大家對(duì)這個(gè)APP感興趣,可以持續(xù)關(guān)注我,我會(huì)把這個(gè)APP共享給大家。這里就來介紹一下Android手機(jī)端與robot端ROS網(wǎng)絡(luò)通信的配置。

首先,是配置機(jī)器人端的ROS網(wǎng)絡(luò)參數(shù),和前面一樣,需要在機(jī)器人端~/.bashrc中指定master與host,由于前面配置PC端與robot端ROS網(wǎng)絡(luò)通信時(shí)已經(jīng)配好了,所以就無需重復(fù)配置了。為了便于在局域網(wǎng)下的Android手機(jī)通過網(wǎng)絡(luò)能迅速找到機(jī)器人,需要在機(jī)器人上開啟專門廣播自己IP的節(jié)點(diǎn),這樣Android手機(jī)就能自動(dòng)搜索并完成Android手機(jī)端與robot端ROS網(wǎng)絡(luò)通信的連接。機(jī)器人IP廣播節(jié)點(diǎn)我已經(jīng)寫好了,只需要通過命令啟動(dòng):

然后,是配置Android手機(jī)端的ROS網(wǎng)絡(luò)參數(shù),其實(shí)將Android手機(jī)連接到同一個(gè)wifi后,打開miiboo機(jī)器人的APP,APP會(huì)自動(dòng)掃描到master(也就是機(jī)器人)的IP地址,只需要點(diǎn)擊CONNECT就可完成連接。連接完成后,Android手機(jī)端與robot端ROS網(wǎng)絡(luò)通信就打通了,接下來APP就可以用ROS網(wǎng)絡(luò)通信來操控機(jī)器人了。如圖27。

(圖27)配置Android手機(jī)端的ROS網(wǎng)絡(luò)參數(shù)

這里順便介紹一下,miiboo機(jī)器人APP的功能,功能清單如下。

功能1:手動(dòng)遙控miiboo機(jī)器人移動(dòng)

功能2:建圖/導(dǎo)航模式切換

功能3:顯示地圖

功能4:點(diǎn)擊地圖點(diǎn)指定導(dǎo)航

功能5:視頻監(jiān)控

6.樹莓派USB與tty串口號(hào)綁定

底盤、激光雷達(dá)、IMU這三個(gè)傳感器都使用串口與樹莓派通信,為了防止每次開機(jī)這三個(gè)設(shè)備的串口號(hào)發(fā)生變動(dòng),需要將串口號(hào)進(jìn)行綁定與重映射。

創(chuàng)建rules文件:

rules文件前的序號(hào)越大優(yōu)先級(jí)越小,將優(yōu)先級(jí)設(shè)置的小一點(diǎn);創(chuàng)建文件/etc/udev/rules.d/99-miiboo-usb-serial.rules,文件內(nèi)容如圖28。

(圖28)/etc/udev/rules.d/99-miiboo-usb-serial.rules文件內(nèi)容

確定新插入串口設(shè)備的屬性:

在輸出的數(shù)據(jù)中從上到下找(如KERNELS=="1-1.4.3:1.0"形式的項(xiàng)),下一個(gè)不帶“:”的KERNELS就是我們要找的,將下面這些參數(shù)

ATTRS{idProduct} ?

ATTRS{idVendor}

KERNELS

的取值填入上面創(chuàng)建的rules文件中對(duì)應(yīng)的位置,然后在SYMLINK+中給這個(gè)設(shè)備取一個(gè)別名,MODE設(shè)為0777。

將底盤、雷達(dá)、IMU依次插入樹莓派3的USB口,重復(fù)執(zhí)行上面確定新插入串口設(shè)備的屬性這一步,直到將這3個(gè)串口都綁定完成。這里將底盤、雷達(dá)、IMU分別ttyUSB*名稱分別映射成別名miiboo、lidar、imu,這樣在不改變底盤、雷達(dá)、IMU插入樹莓派3的USB口物理孔位順序時(shí),不論上電開機(jī)后這3個(gè)串口被系統(tǒng)分配的ttyUSB*實(shí)際是多少,我們都可以用映射好的別名/dev/miiboo、/dev/lidar、/dev/imu來訪問底盤、雷達(dá)、IMU串口,并且不用擔(dān)心用戶訪問權(quán)限不足的問題。這里特別說明,miiboo機(jī)器人的底盤、雷達(dá)、IMU插入樹莓派3的USB口物理孔位順序,如圖29,請(qǐng)不要改變這個(gè)順序。

(圖29)miiboo機(jī)器人的底盤、雷達(dá)、IMU插入樹莓派3的USB口物理孔位順序

使綁定設(shè)置生效:

重啟機(jī)器人使綁定設(shè)置生效,命令如下。

機(jī)器人重啟后通過命令查看綁定是否生效,看到下面的輸出就說明綁定成功了,如圖30。

(圖30)查看綁定是否生效

7.開機(jī)自啟動(dòng)ROS節(jié)點(diǎn)

在后續(xù)教程學(xué)習(xí)完后,基本上所有的機(jī)器人算法就開發(fā)的差不多了。于是,我們就需要在機(jī)器人上電開機(jī)時(shí),自啟動(dòng)想要啟動(dòng)的ROS節(jié)點(diǎn),讓機(jī)器人立馬進(jìn)入工作狀態(tài)。

由于我自己嘗試過網(wǎng)上的教程,將ROS節(jié)點(diǎn)啟動(dòng)命令放入系統(tǒng)開機(jī)自啟動(dòng)腳本的方法,親測不成功。后來仔細(xì)研究才知道,需要系統(tǒng)完全啟動(dòng),建立起ROS運(yùn)行的必須環(huán)境后,ROS節(jié)點(diǎn)程序才能開始工作,所以系統(tǒng)開機(jī)自啟腳本行不通。

于是,經(jīng)過我自己的研究,找到了一種簡單的方法,將要啟動(dòng)的roslaunch命令加入機(jī)器人的~/.bashrc文件的末尾。這樣在系統(tǒng)啟動(dòng)后,執(zhí)行用戶自動(dòng)登錄時(shí),~/.bashrc會(huì)被調(diào)用,這樣就可以實(shí)現(xiàn)ROS節(jié)點(diǎn)啟動(dòng)了。關(guān)于用戶自動(dòng)登錄的設(shè)置可以參考前面的相關(guān)內(nèi)容。

添加到~/.bashrc文件末尾的內(nèi)容如下,根據(jù)自己的需要,將命令替換成自己的ROS節(jié)點(diǎn)啟動(dòng)命令。

設(shè)置完成后,sudo reboot就可以了。

后記

為了防止后續(xù)大家找不到本篇文章,我同步制作了一份文章的pdf和本專欄涉及的例程代碼放在github和gitee方便大家下載,如果下面給出的github下載鏈接打不開,可以嘗試gitee下載鏈接:

  • github下載鏈接:https://github.com/xiihoo/DIY_A_SLAM_Navigation_Robot

  • gitee下載鏈接:https://gitee.com/xiihoo-robot/DIY_A_SLAM_Navigation_Robot

技術(shù)交流

QQ技術(shù)交流群:117698356

參考文獻(xiàn)

[1] 張虎,機(jī)器人SLAM導(dǎo)航核心技術(shù)與實(shí)戰(zhàn)[M]. 機(jī)械工業(yè)出版社,2022.


【自己動(dòng)手做一臺(tái)SLAM導(dǎo)航機(jī)器人】第五章:樹莓派3開發(fā)環(huán)境搭建的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
广昌县| 民勤县| 克什克腾旗| 比如县| 日喀则市| 确山县| 宜城市| 辽阳县| 德昌县| 银川市| 和林格尔县| 高尔夫| 盘山县| 大埔区| 靖边县| 扬州市| 大同市| 四川省| 繁峙县| 綦江县| 灵璧县| 开远市| 安塞县| 曲松县| 渝中区| 德化县| 农安县| 绵阳市| 枞阳县| 绵竹市| 泰宁县| 八宿县| 睢宁县| 兴义市| 南漳县| 杂多县| 高青县| 安庆市| 莱西市| 资阳市| 宜昌市|