本發(fā)明涉及一種小型類人機(jī)器人,還涉及這種實(shí)現(xiàn)全向步行的小型類人機(jī)器人的控制方法。
背景技術(shù):
中小型雙足仿人機(jī)器人,已在服務(wù),醫(yī)療,教育,娛樂等多個領(lǐng)域得到廣泛應(yīng)用。在娛樂方面,小型仿人機(jī)器人可用于舞蹈,踢球,格斗等多個方面,仿人的外形更能吸引人的注意力?,F(xiàn)在國內(nèi)的小型仿人機(jī)器人智能化程度低,自主分析處理能力弱,不能獨(dú)立于外部控制完成任務(wù)。在國內(nèi)基本沒有機(jī)器人可以實(shí)現(xiàn)動態(tài)步行,市面上銷售的常見娛樂型機(jī)器人,通過自帶的動作編輯軟件也能編輯出步行的動作,但其動作僵硬緩慢,只能沿著固定的方向,且在步行中容易摔倒。
參照圖7,文獻(xiàn)“申請公布號是cn103770116a的中國發(fā)明專利”公開了一種十七自由度人形機(jī)器人。該機(jī)器人由頭部、軀干和四肢構(gòu)成,采用了十七個雙軸舵機(jī),可以完成許多仿人形動作。所述頭部有一個自由度,每只手有三個自由度,每個腿部有五個自由度。該機(jī)器人臀部關(guān)節(jié)只有四個自由度,實(shí)現(xiàn)轉(zhuǎn)彎動作時不自然,而且步行動作是預(yù)先編輯好的,不能實(shí)現(xiàn)向任意方向步行的目標(biāo)。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有小型類人機(jī)器人不能實(shí)現(xiàn)向任意方向步行目的的不足,本發(fā)明提供一種實(shí)現(xiàn)全向步行的小型類人機(jī)器人及其控制方法。所述機(jī)器人包括舵機(jī)和舵機(jī)連接件,舵機(jī)和舵機(jī)連接件構(gòu)成整個主體。每個手臂三個連接件,即每個手臂三個自由度。每條腿六個連接件,即每條腿六個自由度,頭部有兩個連接件,即頭部有兩個自由度。控制方法采用的步態(tài)算法是對實(shí)時零力矩點(diǎn)算法的近似,通過輸出耦合振蕩曲線并結(jié)合倒立擺系統(tǒng)控制算法進(jìn)行補(bǔ)償修正,通過計(jì)算機(jī)仿真調(diào)整模型參數(shù),獲得了能夠?qū)崟r生成的穩(wěn)定的仿人機(jī)器人步態(tài)仿真模型。最后在實(shí)物機(jī)器人上實(shí)驗(yàn),達(dá)到最終的機(jī)器人步態(tài)效果。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種實(shí)現(xiàn)全向步行的小型類人機(jī)器人,其特點(diǎn)是:包括前胸1、ax18舵機(jī)2、核心電子支架3、頭部支架4、電池盒擋板5、大腿連接件6、大臂連接件7、小臂連接件8、手9、腳踝連接件10、左大腿11、右大腿12、小腿連接件13、小腿14、腳部支架15、舵機(jī)墊片16、舵機(jī)連接件17、大腿支架18、腳底板19、小臂連接件20、背部擋板21、電池盒22和手連接件23。舵機(jī)包括第一舵機(jī)0-1至第二十舵機(jī)0-20;前胸1與背部擋板21通過第三舵機(jī)0-3和第四舵機(jī)0-4配合組成身體,外加核心電子支架3構(gòu)成封閉空間。電池外置于身體后部的電池盒22內(nèi);頭部支架4通過第一舵機(jī)0-1和第二舵機(jī)0-2組合設(shè)置在身體上方,與身體雙自由度活動連接;左側(cè)和右側(cè)大臂連接件7分別通過第三舵機(jī)0-3和第四舵機(jī)0-4,對稱設(shè)置在身體左右兩側(cè),與身體活動連接;左側(cè)與右側(cè)小臂連接件8分別通過第五舵機(jī)0-5、第六舵機(jī)0-6與大臂連接件7活動連接,左側(cè)與右側(cè)手9分別通過第七舵機(jī)0-7、第八舵機(jī)0-8活動連接在小臂連接件8下方;左側(cè)與右側(cè)大腿支架18分別通過第九舵機(jī)0-9和第十舵機(jī)0-10對稱設(shè)置在身體下方,與身體活動連接;大腿連接件6將第十一舵機(jī)0-11和第十三舵機(jī)0-13組合,設(shè)置在大腿支架18下方;第十五舵機(jī)0-15、第十六舵機(jī)0-16分別通過左右小腿連接件13與左大腿11、右大腿12連接。左側(cè)與右側(cè)小腿14分別通過第十五舵機(jī)0-15、第十六舵機(jī)0-16連接在左大腿11、右大腿12下方;腳部支架15將第十七舵機(jī)0-17與腳底板19組合,設(shè)置在小腿14下方。
一種上述實(shí)現(xiàn)全向步行的小型類人機(jī)器人的控制方法,其特點(diǎn)是包括以下步驟:
步驟一、模型建立。
在機(jī)器人上設(shè)置三個振蕩器,其中兩個振蕩器位于左腳和右腳中心,為運(yùn)動振蕩器,一個振蕩器在機(jī)器人質(zhì)心處,為平衡振蕩器。每個振蕩器又分別包含有6個子振蕩器,分別為x,y,z三個軸方向的平移,記為x,y,z,以及繞x,y,z三個軸旋轉(zhuǎn),記為α,β,γ。
運(yùn)動振蕩器和平衡振蕩器的振蕩基本計(jì)算公式如下,其中oscmove為運(yùn)動振蕩器輸出,oscbal為平衡振蕩器輸出:
oscbal(t)=ρbalsin(ωbalt+δbal)+μbal(1)
輸出函數(shù)式中的o為時間,t表示一個步行周期,而r表示雙足著地時間比單足著地時間,ρmove,ωmove,δmove為運(yùn)動振蕩器正弦振蕩的參數(shù),ρbal,ωbal,δbal為運(yùn)動振蕩器正弦振蕩的參數(shù)。運(yùn)動振蕩器和平衡振蕩器的6個子振蕩器x,y,z,α,β,γ均符合上式。平衡振蕩器在機(jī)器人的整個運(yùn)動周期中都持續(xù)運(yùn)動,而運(yùn)動振蕩器在雙足著地期間停止振動,單足著地期間啟動。左腳的運(yùn)動振蕩器和右腳的運(yùn)動振蕩器相位相差半個周期。
步驟二、參數(shù)確定。
根據(jù)人類的步行規(guī)律,當(dāng)機(jī)器人正常向前步行時,取t=1.2s,r=0.25,ρmove_x=30,ρmove_z=30,ρbal_x=10,ρbal_y=20,ρmove_x=3,
以機(jī)器人站立時兩腳的中心作為原點(diǎn)設(shè)定機(jī)器人速度坐標(biāo)系,其x軸指向前方,y軸指向右側(cè),z軸垂直地面向上。機(jī)器人向任意方向的步行分解為沿x軸的前后運(yùn)動,沿y軸的平移運(yùn)動和沿z軸的旋轉(zhuǎn)運(yùn)動,設(shè)這三個方向上的運(yùn)動分別為xmove,ymove和amove,其數(shù)值代表一個步行周期內(nèi)機(jī)器人在各方向運(yùn)動的大小,其單位為毫米。對應(yīng)之前的模型,即ρmove_x=xmove,ρmove_y=y(tǒng)move,σmove_c=amove。通過這三個參數(shù)的組合,實(shí)現(xiàn)向任意方向步行。
步驟三、實(shí)際足跡的生成與關(guān)節(jié)角度的計(jì)算。
機(jī)器人雙足的實(shí)際運(yùn)動軌跡所述運(yùn)動振蕩器和平衡振蕩器輸出的線性耦合表示。其中,設(shè)osctotal為線性耦合振蕩器輸出,則隨時間變化有輸出函數(shù)
osctotal(t)=oscmove(t)+oscbal(t)(3)
右腿的關(guān)節(jié)角度計(jì)算以機(jī)器人質(zhì)心為坐標(biāo)原點(diǎn),右腳的運(yùn)動是平衡振蕩和運(yùn)動振蕩的疊加,即osctotal_r。對于振蕩器輸出得到的振蕩數(shù)據(jù),通過逆運(yùn)動學(xué)計(jì)算得到了與機(jī)器人右腿腳踝2個舵機(jī),膝部1個舵機(jī)和髖關(guān)節(jié)3個舵機(jī)的舵機(jī)角度。同理,計(jì)算出左腿的舵機(jī)角度。
步驟四、反饋修正。
采用基于倒立擺系統(tǒng)的補(bǔ)償控制器修正仿真結(jié)果并由陀螺儀與加速度計(jì)為其提供修正數(shù)據(jù),其理論表達(dá)式如下
式中,τ是指補(bǔ)償控制器為維持動態(tài)平衡所需的修正力矩,θr是指實(shí)際運(yùn)動軌跡與zmp算法仿真結(jié)果之間的角度誤差,zcom是質(zhì)心當(dāng)前的高度,
式中,θr由各個關(guān)節(jié)處舵機(jī)提供,角速度
本發(fā)明的有益效果是:所述機(jī)器人包括舵機(jī)和舵機(jī)連接件,舵機(jī)和舵機(jī)連接件構(gòu)成整個主體。每個手臂三個連接件,即每個手臂三個自由度。每條腿六個連接件,即每條腿六個自由度,頭部有兩個連接件,即頭部有兩個自由度??刂品椒ú捎玫牟綉B(tài)算法是對實(shí)時零力矩點(diǎn)算法的近似,通過輸出耦合振蕩曲線并結(jié)合倒立擺系統(tǒng)控制算法進(jìn)行補(bǔ)償修正,通過計(jì)算機(jī)仿真調(diào)整模型參數(shù),獲得了能夠?qū)崟r生成的穩(wěn)定的仿人機(jī)器人步態(tài)仿真模型。最后在實(shí)物機(jī)器人上實(shí)驗(yàn),達(dá)到最終的機(jī)器人步態(tài)效果。
調(diào)節(jié)機(jī)器人全身的平衡,使重心能夠保持在機(jī)器人中心。考慮到整體的拆裝,舵機(jī)線的布置進(jìn)行了設(shè)計(jì),保證了可裝可拆,且裝拆方便。舵機(jī)與身體部位的連接孔使用標(biāo)準(zhǔn)零件,裝配穩(wěn)固快捷;背部擋板由3d打印制成,可根據(jù)實(shí)際情況自行設(shè)計(jì)更換,且拆卸不會破壞機(jī)器人整體受力結(jié)構(gòu),便于科研調(diào)試與比賽適應(yīng)。電纜走線采用奇偶對稱排列的方法,簡潔明了。舵機(jī)采用數(shù)字舵機(jī)串行通信,布線簡單快捷,可靠性佳。
機(jī)器人身體設(shè)計(jì)時舵機(jī)既是轉(zhuǎn)動關(guān)節(jié)固定點(diǎn),又是控制零部件的驅(qū)動裝置,還是結(jié)構(gòu)設(shè)計(jì)的支撐點(diǎn),簡化了鈑金結(jié)構(gòu),增加了可擴(kuò)展性與穩(wěn)定性。主板采用可插裝的層疊式結(jié)構(gòu),不需要額外的固定裝置,便于后續(xù)更換與升級。
主板功能設(shè)計(jì)可支持全自助任務(wù)執(zhí)行,也可遠(yuǎn)程控制。機(jī)器人的動作的計(jì)算與舵機(jī)控制的分離,形成獨(dú)立的模塊,不需對電路和下位機(jī)程序做任何更改,即可完成機(jī)器人的動作的執(zhí)行。
機(jī)器人上采用的步態(tài)算法計(jì)算復(fù)雜度低,機(jī)器人上的嵌入式計(jì)算機(jī)可以完成所有計(jì)算,保證了步行動作的流暢。軟件上采用posix線程進(jìn)行多線程規(guī)劃,在保證同時運(yùn)行的基礎(chǔ)上,模塊單獨(dú)部分也保持穩(wěn)定。程序使用標(biāo)準(zhǔn)的c++語言編寫,可運(yùn)行于開源的linux平臺。
以下結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明。
附圖說明
圖1是本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的正面機(jī)械結(jié)構(gòu)圖。
圖2是本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的側(cè)面機(jī)械結(jié)構(gòu)圖。
圖3是本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的舵機(jī)連接示意圖。
圖4本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的步態(tài)模型圖。
圖5是本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的步態(tài)算法計(jì)算效果圖。
圖6是本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人的控制方法的流程圖。
圖7是本背景技術(shù)十七自由度人形機(jī)器人的正面機(jī)械結(jié)構(gòu)圖。
圖中,1-前胸,2-ax18舵機(jī),3-核心電子支架,4-頭部支架,5-電池盒擋板,6-大腿連接件,7-大臂連接件,8-小臂連接件,9-手,10-腳踝連接件,11-左大腿,12-右大腿,13-小腿連接件,14-小腿,15-腳部支架,16-舵機(jī)墊片,17-舵機(jī)連接件,18-大腿支架,19-腳底板,20-小臂連接件,21-背部擋板,22-電池盒,23-手連接件。
具體實(shí)施方式
以下實(shí)施例參照圖1-6。
結(jié)構(gòu)實(shí)施例:
本發(fā)明實(shí)現(xiàn)全向步行的小型類人機(jī)器人包括前胸1、ax18舵機(jī)2、核心電子支架3、頭部支架4、電池盒擋板5、大腿連接件6、大臂連接件7、小臂連接件8、手9、腳踝連接件10、左大腿11、右大腿12、小腿連接件13、小腿14、腳部支架15、舵機(jī)墊片16、舵機(jī)連接件17、大腿支架18、腳底板19、小臂連接件20、背部擋板21、電池盒22和手連接件23。舵機(jī)包括第一舵機(jī)0-1至第二十舵機(jī)0-20;前胸1與背部擋板21通過第三舵機(jī)0-3和第四舵機(jī)0-4配合組成身體,外加核心電子支架3構(gòu)成封閉空間,保護(hù)核心電子設(shè)備安全穩(wěn)定;核心電子設(shè)備裝載在殼體內(nèi)部,下位機(jī)電池外置于身體后部電池盒22;頭部支架4通過第一舵機(jī)0-1和第二舵機(jī)0-2組合設(shè)置在身體上方,與身體雙自由度活動連接;身體左側(cè)與右側(cè)大臂連接件7分別通過第三舵機(jī)0-3和第四舵機(jī)0-4,對稱設(shè)置在身體左右兩側(cè),與身體活動連接;身體左側(cè)與右側(cè)小臂連接件8分別通過第五舵機(jī)0-5、第六舵機(jī)0-6與大臂連接件7活動連接,身體左側(cè)與右側(cè)手9分別通過第七舵機(jī)0-7、第八舵機(jī)0-8活動連接在小臂連接件8下方;身體左側(cè)與右側(cè)大腿支架18分別通過第九舵機(jī)0-9和第十舵機(jī)0-10對稱設(shè)置在身體下方,與身體活動連接;大腿連接件6將第十一舵機(jī)0-11和第十三舵機(jī)0-13組合,設(shè)置在大腿支架18下方;第十五舵機(jī)0-15、第十六舵機(jī)0-16分別通過左右小腿連接件13與左大腿11、右大腿12連接。身體左側(cè)與右側(cè)小腿14分別通過第十五舵機(jī)0-15、第十六舵機(jī)0-16連接在左大腿11、右大腿12下方;腳部支架15將第十七舵機(jī)0-17和腳底板19組合,設(shè)置在小腿14下方。
所述前胸1、ax18舵機(jī)2、核心電子支架3、頭部支架4、電池盒擋板5、大腿連接件6、大臂連接件7、小臂連接件8、手9、腳踝連接件10、左大腿11、右大腿12、小腿連接件13、小腿14、腳部支架15、舵機(jī)墊片16、舵機(jī)連接件17、大腿支架18、腳底板19、小臂連接件20、電池盒22和手連接件23由著色2mm硬質(zhì)鋁合金鈑金制成國標(biāo)2a12或者ly12,美標(biāo)2024aa,iso:alcu4mg1iso209.1-1989的鈑金,其優(yōu)點(diǎn)是具有很高的強(qiáng)度和良好的切削加工性能,該材料被廣泛的應(yīng)用于,飛機(jī)結(jié)構(gòu)蒙皮,骨架,肋梁,隔框,鉚釘?shù)绕渌鞣N結(jié)構(gòu)件上。
控制方法實(shí)施例:
步驟一、模型建立。
在機(jī)器人上一共設(shè)置三個振蕩器,其中兩個位于左腳和右腳中心,為運(yùn)動振蕩器,一個在機(jī)器人質(zhì)心處,為平衡振蕩器。每個振蕩器又分別包含有6個子振蕩器,分別為x,y,z三個軸方向的平移,記為x,y,z,以及繞x,y,z三個軸旋轉(zhuǎn),記為α,β,γ。
運(yùn)動振蕩器和平衡振蕩器的振蕩基本計(jì)算公式如下,其中oscmove為運(yùn)動振蕩器輸出,oscbal為平衡振蕩器輸出:
oscbal(t)=ρbalsin(ωbalt+δbal)+μbal(1)
輸出函數(shù)式中的t為時間,t表示一個步行周期,而r表示雙足著地時間比單足著地時間,ρmove,ωmove,δmove為運(yùn)動振蕩器正弦振蕩的參數(shù),ρbal,ωbal,δbal為運(yùn)動振蕩器正弦振蕩的參數(shù)。運(yùn)動振蕩器和平衡振蕩器的6個子振蕩器x,y,z,α,β,γ均符合上式,但參數(shù)各有不同。平衡振蕩器在機(jī)器人的整個運(yùn)動周期中都持續(xù)運(yùn)動,而運(yùn)動振蕩器在雙足著地期間停止振動,單足著地期間啟動。左腳的運(yùn)動振蕩器和右腳的運(yùn)動振蕩器相位相差半個周期。
步驟二、參數(shù)確定。
參照圖5,根據(jù)人類的步行規(guī)律,當(dāng)機(jī)器人正常向前步行時,取t=1.2s,r=0.25,ρmove_x=30,ρmove_z=30,ρbal_x=10,ρbal_y=20,ρmove_x=3,
以機(jī)器人站立時兩腳的中心作為原點(diǎn)設(shè)定機(jī)器人速度坐標(biāo)系,其x軸指向前方,y軸指向右側(cè),z軸垂直地面向上。機(jī)器人向任意方向的步行可以分解為沿x軸的前后運(yùn)動,沿y軸的平移運(yùn)動和沿z軸的旋轉(zhuǎn)運(yùn)動,設(shè)這三個方向上的運(yùn)動分別為xmove,ymove和amove,其數(shù)值代表一個步行周期內(nèi)機(jī)器人在各方向運(yùn)動的大小,其單位為毫米。對應(yīng)之前的模型,即σmove_x=xmove,σmove_y=y(tǒng)move,ρmove_c=amove。通過這三個參數(shù)的組合,即可實(shí)現(xiàn)向任意方向步行。
步驟三、實(shí)際足跡的生成與關(guān)節(jié)角度的計(jì)算。
機(jī)器人雙足的實(shí)際運(yùn)動軌跡可以通過上文提到的運(yùn)動振蕩器和平衡振蕩器輸出的線性耦合來表示。其中,設(shè),osctotal為線性耦合振蕩器輸出,則隨時間變化有輸出函數(shù)
osctotal(t)=oscmove(t)+oscbal(t)(3)
以右腿的關(guān)節(jié)角度計(jì)算為例,以機(jī)器人質(zhì)心為坐標(biāo)原點(diǎn),右腳的運(yùn)動是平衡振蕩和運(yùn)動振蕩的疊加,即osctotal_r。對于振蕩器輸出得到的振蕩數(shù)據(jù),通過逆運(yùn)動學(xué)計(jì)算得到了與機(jī)器人右腿腳踝2個舵機(jī),膝部1個舵機(jī)和髖關(guān)節(jié)3個舵機(jī)的舵機(jī)角度。同理,計(jì)算出左腿的舵機(jī)角度
步驟四、反饋修正。
與此同時,由于仿真物理模型與實(shí)際狀態(tài)存在一定的不可避免的誤差,這導(dǎo)致在沒有補(bǔ)償值的情況下直接將仿真計(jì)算結(jié)果應(yīng)用于實(shí)物機(jī)器人將會有難以預(yù)估的不穩(wěn)定性產(chǎn)生。
為了降低這一不穩(wěn)定性,使用基于倒立擺系統(tǒng)的補(bǔ)償控制器來修正仿真結(jié)果并由陀螺儀與加速度計(jì)為其提供修正數(shù)據(jù),其理論表達(dá)式如下
式中,τ是指補(bǔ)償控制器為維持動態(tài)平衡所需的修正力矩,θr是指實(shí)際運(yùn)動軌跡與zmp算法仿真結(jié)果之間的角度誤差,zcom是質(zhì)心當(dāng)前的高度,
公式中的θr可由各個關(guān)節(jié)處舵機(jī)提供,而角速度
用matlab對傳統(tǒng)的zmp算法和簡化的算法進(jìn)行了對比仿真,兩者相差在可以接受的范圍內(nèi),驗(yàn)證了實(shí)時zmp算法生成的耦合振蕩曲線的可靠性。在實(shí)物機(jī)器人上試驗(yàn),機(jī)器人在平地上可以穩(wěn)定的行走。通過調(diào)節(jié)模型的參數(shù),可以前進(jìn)、平移或倒退,還可以指定行走的角度,實(shí)現(xiàn)了向任意方向行走的目標(biāo)。