金珍珍, 周衛(wèi)華, 鄭 軍, 鄭鵬飛
(1.臺州職業(yè)技術(shù)學院 機電工程學院, 浙江 臺州 318000; 2.浙江大學 臺州研究院, 浙江 臺州 318000)
近幾年來,隨著機器人技術(shù)的迅速發(fā)展,智能移動機器人在倉儲物流和工業(yè)生產(chǎn)等領(lǐng)域應(yīng)用廣泛[1]。人工智能、傳感器技術(shù)和控制理論的不斷發(fā)展更是促進機器人向著越來越智能的方向發(fā)展[2]。機器人控制系統(tǒng)的搭建是個龐大而復(fù)雜的工程,而機器人硬件和軟件資源越來越豐富,給軟件開發(fā)設(shè)計人員帶來更大的挑戰(zhàn)[3]。如果能提高機器人系統(tǒng)各模塊的復(fù)用性和可移植性,就可以在不同的機器人上分享和復(fù)用這些已經(jīng)實現(xiàn)的功能,這將給設(shè)計人員節(jié)省了大量的重復(fù)勞動時間,可以更加便捷快速地完成工作。ROS操作系統(tǒng)的出現(xiàn)極大地解決了設(shè)計師們的難題。ROS系統(tǒng)的開源特性和分布式結(jié)構(gòu)得到了眾多機器人開發(fā)者的青睞[4-5],框架中各個功能獨立存在,可獨立設(shè)計、編譯和運行,也可以以功能包的形式發(fā)布在ROS社區(qū)與他人共享,便于傳播和分發(fā)[6]。
課題組設(shè)計的智能移動機器人以裝載ROS系統(tǒng)的樹莓派作為主控上位機,采用激光雷達和深度相機等檢測設(shè)備,自行搭配嵌入式下位機,可對移動機器人實現(xiàn)多種方式的運動控制、定位及自主導航等功能,深度開發(fā)ROS系統(tǒng),便捷增減功能模塊,為進一步深入研究機器人導航算法等提供了可靠的硬件平臺。
智能移動機器人控制系統(tǒng)采用頂層與底層控制相結(jié)合的方式來實現(xiàn)地圖構(gòu)建與自主導航[7]。頂層控制系統(tǒng)使用樹莓派4B作為上位機,裝載Ubuntu 18.04以及ROS Melodic操作系統(tǒng),通過USB接口連接激光雷達,接收外界環(huán)境信息給樹莓派進行處理,在移動過程中通過連接深度相機實時上傳拍攝信息。底層控制系統(tǒng)以STM32控制器為核心,接收來自頂層控制的速度命令,輸出PWM信號給電機驅(qū)動控制帶編碼器的電機轉(zhuǎn)動,并根據(jù)電機的速度反饋回STM32控制器來實現(xiàn)閉環(huán)控制。同時配備了IMU加速度陀螺儀傳感器來校準各種參數(shù)。另外配備藍牙、PS2有線手柄和航模遙控等設(shè)備對機器人進行控制,并提供了串口 1 和 CAN 接口方便用戶拓展控制。STM32控制器和樹莓派4B之間通過串口通信來實現(xiàn)數(shù)據(jù)傳輸[8]。機器人設(shè)計框圖如圖1所示。

圖1 機器人設(shè)計框圖Figure 1 Block diagram of robot design
底層控制系統(tǒng)以STM32F103RCT6最小系統(tǒng)板為控制核心,組成一個功能完善的微型系統(tǒng),硬件成本低,通用性強,使用KEIL環(huán)境開發(fā),程序可自主設(shè)計,方便移植[9]。
STM32運動底盤上集成了型號為MPU6050的IMU傳感器,該IMU集成了三軸角速度計和三軸加速度計,控制器采集IMU數(shù)據(jù)后發(fā)送給ROS[10]。
OLED顯示屏主要顯示當前機器人的型號和Z軸零點漂移數(shù)據(jù)、Z軸角速度、左右電機的目標值與測量值、舵機PWM控制值、控制模式、使能開關(guān)和電池電壓等。
電機驅(qū)動板采用12 A/24 V雙路MOS大直流有刷電機驅(qū)動器,內(nèi)置過電壓、欠電壓和過熱保護電路。機器人電機采用MD36N 35 W直流有刷電機,自帶500線AB相光電編碼器,可用作轉(zhuǎn)速反饋以及里程計,用來控制直徑為125 mm的實心橡膠輪。機器人前輪設(shè)有轉(zhuǎn)向機構(gòu),后輪提供雙電機提供動力,可以有效適應(yīng)凹凸不平地面,實物如圖2所示。

圖2 智能移動機器人Figure 2 Intelligent mobile robot
智能移動機器人的頂層控制系統(tǒng)的硬件核心為一臺裝載Ubuntu 18.04以及ROS melodic的樹莓派4B,具有2 GiB內(nèi)存,內(nèi)含2個USB3.0接口和2個USB2.0接口。在裝載相同的操作系統(tǒng)和ROS melodic的移動電腦上通過遠程掛載的方式可遠程監(jiān)視和控制機器人移動狀況。樹莓派4B通過深度相機和激光雷達獲取的環(huán)境數(shù)據(jù)進行數(shù)據(jù)處理后實現(xiàn)建圖,并根據(jù)建好的地圖實現(xiàn)自主避障導航。同時把底盤運動信息和傳感器信息等數(shù)據(jù)通過無線路由器發(fā)送給移動電腦,移動電腦接收數(shù)據(jù)后對此進行分析和處理,并通過無線路由器向樹莓派4B發(fā)送任務(wù)指令對機器人進行遠程控制。
為了實現(xiàn)多種模式的命令控制,STM32控制器根據(jù)任務(wù)的優(yōu)先級決定任務(wù)的執(zhí)行順序,每個任務(wù)執(zhí)行時間很短,等同于所有任務(wù)同時執(zhí)行,期間如發(fā)生中斷則去響應(yīng)中斷。串口2中斷用于APP藍牙控制,串口3中斷用于接收ROS傳過來的信息。圖3所示為STM32控制器程序執(zhí)行流程,其中的任務(wù)排序不代表任務(wù)優(yōu)先級。
機器人的建圖導航需要IMU、里程等數(shù)據(jù),可通過樹莓派直接連接并采集這些傳感器的信息。為了建立可靠且高效的機器人控制系統(tǒng),ROS框架建立在充分利用開源社區(qū)資源的基礎(chǔ)上,把各個功能包和節(jié)點實時有效地組合起來[11]。
樹莓派主要實現(xiàn)傳感器的數(shù)據(jù)采集、環(huán)境地圖創(chuàng)建、定位及導航規(guī)劃及運動命令的發(fā)送等,ROS系統(tǒng)提供了強大的可視化工具,可遠程實時觀測當前機器人的狀態(tài)[12-13],具體如圖4所示。

圖3 STM32 控制器程序執(zhí)行流程圖Figure 3 Program execution flow chart of STM32 controller

圖4 機器人執(zhí)行系統(tǒng)框圖Figure 4 Block diagram of robot execution system
為了測試智能小車建圖和避障導航功能的可靠性,在小車制作完成后對它進行了各項功能測試。
小車上電,移動電腦連接小車Wi-Fi,用SSH命令遠程登錄小車的樹莓派系統(tǒng),輸入密碼;啟動建圖命令。同時在遠程電腦終端開啟Rviz命令觀測。地圖構(gòu)建過程中小車的運動由APP藍牙控制。圖5所示為測試環(huán)境圖片。圖6所示為小車構(gòu)建的地圖。

圖5 測試實際環(huán)境Figure 5 Actual testing environment
圖6中黑色線條為障礙物,灰色部分為安全區(qū)域,深色區(qū)域為未知區(qū)域。

圖6 小車所建地圖Figure 6 Map built by car
建圖后對地圖進行保存,把小車放在建圖時的起點位置,以起點為原點,創(chuàng)建一個坐標系(X軸為橫軸,Y軸為縱軸),小車車頭與Y軸重合。執(zhí)行導航命令開啟機器人底層節(jié)點和機器人導航相關(guān)節(jié)點。為了更加直觀,導航目標直接使用Rviz通過鼠標拖拽設(shè)定。移動電腦終端運行Rviz命令,使用2D Nav Goal功能設(shè)定目標位置。從測試結(jié)果來看,在行進過程中,地圖會為小車提供多種可能的路徑,小車沿著其中的一條路徑前進或倒退,而且總能有效識別環(huán)境中的障礙物,并正確規(guī)避障礙物運動。
在導航測試中,隨機設(shè)定8個目標點,給定目標位置的坐標值,再測量機器人到達目標位置的情況來計算機器人的導航精度。根據(jù)小車的目標位置和到達位置的數(shù)據(jù)比對,進而得到導航的平均精度。導航實驗數(shù)據(jù)如表1所示。

表1 導航實驗數(shù)據(jù)
由表1數(shù)據(jù)分析可得到智能移動機器人的平均導航位置精度為4.3 cm,平均角度精度為2°,基本滿足設(shè)計要求。設(shè)計精度有待在以后的進一步研究中提高。
課題組基于ROS系統(tǒng)設(shè)計了智能移動機器人控制系統(tǒng)。該系統(tǒng)以分層結(jié)構(gòu)設(shè)計,上位機采用樹莓派作為控制器,利用激光雷達和深度相機作為外界環(huán)境信息采集系統(tǒng),下位機以STM32控制器為核心,能與上位機進行有效的數(shù)據(jù)交互。通過實驗測試結(jié)果分析了機器人控制系統(tǒng)的性能,驗證了系統(tǒng)的有效性,基本滿足機器人導航算法研究的要求。相比其他控制系統(tǒng),該系統(tǒng)控制精度高,模塊化設(shè)計,功能拓展便捷,成本低,能夠較好地滿足復(fù)用性和可移植性的要求。本研究控制系統(tǒng)為移動機器人的研究提供了參考,導航算法及路徑規(guī)劃在后續(xù)的研究中有待進一步優(yōu)化和完善。