仿人型機器人控制系統設計的幾個(gè)問(wèn)題
1 引言
本文引用地址:http://dyxdggzs.com/article/201710/367756.htm仿人型機器人由于具有類(lèi)人的基本外形,在實(shí)際的生活中,能夠代替人完成很多工作,因此對仿人型機器人的研究具有實(shí)用價(jià)值,各國都在投入巨大的人力物力進(jìn)行研發(fā)。仿人型機器人具有多自由度的機械結構要求,因此需要對機器人的各個(gè)關(guān)節通過(guò)電機來(lái)完成轉動(dòng)動(dòng)作。這對于電機驅動(dòng)控制提出了很高的性能要求。本文提出了一種基于STM32單片機的仿人型機器人控制系統方案,可以同時(shí)對機器人關(guān)節所需的16路舵機進(jìn)行驅動(dòng)控制。
2 硬件解決方案
本控制系統的硬件部分共分為5個(gè)模塊,其硬件系統模塊圖如圖1所示。
圖1 硬件系統模塊框圖
主控制器采用STM32F103xB增強型系列單片機,該系列單片機使用了高性能的ARM CortexTM-M3 32位的RISC內核,工作頻率為72MHz,內置高速存儲器(128K字節的閃存和20K字節的SRAM),增強型I/O端口[2]。這些性能使得 STM32F103系列微控制器非常適合應用于小型仿人型機器人的控制系統。由于仿人型機器人的體型限定,因此我們在設計舵機控制板時(shí)采用了 STM32F103系列的小型貼片封裝型號STM32F103CBT6。以得到體積較小的舵機控制電路板,如圖2所示。
圖2 舵機控制板實(shí)物圖
圖3 舵機控制示意圖
為了實(shí)現對多自由度復雜結構的仿人型機器人進(jìn)行動(dòng)作控制,需要較多控制路數的舵機控制板。由于舵機的角度控制是采用PWM波形輸出,當單片機IO口的輸出脈沖寬度變化時(shí),舵機舵盤(pán)角度發(fā)生改變,如圖3所示[3],因此在舵機控制板電路設計中,充分利用了STM32單片機的IO口數量多且具有PWM輸出的技術(shù)優(yōu)勢[4]。共設計了16路舵機控制口,可以保證16個(gè)機器人關(guān)節同時(shí)動(dòng)作。舵機驅動(dòng)IO接口分布在PCB板的兩側,便于插拔。
在舵機的控制中,有一個(gè)容易出現的問(wèn)題就是舵機抖舵問(wèn)題。這種問(wèn)題一般發(fā)生在采用普通電池做為機器人系統的主電源的情況下,如采用多節AA型鎳鎘或鎳氫電池串聯(lián)組成機器人供電主電源。原因是這些電池由于容量和放電能力的局限,無(wú)法在其額定電壓下提供長(cháng)時(shí)間穩定持續的大電流。在仿人型機器人的多路舵機同時(shí)工作時(shí),采用普通電源輸出的電壓會(huì )迅速降低,從而導致舵機的供電不足,最終出現舵盤(pán)異常抖動(dòng),造成機器人在執行動(dòng)作時(shí)的抖舵現象。
圖4 控制信號5V供電電源原理圖
圖5 6V舵機驅動(dòng)電源原理圖
因此我們設計的仿人型機器人控制電路中采用了型號為格氏25C放電倍率,容量為2200mAh,額定電壓為11.1V的鋰聚合物航模電池作為主電源。分為 5V控制信號電源和6V舵機驅動(dòng)電源,如圖4所示。為了保證多路舵機同時(shí)工作時(shí)所需要的大電流,利用鋰聚合物電池具有很強的持續放電能力,選用了型號為 120W 12A大功率降壓模塊[5],將機器人的供電電源穩壓在+6V,放電電流峰值為12A,如圖5所示。利用光電耦合器隔離單片機IO口控制信號和舵機驅動(dòng)信號,提高控制信號的抗干擾能力。舵機的IO口電路設計原理圖如圖6所示。這樣解決了多路舵機由于同時(shí)工作時(shí),電源電源被拉低引起的舵盤(pán)異常抖動(dòng)問(wèn)題。
圖6 舵機IO口電路原理圖
舵機控制板在初始上電時(shí),所有IO口會(huì )同時(shí)通入無(wú)序的PWM信號,造成瞬間出現巨大的電流消耗。經(jīng)實(shí)驗測得舵機控制板上電時(shí),單個(gè)IO口的峰值電流可以達到1.5A以上。因此在16個(gè)舵機同時(shí)初始上電通入PWM信號時(shí),其總電流將達到24A以上,這就大大超出了大容量直流降壓模塊的極限供電電流,導致電源電路進(jìn)入過(guò)流保護,整個(gè)舵機控制電路將無(wú)法進(jìn)入正常的工作狀態(tài)。為了解決這個(gè)問(wèn)題,我們在STM32單片機上電初始化時(shí),首先只讓IO口1和2輸出PWM 信號,然后同時(shí)再讓IO口3和4輸出初始化PWM信號,以此順序最后讓IO口15和16輸出PWM信號。這樣就保證IO口初始化時(shí),最多只有兩路PWM信號同時(shí)通入。在機器人正常動(dòng)作時(shí),同時(shí)動(dòng)作的舵機數量不超過(guò)6個(gè),即6個(gè)IO同時(shí)輸出的峰值電流為9A,低于大功率降壓模塊的最大輸出電流12A,因此整個(gè)電路在工作期間的極限電流均小于12A。最終達到了舵機控制板穩定工作的硬件要求。
3 軟件部分的設計
仿人型機器人控制系統的軟件分為兩種模式:調試模式和正常模式。
調試模式:機器人上電默認靜止,以響應上位機信號為主。在該模式下,上位機通過(guò)RS232串口對機器人進(jìn)行在線(xiàn)控制,可以對單個(gè)舵機的角度進(jìn)行精確調整,編排好的流程動(dòng)作單次執行,流程動(dòng)作的全部執行等,并顯示當前機器人對代碼解析值。調試模式的工作界面如圖7所示。
正常模式:機器人上電即開(kāi)始執行調試完畢的全套程序動(dòng)作。
圖7 上位機調試模式工作界面
為了實(shí)行軟件控制,采用了多任務(wù)模塊的定時(shí)輪換機制[6]。共建立了3個(gè)模塊任務(wù):任務(wù)0用來(lái)解析送入該任務(wù)的軟件代碼值到PWM輸出的轉換。任務(wù)1用來(lái)調用每套動(dòng)作編碼,連續的將得到的軟件值發(fā)送給任務(wù)0。任務(wù)2為串口處理任務(wù),通過(guò)分析串口發(fā)來(lái)的數據進(jìn)行模式的轉換和響應。其程序流程圖如圖8所示。
圖8 程序流程圖
4 系統調試效果
設計該仿人型機器人的走步步態(tài)時(shí),主要考慮了機器人的自重為2.53Kg,身高為42cm,因此機器人的腳和手臂的舵機輸出幅度不能太大,否則會(huì )導致機器人走步時(shí)的重心偏移太大,造成機器人翻倒。因此在設計機器人的腳掌時(shí),適當增大了與地面的接觸面積,腳掌的尺寸為8.5&TImes;15cm,同時(shí)加快了腳步移動(dòng)的頻率,并在腳部增加了額外的配重,以增強機器人在走步過(guò)程中的穩定性,其走步的步態(tài)如圖9所示。該型機器人的走步步態(tài)協(xié)調一致,在2012年中國機器人大賽仿人競速比賽項目中獲得二等獎。
圖9 12自由度的仿人型機器人
走步動(dòng)作正面
5 結束語(yǔ)
文中基于STM32微控制器的仿人型機器人控制系統,能夠靈活地控制16路大扭力舵機,通過(guò)大功率降壓電源模塊,可以得到16路舵機同時(shí)動(dòng)作時(shí)所需要的直流電壓,實(shí)現了仿人型機器人的走步動(dòng)作,可作為高校學(xué)生進(jìn)行機器人技術(shù)創(chuàng )新時(shí)的參考。
評論