国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ROS系統(tǒng)和SLAM技術(shù)的智能小車的研究

2022-07-21 06:10李振華
物聯(lián)網(wǎng)技術(shù) 2022年7期
關(guān)鍵詞:建圖麥克激光雷達(dá)

趙 威,李振華

(北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101)

0 引 言

ROS(Robot Operating System)是一種開源的操作系統(tǒng),使用該系統(tǒng)可以減輕工作量,其主要功能是便于智能小車研發(fā)過程中的代碼復(fù)用;它提供了與操作系統(tǒng)類似的各種各樣功能,比如程序間信息的傳遞、底層驅(qū)動(dòng)程序管理、程序發(fā)行包管理等,方便了人們對智能小車的研究和使用;同時(shí),它還提供了一些用于獲取、建立、編寫和運(yùn)行多機(jī)整合的程序,使得開發(fā)者更容易使用ROS系統(tǒng)。

機(jī)器人想要在未知的環(huán)境中實(shí)現(xiàn)自主移動(dòng)、自主避障,就必須知道自己的位置、環(huán)境中障礙物情況以及周圍環(huán)境情況等。SLAM技術(shù)可以幫助機(jī)器人獲得自身定位和周圍環(huán)境狀況。在智能小車中使用激光雷達(dá)作為環(huán)境感知的傳感器,再配合SLAM技術(shù),能夠達(dá)到同時(shí)定位和地圖構(gòu)建的目的。

1 ROS小車構(gòu)造

如圖1所示,本文智能小車的主要硬件結(jié)構(gòu)分別為:ORBBRC深度相機(jī)、激光雷達(dá)、Nano無線網(wǎng)卡6 dB增益天線、NVIDA Jetson Nano、扭力懸掛裝置、520編碼器減速電機(jī)、雙腔體音響輸出和麥克納姆車輪,并且以STM32F405RGT6單片機(jī)作為控制板和開發(fā)板。在該結(jié)構(gòu)下可以完成智能小車的ROS串口傳輸、電機(jī)和電池?cái)?shù)據(jù)反饋、多傳感器數(shù)據(jù)融合、SLAM定位建圖導(dǎo)航和路徑規(guī)劃等多個(gè)功能。在此基礎(chǔ)上,還可以對小車進(jìn)行二次深度開發(fā),使小車更加完善、功能更加強(qiáng)大。

圖1 小車系統(tǒng)結(jié)構(gòu)

1.1 驅(qū)動(dòng)功能的實(shí)現(xiàn)

本智能小車采用STM32F405RGT6芯片作為中央控制器的最小系統(tǒng)模塊,主要用于實(shí)現(xiàn)驅(qū)動(dòng)功能以及控制功能。該芯片的特征是配備了FPU的ARM32位Cortex-M4 CPU,采用自適應(yīng)實(shí)時(shí)Acelector,允許從閃存執(zhí)行0等待狀態(tài),頻率高達(dá)168 MHz,性能十分優(yōu)良。

STM32機(jī)器人驅(qū)動(dòng)板是一款適用范圍非常廣的ROS雷達(dá)車機(jī)器人驅(qū)動(dòng)板,具有穩(wěn)壓、驅(qū)動(dòng)、傳感器數(shù)據(jù)采集等功能,其穩(wěn)壓功能可以將7~12 V的直流輸入電壓降壓到5 V或改變成其他形式的電壓,可用于給主芯片供電或驅(qū)動(dòng)馬達(dá)等外部設(shè)備。

STM32所具有的驅(qū)動(dòng)功能分為馬達(dá)驅(qū)動(dòng)、舵機(jī)驅(qū)動(dòng)和傳感器驅(qū)動(dòng)三種。其中,馬達(dá)驅(qū)動(dòng)是通過馬達(dá)驅(qū)動(dòng)芯片來驅(qū)動(dòng)馬達(dá)正轉(zhuǎn)、反轉(zhuǎn)、停止、加速、減速,從而實(shí)現(xiàn)小車的行進(jìn)功能。采用舵機(jī)驅(qū)動(dòng)時(shí),驅(qū)動(dòng)板帶有8路舵機(jī)驅(qū)動(dòng)輸出接口,在使用內(nèi)部電壓給舵機(jī)供電的情況下可以同時(shí)驅(qū)動(dòng)8個(gè)額定電壓為5 V、最大電流不超過100 mA的舵機(jī)。采用傳感器驅(qū)動(dòng)時(shí),驅(qū)動(dòng)板上未被占用的GPIO都被直接連接到了樹莓派上,并在樹莓派上用黃色插針表示,每組GPIO均有VCC-5 V和GND供電插針,分別以紅色和黑色標(biāo)示。STM32驅(qū)動(dòng)板接口如圖2所示。

圖2 STM32驅(qū)動(dòng)板接口

STM32的傳感器數(shù)據(jù)采集功能的實(shí)現(xiàn)依賴于馬達(dá)和陀螺儀等器件,可采集到馬達(dá)轉(zhuǎn)速以及IMU陀螺儀的關(guān)鍵數(shù)據(jù)。

STM32F405RGT6驅(qū)動(dòng)板既可作為控制器,又可作為開發(fā)板,方便操作,也使得小車的外觀更加簡潔明了;STM32F405RGT6的各個(gè)引腳功能十分具體,使小車的功能更加完善。

1.2 行進(jìn)功能的實(shí)現(xiàn)

在智能小車的輪式底盤結(jié)構(gòu)中,一般以差速兩輪式和四輪式結(jié)構(gòu)為主。差速兩輪式的結(jié)構(gòu)擁有較高的能量利用率,但是當(dāng)小車速度較快時(shí)很難控制小車的轉(zhuǎn)向。四輪式的結(jié)構(gòu)可以分為阿克曼轉(zhuǎn)向式、全向四輪結(jié)構(gòu)、麥克納姆輪結(jié)構(gòu)等。其中麥克納姆車輪結(jié)構(gòu)雖然成本比較高,但是這種結(jié)構(gòu)可以朝全方向移動(dòng)、摩擦力小、精度高,因此本文選擇了最有保障的麥克納姆車輪作為小車行進(jìn)裝置的一部分。

麥克納姆車輪的兩個(gè)重要組成部分是輪轂和圍繞輪轂的輥?zhàn)?,輥?zhàn)臃植荚谳嗇灥妮喚壣希梢詫?shí)現(xiàn)橫向滑移的功能。當(dāng)輪子轉(zhuǎn)動(dòng)時(shí),分布在輪子邊緣上的各個(gè)輥?zhàn)拥陌j(luò)線可以形成一個(gè)圓柱面,從而可以使小車不斷向前滾動(dòng)。麥克納姆車輪底座如圖3所示。

圖3 麥克納姆車輪底座展示

假設(shè)A輪可以向右前方、左后方運(yùn)動(dòng),那么B輪就會(huì)向左前方以及右后方移動(dòng)。當(dāng)A輪的速度分量可以分解為水平向右和水平向前時(shí),B輪可以分解為水平向左和水平向前。這樣,水平向左和水平向右的速度分量互相抵消,只剩下兩個(gè)水平向前的速度分量,從而實(shí)現(xiàn)小車的前進(jìn)。當(dāng)A輪的速度分量被分解為水平向左和水平向后時(shí),B輪被分解為水平向右和水平向后。由此,A輪和B輪之間某一方向的速度相互抵消后,可以獲得相同的另一個(gè)方向的速度分量,從而實(shí)現(xiàn)自主前進(jìn)。

通過對比普通的車輛能夠發(fā)現(xiàn),普通的車輛在移動(dòng)時(shí),輪子都是向同一個(gè)方向轉(zhuǎn)動(dòng)的;而使用麥克納姆輪的車輛在進(jìn)行任意方向運(yùn)動(dòng)時(shí),每個(gè)輪子的運(yùn)動(dòng)方向都是不同的,因此麥克納姆輪實(shí)現(xiàn)了真正意義上的任意角度移動(dòng)。麥克納姆車輪如圖4所示。

圖4 麥克納姆車輪展示

1.3 環(huán)境感知和測距功能的實(shí)現(xiàn)

經(jīng)過反復(fù)的比較和研討,本文最后選擇了激光雷達(dá)作為環(huán)境感知和測距的傳感器。相比于攝像頭和基本的微波雷達(dá),激光雷達(dá)具有單色性好、亮度高、方向性強(qiáng)、精度高、分辨力強(qiáng)、設(shè)備小而輕等優(yōu)點(diǎn)。思嵐科技的標(biāo)準(zhǔn)版激光雷達(dá)的頻率為5.5 Hz,上電之后就可以旋轉(zhuǎn)。本智能小車采用的是高速版激光雷達(dá),最高頻率可達(dá)16 Hz,使得導(dǎo)航動(dòng)態(tài)性能提升非常明顯,同時(shí)可以用開關(guān)來控制啟動(dòng)和停止。

常用的激光測距方法有激光飛行時(shí)間法和三角法,其中激光飛行時(shí)間法又可以分為脈沖測距和相位測距。本文采用激光時(shí)間飛行法(TOF)中的脈沖測距法,滿足高速度和遠(yuǎn)距離測量需要。如圖5所示,脈沖測距法的原理為:先由一端的發(fā)射儀器發(fā)出測試脈沖,這束測試脈沖中的一小部分作為參考脈沖,直接被儀器接收端接收,剩余的測試脈沖被反射回來后進(jìn)入接收端;然后測出參考脈沖與反射脈沖之間的時(shí)間差,可求出距離=1/2,式中為光速。此方法實(shí)行起來較為簡單,且可快速得到數(shù)據(jù);再結(jié)合公式,可直接得出結(jié)果。

圖5 脈沖測距原理

2 SLAM技術(shù)的實(shí)現(xiàn)

SLAM也稱為同步定位與地圖構(gòu)建。SLAM可以描述為:移動(dòng)的物體借助自身擁有的傳感器等設(shè)備,智能地感知周圍環(huán)境,從而獲得自身定位,并不斷地獲取周圍環(huán)境信息,從而得到周圍環(huán)境的地圖。激光雷達(dá)SLAM算法基于Python語言,且具有自己獨(dú)特的算法函數(shù),使用起來十分方便、容易上手。

2.1 導(dǎo)航與建圖功能的物理實(shí)現(xiàn)

本小車使用激光雷達(dá)作為測距傳感器來獲知空間物體的角度和距離信息,利用SLAM技術(shù)即可獲得占據(jù)柵格地圖,以概率的形式表示每個(gè)柵格被占用的概率,從而進(jìn)行路徑規(guī)劃,實(shí)現(xiàn)動(dòng)態(tài)避障。

2.2 導(dǎo)航與建圖功能的算法實(shí)現(xiàn)

導(dǎo)航與建圖功能的算法主要是為了完成小車位移增量與角度是否符合要求的判斷,以及實(shí)時(shí)更新激光數(shù)據(jù)和小車在世界坐標(biāo)下的位姿。在算法實(shí)現(xiàn)過程中還需要開始尋找mRep->matchDate()函數(shù)。具體代碼如下:

小車的地圖構(gòu)建過程默認(rèn)三層地圖,分辨率分別為0.1 m、0.05 m和0.025 m,從0.1 m層開始處理。該算法使用分層地圖進(jìn)行計(jì)算,即小車可以獲得當(dāng)前環(huán)境狀況下不同分辨率的地圖。首先從獲得的最低分辨率地圖進(jìn)行分析,與周圍環(huán)境進(jìn)行匹配;然后將得到的數(shù)據(jù)代入精度更高的地圖進(jìn)行掃描匹配,重復(fù)幾次之后,便可以得到高精度的地圖,實(shí)現(xiàn)小車的位姿估計(jì)和地圖構(gòu)建。建圖過程演示如圖6所示。

圖6 建圖過程演示

3 結(jié) 語

本文基于ROS平臺(tái),運(yùn)用SLAM導(dǎo)航、OpenCV圖像識(shí)別、深度學(xué)習(xí)等算法,設(shè)計(jì)出了一款可以實(shí)現(xiàn)三維建圖、室內(nèi)自主定位導(dǎo)航、動(dòng)態(tài)避障、視覺巡線等功能的智能小車。該小車配備有STM32驅(qū)動(dòng)板、Jetson Nano芯片、激光雷達(dá)等高級硬件設(shè)備,使用Ubuntu文件系統(tǒng)和C/C++/Python語言,具有很強(qiáng)的適應(yīng)性,且使用起來十分方便。

猜你喜歡
建圖麥克激光雷達(dá)
手持激光雷達(dá)應(yīng)用解決方案
1/2的魔法
小王子
視覺同步定位與建圖中特征點(diǎn)匹配算法優(yōu)化
生活很艱難,但你被愛著
法雷奧第二代SCALA?激光雷達(dá)
基于三輪全向機(jī)器人的室內(nèi)建圖與導(dǎo)航
基于激光雷達(dá)通信的地面特征識(shí)別技術(shù)
一種基于多傳感融合的室內(nèi)建圖和定位算法
基于激光雷達(dá)的多旋翼無人機(jī)室內(nèi)定位與避障研究
莫力| 海丰县| 齐河县| 固始县| 桐乡市| 琼中| 马山县| 江阴市| 蒙山县| 旬邑县| 神池县| 吉安县| 凤庆县| 朝阳县| 平顶山市| 湄潭县| 视频| 乡宁县| 集贤县| 胶州市| 苏尼特左旗| 庆安县| 阿拉善右旗| 翁牛特旗| 台东市| 垫江县| 泗阳县| 鄯善县| 荣昌县| 杭州市| 同德县| 怀远县| 堆龙德庆县| 成都市| 阿巴嘎旗| 仁化县| 金川县| 天水市| 长白| 麻阳| 昭通市|