<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 智能計算 > 設(shè)計應(yīng)用 > 仿人型機器人控制系統(tǒng)設(shè)計的幾個問題

          仿人型機器人控制系統(tǒng)設(shè)計的幾個問題

          作者: 時間:2017-10-24 來源:網(wǎng)絡(luò) 收藏

            1 引言

          本文引用地址:http://www.ex-cimer.com/article/201710/367756.htm

            仿人型由于具有類人的基本外形,在實際的生活中,能夠代替人完成很多工作,因此對仿人型的研究具有實用價值,各國都在投入巨大的人力物力進行研發(fā)。仿人型具有多自由度的機械結(jié)構(gòu)要求,因此需要對機器人的各個關(guān)節(jié)通過電機來完成轉(zhuǎn)動動作。這對于電機驅(qū)動控制提出了很高的性能要求。本文提出了一種基于單片機的仿人型機器人控制系統(tǒng)方案,可以同時對機器人關(guān)節(jié)所需的16路舵機進行驅(qū)動控制。

            2 硬件解決方案

            本控制系統(tǒng)的硬件部分共分為5個模塊,其硬件系統(tǒng)模塊圖如圖1所示。

            

            圖1 硬件系統(tǒng)模塊框圖

            主控制器采用F103xB增強型系列單片機,該系列單片機使用了高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(128K字節(jié)的閃存和20K字節(jié)的SRAM),增強型I/O端口[2]。這些性能使得 F103系列微控制器非常適合應(yīng)用于小型仿人型機器人的控制系統(tǒng)。由于仿人型機器人的體型限定,因此我們在設(shè)計舵機控制板時采用了 STM32F103系列的小型貼片封裝型號STM32F103CBT6。以得到體積較小的舵機控制電路板,如圖2所示。

            

            圖2 舵機控制板實物圖

            

            圖3 舵機控制示意圖

            為了實現(xiàn)對多自由度復(fù)雜結(jié)構(gòu)的仿人型機器人進行動作控制,需要較多控制路數(shù)的舵機控制板。由于舵機的角度控制是采用PWM波形輸出,當單片機IO口的輸出脈沖寬度變化時,舵機舵盤角度發(fā)生改變,如圖3所示[3],因此在舵機控制板電路設(shè)計中,充分利用了STM32單片機的IO口數(shù)量多且具有PWM輸出的技術(shù)優(yōu)勢[4]。共設(shè)計了16路舵機控制口,可以保證16個機器人關(guān)節(jié)同時動作。舵機驅(qū)動IO接口分布在PCB板的兩側(cè),便于插拔。

            在舵機的控制中,有一個容易出現(xiàn)的問題就是舵機抖舵問題。這種問題一般發(fā)生在采用普通電池做為機器人系統(tǒng)的主電源的情況下,如采用多節(jié)AA型鎳鎘或鎳氫電池串聯(lián)組成機器人供電主電源。原因是這些電池由于容量和放電能力的局限,無法在其額定電壓下提供長時間穩(wěn)定持續(xù)的大電流。在仿人型機器人的多路舵機同時工作時,采用普通電源輸出的電壓會迅速降低,從而導(dǎo)致舵機的供電不足,最終出現(xiàn)舵盤異常抖動,造成機器人在執(zhí)行動作時的抖舵現(xiàn)象。

            

            圖4 控制信號5V供電電源原理圖

            

            圖5 6V舵機驅(qū)動電源原理圖

            因此我們設(shè)計的仿人型機器人控制電路中采用了型號為格氏25C放電倍率,容量為2200mAh,額定電壓為11.1V的鋰聚合物航模電池作為主電源。分為 5V控制信號電源和6V舵機驅(qū)動電源,如圖4所示。為了保證多路舵機同時工作時所需要的大電流,利用鋰聚合物電池具有很強的持續(xù)放電能力,選用了型號為 120W 12A大功率降壓模塊[5],將機器人的供電電源穩(wěn)壓在+6V,放電電流峰值為12A,如圖5所示。利用光電耦合器隔離單片機IO口控制信號和舵機驅(qū)動信號,提高控制信號的抗干擾能力。舵機的IO口電路設(shè)計原理圖如圖6所示。這樣解決了多路舵機由于同時工作時,電源電源被拉低引起的舵盤異常抖動問題。

            

            圖6 舵機IO口電路原理圖

            舵機控制板在初始上電時,所有IO口會同時通入無序的PWM信號,造成瞬間出現(xiàn)巨大的電流消耗。經(jīng)實驗測得舵機控制板上電時,單個IO口的峰值電流可以達到1.5A以上。因此在16個舵機同時初始上電通入PWM信號時,其總電流將達到24A以上,這就大大超出了大容量直流降壓模塊的極限供電電流,導(dǎo)致電源電路進入過流保護,整個舵機控制電路將無法進入正常的工作狀態(tài)。為了解決這個問題,我們在STM32單片機上電初始化時,首先只讓IO口1和2輸出PWM 信號,然后同時再讓IO口3和4輸出初始化PWM信號,以此順序最后讓IO口15和16輸出PWM信號。這樣就保證IO口初始化時,最多只有兩路PWM信號同時通入。在機器人正常動作時,同時動作的舵機數(shù)量不超過6個,即6個IO同時輸出的峰值電流為9A,低于大功率降壓模塊的最大輸出電流12A,因此整個電路在工作期間的極限電流均小于12A。最終達到了舵機控制板穩(wěn)定工作的硬件要求。

            3 軟件部分的設(shè)計

            仿人型機器人控制系統(tǒng)的軟件分為兩種模式:調(diào)試模式和正常模式。

            調(diào)試模式:機器人上電默認靜止,以響應(yīng)上位機信號為主。在該模式下,上位機通過RS232串口對機器人進行在線控制,可以對單個舵機的角度進行精確調(diào)整,編排好的流程動作單次執(zhí)行,流程動作的全部執(zhí)行等,并顯示當前機器人對代碼解析值。調(diào)試模式的工作界面如圖7所示。

            正常模式:機器人上電即開始執(zhí)行調(diào)試完畢的全套程序動作。

            

            圖7 上位機調(diào)試模式工作界面

            為了實行軟件控制,采用了多任務(wù)模塊的定時輪換機制[6]。共建立了3個模塊任務(wù):任務(wù)0用來解析送入該任務(wù)的軟件代碼值到PWM輸出的轉(zhuǎn)換。任務(wù)1用來調(diào)用每套動作編碼,連續(xù)的將得到的軟件值發(fā)送給任務(wù)0。任務(wù)2為串口處理任務(wù),通過分析串口發(fā)來的數(shù)據(jù)進行模式的轉(zhuǎn)換和響應(yīng)。其程序流程圖如圖8所示。

            

            圖8 程序流程圖

            4 系統(tǒng)調(diào)試效果

            設(shè)計該仿人型機器人的走步步態(tài)時,主要考慮了機器人的自重為2.53Kg,身高為42cm,因此機器人的腳和手臂的舵機輸出幅度不能太大,否則會導(dǎo)致機器人走步時的重心偏移太大,造成機器人翻倒。因此在設(shè)計機器人的腳掌時,適當增大了與地面的接觸面積,腳掌的尺寸為8.5&TImes;15cm,同時加快了腳步移動的頻率,并在腳部增加了額外的配重,以增強機器人在走步過程中的穩(wěn)定性,其走步的步態(tài)如圖9所示。該型機器人的走步步態(tài)協(xié)調(diào)一致,在2012年中國機器人大賽仿人競速比賽項目中獲得二等獎。

            

            圖9 12自由度的仿人型機器人

            走步動作正面

            5 結(jié)束語

            文中基于STM32微控制器的仿人型機器人控制系統(tǒng),能夠靈活地控制16路大扭力舵機,通過大功率降壓電源模塊,可以得到16路舵機同時動作時所需要的直流電壓,實現(xiàn)了仿人型機器人的走步動作,可作為高校學(xué)生進行機器人技術(shù)創(chuàng)新時的參考。



          關(guān)鍵詞: 機器人 STM32

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();