王存磊, 朱燈林
(1.中國電子科技集團(tuán)第五十五研究所,南京210016;2.河海大學(xué)機(jī)電工程學(xué)院,江蘇常州213022)


ADAMS支持的用戶自定義子程序種類很多,但接口方式和編譯過程大同小異,本文僅以驅(qū)動子程序CONSUB為代表,介紹ADAMS自定義子程序在機(jī)器人仿真中的應(yīng)用。仿真結(jié)果說明利用用戶子程序可以不借助通用控制仿真軟件而能進(jìn)行復(fù)雜仿真。
由于ADAMS本身沒有編譯器,必須借助于外部編譯器才能生成用戶所需要的動態(tài)鏈接庫文件,ADAMS/Solver以動態(tài)鏈接庫的方式調(diào)用用戶編制的子程序。本文所用的ADAMS軟件是ADAMS 2005,采用Compaq Visual Fortran Version 6.6為程序設(shè)計語言。其使用過程如下:1)安裝軟件Compaq Visual Fortran Version 6.6和ADAMS 2005。2)在Fortran中編寫用戶自定義子程序源代碼consub.f。3)應(yīng)用Fortran語言編譯器編譯源代碼文件,生成obj文件consub.obj。4)生成動態(tài)鏈接庫文件consub.dll。打開命令提示符窗口,將目錄切換到ADAMS的安裝目錄C∶MSC.SoftwareAdamsMDR2common,依次輸入mdi→cr-user→回車→再回車,然后切換到consub.obj文件的保存目錄輸入consub.obj→回車,這時提示輸入dll文件名,輸入cosub.dll回車,動態(tài)鏈接庫文件consub.dll就生成了。5)執(zhí)行setting-solver-executable把生成的動態(tài)鏈接庫文件加載到adams/view中。6)最后編制腳本調(diào)用語句,調(diào)用dll文件,利用腳本仿真控制對話框進(jìn)行仿真。
堤壩搶險打樁六足機(jī)器人凸型階梯障礙行走仿真采用了ADAMS用戶子程序的控制方法。仿真控制流程如圖3所示,在ADAMS/view中建立仿真模型、設(shè)置傳感器和仿真腳本,規(guī)則步態(tài)規(guī)劃和二次規(guī)劃都寫入控制子程序,然后生成動態(tài)鏈接庫,利用動態(tài)鏈接庫來控制ADAMS/view中的仿真模型進(jìn)行仿真。當(dāng)足踩到障礙時,通過足端傳感器來感知當(dāng)前仿真時間和當(dāng)前的關(guān)節(jié)角位移,返回子程序進(jìn)行二次規(guī)劃。

圖3 行走機(jī)構(gòu)虛擬樣機(jī)簡化模型
在平地行走仿真中,我們采用了step函數(shù)控制關(guān)節(jié)旋轉(zhuǎn)角度的方法順利進(jìn)行了平地仿真,但是在如圖4所示的越障行走中,如果關(guān)節(jié)驅(qū)動繼續(xù)按平地規(guī)劃轉(zhuǎn)動,就會把機(jī)體頂起,整個機(jī)體就會失穩(wěn),這是機(jī)器人所不允許的。這就需要通過傳感器感知障礙并能實(shí)時獲得踩到障礙的時間和關(guān)節(jié)角度,以便進(jìn)行二次規(guī)劃順利越過障礙。

仿真的目的是要六足機(jī)器人在踩到階梯障礙時能改變運(yùn)動規(guī)劃,使機(jī)器人繼續(xù)平穩(wěn)前行。在腿1踩到障礙時,通過力傳感器檢測到障礙,這時腿1的驅(qū)動關(guān)節(jié)必須停止,由擺動相轉(zhuǎn)為支撐相,腿2開始運(yùn)動。因此,需要實(shí)時測得踩到障礙時的關(guān)節(jié)角度值,并賦給腿1的關(guān)節(jié)驅(qū)動,作為下次關(guān)節(jié)轉(zhuǎn)動的起始值。我們利用功能子程序解決了這個問題,代碼如下:
CALL SYSFNC('AZ',IPAR1,2,DIS1,ERRFL
WEI1=DIS1
經(jīng)計算得知,在3*3式密碼中,折線經(jīng)過的點(diǎn)數(shù)為4時有1624種情況,經(jīng)過的點(diǎn)數(shù)為5有7152種,經(jīng)過的點(diǎn)數(shù)為6有26016種,經(jīng)過的點(diǎn)數(shù)為7有72912種,經(jīng)過的點(diǎn)數(shù)為8和9均有140704種。可得,3*3圖形的密碼排列情況共389112種。
CALL SYSFNC('AZ',IPAR2,2,DIS2,ERRFLG)
WEI2=DIS2
CALL RSTRNG(WEI1,anl_1,length,istat)
CALL RSTRNG(WEI2,anl_2,length,istat)
MOTION_2_fix='MOTION/2,FUNCTION ='//trim(anl_1)
CALL MODIFY(MOTION_2_fix,st)
MOTION_3_fix='MOTION/3,FUNCTION ='//trim(anl_2)
CALL MODIFY(MOTION_3_fix,st)
腿1踩到障礙,腿1轉(zhuǎn)為支撐相,腿2開始運(yùn)動,這就需要腿2擺動的起始時間點(diǎn)就是腿1踩到障礙時的時間,因此腿1踩上障礙的時間點(diǎn)需要實(shí)時獲得作為腿2腿運(yùn)動的起始時間,我們通過ADAMS子程序功能中的時間獲取函數(shù)解決了這個問題,代碼如下:
CALL GETSTM(TIME1)
這樣,兩個重要參數(shù)都可以實(shí)時獲得了,再把平地規(guī)劃好的其它腿關(guān)節(jié)的驅(qū)動參數(shù)都寫入子程序,按前面講述的方法編譯生成dll文件,就可以用通過子程序控制機(jī)器人行走了。
本文作為對六足機(jī)器人非平坦路面行走的初步探討,將以重心固定的三步一動的步態(tài)進(jìn)行越障仿真分析。所謂三步一動就是:首先腿1、腿2、腿3依次邁步,接著6只足著地同時支撐機(jī)體前移,然后腿4、腿5、腿6依次邁步,最后6只足支撐機(jī)體再前移,一個步態(tài)周期完成。之所以選擇此種步態(tài),是因為此種步態(tài)無需為穩(wěn)定性考慮,任意時刻都至少有5條腿處于支撐相,確保整個機(jī)體任何時刻都處于靜態(tài)穩(wěn)定狀態(tài),但行走效率較低。
1)機(jī)體平穩(wěn)性分析。
從圖5、圖6可以看到:
a.機(jī)體沿x方向以分步移動的方式向前行走,左右沿y方向有輕微搖動,在32 s左右附近出現(xiàn)了比較明顯的y方向偏移,這是因為在32 s時,足3是踩在階梯邊緣,支撐機(jī)體移動時足端有輕微振動,使機(jī)體產(chǎn)生了一定量的偏移。
b.機(jī)體無明顯的上下起伏,上下起伏在30 mm之內(nèi),與機(jī)體高度相比非常小,在踩到障礙時機(jī)體能保持平穩(wěn)。
2)各腿關(guān)節(jié)角度曲線圖。
從圖7可以看到,腿1、腿3、腿5在踩到障礙時,傳感器檢測到障礙,機(jī)器人對踩到障礙的腿關(guān)節(jié)調(diào)整規(guī)劃,保持機(jī)體平穩(wěn)不被頂起或跌落,其它3腿行進(jìn)過程中沒有障礙,按規(guī)則步態(tài)前行,越過障礙后,整個機(jī)體又恢復(fù)了有規(guī)律的行走。

圖5 階梯障礙仿真視頻截圖

圖6 機(jī)體重心在行進(jìn)過程中的位移
對六足機(jī)器人非平坦路面行走進(jìn)行了初步探討,探索了一種利用ADAMS軟件子程序控制技術(shù)對六足機(jī)器人跨越障礙進(jìn)行仿真的方法,并對堤壩搶險打樁六足機(jī)器人跨越階梯障礙并且平穩(wěn)行走進(jìn)行了仿真、分析,在足式步行機(jī)器人技術(shù)領(lǐng)域具有一定的理論意義和實(shí)用價值。
[1] 鄭凱,胡仁喜.ADAMS 2005機(jī)械設(shè)計高級應(yīng)用實(shí)例[M].北京∶機(jī)械工業(yè)出版社,2006∶90-96.
[2] 宋磊.四足移動機(jī)器人步態(tài)規(guī)劃與足力控制研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[3] 陳立平,張云清.機(jī)械系統(tǒng)動力學(xué)分析及ADAMS應(yīng)用教程[M].北京∶清華大學(xué)出版社,2005:255-272.
[4] 張錦榮.基于虛擬樣機(jī)技術(shù)的四足機(jī)器人仿真研究[D].西安:西北工業(yè)大學(xué),2007:11-20.
[5] Niku.機(jī)器人學(xué)導(dǎo)論-分析、系統(tǒng)及應(yīng)用[M].孫富春,朱紀(jì)洪,劉國棟,等譯.北京∶電子工業(yè)出版社,2004:74-78.
[6] 毛宗源.機(jī)器人的智能控制方法[M].北京∶國防工業(yè)出版社,2002∶4.
[7] Bares J E,Whittaker W I.Configuration of autonomous walkers for extreme terrain [J].The Ineternational Journal of Robotics Research,1993,12(6):535-559.
[8] 胡廈.六足步行機(jī)器人直行關(guān)鍵技術(shù)研究[D].杭州∶浙江大學(xué),2008∶1-30.
[9] 蔡民祥.六腳機(jī)械載具之設(shè)計與運(yùn)動分析[D].臺北:中央大學(xué),2003∶1-30.
[10] Lee TT,Liao CM.On the Stability Propertiesof Hexapod Tripod Gait[J].Journal of Robotics Automation,1988,8(4):420-430.