一款基于A(yíng)RM的多自由度人形教育機器人控制系統的設計

發(fā)布時(shí)間:2015-11-10 14:01    發(fā)布者:designapp
關(guān)鍵詞: ARM , 機器人 , PWM , 伺服器 , LPC2114
  摘要:針對以往教育機器人自由度少、控制不靈活、教育功能弱的缺點(diǎn),使用高集成度ARM芯片設計了一個(gè)簡(jiǎn)潔的17自由度人形機器人控制系統。規劃了機器人的軟硬件結構,設計了控制電路和驅動(dòng)系統,采用1個(gè)定時(shí)器產(chǎn)生17路PWM驅動(dòng)信號。重點(diǎn)以實(shí)例講解了波形產(chǎn)生及驅動(dòng)函數的編寫(xiě)方法和技巧。設計的機器人能夠完成整套體操運動(dòng)。這種方法在多自由度機器人操控和教學(xué)中具有廣泛的借鑒意義。
  1 系統方案設計
  人形機器人控制系統包括機器人控制器和機器人遙控器兩部分。其中控制器以飛利浦公司的ARM7處理器為核心,包含17個(gè)舵機控制驅動(dòng)電路與接口、串口通信調試電路、遙控接口、電源等。通過(guò)串口下載和傳輸控制信息。機器人遙控器使用無(wú)線(xiàn)模塊向機器人控制器發(fā)送指令,控制機器人完成規定動(dòng)作。
  2 硬件設計
  人形機器人控制器主板由控制核心LPC2114、電源及檢測電路、外部晶振、JTAG調試接口、串口模塊、遙控模塊、舵機接口、LED指示燈等組成,組成框圖如圖1所示。


  LPC2114基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-S CPU,并帶有128 k字節的高速Flash存儲器,非常小的LQFP64封裝、極低的功耗、2個(gè)32位定時(shí)器、4路10位ADC、PWM輸出、46個(gè)GPIO以及多達9個(gè)外部中斷使它們特別適用于工業(yè)控制、醫療系統、訪(fǎng)問(wèn)控制和電子收款機(POS)等[2]。
  較高的功能集成度和強大的端口驅動(dòng)能力使得機器人控制器主板電路的核心部分非常簡(jiǎn)潔,基本上實(shí)現了單芯片的設計,如圖2所示為L(cháng)PC2114控制器電路和4個(gè)舵機的驅動(dòng)接口電路,其余13個(gè)舵機驅類(lèi)同。


  考慮到教育機器人的運動(dòng)平衡控制,將PCB電路板按圖3(a)所示位置布局。該布局除了處理器最小系統,以及必要的指示和控制電路外,最重要的就是17個(gè)舵機驅動(dòng)接口,這里使用彎角3排針連接,保證鏈接的緊湊和可靠。17個(gè)舵機接口分為5組,與下載接口按照左右各9個(gè)布局,其中人形機器人的頭包含1個(gè)舵機接口,負責左右運動(dòng),左胳膊包含3個(gè)舵機接口,分控肩、肘、腕3個(gè)運動(dòng)自由度,左腿包含4個(gè)舵機接口,分控胯的左右/上下、膝蓋及腳腕4個(gè)自由度。右胳膊與右腿的分控接口和功能與機器人控制器左半部分對稱(chēng)[3]。


                               
                  最后將控制器與7.2V電芯并列裝配到鋁合金外殼中,作為機器人的軀體,同時(shí)作為運動(dòng)平衡的重心,良好的布局對機器人的運動(dòng)至關(guān)重要[4]。
  考慮到人形機器人的自重和動(dòng)作力度,設計采用FUTABA系列產(chǎn)品中的S3050大力矩車(chē)用、船用競賽型金屬齒輪數字舵機,如圖3(b)所示。該舵機自重48.8克,尺寸小,在6V電壓下工作,能夠達到0.16秒/60度的轉速,力矩大小為6.5千克/厘米。
  17個(gè)舵機按照前述的分組和人體關(guān)節結構對稱(chēng)排列布局,頭部1個(gè)舵機,左右胳膊各3個(gè)舵機,分別做為肩、肘、腕關(guān)節,左右腿各5個(gè)舵機,分別為髖關(guān)節的左右運動(dòng)1個(gè)、前后運動(dòng)1個(gè)、膝關(guān)節1個(gè)、踝關(guān)節前后運動(dòng)1個(gè)、左右運動(dòng)1個(gè),其中2個(gè)肩關(guān)節舵機和2個(gè)髖關(guān)節的左右運動(dòng)的舵機,上下左右對稱(chēng)緊湊安裝,作為身體的一部分,所有其他舵機使用鋁合金支撐固定成緊湊的人形結構[5]。
  3 軟件設計
  軟件設計主要包含軟件架構設計、程序流程設計和驅動(dòng)控制函數的設計。
  3.1 軟件架構
  該人形機器人控制系統原理是:當機器人控制器接收到遙控器發(fā)出的指令后,ARM處理器根據指令要求,將要執行的動(dòng)作參數分解成一系列寬度不等的PWM信號,并通過(guò)驅動(dòng)電路輸出到舵機接口,外部舵機根據占空比不同的PWM信號轉動(dòng)相應的角度,多個(gè)舵機不同的轉動(dòng)角度構成了不同的機器人瞬時(shí)動(dòng)作,多個(gè)動(dòng)作連貫執行就完成與外部命令相應的響應動(dòng)作。軟件架構如圖4所示。本文主要對關(guān)鍵驅動(dòng)函數進(jìn)行說(shuō)明。


  3.2 舵機驅動(dòng)程序設計
  驅動(dòng)脈沖與舵機轉動(dòng)角度如表1所示,不同的高電平時(shí)間對應著(zhù)舵機不同的輸出位置。因此可以使用LPC2114內部定時(shí)器模擬出17路以20ms為周期、高電平寬度與位置時(shí)序對應的PWM波形,來(lái)分別驅動(dòng)控制17個(gè)舵機轉動(dòng)的角度,配合完成機器人的相關(guān)動(dòng)作[6]。


  

                               
                  多個(gè)舵機的驅動(dòng)需要依據機器人的姿態(tài)數據計算出轉動(dòng)時(shí)間,將其時(shí)間數據按一定算法進(jìn)行排序,并在CPU的控制下設置各舵機的運動(dòng)和停止時(shí)間。
  3.3 機器人舵機整體驅動(dòng)函數 ManMoveFrame()設計
  函數功能:將輸入的各伺服器角度轉換為各伺服器的高電平時(shí)間,按照17個(gè)伺服器高電平時(shí)間從短到長(cháng)依次調用對應伺服器驅動(dòng)。共18個(gè)入口參數,17個(gè)是伺服器角度,1個(gè)是動(dòng)畫(huà)停留時(shí)間,轉換關(guān)系:1度約為0.00814ms。
  函數定義:void ManMoveFrame(int16 Head_Angle,int16 Larm1_Angle,… ,,int16 Rleg5_Angle,uint8 t)
  {uint8 i,t1; int HeadTime,Larm1Time,Larm2Time, … ,Rleg4Time,Rleg5Time;/*與角度對應的時(shí)間變量*/
  int MotorTime[17]; /*各舵機驅動(dòng)脈沖時(shí)間數組*/
  MotorTime[0]=HeadTime=Head_0+Head_Angle*Angle1;/*頭部驅動(dòng)脈沖時(shí)間*/
  /*MotorTime[1]至MotorTime[16]略;*/
  qsort(MotorTime,17,sizeof(int),Compare); /*對MotorTime數組快排序,使其值從小到大重排*/ …
  for(i=0;i機器人姿態(tài)數據輸入驅動(dòng)函數ManMoveKeyframeData()設計
  機器人動(dòng)作的關(guān)鍵姿態(tài)是由各舵機轉動(dòng)位置決定的,需要參照機器人的體態(tài)對17個(gè)舵機的自由度關(guān)系數據進(jìn)行設置,驅動(dòng)函數將如表2所示設置的參數轉換為驅動(dòng)信號,控制17個(gè)舵機的轉動(dòng),從而完成機器人行走的動(dòng)作。表格空白的地方默認數據為0。


  函數功能:初始化各伺服器角度/時(shí)間數組,將機器人每姿態(tài)動(dòng)作的各舵機角度數據輸入給各伺服器數組。共19個(gè)入口參數:1個(gè)關(guān)鍵幀號、17個(gè)伺服器角度、1個(gè)動(dòng)畫(huà)停留時(shí)間。
  函數定義:void ManMoveKeyframeData(uint16 ID,int16 H_Angle, …,int16 RL5_Angle,uint8 t){
  ID_Max++;/*動(dòng)作幀數,全局變量,記錄動(dòng)作幀數,每加入1幀,ID_Max的值就增1*/
  H[ID]=H_Angle;/*頭的角度*/ … RL5[ID]=RL5_Angle; /*左肩的角度*/
  T_Key[ID]=t;/*幀動(dòng)作完成的時(shí)間長(cháng)度*/ }
  3.5 機器人動(dòng)作控制驅動(dòng)函數ManMoveKeyframeToFrame()設計
  主要功能:把動(dòng)作幅度較大的姿態(tài)關(guān)鍵幀數據結合其下面緊挨的姿態(tài)關(guān)鍵幀數據轉換為時(shí)間均勻的普通幀驅動(dòng)參數,供整體驅動(dòng)使用。入口參數:無(wú)。出口參數:無(wú)。
                               
                  函數定義:void ManMoveKeyframeToFrame(void)
  {uint16 id,h,la1,la2,la3,ra1,ra2,ra3,ll1,ll2,ll3,ll4,ll5,rl1,rl2,rl3,rl4,rl5;uint8 t,k;/*幀號、舵機時(shí)間臨時(shí)變量*/
  for(id=0;id機器人程序流程
  機器人根據接收到的遙控命令自行判斷并完成動(dòng)作,工作流程如圖5所示。因為人形機器人使用電池,工作比較耗電,所以在運動(dòng)前要先檢測工作電壓,如果達到工作要求就接著(zhù)工作,否則不執行動(dòng)作并報警,工作電壓不滿(mǎn)足要求會(huì )造成機器人因動(dòng)力不足而摔倒,接收到結束命令就停止運行,不再響應外部所發(fā)來(lái)的遙控命令,如果完成一個(gè)動(dòng)作就恢復到立正站立狀態(tài)[7]。


  需要指出的是,在機器人運動(dòng)時(shí),程序對其外部的伺服器控制要進(jìn)行分時(shí)分批控制,以減輕處理器功耗壓力,達到可靠驅動(dòng)的目的。
  4 結論
  按照機器人的運動(dòng)體態(tài)完成運動(dòng)數據的設計,經(jīng)過(guò)測試,該控制系統可以完成包括前滾翻、后滾翻、俯臥撐在內的多種體操運動(dòng)。課題組計劃進(jìn)一步封裝函數,并設計可視化圖形編程界面,以便可以在電腦上更加直觀(guān)地生成運動(dòng)數據,積木化編程,降低操作難度。
  參考文獻:
  [1] 閻世梁, 張華等.高等工程教育中的機器人教育探索與實(shí)踐[J].實(shí)驗室研究與探索.2013(8):149-152
  [2] 高彥杰.嵌入式溫度測量系統的設計與實(shí)現[J]. 數字技術(shù)與應用.2012(6):147-149
  [3] 趙瑞林,盧慶林,張順星.教學(xué)型雙足步行機器人的結構及其控制電路設計[J]. 計算技術(shù)與自動(dòng)化.2014(2):74
  [4]付偉,王建華.一種用于仿人型機器人控制的腳本語(yǔ)言的設計與實(shí)現[J].計算機應用. 2014,32(8):24
  [5] 劉磊,韓冰,王連弟等.一種雙足行走機構的構型設計與運動(dòng)學(xué)分析[J]. 天津理工大學(xué)學(xué)報.2014(3):32-35
  [6] 陳強,羅斌,秦超.仿人型機器人控制系統設計的幾個(gè)問(wèn)題[J]. 自動(dòng)化技術(shù)與應用.2013,32(5) 14
  [7] 李紅巖,高陽(yáng)東.基于LPC2131的RF遙控多關(guān)節蛇形機器人[J]. 自動(dòng)化與儀表.2014(6):3-4
                               
               
本文地址:http://selenalain.com/thread-155875-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页