黃曉辰,張明路,張小俊,白豐,高涵
(河北工業大學機械工程學院,天津 300130)
一種機器人三維實時運動仿真方法
黃曉辰,張明路,張小俊,白豐,高涵
(河北工業大學機械工程學院,天津 300130)
針對機器人三維實時運動仿真常用方法中不能與控制系統開發平臺相融合、缺乏算法支持的問題,提出一種機器人三維實時運動仿真方法.該方法使用SolidWorks軟件作為機器人三維模型顯示的載體,采用VisualStudio C++軟件對該三維軟件進行二次開發,將控制系統與三維實時仿真平臺相融合,不僅能夠對機器人下達控制指令,而且利用三維實時仿真平臺對該機器人的運動進行實時仿真.研究表明,使用這種實時運動仿真方法能夠在保證精度的前提下,使用反饋回的位置數據實時驅動相應的等比例三維模型,實時記錄機器人的運動數據,使機器人的運動更加直觀和準確.
機器人;坐標變換;軌跡跟蹤;實時仿真
隨著計算機技術的普及,使用計算機對機器人運動過程進行實時運動仿真成為一種趨勢[1].在機器人運動過程中,對其運動狀態的三維實時仿真直觀的顯示機器人實時的運動狀態,方便操作人員遠程觀測,對于驗證機器人工作原理、工作空間及碰撞檢測預警都具有非常重要的指導意義[2].三維實時運動仿真系統由于對機器人的運動狀態進行實時跟蹤,時刻要對機器人當前位姿進行計算,需要計算機很大的系統開銷.此外,搭建的計算機模型系統越接近于真實系統,計算機進行數據計算所需的系統開銷越大[3].受限于現階段計算機的軟硬件系統,通常計算機仿真系統是對實際系統的關鍵信息進行仿真,并不能完全反映出實際系統真實的運動特性,尤其是在系統的一些臨界點上容易出現錯解[4-5].
為解決三維模型實時顯示的問題,國內外很多學者和研究人員提出很多三維實時運動仿真方法,主要集中在基于數學軟件(如Matlab、Maple)仿真[6-10]和基于圖形庫(如OpenGL)仿真[11-15]兩個方向.基于數學軟件的仿真方法具有精度高的優點,很多算法可以集成至仿真平臺中,然而這種仿真平臺一般缺乏三維圖形顯示功能,不能直觀地表達出機器人各連桿和末端執行器的姿態,此外,存在與控制軟件平臺與圖形采集平臺難以融合的問題;而采用OpenGL圖形庫作為三維模型顯示的載體具有較強的平臺移植性且通用性較強,但是OpenGL圖形渲染能力差,導致三維模型的觀測效果不佳,而且OpenGL程序建模過于復雜,存在仿真系統開發周期過長的問題.
針對上述方法的弊端,提出一種基于SolidWorks的三維實時運動仿真方法,這種方法使用Visual Studio C++軟件對SolidWorks軟件進行二次開發.其優勢在于,使用成熟的商業三維軟件SolidWorks作為顯示載體可以全面清晰的顯示機器人的三維模型,與Visual Studio C++開發出的控制系統有機的集合,解決了基于數學軟件仿真和基于圖形庫仿真存在的問題.采用這一方法能夠在機器人運動的同時,實時驅動計算機中相應的等比例三維模型做相同的運動,實現遠程對機器人運動狀態進行全方位觀測,并實時記錄機器人的運動數據,使機器人的運動更加直觀和準確.
SolidWorks軟件提供的二次開發接口(API),使用戶能在軟件本身功能的基礎上開發出新的功能模塊,滿足特定的需求[16].作為基于Windows平臺的三維造型軟件,SolidWorks軟件本身具有完善的虛擬三維模型顯示功能.
二次開發的優勢在于它可以通過SolidWorks軟件提供的API調用軟件本身的功能,直接在已有功能的基礎上開發特定功能的軟件模塊[17].文中提出的方法利用SolidWorks軟件作為顯示三維模型的載體,采用Visual Studio C++開發工具對三維顯示軟件進行二次開發,生成實時運動仿真軟件,利用Access數據庫進行數據傳遞并保存運動變量及仿真數據,使虛擬系統實時對實際系統進行運動仿真,實現高精度仿真并完整記錄仿真數據,其開發流程如圖1.

圖1 三維實時運動仿真開發流程圖Fig.1Three-dimensional real-time motion simulation development flowchart
為保證虛擬系統仿真的精確度,首先要求虛擬系統的三維模型建模準確,保證虛擬系統模型的建立與實際系統相一致.其次程序中的模型需要采用計算機圖形學進行建模,程序建模時抽象出的數學模型需要與三維模型抽象出的數學模型相同.
2.1 虛擬系統三維模型建模
虛擬系統中的三維模型需要與實際系統相一致,通常采用相同比例或等比例縮放進行建模.在SolidWorks軟件中建立模型通常有2種方法:編程建模和手工建模.兩種方法各有利弊,采用編程建模一般只能建立形狀簡單的零件,若零件較復雜,優先采用手工建模.
對實際系統進行分析,將相對位置不變的構件劃分為同一零件,在SolidWorks軟件中分別建立與實際系統相對應的零件.在零件進行裝配的過程中,將所有的零件按照實際系統的裝配關系進行裝配,調整零件間裝配關系,使虛擬系統與實際系統參數相一致.在SolidWorks軟件中,零件的位姿由零件本身的坐標原點位置及方向決定,而裝配所有零件后的裝配體文件本身存在一個全局坐標系,其中包含的每個零件都存在各自的局部坐標系,需要計算并規劃出全局坐標系和局部坐標系的關系才能建立起數學模型,全局坐標系與局部坐標系的關系如圖2.

圖2 全局坐標系與局部坐標系Fig.2Global coordinate system and local coordinate system
對應在SolidWorks API中,裝配體中每個零件的位姿都是由一個相對位置為4行4列的位姿矩陣表示,其中位姿矩陣的前3行3列代表該零件的坐標系X、Y、Z三坐標軸方向,第4列前3行代表其坐標原點位置,第4列第4行代表縮放系數.SolidWorks API的層次結構分明,上層與下層的接口可以通過方法或屬性承接,且每個接口都包含若干方法和屬性.通過AssemblyDoc接口下的AddComponent2()方法在程序中實現裝配體文件中各零件的添加;通過調用ModelDoc2接口下的GetA-ctiveConfiguration()方法可以得到Configuration接口,繼續調用Configuration接口下的GetRootComponent()方法可以得到Component2接口,繼續調用Component2接口下的的GetXform()方法即可得到位姿矩陣中各元素的值.使用這種方法,獲得虛擬系統所有零件的初始位置位姿矩陣,調用OleDb類將這些信息存入到Access數據庫中.
2.2 虛擬系統程序建模
計算機圖形學的本質是坐標變換[18],按照計算機圖形學中圖形變換的規則在虛擬系統的轉動關節或平動關節建立局部坐標系,按照機器人運動學解算方法,帶入計算公式得到各個關節變化規律,完成虛擬系統數學模型的搭建,將數學模型寫入程序.
虛擬系統可以看作是由一系列連接在一起的連桿構成,連桿間的運動副起到約束連桿間相對運動的作用.連桿通常分為終端連桿和中間連桿兩類.從一個終端連桿開始,通過關節連接到下一個中間連桿,將所有的中間連桿都使用關節連接在一起,最后關節連接另外一個終端連桿.連桿從基礎連桿到末端執行器依次編號為0,1,2…,n,連接第i 1個連桿和第i個連桿的運動副記作第i個關節,這樣虛擬系統可以看作是由n+1個連桿和n個關節組成[19].在第i個關節處建立第i個坐標系,就能夠按照兩個旋轉和兩個平移的坐標系變換方法建立相鄰兩連桿i 1與i之間的相對關系.坐標系間的關系根據如下規則定義[20-21]:
1)繞Zi1軸旋轉角,使Xi1軸轉到與Xi同一平面內.
2)沿Zi1軸平移一距離di,把Xi1移到與Xi同一直線上.
3)沿Xi軸平移一距離ai1,把連桿i 1的坐標系移到使其原點與連桿n的坐標系原點重合的地方.
4)繞Xi1軸旋轉角,使Zi1轉到與Zi同一直線上.
相鄰坐標系間的計算關系如公式1所示.

根據上述坐標系間參數變換關系,獲得關節變量參數表,帶入運動學公式求出局部坐標系相對于全局坐標系的位置和姿態關系,得到虛擬系統的數學模型,將其寫入程序即可.
將程序建模與三維模型建模建立對應關系后,調整各連桿的位置和姿態,即實現了實際機器人系統與虛擬系統的一一對應.實際機器人開始運行時,為實現虛擬系統跟隨實際機器人系統的實時運動仿真,在程序中以固定的時鐘讀出Access數據庫中虛擬系統各連桿的位置信息.結合控制器反饋回的實時數據,計算當前所有零件的新位姿,遍歷所有零件,調用ModelDocExtension接口下的SelectByID2()方法選中零件,再調用Component2接口下的SetXform()方法刷新各零件的新位置,即可實現虛擬系統的實時運動仿真.此外,仿真過程中產生的運動數據通過調用OleDb類,實時的記錄至Access數據庫中,方便得到系統的運動特性,整個系統的操作流程如圖3.
需要特別注意的是,時間間隔參數表示虛擬系統運動仿真刷新頻率,在每個時間間隔內,整個程序會按照實際系統實時運動狀態計算出虛擬系統調整后的新位姿,并將計算出的運動位姿記錄至數據庫中.
這一參數直接影響運動仿真的連貫性,在計算機硬件允許的條件下,盡量縮短時間間隔,若時間間隔參數過大,運動仿真會出現明顯的停頓感.

圖3 三維實時運動仿真流程Fig.3Three-dimensional real-time motion simulation process
運用上述方法可以實現多種類型的機器人運動過程的仿真,以一機器人底盤單腿為例介紹實時仿真過程,該機器人單腿實物模型如圖4.
4.1 機器人單腿三維模型建模
首先在SolidWorks軟件中建立與機器人單腿相等比例的三維模型,單腿虛擬三維模型如圖5.
調整機器人單腿虛擬三維模型初始位置與實際機器人單腿位置相一致,如圖6.
在程序中遍歷虛擬三維模型裝配體中所有零件,使用GetXform ()方法獲取各零件位姿矩陣,將初始位姿數據存入到Access數據庫中.
4.2 機器人單腿程序建模
按照1.2中所述規則建立各關節坐標系,如圖7.
建立好坐標系后,按照旋轉變換關系得到各關節變量參數表,如表1.

圖4 機器人單腿實物模型Fig.4Robot leg physical model

圖5 機器人單腿虛擬三維模型Fig.5Virtual three-dimensional model of robot leg
將關節變量參數表中的數據順序帶入至公式(1)中得到機器人單腿虛擬三維模型的數學模型,其末端執行器車輪的位姿計算結果如表2.將得到的數學模型寫入程序,至此完成虛擬三維模型與程序數學模型的對應關系.
4.3 機器人單腿實時運動仿真
在程序中設定仿真系統的刷新周期是250 ms,結合控制器反饋的各電機實時數據,每250 ms仿真系統就對機器人三維模型重新計算一遍當前位姿,并刷新顯示機器人三維模型,并記錄機器人所有的運動信息至Access數據庫中.因數據庫記錄數據量過于龐大,為進行實時仿真結果對照,只分析機器人末端執行器車輪部分在10 s內記錄下的運動數據,將數據描繪在機器人末端執行器位置跟蹤仿真曲線上,如圖8.

圖6 調整后的機器人單腿虛擬三維模型Fig.6Virtual three-dimensional model of robot leg after adjusting

圖7 建立機器人單腿坐標系Fig.7Establish robot leg coordinate system

表1 機器人單腿關節變量參數表Tab.1Robot leg joint variable parameter
仿真曲線中,點表示Access數據庫中機器人的末端位置,曲線表示其末端仿真曲線,二者是吻合的,從而證明這種三維實時運動仿真方法是正確的,實現了對機器人單腿的運動過程的實時仿真.

表2 機器人單腿末端執行器位姿矩陣Tab.2Position and orientation matrix of robot leg
針對機器人三維實時運動仿真常用方法中不能與控制系統開發平臺相融合、缺乏算法支持的問題,提出一種機器人三維實時運動仿真方法.該方法使用SolidWorks作為三維虛擬系統顯示的載體,使用VisualStudio C++開發工具對該顯示軟件進行二次開發,生成實時運動仿真軟件,并利用Access數據庫進行數據傳遞并保存運動變量及仿真數據,實現對機器人運動過程的實時仿真.通過實例驗證,使用這種實時運動仿真方法能夠在保證精度的前提下,實時顯示實際機器人的運動狀態,并能夠完整記錄機器人的運動數據.
[1]DengSihao,Cai Zhenhua,FangDandan,etal.Applicationofrobotofflineprogramminginthermalspraying[J].SurfaceandCoatingsTechnology,2012,206(19-20):3875-3882.
[2]李剛俊,陳永.機器人的三維運動仿真[J].西南交通大學學報,2002,37(3):273-276.
[3]徐正,單忠德,張倩.基于虛擬現實建模語言的某搶險工程機械運動仿真[J].機械工程學報,2013,49(15):163-168.
[4]Carlos A Jara,Francisco A Candelas,Pablo Gil,et al.EJS+EjsRL:An interactive tool for industrial robots simulation,Computer Vision and remote operation[J].Robotics and Autonomous Systems,2011,59:389-401.
[5]Servet Soyguder,Hasan Alli.Computer simulation and dynamic modeling of a quadrupedal pronking gait robot with SLIP model[J].Computers and Electrical Engineering,2012,38:161-174.
[6]李憲華,郭永存,張軍,等.基于MATLAB的模塊化機器人手臂運動學算法驗證及運動仿真[J].計算機應用研究,2013,30(6):1682-1685.

圖8 機器人單腿末端執行器位置跟蹤仿真曲線Fig.8Robot leg end-effector position tracking simulation curve
[7]Cheng Guoyang,Hu Jingao.Robust proximate time-optimal servomechanism with speed constraint for rapid motion control[J].Robotics and Computer-Integrated Manufacturing,2014,30:379-388.
[8]葛文杰,沈允文,楊方.仿袋鼠機器人跳躍運動步態的運動學[J].機械工程學報,2006,42(5):22-26.
[9]Tao Liu,Tobia Zordan,Bruno Briseghella,et al.An improved equivalent linear model of seismic isolation system with bilinear behavior[J].Engineering Structures,2014,61:113-126.
[10]CalebSawade,StephenTurnock,Alexander Forrester,et al.Improvedrehabilitation andtrainingtechniques throughtheuseof motion simulation-Core strength conditioning for elite rowers[J].Procedia Engineering,2012,34:646-651.
[11]溫磊,梁真毓,遲永濱.基于VB和OpenGL的挖掘機械實時運動仿真[J].計算機輔助工程,2008,17(2):69-72.
[12]陳剛,崔壯平,曾楊,等.基于物理引擎的多體系統實時運動仿真研究[J].系統仿真學報,2013,25:167-172.
[13]王哲,王知行,劉文濤,等.并聯機床工作空間分析及實時運動仿真的研究[J].中國機械工程,2001,12(9):969-972.
[14]張彥斐,宮金良,魏修亭.一種串聯機器人的實時運動仿真[J].組合機床與自動化加工技術,2013,5:42-43.
[15]傅由甲,楊克儉.基于碰撞響應的三維空間多剛體實時運動仿真[J].計算機仿真,2006,23(9):198-201.
[16]SolidWorks公司著.SolidWorks裝配體建模[M].北京:清華大學出版社,2005.
[17]田芳勇,姜衍倉,胡赤兵,等.橢圓齒輪參數化設計與運動仿真系統的開發[J].蘭州理工大學學報,2011,37(2):30-33.
[18]Zhang Yunong,Wu Huarong,Guo Dongsheng.The link and comparison between velocity-level and acceleration-level repetitive motion planning schemes verified via PA10 robot arm[J].Mechanism and Machine Theory,2013,69:245-262.
[19]蔡自興.機器人學[M].第2版.北京:清華大學出版社,2009.
[20]Craig John J.機器人學導論[M].北京:機械工業出版社,2005.
[21]陳懇,楊向東,劉莉,等.機器人技術與應用[M].北京:清華大學出版社,2007.
[責任編輯 田豐夏紅梅]
Three-dimensional real-time motion simulation method of robots
HUANG Xiaochen,ZHANG Minglu,ZHANG Xiaojun,BAI Feng,GAO Han
(School of Mechanical Engineering,Hebei University of Technology,Tianjin 300130,China)
Aiming at the problem that the three-dimensional real-time motion simulation method of robots cannot fuse with the control system development platform and lacks algorithms support,a three-dimensional real-time motion simulationmethod was proposed.In thismethod,SolidWorkssoftwareworksasa carrierof therobot three-dimensionalmodel. This three-dimensional software is secondary development by Visual Studio C++software.Control system and the threedimensional real-time simulation platform are integrated,then not only can the robot be commanded,but also the motion of the robot can be real-time simulated by the three-dimensional real-time simulation platform.Research shows that,by using this method,the proportional three-dimensional model can be real-time driven by using the positional data that be fed back on the premise of guaranteeing precision,and the motion of robots can be displayed intuitively and precisely, and the data generated by movement of robots can be completely recorded.
robots;coordinate transformation;trajectory tracking;real-time simulation
TP391.9
A
1007-2373(2015)04-0042-06
10.14081/j.cnki.hgdxb.2015.04.009
2014-12-26
國家高技術研究發展計劃(863計劃)(2011AA040201);機器人技術與系統國家重點實驗室開放研究項目(SKLRS-2013-ZD-04)
黃曉辰(1988-),男(漢族),博士生.