俞志偉,楊屹巍,2,宮 俊,2,戴振東
(1.南京航空航天大學 仿生結構與材料防護研究所,南京 210016;2.南京航空航天大學 自動化學院,南京 210016)
現代機器人技術的研究是控制論、系統論、信息學、計算機科學、機械學、傳感器技術、人工智能和仿生學等多學科綜合而形成的高科技產物,是研究最為活躍及應用愈加廣泛的領域[1]。傳統機器人都采用輪式或履帶式結構,不能充分實現空間三維表面運動的靈活性,因此人們把目光轉向了自然界,希望能從中獲得靈感[2,3]。由于壁虎是空間三維表面運動靈活的良好仿生對象,對非結構環境適應能力強,能夠實現地面、墻面、天花板及不同法向面間的過渡,因此通過對壁虎的運動功能仿生研究,研制具有足式結構的仿壁虎機器人具有比輪式和履帶式等機構更好的優越性。
本文仿生研制了仿壁虎機器人,采用大力矩舵機驅動機器人各關節,控制系統由機載電源供電。本文仿生研制了仿壁虎機器人,采用大力矩舵機驅動機器人各關節,控制系統由機載電源供電。傳統設計中使用Atmega16 AVR微控制器[4]、TMS320F2812的DSP控制器[5,6]對小型機器人系統進行控制。由于仿壁虎機器人需要在豎直墻面和天花板進行運動,對于控制系統的體積和重量有著更高的要求,同時應滿足足式粘附運動中對自身位姿和足端粘附力的感知和實時控制要求,而ARM處理器中LPC2103具有最高70MHz主頻的RISC內核,集成32KB Flash和8KB RAM存儲器,封裝大小僅為7×7×1.4mm[7~9],完全滿足仿壁虎機器人系統要求,因此,本文設計了以LPC2103為核心的仿壁虎機器人控制系統。在仿壁虎機器人爬壁實驗中,該系統實時驅動12自由度關節運動,完成90°穩定爬壁運動。
根據對生物大壁虎的觀察,設計了一種仿壁虎機器人,其三維模型如圖1所示。
該機器人的前后腿采用對稱式布置,降低了機器人重心,使機器人爬行時重心更穩定。機器人的每條腿都有3個主動自由度。驅動抬放腿動作的1號電機和身體相連,實現腿部繞1號電機中心軸的旋轉運動,在運動時實現腳掌的抬起和放下。2號電機和3號電機組成一個二連桿機構,負責驅動機器人身體前進。這樣的電機布置和機構布局能最大限度地提高機器人足端在水平面的運動范圍和腳掌的抬起高度。
本控制系統硬件部分可分為主控部分、電源部分和通信部分。其中主控部分對機器人進行集中控制,負責機器人四肢的舵機驅動、采集傳感器數據和響應上位機控制信號;電源部分負責給機器人的控制系統硬件和舵機供電;通信部分負責接收上位機的信號和信號電平轉換。機器人控制系統硬件電路模塊圖如圖2所示。

圖2 硬件電路模塊圖

圖3 機器人控制系統電路圖
主控部分使用的芯片為32位的ARM7 TDMI-S內核的LPC2103微控制器,具有每秒中最多處理6300萬條指令的計算能力、8KB的RAM與32KB的Flash存儲器、2個32位計數器和2個16位計數器,2個SPI接口、2個I2C接口、2個異步串行口,可以從根本上提高機器人控制時的實時性,存儲更多控制程序,可連接更多的傳感器和執行器,從根本上提高了機器人控制系統上的性能。
LPC2103微控制器使用片內四個定時器,可產生12路PWM信號控制機器人四肢各關節的舵機轉動角度;在傳感器信號采集方面,使用LPC2103集成的8路10位模數轉換模塊采集模擬輸出的傳感器信號或者使用SPI或I2C接口采集數字輸出的傳感器信號,與上位機通信時,利用片內的異步串行口與通信部分的MAX232和MC55進行通信。主控電路如圖3所示。
為解決舵機驅動對其他電路干擾較大的問題,電源部分設計分為兩路供電,分別為舵機和控制電路供電。由于機器人使用的是大扭矩的HS-65MG舵機,每個舵機的工作電流是200mA,則當12個舵機同時工作時總共需要2.4A電流,所以舵機的供電部分使用了3片LM7805,每片可提供1A電流的5V穩壓電源。在電源的輸入端使用二極管橋式整流電路以防止電源接入時的極性錯誤,為了防止LM7805在并聯使用時個體差異可能會造成的發熱,分別在每個LM7805的輸出端傳入二極管,而增加該二極管又導致了輸出端無法達到5V的電壓,為了解決這個問題,在LM7805的接地端引入二極管以抬高LM7805的輸出電壓。舵機電源電路如圖4所示。
在控制系統電源部分,由于LPC2103的片內外設和內核分別使用3.3V和1.8V電源供電,故各使用一片AMS1117-3.3和一片AMS1117-1.8產生3.3V和1.8V穩壓電源。在輸入端同樣使用二極管橋式整流電路防止極性錯誤,而為了減少電路各部分的電源和地之間的相互干擾,分別在電源芯片輸出端到其他芯片的電源之間,電源地和數字地、模擬地之間引入零歐姆電阻,相當于很窄的電流通路,能夠有效地限制環路電流,使噪聲得到抑制。電路圖如圖5所示。

圖4 機器人舵機電源部分電路圖
機器人的通信部分可分為有線通信和無線通信,有線通信通過通信電纜連接到RS232總線驅動和接收器MAX3232上,由MAX3232將LPC2103異步通信口的3.3V電平轉換為RS232電平以便于和上位機通信,電路圖如圖6所示。

圖5 機器人控制系統電源電路圖
無線通信部分使用西門子的MC55,實物如圖7所示,GPRS三頻無線通訊模塊,支持GSM通訊和分組業務功能,內嵌TCP/IP協議棧,具有使用簡單,可靠性高,體積小等特點。MC55經串口和LPC2103通信。LPC2103發送專用的AT指令控制MC55模塊,AT指令由ASCII字符AT開頭,〈CR〉結束。
在機器人運行期間,LPC2103中斷查詢MC55從上位機收到的控制命令,從而實現對仿壁虎機器人的遠程控制。

圖6 MAX3232電路圖
機器人控制系統的軟件部分主要是由已知的步態數據生成相應的各關節舵機所使用的PWM脈寬以控制舵機的轉動角度,關節舵機使用周期為20 ms,脈寬為0.5-2.5ms,相應的轉動角度范圍為 0°~180°[10~12]。
首先需要將已知的關機舵機轉動角度轉換為舵機所需的PWM脈寬,PWM脈寬和轉動角度呈線性關系,可以用下式表示兩者的關系:x=C-(α×P+Z),x表 示PWM脈 寬,C為PWM一個周期,α表示舵機轉動角度,P表示1度角度的脈寬,Z表示舵機零度時的脈寬。

圖7 MC55無線通信模塊
LPC2103的四個定時器采用匹配輸出的方式,各產生3路PWM波。以定時器0為例,下面詳細介紹定時器輸出PWM的方法。定時器0為一個32位的匹配/捕獲定時器,提供3路比較匹配輸出和3路捕獲輸入,能夠在MAT0.0~2上產生3路單邊沿PWM輸出。定時器0內部有4個匹配寄存器(MR0~3)和4個捕獲寄存器(CR0~3)。本文采用在MR0~2寄存器存放3路PWM脈寬數據,MR3寄存器存放PWM周期數據,在PWM控制寄存器中將MAT0.0~2配置為PWM輸出。PWM波的輸出原理是:在PWM周期開始時,所有PWM輸出為低電平;計數器與匹配寄存器發生匹配時,相關的PWM輸出為高,若沒有發生匹配,則相應PWM波輸出一直為低電平;當定時器與PWM周期匹配定時器發生匹配時,該定時器的3路PWM波輸出均清零,同時觸發定時器比較匹配中斷,在中斷處理程序中重新將PWM脈寬數據對比較匹配寄存器賦值,其原理如圖8所示。

圖8 PWM波原理圖
機器人控制程序流程圖如圖9所示。
機器人控制對實時性的要求很高,實時性決定了四足機器人四肢運動的協調性和連貫性,以下從軟件方面分析本系統的實時性,以微控制器處理匯編指令為評價標準,本系統LPC2103使用44.2368MHz時鐘,每個時鐘周期耗時22.6ns。在系統初始化模塊中總共有219條指令,其中單周期指令使用158條,需要158個時鐘周期,多周期指令61條,需要163個時鐘周期,初始化總共需要321個時鐘周期,耗時7.2546ms,保證了機器人以極快的速度完成系統初始化。在驅動單腿時總共為121條指令,其中單周期指令91條,需要91個時鐘周期,多周期指令30條,需要146個時鐘周期,驅動單腿共需237個時鐘周期,耗時5.3662ms,由此可得,發送一次驅動四肢的PWM信號總共需要948條指令,耗時21.4648ms,完全滿足同時控制四肢12個舵機的實時性要求,保證的四肢各個關節的相互協調和運動的連貫性與實時性。

圖9 機器人控制程序流程圖
如圖10所示,南航仿壁虎機器人實驗樣機IBSS-gecko-6,重約500g,具有12個主動驅動自由度和12個被動約束自由度,單個腳掌能夠適應空間三維不同表面,實現了90°豎直壁面的爬行運動。
圖11~圖13分別為機器人進行運動試驗時的一個周期單腿各關節角度變化曲線。經90°爬壁實驗驗證,該機器人控制系統運行穩定,能夠精確驅動控制各關節角度,沒有出現因關節運動角度誤差而導致各腿間粘附腳掌的被動脫附,機器人運動平穩,表明基于LPC2103為核心的仿壁虎機器人控制系統性能穩定、可靠。

圖10 仿壁虎機器人90°爬壁步態圖

圖11 1號電機關節角度變化曲線

圖12 2號電機關節角度變化曲線

圖13 3號電機關節角度變化曲線
本文以LPC2103為核心設計了仿壁虎機器人控制系統,實時驅動仿壁虎機器人12自由度關節運動, 實現90°穩定爬壁運動,爬壁實驗中機器人整體系統運行穩定可靠,控制系統對機器人各關節的運動控制準確,表明基于LPC2103為核心的仿壁虎機器人控制系統性能穩定、可靠。
[1] 王田苗, 孟偲, 裴葆青, 等.仿壁虎機器人研究綜述[J].機器人, 2007, 29(3): 290-297.
[2] 戴振東, 孫久榮.壁虎的運動及仿生研究進展[J].自然科學進展, 2006, 16(5): 519-523.
[3] 戴振東, 張昊, 張明, 等.非連續約束變結構機器人運動機構的仿生: 概念及模型[J].科學通報, 2007, 52(2):236-239.
[4] 李巖, 孔凡讓, 萬小丹.基于AVR的雙足步行機器人舵機控制[J].機械與電子, 2007, (12).
[5] 張龍, 孟偲, 劉穎.仿壁虎機器人多路舵機控制器設計[J].微特電機, 2010, (9): 54-57.
[6] 孫立寧, 王鵬飛, 黃博.四足仿生機器人嵌入式多關節伺服控制器的研究[J].機器人, 2005, 27(6): 517-520.
[7] 劉森, 慕春棣, 趙明國.基于ARM嵌入式系統的擬人機器人控制器的設計[J].清華大學學報(自然科學版), 2008,48(4): 482-485.
[8] 周杰, 陳偉海, 于守謙.基于ARM的嵌入式系統在機器人控制系統中應用[J].微計算機信息, 2007, 23(2):271-274.
[9] 馬潮, 詹衛前, 耿德根.LPC2103原理及應用手冊[M].北京: 清華大學出版社, 2003.
[10] 梁峰, 王志良, 解倫, 等.多舵機控制在類人機器人上的應用[J].微計算機信息.2008.24(1-2).
[11] 任志敏.基于定時器定時的6路舵機控制電路研究[J].自動化技術與應用.2010, 29(8).
[12] 趙杰, 郭亮, 臧希喆, 等.應用于六足機器人平臺的舵機控制器設計[J].機械與電子.2005, (9).