?

基于ROS系統的機械臂研究

2023-11-06 01:37黃均安
科技資訊 2023年20期
關鍵詞:開發人員機械機器人

黃均安

(安徽水利水電職業技術學院 安徽合肥 231603)

1 國內外機器人運動控制發展現狀

在國外,一些發達國家很早就展開了針對機器人運動控制的相關技術研究,美國繼NGC(The Next Generation Work-Station/Machine Control)研究計劃之后,OMAC(Organization for Machine Automation and Control)安排組織了獨立的研發計劃,開發模塊化的控制系統,從而降低了機器人控制系統的研發費用和維護費用;在歐洲,由德國和法國發起的OSACA(Open System Architecture for Control within Automation)計劃研究分層系統平臺的體系結構,旨在擴大控制系統的開放性;日本的許多企業也聯合推行了OSEC 計劃(Open System Environment for Controller),目的是獲得結構靈活輕便的運動控制系統。

國內對于機械臂運動控制技術的研究滯后,發展時間短,仍然停留在控制算法和規劃策略上,與國外差距相當明顯,在某些特定領域依然依靠國外進口,對于開放式的控制系統研究仍在起步階段。雖然近10 年來出現了不少科技水平較高的公司(如新松、遨博),但是大多數公司還是采用PC 機作為上位機,單獨定制DSP芯片用于處理數據路線,或者直接使用FPGA進行開發的路線,低開放性,低擴展性,與國外同時期的控制系統相比,不具備足夠的競爭力。因此,研發適用于一個六軸機械臂的控制操作系統,需要考慮系統的開放性,也需要考慮其應用需求和控制需求。

2 手眼抓取的現狀和發展趨勢

機械臂在智能化時代下面臨的重要問題就是對環境的不確定性和抓取的精度問題,這就需要發展智能傳感器來解決這些問題,通過對傳感器信息的處理可以提高機械臂對環境的認知和抓取的精度。

在手眼抓取系統中,功能越豐富的攝像頭可以為機械臂增加更多的環境信息,從而提高對物體的識別和定位。而更加精確的抓具可以提高抓取的成功率,常見的抓具有夾爪和吸盤等。常見的夾爪有Robotiq85,具有高夾力、高載荷和高精度特點,被廣泛應用于實際生產中。扁平吸盤PFYN是常見吸盤之一,具有小尺寸高吸力、極短的節拍時間等優點,在機械臂抓取物體中有重要應用,具體如圖1所示。

圖1 抓具的發展現狀

3 機械臂操作系統的設計

ROS 是一個獨特的開放性框架,專用于開發機器人相關的軟件,它集成了常用的插件、庫、協議和接口,擁有嵌入式操作系統類似的功能,包括在硬件上形成抽象層、底層驅動的單獨管理、不同程序間的通信[1]、程序功能包的管理,將之前傳統機器人開發平臺的復雜任務進行簡化創建和相關管理。

ROS 使機器人開發人員從事更深入的工作,而不用去考慮已有功能模塊的實現,節省了大量的時間,提高了代碼復用率。ROS的另一個鮮明的特點是分布式架構,不同的模塊可以單獨設計,在運行時分層次耦合[2],最后開發人員可以將模塊文件打包形成功能包用于共享。代碼庫的不斷擴大也促進了ROS 的推廣,庫的開源使開發人員可以使用已有的庫,更加快速地促進機器人領域,特別是人工智能應用與機器人領域的發展[3]。

4 ROS系統的特點

4.1 點對點的設計

在ROS 中,節點是每個進程的表現形式,每個主機可以使用不同的節點,管理節點間的消息通信方式和內容的是含有發布和訂閱功能的RPC 傳輸系統,使用節點的設計方式使特定功能特別是定位或規劃等算法帶來的計算壓力大大減小。

4.2 高集成,架構精簡

在傳統的機器人應用中,需要解決的關鍵問題就是軟件的復用性。傳統的驅動程序、應用算法、功能模塊設計混亂,相互關聯,移植和二次開發的難度代價和成本過高;而ROS使用了模塊化設計,每個功能節點都獨立進行編譯,與其他節點并無直接關系,只要在運行時包含相關的節點即可。為了方便開發人員后續的移植和開發,ROS將不同功能模塊形成了功能包,這樣就可以在開源社區進行分享。

4.3 豐富的工具包

傳統機器人開發中,往往沒有良好的界面系統和仿真軟件,ROS 開發了組件化的插件,如3D 可視化工具Rviz,開發者可以通過調用插件來測試機器人3D模型、周圍環境、路徑顯示等功能。此外,ROS 還有消息查看工具、物體仿真環境gazebo等插件,使機器人開發變得直觀和高效。

5 實現載體

本文使用的仿真硬件有Universal Robots機械臂和Kinect 視覺傳感器,其中機械臂的型號為UR5,Kinect型號為Xbox360 V2 版本。在此基礎上設計了仿真框架,如圖2所示。

圖2 仿真框架

5.1 視覺傳感器Kinect

這里采用的是微軟公司的Kinect V2攝像機。Kinect V2是在Kinect V1上加入深度傳感器發展而來的攝像機,在識別自然環境領域被大量應用,如根據Kinect產生的深度傳感器和色彩傳感器對環境進行三維掃描并進行模型重建,利用Kinect 進行機器人導航進行障礙物自動回避等。Kinect利用光電編碼技術獲取環境信息[4],通過深度傳感器和攝像傳感器的將獲得的信息進行融合,用于獲取環境的圖像信息和深度信息。Kinect攝像頭的詳細參數如表1所示。

表1 Kinect相關參數

5.2 機械臂UR5

UR5 機械臂可自動化處理5 kg 物體,開發人員可以手動規劃UR5機械臂移動路徑,之后UR5就會將移動路徑存儲在記憶單元,這種工作模式稱為編程教學模式,之后再次使用時將可以獨立工作。具體參數如表2所示。

表2 UR5機械臂相關參數

5.3 軟件架構

本文機械臂使用的開源機器人操作系統,在其基礎上添加自己的功能包達成機械臂控制系統。ROS設計架構是點對點的,程序運行時通過:節點(node)、消息(msg)、主題(topic)等來實現數據通信。

5.3.1 運行機制

(1)節點。節點是類似于進程的特殊結構,用于執行運算任務,一般來說,多個節點將組成開發人員所設計的系統。當多個節點運行時,可以通過消息、話題、服務來進行通信。Kinect 相機需要明確Kinect 相機的節點,并發布圖像和深度信息,具體實現代碼見圖3。

圖3 Kinect節點聲明

Kinect 節點接收到環境數據后,通過話題方式傳遞給其他相關的節點,用于環境數據的處理。具體情況如圖4所示。

圖4 節點相關通信

(2)消息?;诎l布/訂閱模型的消息(Message)通信是節點之間最重要的通信機制。消息是一個經過嚴格定義的數據結構,支持標準數據類型,也支持數組和嵌套[5],可以看作為C 語言中的結構體(struct)。如果開發人員有特殊的需求,可以自定義所需的消息類型。本文機械臂控制系統的環境信息由消息 sensor_msgs/Image 和sensor_msgs/LaserScan 等給出,對其進行解析就可以讀取環境的特征。

(3)話題。消息以一種發布/訂閱(Publish/Subscribe)的方式傳遞。一個節點可以針對一個給定的話題(Topic)發布消息(稱為發布者),也可以通過訂閱某一個話題獲得特定類型的數據(稱為訂閱者),但發布者和訂閱者并不了解彼此的存在,ROS 中可能存在多個節點訂閱一個話題,或者發布同一個話題[6]。本文中Kinect數據傳輸形式如圖5所示。

圖5 Kinect數據傳輸形式

Kinect的話題與其他節點的關系圖6所示。

圖6 Kinect話題在節點間的傳輸圖

(4)服務。話題發布和訂閱模式的通信方式雖然很靈活,但是如果需要雙向同步傳輸,就需要更簡便的方式。在ROS 中有一種通信方式包含:一個數據類型用于請求服務,另一個數據類型用于應答服務,這種通信模式稱為服務,與Web服務器和PC機通信的工作流程相似。與話題不一樣的是,ROS 規定只有一個節點提供指定命名的服務。

為了管理以上的通信方式和任務進程,為了使節點有條理執行,ROS引入了一個控制器,稱為ROS節點管理器(ROS Master),其通過遠程過程調用(RPC)提供了列表登記和查找其他計算圖表的功能[7]。一個節點想要找到其他的節點進行通信和調用服務就必須去ROS節點管理器進行登記,之后ROS節點管理器將進行統一調度。ROS Master與其他節點的關系如圖7所示。

圖7 ROS Master與節點間的關系圖

5.3.2 軟件框架

通過使用Kinect和UR5機械臂配合可以完成機械臂控制功能、環境觀測功能、物體識別功能,具體如圖8所示。

圖8 軟件框架圖

(1)機械臂控制功能。通過節點間的配合,將從MoveIt 路徑規劃器中的路徑數據(具體的線速度和角速度信息)發布給UR5機械臂進行執行操作。

(2)環境觀測功能。通過Kinect 攝像頭將獲取到的圖像數據和深度數據以話題的方式發布出來,讓相應的節點獲取環境信息,對陌生環境進行掃描。

(3)物體識別功能。通過對環境信息中的數據進行解析,通過SIFT特征算子,尋找需要待抓取的物體,并通過TF變換轉化到世界坐標系中,獲得物體的坐標信息,傳遞給機械臂進行具體的操作。

6 結語

本文在機械臂控制系統的設計要求上對ROS 進行了系統地分析,闡述了ROS系統的代碼高復用性、高移植性、編程簡易性等特點。對系統的實現載體:UR5機械臂和Kinect 攝像頭進行了分析,確定了ROS 中的通信方式和數據,給定系統的軟件框架。通過在真實環境中驗證,系統運行穩定可靠,各項性能指標能夠滿足技術要求。

猜你喜歡
開發人員機械機器人
調試機械臂
Semtech發布LoRa Basics 以加速物聯網應用
簡單機械
按摩機械臂
機器人來幫你
認識機器人
機器人來啦
后悔了?教你隱藏開發人員選項
三星SMI擴展Java論壇 開發人員可用母語
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合