黃寅光,劉祚時
(江西理工大學 機電工程學院,贛州 341000)
機器人技術的提高離不開機器人競賽活動[1]。國內開展了許多機器人競賽項目,鄭增輝[2]介紹了以Arduino為控制器運輸對抗機器人。賀龍豹[3]介紹了以STC12C5A60S2單片機為控制器,電機驅動車輪運動,舵機驅動機械手實現抓取物料功能。本文給出了適用于中國工程機器人暨國際公開賽仿生四足機器人穩定快速爬坡的軟硬件設計。
仿生機器人在科研領域內已經成為了研究熱點,目前許多國內外高校研究學者們對仿生四足機器人投入研究[4,5]。由于四足機器人的基礎理論知識還不夠成熟,在速度、平衡性、靈活性和環境的適應性等方面四足機器人的發展空間還很大。想要在復雜環境下靈活平穩的行走,解決機器人在不同角度斜坡上穩定快速的完成爬坡也是其中一個難題。
所謂的仿生四足機器人就是模仿自然界生物的身體結構特征和行走狀態的一種機器人[6]。對于仿生四足機器人,四足機器人穩定性和快速性主要取決于爬行步態和軟件系統控制[7]。機器人的爬行步態控制可分為連續性行走狀態和間歇性行走狀態兩類[8]。連續性行走速度快但協調性比較差,而間歇性行走速度稍微慢點但穩定性高。本文以STM32F103單片機為核心控制四足機器人爬行步態,采用連續性的爬行方式結合TSL1401線性CCD采用黑線提取算法并對采集的黑色直線進行二值化處理,將獲得的四足的方向偏差量和角速度偏差量,通過PD控制協調每條腿之間的角度差和速度差,使機器人穩步、精確、快速的爬行[9]。為了檢測控制系統的快速穩定性,將四足機器人放在15°、25°、35°的斜坡階梯上進行試驗測試,在中國工程機器人公開賽中獲得一等獎。
狗和馬等四足哺乳動物的行走方式在四足機器人方向的研究比較成熟[10]。機器人爬坡必須重心低、步態穩,本文采用類似烏龜的機械結構與四足哺乳動物步態規劃相結合的方式來解決問題。四足機器人系統總體框架,如圖1所示。四足機器人的硬件組成主要包括:舵機、STM32F103單片機、線性電荷耦合器件(CCD)、傳感器模塊、電源驅動等,四足機器人的硬件系統結構,如圖2所示。

圖1 四足機器人系硬件統總體框架圖

圖2 四足機器人的硬件組成
TSL1401CL線性傳感器陣列由一個128x1的光電二級管。它提供了同時集成起始和停止時間的所有像素,像素間有8μm間隔,操作簡化內部控制邏輯,只需要1個串行輸入端(SI)的信號和時鐘CLK。電源電壓(VDD)范圍3~5.5V。模擬輸出(AO)的電壓公式:Vout=Vdrk+(Re)(Ee)(tint)Vout是白色狀態的模擬輸出電壓;Vdrk是黑暗條件下的模擬輸出電壓;Re是對于給定的V/中給出的光的波長(μJ/cm2設備響應);Ee是在μw/cm2的事件輻照;Tint是集成在幾秒鐘的時間。
STM32F103使用高性能的ARM?的Cortex?-M3 32位的RISC內核,工作頻率為72MHZ,內置高速存儲器(高達128K字節的閃存和20K字節的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和1個PWM定時器,還包含標準和先進的通信接口:多達2個I2C接口和SPI接口、3個USART接口、一個SUB接口和一個CAN接口。
LM2596S 電源模塊板3A 12/24V轉12/5/3.3V。輸入電壓范圍3~40V同,輸出電壓范圍直流1.5~35V。使用了4個該穩壓模塊分別為控制模塊、傳感器模塊和13個舵機提供5V電壓。電源使用2200mAh 11.1v放點倍率:20C的格力航模電池。
4個避障傳感器模塊分別安裝在四條腿的外側,將有效距離調為10cm左右,當未檢測遇到障礙物時,紅外線反射回來被接收管接收,同時信號輸出接口輸出數字信號,將信息傳送給單片機,使控制器調整腳步方向確保不從道路平臺摔下。傳感器模塊輸出端OUT直接與STM32F103單片機IO口PB2連接,采用穩壓模塊進行5V供電。
舵機模塊采用經濟實惠的MG995模擬舵機,它內部有一個基準電路,產生周期為20ms,寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。假設現在舵機穩定在A點,這時候CPU發出一個PWM信號,舵機全速由A點轉向B點,在這個過程中需要一段時間,舵機才能運動到B點。保持時間為Tw,當Tw=△T時,系統最連貫,而且舵機運動的最快。舵機特性線,如圖3所示。

圖3 舵機特性圖
四足機器人的運動是通過單片機結合傳感器模塊按照設定的步態智能協調控制每條腿的各個自由度的轉動角度、速度、和方向[11]。自由度通過舵機實時控制,舵機控制算法:PID經典控制算法、模糊算法、人工智能算法等。本文采用改進的PID經典控制算法對舵機控制使機器人連續性的爬行步態。軟件系統設計理念是精確識別提取黑線為輸入量,舵機根據輸入量快速穩定準確的輸出。系統程序總體控制流程:1)初始化各功能模塊控制參數。2)線性CCD模塊對道路軌跡進行識別。3)通過傳感器模塊獲取四足機器人的速度,利用PID對舵機進行反饋控制。4)按設計步態結合對舵機的速度和角度的控制,使四足機器人穩定快速的爬行。系統的基本軟件結構流程圖,如圖4所示。

圖4 系統的基本軟件結構流程圖
四足機器人斜面坐標系設定如圖5所示,分別從機體坐標系∑α、水平面坐標系∑β、斜面坐標系∑γ分析并且均為右手坐標系。斜面傾斜角為θ,重心(COG)到斜面的豎直高度為h。機體坐標系:∑α原點Gα位于COG,Zα軸垂直于機體向上,Xα軸指向機器人運動前方,Yα軸指向機器人左方。機器人的姿態由繞三個軸的旋轉角來決定(ψbR,ψbP,ψbγ)。

圖5 坐標系
水平面坐標系∑β:原點Gβ是從COG沿重力方向與和斜面的交點。Zβ軸垂直于水平面向上,Xβ軸為Xα軸在水平面的垂直投影。
斜面坐標系∑γ:原點Gγ與Gβ口重合。∑γ的坐標軸方向是∑β坐標系繞Yβ轉-θ,繞Zβ轉ψbγ得到。旋轉矩陣設為E-jψ,和Ekψbγ。
坐標系間轉換矩陣:

上式中,P(P=[0,0,-h]T)是∑α的原點到的原點的向量。旋轉矩陣EkψbγEjψbPEkψbR由∑β坐標系繞Zβ轉ψbγ,繞Yβ轉ψbP,繞Xβ轉ψbR得到的。在斜面坐標系∑γ下進行步態規劃,然后轉換為機體坐標系∑α控制機器人。
在控制器下模糊規劃出四足機器人的整體步態,行走流程如下:

MS代表關節點(舵機),K代表轉動角度,步伐構建簡要過程為:左前腳抬起;左前腳向前移;左前腳放下,右前腳和左后腳向后劃,右后腳抬起并向前移;右后腳放下;右前腳抬起;右前腳向前移;右前腳放下,左前腳和右后腳向后劃,左后腳抬起并向前移;左后腳放下。單片機接受CCD模塊和防跌落模塊反饋的信號,動態協調控制每條腿的各個自由度的轉動角度、速度、和方向。四足機器人自由度配置圖,如圖6所示。

圖6 四足機器人自由度配置圖
四足機器人采用TSL1401線性CCD傳感器對賽道黑線信息進行識別,線性CCD包含128個像素點,確定黑線的中心位置,首先通過實驗設定閾值大小,然后選擇采用從左到右讀取圖像灰度值,設定原點Li,若|Li-Li+3|大于閾值則重新賦予值Li+3=j,從j開始判斷從j+3到該行最末一個點之間的差值大于閾值,則將Li+j/2+2的坐標賦值給黑線的中心位置[12]。對提取的圖像進行二值化處理增強抗干擾能力和運算速度。通過上位機軟件檢驗算法是否可以提取黑線。圖7(a)為算法提取圖像,圖7(b)為二值化后的識別圖像

圖7 CCD采集的路況信息
線性CCD采集前方一定距離內的黑線,從中提取相關量,用來控制舵機的轉向,實現四足機器人的自動循跡。算法具體步驟如下:
1)將前方彎的平緩程度反應設置為變量valid_line(用提取的黑線數量來估定)。
2)把每行采集黑線值與中間值的差作為每行偏移量,提取5行偏移量并求平均值設為整體偏移量eveb_diff,黑線斜率設為D_differen,舵機走直線的控制中間值為Centre。
3)判斷前方彎的平緩程度是否在黑線識別有效行范圍內,若在有效范圍內,則PD給舵機的輸入量Steer=Centre+Kp×eveb_diff+Kd×D_different。即在某一小段范圍內,得到的黑線位置和對應的舵機PID參照角度處理成一次線性關系。
4)對不同行的參數單獨調節,確定Kp值,Kp=A+(4-valid_line)/B+speed/C;A為Kp的基礎值,speed表征四足的時刻速度,B、C是速度稍高的時候調試得出合適的值。
5)最終將調試舵機的轉向的Kp系數協調配合步態使四足平穩快速爬行。
設計完成的四足爬坡機器人的實物如圖8所示,機器人完全符合比賽規則。應用此機器人參加了中國工程機器人公開賽并獲得四足爬坡項目一等獎。

圖8 四足機器人實物圖
本文針“中國工程機器人公開賽”仿生四足機器人爬坡項目設計出了一款滿足比賽要求的設計的機器人,提出了四足機器人的整體設計,圍繞機器人爬坡要求設計了屬于自己的一套行走過程,確定了以STM32F103單片機為核心的四足機器人的總體方案,改進了對腿部關節舵機的控制算法,使系統的魯棒性增強了,實現了四足機器人穩定快速的爬行。