0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于LPC2114處理器實(shí)現(xiàn)人形機(jī)器人控制系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:電子產(chǎn)品世界 ? 作者:席東河,申一歌, ? 2021-04-13 15:42 ? 次閱讀

作者:席東河,申一歌,杜娟,高吉珍

1 系統(tǒng)方案設(shè)計(jì)

人形機(jī)器人控制系統(tǒng)包括機(jī)器人控制器和機(jī)器人遙控器兩部分。其中控制器以飛利浦公司ARM7處理器為核心,包含17個(gè)舵機(jī)控制驅(qū)動(dòng)電路接口、串口通信調(diào)試電路、遙控接口、電源等。通過(guò)串口下載和傳輸控制信息。機(jī)器人遙控器使用無(wú)線(xiàn)模塊向機(jī)器人控制器發(fā)送指令,控制機(jī)器人完成規(guī)定動(dòng)作。

2 硬件設(shè)計(jì)

人形機(jī)器人控制器主板由控制核心LPC2114、電源及檢測(cè)電路、外部晶振、JTAG調(diào)試接口、串口模塊、遙控模塊、舵機(jī)接口、LED指示燈等組成,組成框圖如圖1所示。

基于LPC2114處理器實(shí)現(xiàn)人形機(jī)器人控制系統(tǒng)的設(shè)計(jì)

LPC2114基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-S CPU,并帶有128 k字節(jié)的高速Flash存儲(chǔ)器,非常小的LQFP64封裝、極低的功耗、2個(gè)32位定時(shí)器、4路10位ADC、PWM輸出、46個(gè)GPIO以及多達(dá)9個(gè)外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪(fǎng)問(wèn)控制和電子收款機(jī)(POS)等[2]。

較高的功能集成度和強(qiáng)大的端口驅(qū)動(dòng)能力使得機(jī)器人控制器主板電路的核心部分非常簡(jiǎn)潔,基本上實(shí)現(xiàn)了單芯片的設(shè)計(jì),如圖2所示為L(zhǎng)PC2114控制器電路和4個(gè)舵機(jī)的驅(qū)動(dòng)接口電路,其余13個(gè)舵機(jī)驅(qū)類(lèi)同。

o4YBAGB1S9eAZhEVAAKFeKJNch4279.png

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

o4YBAGB1S96ATFG2AAF7SXzQSWw798.png

最后將控制器與7.2V電芯并列裝配到鋁合金外殼中,作為機(jī)器人的軀體,同時(shí)作為運(yùn)動(dòng)平衡的重心,良好的布局對(duì)機(jī)器人的運(yùn)動(dòng)至關(guān)重要[4]。

考慮到人形機(jī)器人的自重和動(dòng)作力度,設(shè)計(jì)采用FUTABA系列產(chǎn)品中的S3050大力矩車(chē)用、船用競(jìng)賽型金屬齒輪數(shù)字舵機(jī),如圖3(b)所示。該舵機(jī)自重48.8克,尺寸小,在6V電壓下工作,能夠達(dá)到0.16秒/60度的轉(zhuǎn)速,力矩大小為6.5千克/厘米。

17個(gè)舵機(jī)按照前述的分組和人體關(guān)節(jié)結(jié)構(gòu)對(duì)稱(chēng)排列布局,頭部1個(gè)舵機(jī),左右胳膊各3個(gè)舵機(jī),分別做為肩、肘、腕關(guān)節(jié),左右腿各5個(gè)舵機(jī),分別為髖關(guān)節(jié)的左右運(yùn)動(dòng)1個(gè)、前后運(yùn)動(dòng)1個(gè)、膝關(guān)節(jié)1個(gè)、踝關(guān)節(jié)前后運(yùn)動(dòng)1個(gè)、左右運(yùn)動(dòng)1個(gè),其中2個(gè)肩關(guān)節(jié)舵機(jī)和2個(gè)髖關(guān)節(jié)的左右運(yùn)動(dòng)的舵機(jī),上下左右對(duì)稱(chēng)緊湊安裝,作為身體的一部分,所有其他舵機(jī)使用鋁合金支撐固定成緊湊的人形結(jié)構(gòu)[5]。

3 軟件設(shè)計(jì)

軟件設(shè)計(jì)主要包含軟件架構(gòu)設(shè)計(jì)、程序流程設(shè)計(jì)和驅(qū)動(dòng)控制函數(shù)的設(shè)計(jì)。

3.1 軟件架構(gòu)

該人形機(jī)器人控制系統(tǒng)原理是:當(dāng)機(jī)器人控制器接收到遙控器發(fā)出的指令后,ARM處理器根據(jù)指令要求,將要執(zhí)行的動(dòng)作參數(shù)分解成一系列寬度不等的PWM信號(hào),并通過(guò)驅(qū)動(dòng)電路輸出到舵機(jī)接口,外部舵機(jī)根據(jù)占空比不同的PWM信號(hào)轉(zhuǎn)動(dòng)相應(yīng)的角度,多個(gè)舵機(jī)不同的轉(zhuǎn)動(dòng)角度構(gòu)成了不同的機(jī)器人瞬時(shí)動(dòng)作,多個(gè)動(dòng)作連貫執(zhí)行就完成與外部命令相應(yīng)的響應(yīng)動(dòng)作。軟件架構(gòu)如圖4所示。本文主要對(duì)關(guān)鍵驅(qū)動(dòng)函數(shù)進(jìn)行說(shuō)明。

o4YBAGB1S-WAFBDrAACS8HQrKd8952.png

3.2 舵機(jī)驅(qū)動(dòng)程序設(shè)計(jì)

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

o4YBAGB1S-yALgFAAADBAqkpPUg010.png

o4YBAGB1S_iAVtswAACOnXPE0KI359.png

多個(gè)舵機(jī)的驅(qū)動(dòng)需要依據(jù)機(jī)器人的姿態(tài)數(shù)據(jù)計(jì)算出轉(zhuǎn)動(dòng)時(shí)間,將其時(shí)間數(shù)據(jù)按一定算法進(jìn)行排序,并在CPU的控制下設(shè)置各舵機(jī)的運(yùn)動(dòng)和停止時(shí)間。

3.3 機(jī)器人舵機(jī)整體驅(qū)動(dòng)函數(shù) ManMoveFrame()設(shè)計(jì)

函數(shù)功能:將輸入的各伺服器角度轉(zhuǎn)換為各伺服器的高電平時(shí)間,按照17個(gè)伺服器高電平時(shí)間從短到長(zhǎng)依次調(diào)用對(duì)應(yīng)伺服器驅(qū)動(dòng)。共18個(gè)入口參數(shù),17個(gè)是伺服器角度,1個(gè)是動(dòng)畫(huà)停留時(shí)間,轉(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;/*與角度對(duì)應(yīng)的時(shí)間變量*/

int MotorTime[17]; /*各舵機(jī)驅(qū)動(dòng)脈沖時(shí)間數(shù)組*/

MotorTime[0]=HeadTime=Head_0+Head_Angle*Angle1;/*頭部驅(qū)動(dòng)脈沖時(shí)間*/

/*MotorTime[1]至MotorTime[16]略;*/

qsort(MotorTime,17,sizeof(int),Compare); /*對(duì)MotorTime數(shù)組快排序,使其值從小到大重排*/ …

for(i=0;i機(jī)器人姿態(tài)數(shù)據(jù)輸入驅(qū)動(dòng)函數(shù)ManMoveKeyframeData()設(shè)計(jì)

機(jī)器人動(dòng)作的關(guān)鍵姿態(tài)是由各舵機(jī)轉(zhuǎn)動(dòng)位置決定的,需要參照機(jī)器人的體態(tài)對(duì)17個(gè)舵機(jī)的自由度關(guān)系數(shù)據(jù)進(jìn)行設(shè)置,驅(qū)動(dòng)函數(shù)將如表2所示設(shè)置的參數(shù)轉(zhuǎn)換為驅(qū)動(dòng)信號(hào),控制17個(gè)舵機(jī)的轉(zhuǎn)動(dòng),從而完成機(jī)器人行走的動(dòng)作。表格空白的地方默認(rèn)數(shù)據(jù)為0。

o4YBAGB1TACAZZaeAABx-OpZmTo846.png

函數(shù)功能:初始化各伺服器角度/時(shí)間數(shù)組,將機(jī)器人每姿態(tài)動(dòng)作的各舵機(jī)角度數(shù)據(jù)輸入給各伺服器數(shù)組。共19個(gè)入口參數(shù):1個(gè)關(guān)鍵幀號(hào)、17個(gè)伺服器角度、1個(gè)動(dòng)畫(huà)停留時(shí)間。

函數(shù)定義:void ManMoveKeyframeData(uint16 ID,int16 H_Angle, …,int16 RL5_Angle,uint8 t){

ID_Max++;/*動(dòng)作幀數(shù),全局變量,記錄動(dòng)作幀數(shù),每加入1幀,ID_Max的值就增1*/

H[ID]=H_Angle;/*頭的角度*/ … RL5[ID]=RL5_Angle; /*左肩的角度*/

T_Key[ID]=t;/*幀動(dòng)作完成的時(shí)間長(zhǎng)度*/ }

3.5 機(jī)器人動(dòng)作控制驅(qū)動(dòng)函數(shù)ManMoveKeyframeToFrame()設(shè)計(jì)

主要功能:把動(dòng)作幅度較大的姿態(tài)關(guān)鍵幀數(shù)據(jù)結(jié)合其下面緊挨的姿態(tài)關(guān)鍵幀數(shù)據(jù)轉(zhuǎn)換為時(shí)間均勻的普通幀驅(qū)動(dòng)參數(shù),供整體驅(qū)動(dòng)使用。入口參數(shù):無(wú)。出口參數(shù):無(wú)。

函數(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;/*幀號(hào)、舵機(jī)時(shí)間臨時(shí)變量*/

for(id=0;id機(jī)器人程序流程

機(jī)器人根據(jù)接收到的遙控命令自行判斷并完成動(dòng)作,工作流程如圖5所示。因?yàn)槿诵螜C(jī)器人使用電池,工作比較耗電,所以在運(yùn)動(dòng)前要先檢測(cè)工作電壓,如果達(dá)到工作要求就接著工作,否則不執(zhí)行動(dòng)作并報(bào)警,工作電壓不滿(mǎn)足要求會(huì)造成機(jī)器人因動(dòng)力不足而摔倒,接收到結(jié)束命令就停止運(yùn)行,不再響應(yīng)外部所發(fā)來(lái)的遙控命令,如果完成一個(gè)動(dòng)作就恢復(fù)到立正站立狀態(tài)[7]。

o4YBAGB1TAaAUzenAADyX5TmaBY644.png

需要指出的是,在機(jī)器人運(yùn)動(dòng)時(shí),程序?qū)ζ渫獠康乃欧骺刂埔M(jìn)行分時(shí)分批控制,以減輕處理器功耗壓力,達(dá)到可靠驅(qū)動(dòng)的目的。

4 結(jié)論

按照機(jī)器人的運(yùn)動(dòng)體態(tài)完成運(yùn)動(dòng)數(shù)據(jù)的設(shè)計(jì),經(jīng)過(guò)測(cè)試,該控制系統(tǒng)可以完成包括前滾翻、后滾翻、俯臥撐在內(nèi)的多種體操運(yùn)動(dòng)。課題組計(jì)劃進(jìn)一步封裝函數(shù),并設(shè)計(jì)可視化圖形編程界面,以便可以在電腦上更加直觀(guān)地生成運(yùn)動(dòng)數(shù)據(jù),積木化編程,降低操作難度。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19384

    瀏覽量

    230492
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16416

    瀏覽量

    178779
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28562

    瀏覽量

    207698
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于μC/0S一Ⅱ和LPC2129微控制器實(shí)現(xiàn)智能機(jī)器人控制系統(tǒng)的設(shè)計(jì)

    ARM7處理器控制核心,采用無(wú)線(xiàn)通信技術(shù),并移植嵌入式實(shí)時(shí)操作系統(tǒng)μC/0S一Ⅱ設(shè)計(jì)了一套智能機(jī)器人控制系統(tǒng)
    的頭像 發(fā)表于 04-09 11:46 ?1.7w次閱讀
    基于μC/0S一Ⅱ和<b class='flag-5'>LPC</b>2129微<b class='flag-5'>控制器</b><b class='flag-5'>實(shí)現(xiàn)</b>智能<b class='flag-5'>機(jī)器人</b><b class='flag-5'>控制系統(tǒng)</b>的設(shè)計(jì)

    LPC2106在足球機(jī)器人控制中的應(yīng)用設(shè)計(jì)

    LPC2106在足球機(jī)器人控制中的應(yīng)用設(shè)計(jì)足球機(jī)器人融合了計(jì)算機(jī)視覺(jué)、模式識(shí)別、決策對(duì)策、自動(dòng)控制、無(wú)線(xiàn)通信、多智能體合作等多項(xiàng)摘要 技術(shù),
    發(fā)表于 03-28 14:03

    基于A(yíng)RM處理器的吸塵機(jī)器人硬件設(shè)計(jì)

    包括傳感模塊,電機(jī)驅(qū)動(dòng)模塊,紅外遙控接收模塊、LED 指示燈和液晶顯示模塊。采用ARM Cortex-M3處理器作為機(jī)器人控制系統(tǒng)的核心,主要是低成本、小管腳數(shù)和低功耗,并且具有極高
    發(fā)表于 11-06 16:01

    如何實(shí)現(xiàn)移動(dòng)機(jī)器人的設(shè)計(jì)?

    ,導(dǎo)航技術(shù),計(jì)算機(jī)技術(shù),人工智能等多個(gè)領(lǐng)域,因而對(duì)移動(dòng)機(jī)器人控制部分提出很高的要求,特別是視覺(jué)傳感的出現(xiàn),要求控制系統(tǒng)不僅存儲(chǔ)量大,而且處理
    發(fā)表于 11-23 15:08

    什么是機(jī)器人控制系統(tǒng)

    什么是機(jī)器人控制系統(tǒng)?機(jī)器人的運(yùn)動(dòng)控制系統(tǒng)包含哪些方面?機(jī)器人控制系統(tǒng)的基本功能有哪些?
    發(fā)表于 10-11 09:38

    LPC2114設(shè)計(jì)實(shí)現(xiàn)車(chē)輛檢測(cè)系統(tǒng)控制

    控制單元CCU組成,本文采用PHILIPS公司最新推出的ARM7內(nèi)核微處理器LPC2114設(shè)計(jì)實(shí)現(xiàn)了車(chē)輛檢測(cè)系統(tǒng)控制單元部分,并且和5個(gè)L
    發(fā)表于 10-13 06:30

    通過(guò)多軸工業(yè)機(jī)器人來(lái)聊聊機(jī)器人控制系統(tǒng)以及控制器實(shí)現(xiàn)

    機(jī)器人控制系統(tǒng)當(dāng)中。那么今天,我們就通過(guò)多軸工業(yè)機(jī)器人來(lái)聊聊機(jī)器人控制系統(tǒng)以及控制器
    發(fā)表于 02-24 17:05

    請(qǐng)教高手lpc2104和lpc2114外部晶振的接法

    請(qǐng)教高手,lpc2104 和 lpc2114 外部晶振接法。原來(lái)我用 LPC2104 做的板子,外部晶振接到 X1 時(shí)不可用.后來(lái)接到 X2 上時(shí)好象可以用,但這與資料上的說(shuō)法好象有點(diǎn)出入.現(xiàn)在我想換
    發(fā)表于 03-09 09:57

    LPC2114替換LPC2104的話(huà),我的程序還需要做哪些變動(dòng)?

    LPC2114 替換 LPC2104 的話(huà),我的程序還需要做哪些變動(dòng) 哪些內(nèi)部專(zhuān)用寄存的地址是否變動(dòng)還有,我原來(lái)設(shè)計(jì)電路用的是 LPC2104 的次要 JTAG 口,現(xiàn)在換到
    發(fā)表于 03-09 10:41

    lpc2114處理器電路圖 LPC2114 pdf 封裝以及

    lpc2114電路圖 LPC2114 pdf
    發(fā)表于 12-20 13:27 ?22次下載

    基于LPC2114的農(nóng)用種子包衣機(jī)嵌入式控制系統(tǒng)設(shè)計(jì)

    基于LPC2114的農(nóng)用種子包衣機(jī)嵌入式控制系統(tǒng)設(shè)計(jì)
    發(fā)表于 03-28 09:50 ?23次下載

    實(shí)時(shí)操作系統(tǒng)μCOS_II在LPC2114上的移植

    實(shí)時(shí)操作系統(tǒng)μCOS_II在LPC2114上的移植:介紹了實(shí)時(shí)操作系統(tǒng)!C/ OS- II 的特點(diǎn)和內(nèi)核結(jié)構(gòu), 并實(shí)現(xiàn)了!C/ OS- II 在Philips 嵌入式
    發(fā)表于 01-04 12:24 ?40次下載

    類(lèi)足球機(jī)器人控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    摘 要:基于機(jī)器人復(fù)雜的決策控制和步態(tài)管理,采用了個(gè)人數(shù)字助理(PDA)和數(shù)字信號(hào)處理器(DSP)組合,并以Windows Mobile作為軟件平臺(tái)。具體分析了控制系統(tǒng)的硬件設(shè)計(jì)和軟件
    發(fā)表于 03-01 00:40 ?60次下載

    使用ARM7處理器LPC2136設(shè)計(jì)嵌入式實(shí)時(shí)機(jī)器人控制系統(tǒng)的資料說(shuō)明

    以支持實(shí)時(shí)仿真和嵌入式跟蹤的 32 位 ARM 7 處理器 LPC2136 為控制核心, 設(shè)計(jì)開(kāi)發(fā)了輪式機(jī)器人控制系統(tǒng)硬件平臺(tái), 通過(guò) IS
    發(fā)表于 12-05 08:00 ?4次下載
    使用ARM7<b class='flag-5'>處理器</b>和<b class='flag-5'>LPC</b>2136設(shè)計(jì)嵌入式實(shí)時(shí)<b class='flag-5'>機(jī)器人</b><b class='flag-5'>控制系統(tǒng)</b>的資料說(shuō)明

    基于S3C4480處理器和μC/OS-Ⅱ實(shí)現(xiàn)機(jī)器人控制系統(tǒng)的設(shè)計(jì)

    移動(dòng)機(jī)器人是一種能夠感知外部環(huán)境,在有障礙物的環(huán)境中能夠實(shí)現(xiàn)動(dòng)態(tài)決策與規(guī)劃,從而完成避障等多種功能的綜合系統(tǒng)。機(jī)器人系統(tǒng)通常分為機(jī)構(gòu)本體和
    的頭像 發(fā)表于 04-07 11:58 ?7740次閱讀
    基于S3C4480<b class='flag-5'>處理器</b>和μC/OS-Ⅱ<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>機(jī)器人</b><b class='flag-5'>控制系統(tǒng)</b>的設(shè)計(jì)