勞振鵬 東莞理工學(xué)院 機(jī)械工程學(xué)院 黃市生 黎梓恒 曾志彬 吳國(guó)洪 東莞市橫瀝模具科技產(chǎn)業(yè)發(fā)展有限公司 陳學(xué)忠 廣東石東實(shí)業(yè)(集團(tuán))公司
前言:自動(dòng)避障作為機(jī)器人的關(guān)鍵技術(shù),是保證機(jī)器人正常移動(dòng),避免撞上障礙物的重要方法。調(diào)研發(fā)現(xiàn),國(guó)內(nèi)外機(jī)器人自動(dòng)避障系統(tǒng)還存在避障效率低,傳感器信息采集不理想、避障方向單一等問(wèn)題;另一方面,市面上大多數(shù)機(jī)器人避障系統(tǒng)雖然實(shí)現(xiàn)避障但不具有物體識(shí)別的功能;并且機(jī)器人避障系統(tǒng)的載體多采用普通的移動(dòng)平臺(tái),該些運(yùn)動(dòng)平臺(tái)的靈活度較低,這些原因?qū)е铝藱C(jī)器人對(duì)環(huán)境的適應(yīng)性低,執(zhí)行任務(wù)的成功率不高。
針對(duì)以上不足,本文提出了一種全方位避障和障礙物識(shí)別的機(jī)器人設(shè)計(jì)方案。
本文所設(shè)計(jì)的機(jī)器人結(jié)構(gòu)如圖1所示,機(jī)器人采用具有底板和載板兩層平臺(tái),底板的上表面設(shè)置了伺服電機(jī)驅(qū)動(dòng)模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、集成WIFI模塊藍(lán)牙模塊的stm32控制器(下文簡(jiǎn)稱為stm32控制器),底板的下表面設(shè)置了三個(gè)伺服電機(jī),經(jīng)聯(lián)軸器各連接一個(gè)全向輪,三個(gè)全向輪兩兩之間的夾角設(shè)置為60°,三個(gè)伺服電機(jī)通過(guò)伺服電機(jī)支架固定在底板的下表面,三個(gè)伺服電機(jī)分別引出霍爾線(U、V、W線)與編碼器線(A相線、B相線),進(jìn)一步連接伺服電機(jī)驅(qū)動(dòng)模塊,相應(yīng)的,伺服電機(jī)驅(qū)動(dòng)模塊的TX、RX、控制量輸入1、控制量輸入2的接口分別連接著stm32控制器的USART3_RX、USART3_TX、PC2、PC3接口。
機(jī)器人的底板和載板通過(guò)抬升件固定與連接;載板的上表面設(shè)置了紅外測(cè)距傳感器、步進(jìn)電機(jī)、激光測(cè)距儀支撐件、和圓形艙板;在圓形艙板的外表面均勻設(shè)置8個(gè)紅外測(cè)距傳感器,8個(gè)紅外測(cè)距傳感器的信號(hào)線都分別串接2千歐的電阻以進(jìn)行降壓處理,再依次連接在stm32控制器的PB8至PB15的端口。
機(jī)器人的步進(jìn)電機(jī)設(shè)置在二層底板的中心位置,步進(jìn)電機(jī)的伸出軸與激光測(cè)距儀支撐件固定連接,激光測(cè)距儀支撐件的上方和正前方分別設(shè)置了工業(yè)級(jí)激光測(cè)距儀和高清攝像頭,步進(jìn)電機(jī)與步進(jìn)電機(jī)驅(qū)動(dòng)模塊通過(guò)兩相線電連接,步進(jìn)電機(jī)驅(qū)動(dòng)模塊的PULS+ 、DIR+接口分別連接至stm32控制器的PA13 、PA14接口,步進(jìn)電機(jī)驅(qū)動(dòng)模塊的PULS-接口與DIR-接口短接,并連接至stm32控制器的GND接口,stm32控制器根據(jù)外部信號(hào)相對(duì)應(yīng)地改變端口PA13與PA14的輸出狀態(tài),實(shí)現(xiàn)驅(qū)動(dòng)步進(jìn)電機(jī)帶動(dòng)工業(yè)級(jí)激光測(cè)距儀和高速攝像頭。
工業(yè)級(jí)激光測(cè)距儀的VCC、RXD、TXD、GND接口分別與stm32控制器的VCC、USART2 TX、USART2 RX、GND接口連接,通過(guò)程序指令,以串口通信的方式實(shí)時(shí)讀取工業(yè)級(jí)激光測(cè)距儀對(duì)障礙物的檢測(cè)距離;高速攝像頭的FIFO芯片的Y0~Y7接口與stm32控制器的PB0~PB7接口電連接,并且高速攝像頭的FIFO芯片的FIFO_RRST、FIFO_WRST、FIFO_RCLK、FIFO_WR_CTR、FIFO_OE接口與stm32控制器的PA4~PA8接口電連接。
圖1 硬件結(jié)構(gòu)設(shè)計(jì)圖
運(yùn)動(dòng)方面,stm32控制器采集外部信號(hào),轉(zhuǎn)換成控制指令,傳送給伺服電機(jī)驅(qū)動(dòng)模塊,可實(shí)現(xiàn)控制三個(gè)全向輪的運(yùn)行方式。全向輪的輪子邊緣分布著多個(gè)輥?zhàn)?,通過(guò)stm32控制器控制任意兩個(gè)全向輪同向轉(zhuǎn)動(dòng),另一個(gè)全向輪保持不動(dòng)作,在合力作用下,小車直線行走;通過(guò)stm32控制器控制三個(gè)全向輪同向轉(zhuǎn)動(dòng),小車零半徑轉(zhuǎn)彎。
避障方面,stm32控制器實(shí)時(shí)讀取PB8至PB15的端口的電平狀態(tài),當(dāng)某個(gè)方向上的紅外測(cè)距傳感器檢測(cè)到障礙物,stm32控制器將從對(duì)應(yīng)的端口讀取到高電平信號(hào),進(jìn)一步的,stm32控制器將往伺服驅(qū)動(dòng)器的控制端口輸出相對(duì)應(yīng)的脈沖+方向指令,即改變?cè)瓉?lái)運(yùn)動(dòng)方向的指令,進(jìn)而控制小車避開(kāi)障礙物,往安全方向行走;由8個(gè)紅外測(cè)距傳感器組成的避障系統(tǒng),覆蓋范圍為360°,每相隔45°就有1個(gè)紅外測(cè)距傳感器在實(shí)時(shí)檢測(cè)是否存在障礙物,然而該小車是由3個(gè)全向輪驅(qū)動(dòng),也就是說(shuō),小車往任意一個(gè)方向直行時(shí),該前進(jìn)方向上都至少有一個(gè)紅外測(cè)距傳感器在實(shí)時(shí)檢測(cè)是否存在障礙物,實(shí)現(xiàn)了全方位避障。
視覺(jué)方面,stm32控制器從FIFO中讀取數(shù)據(jù),讀取過(guò)程為:FIFO讀指針復(fù)位->給FIFO讀時(shí)鐘(FIFO RCLK)->讀取第一個(gè)像素高字節(jié)->給FIFO讀時(shí)鐘(FIFO RCLK)->讀取第一個(gè)像素低字節(jié)->給FIFO讀時(shí)鐘(FIFO RCLK)->讀取第二個(gè)像素高字節(jié)->循環(huán)讀取剩余像素->結(jié)束,實(shí)現(xiàn)采集障礙物的圖像信息,結(jié)合視覺(jué)算法,通過(guò)識(shí)別障礙物的輪廓特征以及顏色特征進(jìn)而識(shí)別前方的障礙物。
本文所做的工作總結(jié)如下:第一,根據(jù)功能的要求對(duì)全方位避障和障礙物識(shí)別的機(jī)器人進(jìn)行了結(jié)構(gòu)設(shè)計(jì);第二,對(duì)機(jī)器人的功能進(jìn)行了軟件系統(tǒng)的搭建,建立起了機(jī)器人的程序流程。