色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x

一款基于ARM的多自由度人形教育機器人控制系統(tǒng)的設計

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


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


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


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


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


  

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


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


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

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

相關(guān)視頻

關(guān)于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表