肖 麗
(鄭州輕工業學院,河南 鄭州 450002)
隨著機器人技術的快速發展,機器人技術在制造業、物流、服務業、醫療康復、農業等方面獲得了廣泛應用。據統計,我國需要大量的機器人技術方面的人才。因此,培養機器人設計、操作、維護人員對促進我國機器人產業的快速發展具有重要意義。目前的機器人成本普遍偏高,受各方面條件限制,機器人在國內高校普及較少,機器人教學只是理論教學,無法開展實踐教學。國內許多高校開展了機器人仿真系統的研究,于振中、程智勇等[1-2]基于OpenGL技術開發了工業機器人三維仿真系統。劉振宇等[3]基于OpenGL和Matlab軟件開發了機器人在線仿真實驗平臺。彭建盛等[4]基于LabVIEW軟件開發了智能機器人仿真系統。針對目前實際情況,為滿足機器人課程實踐及相關培訓的要求,設計一種虛擬機器人仿真系統具有重要意義。同時在設計的機器人仿真系統上可以進行運動學建模與仿真,離線編程與運動仿真,可以降低機器人生產成本與提高執行效率[5]。
本文運用VC語言設計開發虛擬機器人仿真系統。機器人仿真系統具有機器人運動學解算、軌跡規劃、示教再現等功能。該機器人仿真系統能夠為操作者提供豐富的場景信息和更逼真的臨場感受,極大提高人機交互性能。
機器人仿真系統需要有友好的人機交互界面。因此,本系統在Windows XP操作系統下,采用Visual C++語音進行開發。Visual C++的開發環境簡潔。用戶可以利用系統自帶的工具庫高效率地開發應用程序。同時,利用VisualC++軟件MFC類庫的API函數和消息,開發各種應用程序十分便捷。
依據實踐教學和技術人員培訓需求,機器人仿真系統具有點位控制功能和示教功能。機器人仿真系統主要功能有:提供友好的用戶界面接口;機器人三維運動仿真;運動學方程的正逆解運算;運動軌跡規劃;機器人末端關節點位姿的實時顯示;運動軌跡數據存儲;示教再現和數據分析;向用戶提供常見的幫助信息。虛擬機器人系統總體結構如圖1所示。

圖1 機器人仿真系統總體結構
單關節控制模塊用來控制機器人單關節的運動。單關節的運動穩定性和精度直接決定了整個機器人運動的穩定性和運動精度。單關節控制模塊為機器人單關節調試提供了平臺,其界面如圖2所示。
在控制界面上可以設定機器人關節運動參數(運動的步長和速度)。步長單位為度。為了直觀控制速度參數,界面上“速度”輸入框內的數值為各關節所能承受的最大速度的百分比。單關節控制模塊可以控制6個關節的正反轉。為方便在虛擬機器人系統控制系統調試,在機器人關節的,運動狀態及運動參數,比如目標位置、當前實際運行的位置、關節的運動軌跡可以在顯示模塊實時顯示。
多關節協調平穩運動是機器人末端執行器要實現點位運動和直線插補運動的基礎[6]。因此,設計的機器人仿真系統應具有多關節聯動控制的功能,設計的界面如圖3所示。算法模塊是多關節聯動控制模塊的核心內容。根據機器人的運動學方程,利用VC語言編寫了機器人的運動學程序,具體包括:運動學正逆解程序、直線和圓弧插值運算程序、運動軌跡規劃、不同坐標系下的運動轉換計算程序等。
設計的機器人仿真系統具有兩種聯動控制方式:基于關節角度和基于目標點位姿。
(1)基于關節角度。在界面中“關節角度”輸入框里,填寫各關節的期望角度。事件管理模塊調用運動學正解程序,可以計算出機器人末端執行器的位姿。然后,調用軌跡規劃程序,機器人各關節以設定的速度、加速度平穩的運動到期望角度。為避免機器人關節發生干涉,保障機器人運行安全,依據真實機器人的關節實際運動范圍,設置各關節轉角的極限值。若輸入的關節角度超出了關節轉角的極限值,則系統報警,彈出警告消息,提示用戶“輸入正確的關節角度”。
(2)基于目標點位姿。根據目標位姿,調用機器人運動學逆解程序,基于運動路程最短的原則,可以求出一組最優解。通過軌跡規劃和直線插補計算,將插補得到的各關節速度、位置參數傳遞給Open GL虛擬機器人。驅動虛擬的機器人運動到目標位姿。若輸入的目標位姿超出了機器人作業空間,則發出警告消息,彈出對話框:“目標點超出了作業空間”。此種情況,即機器人不存在逆解。
機器人仿真系統具有數據存儲功能,設計了數據管理模塊。點擊按鈕“存儲軌跡”,保存機器人的運行軌跡,以便示教再現過程讀取運動數據。多關節控制界面實時顯示機器人的姿態和各關節的當前角度值,操作者可以實時觀察機器人的運動狀態。
目前常用的計算機三維圖形仿真軟件包括OpenGL,Direct3D和Glide等。三維運動仿真模塊是機器人仿真系統的核心模塊,該模塊采用計算機三維圖形學仿真軟件建立機器人的幾何模型,并通過設置幾何和物理約束的形式,建立各關節單元的運動模型。
本系統采用OpenGL軟件對機器人三維模型(虛擬機器人)進行建模,如圖4所示。在所創建的VC工程中添加OpenGL的3個靜態鏈接庫,用來調用建立的機器人三維模型。虛擬機器人跟隨運動的實現方式為:機器人關節的運動參數和虛擬機器人之間以靜態變量方式進行參數傳遞。虛擬機器人模塊中的定時器實時檢測靜態變量值,并使虛擬機器人依據靜態變量值的大小進行運動。同時,為了方便用戶操作,三維模型還具有點擊選擇的功能,鼠標單擊某個關節,然后拖拽關節,該關節跟隨圖標進行運動。

圖4 虛擬機器人模型
顯示模塊的功能是:顯示虛擬機器人的運動狀態,主要包括數據顯示子模塊和圖形顯示子模塊,其目的是可以讓操作人員觀察機器人的運行狀態。數據顯示界面如圖5所示。數據顯示界面主要用來顯示機器人關節的期望角度、當前實際運動角度值、機器人的位置和姿態。該模塊可以實時讀取虛擬機器人各關節的角度,計算出機器人末端的位姿,并輸出在顯示模塊上。
圖形顯示界面以曲線的形式實時顯示虛擬機器人末端的運動狀態。操作人員可以根據運動曲線得到關節對輸入信號的響應特性。該功能可以反映機器人的運動控制效果,從而驗證控制算法的有效性。

圖5 數據顯示面
設計的仿真系統如圖6所示。控制界面主要包括三維仿真界面、數據狀態顯示、操作界面三大部分。
操作界面有啟動、運動學解算、數據存儲、示教再現等操作按鈕,完成對虛擬機器人的操控。數據狀態顯示模塊包括當前角度、當前位置姿態、期望角度和運動速度等機器人運動參數的顯示。在控制界面上輸入機器人運動參數,虛擬機器人可以按照輸入的參數運動,如圖6所示。測試結果表明,該系統實現了對虛擬機器人的實時控制。

圖6 仿真系統運行界面
本文綜合應用運用OpenGL軟件和VC語言設計開發了六自由度機器人仿真系統,介紹了機器人各個模塊的功能與設計過程。該系統具有友好的界面,機器人三維仿真模型與VC控制界面數據可以實時交互,實現了對虛擬機器人的實時控制,可用于機器人培訓與機器人教學,也可用于機器人控制算法研究。