李洪成 張淑麗 郝昕 劉勝輝



摘? 要:提供一種桌面級機械臂的智能控制方法,對其控制系統方案進行整體設計,使用樹莓派來驅動電機,在其上安裝機器人操作系統ROS,使用YOLO算法來實現目標物體的檢測與識別,并將此整合到OpenCV中,用ROS系統的MoveIt!工具包進行運動路徑規劃。結果表明,該方法滿足桌面級機械臂智能抓取物體的需求。
關鍵詞:機械臂;樹莓派;YOLO算法;OpenCV;ROS
中圖分類號:TP241? ? ? ? 文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)05-0042-02
Abstract: This paper provides a smart control method of desktop-level robotic arm, design the overall control system solution, use Raspberry Pi to drive the motor, install the robot operating system ROS on it, and use YOLO algorithm to achieve the detection and recognition of target objects And integrate this into OpenCV, use MoveIt! Toolkitof ROS system for motion path planning. The results show that this method meets the needs of desktop-level robotic arms to grasp objects intelligently.
Keywords: robot arm; Raspberry Pie; YOLO Algorithm; OpenCV; ROS
隨著“工業4.0”和“中國制造2025”的持續推進,機械臂的相關領域得到快速發展。桌面級機械臂不同于工業機械臂在特定環境下進行抓取物體,桌面級機械臂具有環境多變、人機智能交互、精準抓取等特點[1]。因此,針對此需求,建立以樹莓派作為微型計算機,搭載ROS系統和OpenCV,在其上運行YOLO算法進行目標物體識別與檢測,利用MoveIt!機械臂仿真包進行其路徑規劃的方法。
1 桌面級機械臂的整體控制方案
在樹莓派(Raspberry Pi 3)微型計算機安裝上ROS操作系統,利用機械臂攝像頭拍攝的照片,對其進行目標物體的識別與檢測,將目標物體的坐標位置轉化為控制參數,進行對目標物體的抓取。控制系統方案圖如圖1所示。
2 基于Raspberry Pi 3的步進電機控制
機械臂通過Raspberry Pi 3驅動步進電機,從而實現機械臂在三維坐標系中自由活動。首先,通過Python和C++的編程來控制步進電機,此方式有效避免傳統方式對機器操作的復雜性,降低了控制其運動的風險性。其次,通過GPIO引腳精確接受傳感的信息和不同的頻次的脈沖,能有效提高操作機械臂的精度和準確性[2]。與頂部組件的Arduino組合,不同的傳感信息和執行結果在兩者之間傳送,實現步進電機和舵機的信息通信,從而實現機械臂的多用途、高效率、高精度的作業。
3 使用YOLO算法進行目標物體識別
3.1 YOLO(You Only Look Once)算法
YOLO算法是基于深度學習的多目標識別物體深度神經網絡模型, 該算法任務是在機械臂的攝像頭拍攝圖片后,利用深度卷積神經網絡進行特征提取,對圖片上的這些物體分類和確認出物體在圖片中的中心位置,圖片檢測速度達到實時檢測的要求[3],其算法的流程框架模型如圖2所示。
公式(1)中,Pr(Object)表示當前網絡目標邊框中存在物體的可能性,Object表示目標對象,IoU(Intersection over Union,交并比)展示了當前模型預測到的目標邊框位置的準確性,其中pred表示預測的目標邊框,truth表示真實的目標邊框。boxt表示圖像中真實目標的邊框情況,boxp表示圖像中預測目標的邊框情況。
3.2 在OpenCV上運行YOLO算法
攝像頭控制采用開源的OpenCV跨平臺視覺庫,運行環境配置完畢后,利用前述的YOLO算法整合到OpenCV程序中,通過圖像中物體的位置信息來跟蹤到指定物品,然后通過機械手抓取實現機械臂固定位置抓取,其信號的輸入采集依靠攝像頭,通過嵌入式平臺進行信息交換,最后將采集的信息送入樹莓派中[4]。基于視覺的物體識別系統框架圖如圖3所示。
為了精確并簡便的處理圖像識別問題,使得機械臂在視覺處理方面更智能,可以將視覺處理的復雜問題分解成簡單的,易于實現的子問題進行分治處理,自頂向下的處理每一個子過程。
4 利用ROS系統的MoveIt!進行路徑規劃
ROS系統是構建在Ubuntu系統上的一種應用程序框架,能夠實現節點間的信息傳遞或提供服務,從而降低了精準控制機械臂的難度[5]。
利用前述YOLO算法可以獲得目標物體在空間坐標系的三維坐標,在這里采用ROS的3D可視化工具Rviz和機械臂仿真包Movelt!,構建機械臂的仿真平臺。Movelt!是一款可用于正逆運動學求解、集成運動規劃、感知檢測等方面的機械臂軟件包,可對其運動路徑進行規劃。
5 控制方法的相關驗證
桌面級機械臂的控制方法利用攝像頭拍攝的照片,基于樹莓派(Raspberry Pi 3)的微型計算機,搭載機器人操作系統(ROS),將深度學習的YOLO算法搭載在OpenCV跨平臺視覺庫上,MoveIt!作為機械臂運動規劃的工具包,對桌面上的物體實現定位抓取。利用該方法抓取過程如圖4所示。
通過以上論述,該方法有效提高了桌面級的機械臂的自主學習能力、識別物體能力和精準抓取物體能力。并通過實踐,驗證了該控制方法是可行的。
參考文獻:
[1]張偉業,張煒,華龍新,等.一種新型的桌面級機械臂[J].中國科技信息,2018(16):53-55.
[2]王亞騰.視覺控制的機械臂在家庭自動化中的應用[J].科技創新與應用,2015(17):14-15.
[3]高軍,朱宏輝,Yi Lu Murphey.基于YOLO和RRN的運動目標跟蹤方法[J].計算機工程與設計,2019,40(07):2019-2025.
[4]李娜,安彥波,余志偉,等.基于OpenCV的物體定位與捕捉系統設計[J].機械設計與制造工程,2019,48(03):85-88.
[5]李鳳.基于ROS的機械臂控制系統設計[J].自動化技術與應用,2018,37(11):72-76.