李洪成 張淑麗 郝昕 劉勝輝
摘? 要:提供一種桌面級機械臂的智能控制方法,對其控制系統(tǒng)方案進行整體設(shè)計,使用樹莓派來驅(qū)動電機,在其上安裝機器人操作系統(tǒng)ROS,使用YOLO算法來實現(xiàn)目標物體的檢測與識別,并將此整合到OpenCV中,用ROS系統(tǒng)的MoveIt!工具包進行運動路徑規(guī)劃。結(jié)果表明,該方法滿足桌面級機械臂智能抓取物體的需求。
關(guān)鍵詞:機械臂;樹莓派;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
隨著“工業(yè)4.0”和“中國制造2025”的持續(xù)推進,機械臂的相關(guān)領(lǐng)域得到快速發(fā)展。桌面級機械臂不同于工業(yè)機械臂在特定環(huán)境下進行抓取物體,桌面級機械臂具有環(huán)境多變、人機智能交互、精準抓取等特點[1]。因此,針對此需求,建立以樹莓派作為微型計算機,搭載ROS系統(tǒng)和OpenCV,在其上運行YOLO算法進行目標物體識別與檢測,利用MoveIt!機械臂仿真包進行其路徑規(guī)劃的方法。
1 桌面級機械臂的整體控制方案
在樹莓派(Raspberry Pi 3)微型計算機安裝上ROS操作系統(tǒng),利用機械臂攝像頭拍攝的照片,對其進行目標物體的識別與檢測,將目標物體的坐標位置轉(zhuǎn)化為控制參數(shù),進行對目標物體的抓取??刂葡到y(tǒng)方案圖如圖1所示。
2 基于Raspberry Pi 3的步進電機控制
機械臂通過Raspberry Pi 3驅(qū)動步進電機,從而實現(xiàn)機械臂在三維坐標系中自由活動。首先,通過Python和C++的編程來控制步進電機,此方式有效避免傳統(tǒng)方式對機器操作的復(fù)雜性,降低了控制其運動的風(fēng)險性。其次,通過GPIO引腳精確接受傳感的信息和不同的頻次的脈沖,能有效提高操作機械臂的精度和準確性[2]。與頂部組件的Arduino組合,不同的傳感信息和執(zhí)行結(jié)果在兩者之間傳送,實現(xiàn)步進電機和舵機的信息通信,從而實現(xiàn)機械臂的多用途、高效率、高精度的作業(yè)。
3 使用YOLO算法進行目標物體識別
3.1 YOLO(You Only Look Once)算法
YOLO算法是基于深度學(xué)習(xí)的多目標識別物體深度神經(jīng)網(wǎng)絡(luò)模型, 該算法任務(wù)是在機械臂的攝像頭拍攝圖片后,利用深度卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,對圖片上的這些物體分類和確認出物體在圖片中的中心位置,圖片檢測速度達到實時檢測的要求[3],其算法的流程框架模型如圖2所示。
公式(1)中,Pr(Object)表示當前網(wǎng)絡(luò)目標邊框中存在物體的可能性,Object表示目標對象,IoU(Intersection over Union,交并比)展示了當前模型預(yù)測到的目標邊框位置的準確性,其中pred表示預(yù)測的目標邊框,truth表示真實的目標邊框。boxt表示圖像中真實目標的邊框情況,boxp表示圖像中預(yù)測目標的邊框情況。
3.2 在OpenCV上運行YOLO算法
攝像頭控制采用開源的OpenCV跨平臺視覺庫,運行環(huán)境配置完畢后,利用前述的YOLO算法整合到OpenCV程序中,通過圖像中物體的位置信息來跟蹤到指定物品,然后通過機械手抓取實現(xiàn)機械臂固定位置抓取,其信號的輸入采集依靠攝像頭,通過嵌入式平臺進行信息交換,最后將采集的信息送入樹莓派中[4]?;谝曈X的物體識別系統(tǒng)框架圖如圖3所示。
為了精確并簡便的處理圖像識別問題,使得機械臂在視覺處理方面更智能,可以將視覺處理的復(fù)雜問題分解成簡單的,易于實現(xiàn)的子問題進行分治處理,自頂向下的處理每一個子過程。
4 利用ROS系統(tǒng)的MoveIt!進行路徑規(guī)劃
ROS系統(tǒng)是構(gòu)建在Ubuntu系統(tǒng)上的一種應(yīng)用程序框架,能夠?qū)崿F(xiàn)節(jié)點間的信息傳遞或提供服務(wù),從而降低了精準控制機械臂的難度[5]。
利用前述YOLO算法可以獲得目標物體在空間坐標系的三維坐標,在這里采用ROS的3D可視化工具Rviz和機械臂仿真包Movelt!,構(gòu)建機械臂的仿真平臺。Movelt!是一款可用于正逆運動學(xué)求解、集成運動規(guī)劃、感知檢測等方面的機械臂軟件包,可對其運動路徑進行規(guī)劃。
5 控制方法的相關(guān)驗證
桌面級機械臂的控制方法利用攝像頭拍攝的照片,基于樹莓派(Raspberry Pi 3)的微型計算機,搭載機器人操作系統(tǒng)(ROS),將深度學(xué)習(xí)的YOLO算法搭載在OpenCV跨平臺視覺庫上,MoveIt!作為機械臂運動規(guī)劃的工具包,對桌面上的物體實現(xiàn)定位抓取。利用該方法抓取過程如圖4所示。
通過以上論述,該方法有效提高了桌面級的機械臂的自主學(xué)習(xí)能力、識別物體能力和精準抓取物體能力。并通過實踐,驗證了該控制方法是可行的。
參考文獻:
[1]張偉業(yè),張煒,華龍新,等.一種新型的桌面級機械臂[J].中國科技信息,2018(16):53-55.
[2]王亞騰.視覺控制的機械臂在家庭自動化中的應(yīng)用[J].科技創(chuàng)新與應(yīng)用,2015(17):14-15.
[3]高軍,朱宏輝,Yi Lu Murphey.基于YOLO和RRN的運動目標跟蹤方法[J].計算機工程與設(shè)計,2019,40(07):2019-2025.
[4]李娜,安彥波,余志偉,等.基于OpenCV的物體定位與捕捉系統(tǒng)設(shè)計[J].機械設(shè)計與制造工程,2019,48(03):85-88.
[5]李鳳.基于ROS的機械臂控制系統(tǒng)設(shè)計[J].自動化技術(shù)與應(yīng)用,2018,37(11):72-76.