摘要:為了減少機械臂在產品分類、抓取過程中的執行時間,降低定位誤差,以提高生產效率。針對傳統機器人僅能執行預定義軌跡任務的局限性,本文提出一種結合視覺識別系統的機械臂抓取方案。該方案中的視覺識別系統可同時檢測待抓取目標的顏色和形狀屬性,并采用模板匹配法對目標物體進行輪廓匹配;而執行抓取任務的執行裝置采用六軸機械臂xArm;最后,使用眼在手上(Eye-in-Hand)視覺-機械臂方案實現對多個物體的識別與抓取,并根據設定規則進行碼垛,測試結果驗證了所提方案的有效性和魯棒性。
01
引言
? 近年來,隨著人類對工業現代化生產、深海探險、太空探索、環境監測、遠程醫療、智能家居等領域的深入研究,以及應用需求的多樣化。
高速、靈活的多自由度機械臂如同人類手臂,在生產、生活中逐漸扮演重要角色,機械臂控制技術向智能化發展也已經成為必然趨勢。
此外,視覺是人類觀察與感知周圍環境的重要手段。據統計,在人類接受的信息中,通過肉眼觀測獲取信息的占比高達75%,這充分表明人體視覺功能的重要性。 將機器視覺技術與機械臂控制相結合,可解決機械臂需要自動判別和在一定自主性的工作任務時顯得捉襟見肘的問題,以及機械臂在復雜工作環境和工作任務中靈活性不足的問題,從本質上提高機械臂的自主能力和智能程度,增強了機械臂的適應性和實用性。 為此,本文提出了一種基于機器視覺的機械臂智能抓取系統:采用視覺傳感器代替人眼來做測量與判別的技術,利用計算機模擬人的識別標準,去分析理解圖像,并尋找目標物體和目標地點,在明確工作目標后向機械臂發出相應分析結果,并控制機械臂完成自主抓取任務。
02
智能抓取系統構成
? 2.1 ? 硬件系統
如圖2.1所示,智能抓取系統硬件設備主要是由計算機、機械臂系統,以及固定于機械臂末端的視覺系統(眼在手上[Eye-in-Hand])和末端執行器四部分組成。 相對于眼在手外(Eye-to-Hand)的安裝方式,采用眼在手上(Eye-in-Hand)安裝方式,智能抓取系統的視場可以隨著機械臂的運動而發生變化,可增加視覺識別的范圍。 智能抓取系統在執行抓取任務過程中,視覺系統識別到抓取目標的位姿后,將數據傳遞給計算機進行處理(坐標變換等),最后由機械臂系統實現對目標物體的抓取、擺放。?? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖 2.1 智能抓取系統組成
機械臂系統由控制器、六軸機械臂和末端執行器(吸盤)組成。機械臂所能完成的任務隨自身結構差異而有較大區別,故本次實驗采用xArm 6軸機械臂(工作空間足夠大),可滿足本次抓取任務要求。此外,機械臂可識別控制器指令,實現機械臂的運動規劃以及末端執行器(吸盤)的開關。 視覺系統采用Intel RealSense D415視覺傳感器,以實現圖像采集和識別定位功能。Realsense D415是Intel在2018年推出的一款深度相機,其擁有大約70度的視場和200萬像素成像器,相比于其他擁有同樣特質的攝像頭,D415具有重量輕、精度高、易校準、成本低的優點。
2.2 ? 軟件框架
ROS是一個適用于機器人開發的開源元操作系統,主要在Linux環境下工作。它集成了大量的工具、庫、協議,提供了操作系統應有的服務,包括硬件抽象,底層設備控制,進程間消息傳遞,以及包管理,極大降低了機器人的開發門檻。本文使用ROS作為操作智能抓取系統的基礎軟件平臺,并將操作過程中所有的步驟串起來,如圖2.2所示。
圖 2.2?智能抓取系統軟件框架
視覺系統部分:目標識別與定位功能采用計算機視覺庫OpenCV開發(OpenCV是一個跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux等多操作系統上,具有輕量、高效等優點。)本項目在Linux系統下基于ROS平臺采用OpenCV進行目標物體識別、定位(下一章節展開介紹)。
機械臂控制系統:機械臂運動規劃過程中,所有節點之間的通信通過專用的ROS話題完成。要控制機械臂對目標的抓取,需要運行逆運動學算法節點,讀取到末端執行器應到達的位姿,并計算所需關節角度位置,上述控制信息在單獨的話題中發布,由控制器讀取后實現機械臂的運動。(有關機械臂正、逆運動學的相關理論知識具體詳情可見Zippen-Huang/RobotTechCooker github倉庫RobotTechBook分支的《機器人學導論》第三章、第四章,后續也會安排機械臂的運動學模型分析)。
綜上,視覺系統在識別、定位到目標物體后通過發布話題服務實現機械臂的抓取、擺放等運動規劃任務。
03
圖像識別與定位分析
? 對于基于機器視覺的機械臂抓取系統而言,其首要任務是能夠準確的識別與定位目標物塊,這是影響最終抓取成功率的重要因素。 為了精確獲取目標在三維空間中的坐標,目標物體識別與定位的主要過程如圖 3.1所示,接下來做詳細分析。
圖 3.1 識別定位流程
3.1 ? 圖像預處理
因為環境背景復雜性,采集到的圖像中會存在較多的無關干擾信息,這會對圖像的處理和識別造成一定程度的影響,圖像預處理可以有效地濾除圖像中的干擾信息,突顯出識別所需的圖像特征信息。
故,設計圖像預處理算法對Intel RealSense D415采集到的圖像進行預處理,能夠有效地突出環境背景下目標物體待檢測特征參數、降低目標識別算法復雜度,以提高識別檢測效率。
3.1.1 圖像灰度化
圖像灰度化簡單描述就是將彩色的圖像轉化為灰度圖像,減少通道帶來的非必要特征,數據降維,處理更高效,因此圖像灰度化有益于提取目標物體特征和分割目標圖像,而被廣泛用于機器視覺領域。
3.1.2 圖像濾波
濾波的主要目的是盡可能保證圖像原始細節的前提下抑制圖中的干擾噪聲,其效果將對接下來的圖像處理產生直接的影響,因此選擇一個合適的濾波方法至關重要。
常用的圖像濾波方法有:中值濾波、高斯濾波、KNN濾波、最大均勻性平滑濾波等。在目標檢測應用中對圖像進行降噪處理的方法被廣泛使用的有中值濾波、均值濾波以及高斯濾波三種方法: 其中,中值濾波是一種非線性的濾波方法,該方法的中心思想就是通過某像素點特定領域內的中值去代替該像素的原始點,從而使圖像的處理效果更加平滑。 均值濾波是經典線性濾波方法的代表,該方法的中心思想就是將圖像中某一個點的像素值用這個點的灰度值和與其相鄰像素點灰度值的平均值來代替。均值濾波往往帶來圖像質量變差的問題,圖像選取的鄰域越大,噪聲消除的效果也就越差。高斯濾波通俗點說就是像素點的值通過其自身及周圍的點加權平均所得到新的像素點。該方法在消除高斯噪聲方面有很好的表現。 通過比較發現均值濾波后的圖像盡管能很好的保留物體信息特征,但是邊緣信息被弱化,不利于后續的目標物體輪廓檢測;而高斯濾波方法雖然能夠抑制高斯噪聲,但是過于平滑,導致濾波后的圖像信息缺失嚴重,圖片較為模糊;在實驗環境椒鹽噪聲濃度較大的條件下,使用中值濾波后的圖像效果最好,有效地抑制了圖像的噪聲干擾,同時避免了圖像邊緣信息的缺失。
3.1.3 閾值分割
圖像分割是依據某種準則將圖像分割成不同區域再選取目標區域的過程。常用的圖像分割方法有三種:基于區域的分割、基于閾值的分割和基于特定理論的分割。
基于實驗室環境環境噪音、燈光亮度等影響因素下,經過灰度化和圖像濾波等處理之后,目標物體與背景圖像灰度值有較大差異,因此可以選用閾值法進行分割圖像,能更簡單有效地分割出物體。圖像預處理中常見的閾值分割算法有以下幾種: OTSU分割法:OTSU分割法又稱為最大類間方差法,實現思想是利用目標圖像與背景的二值化特性差異將兩者區別開。OSTU法通過自適應方法計算目標與背景間的最大類間方差,從而確定最佳閾值。 最小誤差法:最小誤差法屬于一種基于貝葉斯最小誤差分類算法的自適應閾值分割法。其核心思想是根據背景和目標對象的像素占圖像總像素比例,計算其混合概率密度并確定分割閾值,然后再計算出目標對象與背景之間像素點的錯誤分類概率,當概率結果最小時,即可得到此時的閾值就是最佳閾值。 迭代閾值法:迭代閾值法是根據原始圖像的灰度直方圖尋找一個近似最佳閾值T,將圖像分成兩個部分,分別求取兩個部分的平均灰度值Ta和Tb,把兩個值的平均值作為新的閾值T1,繼續重復以上步驟,直到Ta和Tb穩定位置,此時的T1即為最佳分割閾值。
本項目分別采用了迭代閾值法、最小誤差法和OTSU分割法,發現使用OTSU分割法的效果更好,與背景成功分離并且輪廓干凈清晰沒有噪點,實驗結果如?圖 3.2所示。
圖 3.2 樣本分析結果圖
3.2 ? 特征提取
通過圖像預處理只能獲取所有目標物體的二值化圖像,要實現目標物體的識別和定位,還需要進一步獲取每一個目標物體的顏色特征以及幾何中心像素坐標。因此還需要進行HSV閾值分割、輪廓提取、模板匹配等算法來完成特征提取操作。
3.2.1 HSV顏色分割
在本次項目中,通過顏色特征就可以對目標物體進行初步識別分類。相較于常見的RGB顏色空間反映出物體具體顏色信息的不直觀性,HSV (Hue:色調, Saturation:飽和度, Value:亮度)顏色空間是一種面向視覺感知的視覺顏色模型,具有更好的辨識度,故本次實驗采用HSV顏色分割算法對目標物體的顏色進行分割。
3.2.2 輪廓提取
為了獲取每一個目標物體的幾何中心像素坐標,加之在本次任務中,由于二值化后目標物體的形狀特征都是規則的幾何形狀,故利用OpenCV視覺開發庫自帶的輪廓檢測函數(cv2.findContours()函數)即可實現對圖像預處理后的目標圖像進行輪廓和像素坐標提取。為了看到更直觀的效果,將其顯示在原始圖像上,如圖 3.3所示,圖像顯示的是在HSV顏色分割操作得到紅色目標物體后對圖像內的所有紅色目標物體進行了輪廓提取。?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖3.3 輪廓提取
3.2.3模板匹配
通過上述操作后,視覺系統雖然得到了每一個目標物體的中心像素坐標,但抓取系統依舊無法區別開每一個目標物體之間的特征。因此,利用OpenCV視覺庫的輪廓識別函數找到輪廓后,還需要采用模板匹配算法對預處理后的目標進一步進行匹配。
模板匹配算法的基本原理是提供一個基本模板進行比較,在源圖像中找到相似的模板。匹配的過程是將數據集中源圖像通過索引與庫中模板(預先對不同形狀的目標物體進行拍照,經過二值化處理后作為模板庫。)依次進行比較,在匹配過程中將模板與圖像比較計算結果存儲在矩陣中,通過評分模型給出模板在數據集中估計的最佳位置。
本項目要抓取目標的形狀特征明顯,采用模板匹配法具有較好的識別效果。基于輪廓特征的模板匹配效果如圖3.4所示。
圖 3.4 模板匹配效果
3.3 ?
目標定位
基于前面步驟的處理結果,要得到目標在世界坐標下的位姿,需要進行坐標轉換。該過程中會涉及到以下四個坐標系:世界坐標系、相機坐標系、圖像坐標系、像素坐標系。世界坐標系和相機坐標的轉換屬于剛體變換(旋轉、平移);相機坐標系和圖像坐標系利用相似三角原理實現坐標變換;圖像坐標系和像素坐標系利用一組線性變換公式即可得到,故通過上述一系列操作就可以得到像素坐標系到世界坐標系的轉換。 然而,一個物體與相機的相對位置關系和這個物體與機械臂之間的關系是不一樣的,所以在相機確定了物體的位置之后,還要把此時的位置轉換成相對于機械臂的位置。這個位置就是由手眼標定得出。故手眼標定的實質就是建立相機坐標系與機械臂坐標系的映射關系。 同時,為確定三維空間中物體表面某點的幾何位置與其在二維平面圖像中對應點之間的相互關系,必須建立相機成像的幾何模型,這些幾何模型參數就是相機參數(內參、畸變參數)。在大多數條件下,這些參數必須通過實驗與計算才能得到,這個求解參數的過程就稱之為相機標定(或攝像機標定)。 上述通過相機標定得到了三維空間中物體表面某點的幾何位置與其在二維平面圖像中對應點之間的相互關系,同時前文借助OpenCV視覺庫的cv2.findContours()函數不但能找到目標物體的輪廓,還能得到二維圖像上目標輪廓的中心像素坐標,再結合手眼標定得到相機坐標系與機械臂坐標系的映射關系,此時我們就可以通過矩陣變換實現依次將目標物體從像素坐標系到圖像坐標,再到相機坐標,最后到世界坐標(機械臂坐標)的轉換,從而得到目標物體在機械臂坐標系下的空間位置。實現目標定位后,利用運動控制節點即可實現機械臂對目標物體的抓取(一氣呵成~)。
04
識別抓取實驗
4.1 ? 環境搭建
本項目采用ROS2GO作為開發平臺,內置Ubuntu 18.04,ROS Melodic環境,即插即用。
圖 4.1 128G內存ROS2GO開箱圖片
(1)創建工作空間并配置機械臂環境(xArm六軸機械臂)
圖 4.2 創建工作空間?
圖 4.3 配置機械臂的工作環境
(2)配置攝像頭環境(D415)
圖 4.4 配置深度相機的工作環境
4.2 ? 抓取測試
1)啟動機械臂xArm6 service server節點,輸入:
$??? roslaunch xarm_bringup xarm6_server.launch robot_ip:= IP地址將機器臂與我們的電腦進行連接。 2)機械臂使能,輸入:
$????rosservice?call?/?xarm?/?motion_ctrl?8?1
當每個關節使能時,就會聽到伺服電機啟動的聲音。
3)依次設置正確的機械臂模式(0:POSE)和狀態(0:READY),輸入:
$?rosservice?call?/?xarm?/?set_state?0 $?rosservice?call?/?xarm?/?set_mode?0
4)將機械臂運動到指定位置做好抓取準備。輸入:
$?rosservice?call?/?xarm?/?move_line?[x,x,x,3.14,0,0]?x?x?0?0
5)啟動深度相機。輸入:
$???roslaunch?realsense2_camera?rs_camera.launch打開深度相機。 6)用Python調用抓取代碼,實現機械臂的自動識別和目標抓取。
系統抓取測試啟動腳本如圖 4.5所示。
圖4.5啟動抓取腳本
利用上述方法搭建實驗平臺并進行驗證:對桌面上三種形狀(長方體、圓柱體、正方體),三種顏色(紅、綠、藍)共9個物體進行抓取,并按照相同形狀進行碼垛。
圖 4.6是機械臂完成第一次抓取任務的過程。圖 4.6(a)為機械臂抓取初始狀態示意圖,此時機械臂只是使能但未運動;圖 4.6(b)是機械臂運動到抓取姿態,方便深度相機拍到清晰的畫面;圖 4.6(c)是機械臂識別紅色長方體后進行抓取操作;圖 4.6(d)是機械臂完成抓取并放到預設的碼垛區。
圖 4.6 抓取流程(實際視頻如下)
05結論及展望
本項目基于實驗室環境設計了一種采用視覺引導使機械臂完成自主抓取的系統,對智能抓取系統的軟硬件、目標識別與定位等相關技術進行了分析、研究以及實驗測試,給出了一套較為完整的解決方案,可有效解決傳統的機械臂抓取系統所存在的適應環境能力差、開發及使用難度較大等問題。
尤其是,在算法處理方面采用了模板匹配法,實驗結果表明基于機器視覺的機械臂抓取系統能夠滿足在實驗室環境下自主抓取的要求。
編輯:黃飛
評論
查看更多