前言:尋找寫作靈感?中文期刊網用心挑選的ROS下機械臂仿真實驗平臺設計探析,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:針對機械臂成本高不利于推廣以及遠程教學場景下難以進行仿真實驗的問題,設計了一種基于機器人操作系統(RobotOperatingSystem,ros)的機械臂仿真實驗平臺,該仿真實驗平臺包括機械臂仿真模塊、ROS分布式節點控制模塊、上位機控制軟件,其中,上位機控制軟件完成機械臂的末端控制、關節控制以及機械臂的狀態顯示等功能;ROS分布式節點控制模塊負責將上位機控制軟件發送的控制指令處理后發送給機械臂仿真模塊;基于該仿真實驗平臺,僅需修改機械臂模型配置文件即可實現對不同種類機械臂的兼容與個性化定制,大幅降低了實驗成本。實踐證明,該虛擬仿真實驗平臺具有可擴展性強、易于維護等優點。
關鍵詞:仿真實驗平臺;上位機軟件;ROS分布式節點控制模塊
1概述
在教育信息化的大背景下,人們的生活方式以及高校的教學模式發生了較大變化,得益于教育信息化的快速發展,學生不需要返回校園也可以在線學習,完成學業[2]。然而,一些實驗課程與硬件密切相關,由于缺乏相關仿真平臺的支撐,這些與硬件相關在線實驗教學活動難以順利開展。另一方面,機器臂因其具有生產效率高、有助于降低勞動力成本的優點正廣泛運用于智能制造領域,同時,市場上對于機械臂相關專業人才的需求非常旺盛,因此,研制一個通用且適用于遠程教學場景的機械臂仿真平臺,已成為機器人相關領域人才培養的一個亟待解決的重要問題[3]。針對以上問題,提出了一種基于ROS的機械臂仿真實驗平臺的設計方案,該平臺支持多種機械臂模型,具有可擴展性強、成本低、易于維護的優點。
2平臺架構
機器人操作系統(ROS)起源于2007年,是斯坦福大學人工智能實驗室研發的分布式模塊化的開源框架并且集成了一些機器人領域常用的工具程序和軟件庫[4]。提出的仿真實驗系統基于ROS平臺開發而成,主要由機械臂仿真模塊、上位機控制軟件、ROS分布式節點控制模塊組成。其中,機械臂仿真模塊包括物理仿真引擎及機械臂模型;上位機控制軟件負責將用戶的指令以話題和服務的形式發送給ROS分布式節點控制模塊,并能夠將機械臂的狀態信息顯示在控制面板上;ROS分布式節點控制模塊程序負責接收處理上位機軟件傳來的話題消息,并將處理完成的數據通過Moveit接口以話題的形式傳給機械臂仿真模塊[5-6]。其整體框架圖如圖1所示。
3基于ROS的機械臂仿真環境搭建
3.1機械臂仿真模型加載
該仿真實驗平臺采用ROS中的Gazebo作為物理仿真引擎,該引擎支持通過編寫啟動文件加載機械臂模型描述文件的方式加載不同機械臂模型。在Gazebo中可以通過添加傳感器、桌椅、環境燈光和修改相應配置參數的方式來更好模擬現實世界。此外,該實驗平臺還支持自定義的三維模型,以方便為工作環境添加非標設備。
3.2仿真模型與ROS系統的連接配置
為了將新設計了機械臂模型嵌入ROS系統,還需要進行連接配置,即通過ROS提供的ros_control控制器完成ROS與機械臂模型的連接。ros_control控制器集成了大量的機械臂常用的關節角度控制器、關節力矩控制器,方便用戶實現對機械臂的控制。
3.3機械臂仿真模型個性化定制
該仿真平臺支持第三方機械臂模型的定制,下面以設計末端夾具為例,詳細描述具體過程。首先,使用solidworks三維建模工具制作夾具模型,并將其轉化為URDF(UnifiedRobotDescriptionFormat)文件,URDF是一種基于XML規范、用于描述機器人的一系列關節與連桿的相對關系、慣性屬性、幾何特點和碰撞模型的文檔[3]。預期目標是把機械臂的末端與自定義夾具連接起來,期望的關節與連桿的結構關系如圖2所示。為了把夾具與機械臂模型連接起來,需要使用Moveit配置助手將urdf文件導入ros,將描述夾具和原機械臂本體的兩個URDF文件合并重組成一個新的URDF文件,并形成新的機械臂文件描述包,在完成機械臂軌跡規劃、關節控制相關的配置和啟動文件后,即可正常控制。配置好所需要的控制器、編寫配置以及啟動文件,并在此文件中掛載機器人的URDF文件,在Gazebo中加載重新組裝的機械臂。
4基于ROS平臺的機械臂控制系統設計
4.1上位機控制軟件
在ROS中rviz是一個用于顯示及控制三維模型的可視化軟件,能夠完成機械臂運動規劃及控制等功能。為進一步改善用戶體驗,本實驗平臺的上位機控制軟件基于ROS提供的rviz插件行二次開發,能夠與rviz實現融合,方便使用。本平臺所開發的上位機控制軟件可以無縫嵌入rviz軟件中,還可以通過給控制對象控制信息,從而實現對機器人的監測與控制。用戶可以通過此該上位機軟件完成指令下達、狀態查詢等功能。該上位機控制軟件支持3種控制模式:(1)通過輸入末端的坐標位置以及末端夾爪的姿態,控制機械臂的末端直接達到目標位置;(2)通過滑動界面上的滑條控制機械臂的各個關節的角度,實現機械臂控制;(3)設計機械臂的軌跡,使機械臂能夠完成一系列指定動作。此外上位機軟件能夠接收仿真機械臂的狀態消息,并且將數據實時更新在狀態反饋欄。
4.2ROS分布式節點控制模塊
為了提高模塊的重用率降低耦合性,該實驗平臺采用分布式設計架構,上位機軟件可以通過分布式節點控制機械臂。其中,上位機軟件節點采用話題與訂閱的方式與分布式節點控制模塊ur_treatment通信,從而實現機械臂的控制。
5系統測試
為驗證文中所提方案的有效性,在Ubuntu16.04和ROSKinectic版本下搭建了機械臂仿真環境。通過在上位機軟件輸入欄中輸入坐標或拖動滑塊就能控制機械臂的末端位置及關節角度。基于UR機械臂,完成了一個物體夾取實現。在加載完UR機械臂模型后,通過控制機械臂末端的夾具的位置以及開閉狀態,能夠使UR機械臂成功夾取放置于桌面上的香蕉。此外,后續還可以考慮增加攝像頭等傳感設備,增加相應的與視覺識別相關的實驗內容。
6結語
研制支持不同機械臂類型的仿真平臺對于降低實驗成本、支持遠程教學、提高實驗效率有著十分重要的意義。介紹一種基于機器人操作系統的機械臂仿真實驗平臺的設計方案,采用分布式編程技術,使用戶能夠實驗采用多種控制方式控制機械臂,實踐證明,該實驗平臺對于開展遠程教學、降低機械臂學習門檻、創新人才的培養方面具著較好的支撐作用。
作者:許兆豐 楊亮 張伯泉 曾碧 許暢 單位:廣東工業大學電子科技大學中山學院