靳 晨,劉 剛,呂興東,黎航宇,楊雅子琪,鄧藝霖
(北京信息科技大學儀器與光電工程學院,北京 100192)
仿生機器人是機器人技術領域中的一個發展分支,是當前機器人領域的研究熱點。人們可以利用仿生機器人的靈活性和環境適應性從事復雜或危險的工作。近年來,國內外足式仿生機器人的研發迅猛,如1992 年成立的美國波士頓動力(Boston Dynamics)公司在四足機器人方面的研發一直領跑世界[1];國內對四足機器人的研究熱度也在持續升溫,2007 年成立的杭州宇樹(Unitree)科技有限公司,在智能機器人領域的研發也日新月異。由于足式運動的特點,此類型的機器人在崎嶇不平的地面支撐、運動靈活,環境適應能力強,同時具有很強的平衡能力,多用于物資運輸、警備執勤、搶險救災及娛樂表演等,應用發展前景廣闊。
如圖1所示,四足仿生機器人快遞配送賽開始比賽時,四足仿生機器人須放置在快遞集散區域,四腳落地并全部位于快遞集散區框線內。由參賽隊員按照配送快遞序列順序,向參賽四足仿生機器人背筐中放置一個快遞球,并輔助四足機器人識別快遞球顏色,然后將快遞球放到四足機器人背筐里。機器人從快遞集散區出發進行配送,沿途依次通過減速帶、上臺階、窄橋、下斜坡、草地等障礙地形,并快速通過平整地面賽段,完成快遞配送任務,并返回集散區。當機器人四足落腳點完全進入集散區域后,參賽隊員方可再次向背筐中放球,機器人進行下一輪配送。每一輪僅配送一個快遞球。共有3 家住戶,快遞共9 個,每家住戶3 個快遞球,快遞球配送順序在賽前打亂生成。比賽時間最長為20 分鐘。9 個快遞球配送完畢、機器人返回集散區時比賽立即結束;若20 分鐘時間到快遞球未配送完畢,比賽立即結束。

圖1 比賽場地整體尺寸(單位:mm)
比賽對四足仿生機器人的要求是四足仿生機器人重量不得超過3.0 kg,四條腿豎直站立時,其體積小于長400 mm×寬240 mm×高260 mm,且腿長小于200 mm,機器人正常行走時,軀干下表面離地高度不小于100 mm(注:尺寸為去除背筐時的尺寸)。四足機器人為四足哺乳類動物仿生腿足結構,不得使用爬行類等動物仿生腿足結構。不得使用并聯機構,各關節需通過連桿或支架串聯形成腿。
圖1 為快遞配送項目比賽的場地,大小為6000 mm×5000 mm,在硬質平整地面搭建,表面為黑色。賽道寬度為400 mm,由白色無紡布或者白色啞光噴繪紙鋪設(視場地情況可直接噴涂白色非反光漆)。賽道中的減速帶、臺階、窄橋、斜坡為白色密度板材或者白色木板,草地為5 mm 厚的人工草皮。場地周圍3 個住戶區域,各住戶的三面由長寬高為570 mm×300 mm×150 mm 的擋板圍成,一面開口,朝向賽道。擋板厚度為10 mm,顏色為白色。
四足仿生機器人的硬件平臺如圖2所示,仿生機器人本體共有五大部件: 舵機組、香蕉派開發板、運動控制板、CCD 攝像頭及姿態傳感器等。

圖2 四足仿生機器人硬件系統平臺框圖
頭部設有一個水平方向的關節舵機,可以左右運動各30°角度(運動范圍60°);每條腿設有三個關節舵機,最上面為上髖關節舵機,運動范圍100°;中間為下髖關節舵機,運動范圍180°;最下面為膝關節舵機,運動范圍150°。
四足仿生機器人的姿態是指機器人每條腿抬起、放下的規律,是確保步行機構能夠穩定行進的非常關鍵的條件,姿態生成與控制的最終目標就是設計機器人運動時各條腿邁腿順序以適應復雜環境[4]。
如圖3 所示,用戶可采用Action designer 應用程序對四足仿生機器人的舵機進行調零設置。 初次調試時,動作列表為空,用戶可以點擊添加按鈕,添加動作,點擊重命名來重命名動作。當動作列表中有一個動作存在時,需選定一個動作,然后點擊添加按鈕,這樣就在被選動作前添加了一個動作。當選中一個動作,并點擊設置頁面的下載按鈕時,就可以實時地下載動作到下位機(四足機器人)。

圖3 Action Designer軟件界面
接下來是姿勢的添加,既是本機器人調試的難點又是其特色。在姿勢列表中,用戶可以通過鼠標右鍵拖動3D 四足機器人,顯示區域中的四足機器人四肢來設計每個姿勢。在動作姿勢列表內,當選定一個動作列表中的動作時,可以拖動姿勢列表中的姿勢到動作姿勢列表中,這樣就將姿勢添加到了動作。當設計好一個動作時,可以拖動該動作到時間軸,點擊播放,查看動作的連續播放演示。我們可以拖動動作列表中的一個動作到時間軸,添加到時間軸上,當點擊播放時,下位機與3D 四足機器人顯示區域會同步播放四足機器人的動作(因為下位機存在一定的通信延遲,所以下位機動作會比3D 四足機器人顯示區域的動作稍顯延遲)。
如圖4 所示,型號BananaPI M2,采用Allwinner A31S 作為系統芯片,1Ghz ARM7 四核處理 器, Allwinner A31S Cortex-A7 為 CPU,PowerVR SGX544MP2 為GPU,內存為1GB DR3(與GPU 共享),需用5V/2A 直流電供電,目前安裝了安卓操作系統,可以下載應用,可以外接擴展模塊,開發板具有4 個USB2.0 接口、一個microUSB 接口、一個10/100/1000Mbps的有線以太網口、40 個GPIO 接口和一個HDMI 接口,通過HDMI 接口和USB 接口可以外接控制設備及顯示設備,從而對其進行二次開發。

圖4 BananaPI M2開發板
STM32 運動控制處理板,通過TTL 串口與BPI 開發板相連,在外殼上留有RS-232 串口通信接口,根據串口通信接口文檔可以通過其他設備直接與機器人控制板通信以控制機器人執行相應指令,還可以使用上位機軟件通過串口下載編輯的動作,并讓機器人執行編輯的相應動作。
機器人頭部有500 萬像素USB 攝像頭,從機器人內部連接到安卓開發板,用于獲取機器人外部圖像信息。機器人通過CCD 攝像頭獲取的視覺信息進行二值化處理,加入改進PID 算法,使四足仿生機器人可以沿著既定軌跡前進。
能感受物體姿態(軸線對重力坐標系的空間位置)并轉換成可用輸出信號的傳感器叫做姿態傳感器[5]。連接在運動控制板上,通過內嵌的低功耗ARM 處理器輸出校準過的角速度、加速度、磁數據等,通過基于傳感器數據算法進行運動姿態測量,實時輸出三維姿態數據。
軟件設計部分所完成的主要功能包括圖像處理、循跡、顏色識別以及控制命令下發等。
主程序流程圖如圖5所示。

圖5 主程序流程圖
圖像處理部分的目標就是將攝像頭拍攝的彩色畫面變為二值化的黑白圖像,以便后續圖像處理和識別。具體操作包括圖像分割、中值濾波和二值化。
3.1.1 圖像分割
在將一幀圖像讀取到程序內部后,如圖6所示,首先要對其進行分割,降低圖像分辨率。對高分辨率的原始圖像直接處理會浪費大量時間和算力,所以我們使用OpenCV 中的resize 函數將圖像分辨率降低到80×60,在不影響精度的情況下可以提高程序運行速度和效率。

圖6 圖像分割前后對比
3.1.2 中值濾波
導入的圖像通常會摻雜一些噪聲,每一個噪點都可能影響邊緣的判斷,從而影響循跡效果,因此在圖像分割后需要采用中值濾波減少噪聲。本文采用OpenCV 中的medianBlur 函數對圖像進行中值濾波處理。中值濾波是基于排序統計理論的一種能有效抑制噪聲的非線性信號處理技術,中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近真實值,從而消除孤立的噪聲點,濾波前后效果如圖7所示。

圖7 中值濾波前后對比
3.1.3 二值化
如圖8所示,濾波后的圖像仍是彩色,通過二值化可以篩選出特定的顏色進行識別,OpenCV 中的inRange 函數可以將介于給定顏色范圍內的像素值變為255,其他像素變為0。

圖8 二值化前后對比
循跡算法受到攝像頭高度限制,四足仿生機器人正常站立時攝像頭距離地面高度約160 mm,賽道左右兩側不能同時掃描到,所以采取單邊循跡的方式,沿著賽道內側或者外側循跡;由于賽道外側經常有參賽隊員(或觀眾)流動,會影響到仿生機器人的邊界線識別;而進行內側循跡可避免此類干擾,循跡效果更佳。
單邊循跡策略具體做法是將二值化后的圖像進行逐行、逐列掃描,判斷并記錄每行邊界位置,對每行邊緣位置取均值,將該均值作為機器人距邊線的距離,通過控制其左右行走將該值控制在一定范圍即可實現循跡。
在完成循跡的同時四足仿生機器人需要通過一系列障礙地形,為住戶完成快遞配送任務;在執行任務區域帶有特定顏色的色塊進行輔助提示,對這些顏色進行識別之后才能判定接下來將要執行的任務。
如圖9所示,在圖像處理階段已經將圖像對特定的顏色做了二值化處理,對特定顏色的二值化圖像掃描,若該顏色像素數占總像素數百分之三十以上就可以認為識別到了該特定顏色,此時就可以執行相應的任務。

圖9 特定顏色區域輔助提示圖
四足仿生機器人的控制驅動板采用串口通信,其內部的簡單指令集已經可以實現直行、左轉、右轉、高速奔跑等動作。也可以利用其復雜指令集準確控制其各個關節的位置及運動速度快慢。根據上位機發送到下位機的指令包格式利用串口向驅動板發送指令包,即可實現對仿生機器人動作的控制。
研究了四足仿生機器人的快遞配送項目:包括規則解讀、硬件平臺搭建、相關機器視覺的軟件設計等。著重論述了機器視覺中圖像處理、循跡策略和顏色識別等主要內容。參加中國機器人大賽及人工智能挑戰賽近三年的獲獎成績(見表1),驗證了本文所設計的四足仿生機器人具有一定的實際應用價值。

表1 近三年四足仿生機器人參賽獲獎表