軟件的初始化工作主要包括:從配置文件讀入移動機器人的數量、軟件運行時所需文件的路徑和繪制窗口大小等參數;導入虛擬場景所需的素材,如聲音、紋理和3ds模型等,本文采用lib3ds庫來讀取3ds文件[6];初始化ODBC 接口,獲取ODBC 環境句柄,實現進程與數據庫的數據交互;初始化游戲手柄和UDP通信網絡;初始化ODE環境,創建動力學環境和碰撞檢測空間,創建移動機器人和仿真場景。
(2)物體運動參數的接收
在仿真循環中,利用UDP協議實現本地進程與其他進程之間的通信,該軟件也可以從鍵盤、游戲手柄和網絡數據庫讀入機器人的動作指令。
(3)物體碰撞檢測
本文將與物理引擎有關的操作函數封裝成動態鏈接庫,通過使用動態鏈接庫技術,軟件可以實現模塊化,即由相對獨立的組件來組成整個軟件。這簡化了軟件項目的管理,而且能夠節省內存,也有助于資源共享和代碼更新移植。
ODE 的碰撞檢測引擎需要給定兩個物體的形狀信息。在每一仿真循環中,調用dSpaceCollide函數獲取可能發生接觸的物體,再由該函數指定的碰撞回調函數nearCallback將接觸點信息傳給用戶。由此,用戶可根據自身需要建立物體間的碰撞連接點,每個連接點都有相應的dContactGeom 結構,該結構保存著碰撞點的位置和兩個物體互相進入對方的深度。為了提高仿真速度,軟件使用較少的關節和較少的接觸面,如果條件允許,也可以使用無摩擦或者粘性接觸面。下面給出碰撞回調函數中關于接觸面的參數設置:
surface.mu=3.0; //庫侖摩擦力系數
surface.mu2=0.0; //庫侖摩擦力系數2
surface.slip1=0.05; //摩擦力1方向的滑動摩擦力
surface.slip2=0.05; //摩擦力2方向的滑動摩擦力
surface.bounce=0.9; //反彈系數
surface.bounce_vel=1.0; //反彈所需要的最小碰撞速度
surface.soft_erp=0.2; //接觸點法線方向“柔軟”參數
surface.soft_cfm=1e-4; //接觸點法線方向"柔軟"參數
(4)三維圖形繪制
在仿真軟件中,與繪制圖形有關的操作函數都被封裝成動態鏈接庫,該動態鏈接庫只向仿真軟件提供若干個接口,如在繪制機器人時,只需根據機器人的不同部位,設定相應的繪制參數,然后輪流調用dsDrawCylinder、dsDrawBox兩個函數即可實現,dsDrawCylinder函數的輸入參數分別為物體位置、朝向、長度和半徑,而dsDrawBox函數的輸入參數為位置、朝向和尺寸;在繪制從x文件和3ds文件導入的三維模型時,只需調用dsDrawTriangleD函數即可。
4 仿真實例
本文在VS2008平臺上開發仿真軟件,ODE版本為0.9,OpenGL版本為1.0,軟件為控制臺程序。
在檢驗路徑規劃算法或避障算法時,可先創建一個虛擬足球場,再設定機器人初始位置的絕對坐標為(-9.0,-5.0),目的地絕對坐標為(5.5,5.0),并在路徑的中間布置8個或更多的障礙物,障礙物直徑為50 cm,其位置參數可以人為指定,也可以隨機產生,然后在虛擬場景的二維地圖上,以宏觀鳥瞰的遠程視野,對避障算法的仿真結果進行觀察、比較和分析,仿真效果如圖4所示。若需了解算法運行的細節,可以直接觀察3D環境的仿真過程,或通過分析記錄下的仿真數據來比較算法的優劣。而在檢驗多機器人協作算法時,可同時利用三維環境和二維全局地圖來對算法性能進行比較,以由多個移動機器人組成的足球隊為例,移動機器人需按照協作算法來實現站位[7]。

此外,在采用PID控制算法對機器人位置進行控制時,有比例增益、微分增益和積分增益三個參數需要整定測試[8],此時,可以利用仿真軟件對參數進行步估計。實驗方法是:先設定初始位置和目的地位置,然后讓機器人以最快速度向目的地移動,當到達目的地后,就停止不動。在機器人移動過程中,記錄下機器人在每一仿真步驟中的位姿(x,y,θ)T,并將位姿數據歸一化,以便能夠將三維的向量繪制在同一坐標系下,同時記錄機器人走完設定路徑所需的時間。圖5(a)為采用比例控制算法的機器人位姿變化軌跡,機器人走完該路徑所需時間為16.239 s,圖5(b)為采用比例-微分控制算法的變化軌跡,所需時間為14.026 s。從圖5的結果可看出,采用比例控制算法的系統輸出無超調,而采用比例-微分控制算法的系統,其控制目標會出現微小超調,但機器人的響應速度明顯提高,尤其是機器人朝向角的控制,能夠更加快速準確地跟隨給定值。

在移動機器人控制技術和多機器人協作技術的研究中,為了能夠對算法參數進行有效檢驗和測試,本文利用ODE、OpengGL和VS2008開發出移動機器人仿真軟件。該軟件采用ODE生成動力學世界和模擬物體碰撞,充分利用了ODE的快速性和精確性,仿真軟件還采用高效的圖形接口OpenGL來繪制圖形,提高軟件的圖形處理能力,改善圖形顯示效果。仿真實例證明,該軟件具有較好的擴展性和實用性。
用戶評論
共 0 條評論