徐 軍,楊 雄,陳怡佳,馬 靜
(哈爾濱理工大學自動化學院,黑龍江 哈爾濱 150080)
跟隨機器人是未來機器人發(fā)展的重大趨勢[1-3]。跟隨機器人具有未來產(chǎn)業(yè)鏈長、行業(yè)帶動性強以及戰(zhàn)略布局分散等特點。目前的各類跟隨機器人,如Five Elements Robotice公司的Budgee和CaddyTrek公司的電動高爾夫球童等,大多根據(jù)慣性跟隨方法,在穩(wěn)定性和實時性等性能方面尚有一定的缺陷[4-7]。而隨著科技的發(fā)展,圖像處理技術(shù)日趨成熟,視覺跟隨逐漸成為熱門研究領(lǐng)域,在工業(yè)、娛樂和交通等多個領(lǐng)域發(fā)揮著重要的作用[8-10]。
本文設(shè)計的自主跟隨機器人,采用視覺跟隨方法,以AprilTags[11-12]標記作為跟隨目標,通過視覺傳感器對圖像進行采集。微控制器(micro control unit,MCU)對圖像進行識別處理,獲取目標的相應位置和數(shù)據(jù)。為提高系統(tǒng)的穩(wěn)定性,設(shè)計了雙??刂啤J謾C端上位機通過WiFi向機器人發(fā)送控制模式命令,既可自主跟隨,又可手動遙控。本文研制了系統(tǒng)模型機,完成了對機器人的調(diào)試工作。
自主跟隨機器人系統(tǒng)包括自主跟隨模式和遙控模式2種運行方式,運行方式由Processing編寫的手機端應用程序(application,APP)控制,通過WiFi 模塊與手機端APP通信。ATmega328作為主控芯片控制各模塊運行。在自主跟隨模式下,系統(tǒng)接收視覺傳感器OpenMv對標記的定位信息,調(diào)用跟隨算法,驅(qū)動電機運動,使機器人跟隨標記移動并保持相應距離。遙控模式下,系統(tǒng)通過2.4 GHz射頻模塊接收遙控命令,驅(qū)動機器人行走。自主跟隨機器人系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖 Fig.1 Block diagram of the system
機器人的硬件組成部分主要包括視覺傳感器、無線通信模塊、電機驅(qū)動電路、電源和主控制器。
1.2.1 視覺傳感器
為了實現(xiàn)自主跟隨效果,系統(tǒng)首先需要具備感知目標功能,對目標位置信息進行定位。為此,系統(tǒng)采用OpenMv視覺傳感器作為系統(tǒng)的感知元件。OpenMv是基于STM32F4XX ARM Cortex-M7單片機的一款開源機器視覺模塊,搭載OV7725攝像頭,并且板載MicroPython解釋器。OpenMv視覺傳感器具有的功能包括I/O控制、人臉檢測、邊緣檢測、關(guān)鍵點提取和標記識別,以及強大的圖像識別處理能力。
1.2.2 無線通信模塊
無線通信部分包括2個方面。一是系統(tǒng)與手機端APP之間的通信。采用無線WiFi模塊ESP8266,實現(xiàn)手機端對系統(tǒng)的控制以及運動模式選擇的功能。ESP8266是一款低功耗的UART-WiFi透傳模塊,專為移動設(shè)備和物聯(lián)網(wǎng)應用設(shè)計,數(shù)據(jù)傳輸可靠性好,最大傳輸速率可達460 800 bit/s。二是系統(tǒng)與遙控裝置之間的通信。采用2.4 GHz射頻模塊NRF24L01,實現(xiàn)遙控模型下,遙控裝置對機器人控制命令的傳輸。該模塊主要由nRF24L01射頻芯片及其外圍電路組成,而nRF24L01芯片是由挪威的Nordic公司生產(chǎn)的一款單片射頻收發(fā)芯片,其工作的ISM頻段為世界通用頻段2.4~2.5 GHz,工作電壓為1.9~3.6 V,控制器通過串行外圍設(shè)備接口(serial peripheral interface,SPI)與其通信。
1.2.3 電機驅(qū)動電路和電源
系統(tǒng)采用24 V可充放電鋰電池供電。該鋰電池作為動力部分電源,通過電壓轉(zhuǎn)換芯片為系統(tǒng)提供3.3 V和5 V控制部分電源。
機器人電機驅(qū)動部分采用MC33886全橋驅(qū)動芯片,24 V電壓供電,最高電流達5 A,脈寬調(diào)制(pulse width modulation,PWM)的頻率可達10 kHz。電機驅(qū)動電路具有輸出短路保護、欠壓關(guān)閉、故障狀況報告等功能,可確保機器人的穩(wěn)定運行。單個電機驅(qū)動電路如圖2所示。
圖2 電機驅(qū)動電路圖 Fig.2 Motor drive circuitry
1.2.4 主控制器
自主跟隨機器人主控制器和遙控裝置的控制器均采用型號為ATmega328的AVR芯片,具備SPI接口、UART串口、數(shù)字口和模擬口拓展等。在作為跟隨機器人控制器時,通過SPI接口獲取OpenMv視覺傳感器對目標的定位信息。SPI復用控制nRF24L01無線通信,接收遙控裝置的控制命令,串口驅(qū)動ESP8266WiFi模塊,接收上位機的控制命令,PWM輸出控制電機運動。ATmega328作為遙控裝置主控時,模擬口采集電位計電壓值,轉(zhuǎn)換為數(shù)字量進而轉(zhuǎn)換為運動量,并配有靈敏度調(diào)節(jié)按鍵。通過SPI控制2.4 GHz無線射頻模塊nRF24L01,將運動量發(fā)送給機器人系統(tǒng)。
軟件設(shè)計包括手機端APP、遙控裝置程序、目標識別與定位以及機器人主體程序等設(shè)計。
手機端APP和遙控裝置程序流程如圖3所示。手機端APP采用Processing軟件編寫,主要功能是控制機器人的啟動以及運行模式的選擇。由手機連接機器人發(fā)出的WiFi信號,通過用戶數(shù)據(jù)報網(wǎng)絡(luò)協(xié)議(user datagram protocol,UDP)向機器人主機發(fā)送控制命令。遙控裝置作為系統(tǒng)的輔助部分,主要功能是在不良環(huán)境下實現(xiàn)對機器人運動的控制。
圖3 手機端APP和遙控裝置程序流程圖 Fig.3 Flowchart of mobile phone APP and remote control device program
自主跟隨機器人的主體程序首先對I/O口、PWM、SPI等進行初始化,并且初始化UDP網(wǎng)絡(luò)通信協(xié)議。然后進入待機模式,等待上位機的運行指令,接收UDP發(fā)來的數(shù)據(jù),判斷運行模式。在自主跟隨模式時,SPI片選OpenMv視覺傳感器,接收傳感器傳來的目標定位信息數(shù)據(jù),數(shù)據(jù)為目標相對于攝像頭的三維坐標。機器人解析坐標信息,根據(jù)相應的跟隨算法驅(qū)動電機運動,使機器人跟隨目標并保持相應的距離,運動包括前進、后退、左右移動等。而在遙控模式時,系統(tǒng)通過無線接收遙控裝置傳來的控制指令,手動控制機器人的行走。機器人主程序流程如圖4所示。
圖4 機器人主程序流程圖 Fig.4 Flowchart of robot main program
目標識別定位是自主跟隨的基礎(chǔ),通過在硬件平臺OpenMv上搭載的MicroPython解釋器,利用Python語言實現(xiàn)識別定位算法。當系統(tǒng)運行在跟隨模式下,OpenMv視覺模塊開始在攝像頭范圍內(nèi)尋找目標。根據(jù)相應的識別定位算法,計算出目標的三維坐標信息(X,Y,Z),通過SPI傳送給運動部分的MCU。目標識別定位程序流程如圖5所示。
圖5 目標識別定位程序流程圖 Fig.5 Flowchart of target recognition and positioning program
根據(jù)設(shè)計方案,搭建系統(tǒng)測試模型機,對系統(tǒng)設(shè)計進行調(diào)試驗證。自主跟隨機器人系統(tǒng)配備載物倉,提供給使用者裝載物品,跟隨用戶行走。
為實現(xiàn)跟隨效果,本文采用AprilTags作為機器人跟隨標記,如圖6所示。AprilTags由黑白相間的、類似于二維碼的方塊組成,是由密歇根州大學的April實驗室開發(fā)的一個免費開源的視覺定位系統(tǒng),被廣泛應用于機器人、無人機等定位系統(tǒng)中。
圖6 AprilTags跟隨標記圖 Fig.6 The following mark of AprilTags
主控制器根據(jù)獲取到的目標三維坐標信息,調(diào)用差速算法,驅(qū)動電機運動,使機器人跟隨目標行走。機器人速度由目標的X軸坐標和Z軸坐標確定。
VL=KC|(|Z|-Z0)-(X-X0)|
(1)
VR=KC|(|Z|-Z0)+(X-X0)|
(2)
式中:VL為左輪速度標量;VR為右輪速度標量;KC為速度系數(shù);Z0為Z軸跟隨閾值,決定了跟隨距離;X0為X軸偏移量。
KC、Z0和X0需要根據(jù)調(diào)試效果確定。本文經(jīng)過調(diào)試,最終確定了KC為38、Z0為7、X0為0時,跟隨效果最佳。
獲取到左輪和右輪速度標量之后,將式中VL和VR映射到0~255,作為PWM值驅(qū)動電機運動。左輪和右輪速度標量值與坐標對應關(guān)系如圖7所示。
圖7 左、右輪速度標量與坐標對應關(guān)系圖 Fig.7 Speed scalars of left and right wheels and corresponding coordinate value
通過調(diào)試,最終驗證了系統(tǒng)的整體功能。自主跟隨機器人可在2種運行模式下穩(wěn)定工作,與上位機的無線WiFi通信穩(wěn)定。在遙控模式下,對機器人的控制穩(wěn)定,方向靈敏,速度可調(diào);在自主跟隨模式下,對標記的識別率較高,能夠穩(wěn)定跟隨標記運動,滿足預期要求。
本文采用AprilTags作為跟隨標記,利用OpenMv機器視覺傳感器對標記進行識別定位,調(diào)用差速跟隨算法驅(qū)動電機運動,使機器人跟隨標記行走。開發(fā)手機端上位機,并通過WiFi向機器人發(fā)送控制命令,選擇運行模式。使用無線射頻模塊傳輸遙控裝置的手動遙控命令,實現(xiàn)雙??刂啤4罱?臺系統(tǒng)模型機,對系統(tǒng)功能進行了驗證。驗證結(jié)果表明,系統(tǒng)無線通信穩(wěn)定,實現(xiàn)了機器人對特定目標的自主跟隨和手動遙控跟隨,滿足預期要求。
參考文獻:
[1] 蔣建東,張鈞,李聰聰,等.履帶式移動機器人自主跟隨算法研究[J].浙江工業(yè)大學學報,2017(4):355-360.
[2] 彭遠哲.自助跟隨平衡車的電子控制器設(shè)計與實現(xiàn)[J].計算機測量與控制,2017,25(4):96-99.
[3] 欒祿祥.室內(nèi)移動機器人機器視覺定位系統(tǒng)的設(shè)計[J].自動化儀表,2017,38(2):49-52.
[4] 汪小旵,魯偉,陳滿,等.基于改進純追蹤模型的溫室采摘運輸自動跟隨系統(tǒng)[J].農(nóng)業(yè)機械學報,2016,47(12):8-13.
[5] 陳璐寒,張鵬,宋成.一種智能跟隨機器人[J].通信世界,2016(21):263-265.
[6] 王欣,徐智,陶鳳,等.基于超聲波測距的跟隨小車設(shè)計[J].電腦知識與技術(shù),2016,12(17):246-247.
[7] 徐文浩,羅冠清,陳亞文,等.智能搬運機器人的研究與設(shè)計[J].科技廣場,2016(4):170-173.
[8] 譚曉敏,韋雪梅,豐彬,等.基于DSP的運動人體小車跟隨系統(tǒng)[J].廣西大學學報(自然科學版),2015,40(6):1517-1525.
[9] 劉子龍,丁玉靜,江艷霞.四輪移動機器人跟隨控制[J].中南大學學報(自然科學版),2011,42(5):1348-1353.
[10]張雁寧.基于STM32和pixy CMUcam5視覺傳感器的雙控制模式全向車的設(shè)計[J].電子制作,2016(16):8-11.
[11]WANG J,OLSON E.AprilTag 2:Efficient and robust fiducial detection[C]//IEEE/RSJ International Conference on Intelligent Robot & Systems,IEEE,2016:4193-4198.
[12]楊勇,梁建宏,張代兵.一種基于視覺的小型無人機室內(nèi)編隊飛行系統(tǒng)設(shè)計[J].機器人技術(shù)與應用,2017(2):45-48.