1. 程式人生 > 其它 >機械臂抓取---(1)概述

機械臂抓取---(1)概述

Pipeline and Key Technologies
智慧機器人的重要特性是能夠感知環境並與之互動。 在機器人的眾多功能力中,抓取是機器人的最基礎也是最重要的功能。在工業生產中,機器人每天要完成大量繁重的抓取放置任務,為老年人和殘疾人提供便利的家用機器人,也是以日常抓取任務為主。因此,賦予機器人感知能力並通過感知資訊更好的完成抓取一直是機器人和機器視覺領域的重要研究內容之一。

機器人抓取系統主要由 抓取檢測系統、抓取規劃系統和抓取控制系統 組成。其中, 抓取檢測系統為後面兩個子系統的規劃和控制提供了目標和機器人的相對位置資訊,是抓取任務順利進行的前提。抓取規劃系統和控制系統與運動學和自動化控制學科關係密切,本文只討論與機器人視覺相關的抓取檢測系統子系統的實現。

抓取檢測系統的實現根據實際的應用場景有所不同。目前常見的抓取場景可分為兩大類:2D平面抓取 和 6 Dof空間抓取 。

2D平面抓取
該場景下,機械臂豎直向下,從單個角度去抓目標物體,如工業場景中流水線上的分揀和碼垛。二維平面抓取,目標物體位於平面工作空間上,抓取受到一個方向的約束(支撐平面約束)。 在這種情況下,夾持器的高度是固定的,夾持器的方向垂直於一個平面。 因此,基本資訊從 6D 簡化為 3D,即 2D 平面內位置和 1D 旋轉角度。


圖1 2D平面抓取
6Dof空間抓取
該場景下,機械臂可以從任意角度抓取目標物體。如圖2,黃色物體表示平行抓手,它可以從不同的角度來抓取目標物體。

圖2 6Dof空間抓取

無論是2D平面抓取還是6Dof空間抓取,抓取檢查系統都需要完成的三個任務:目標定位、目標位姿估計和抓取位置估計。或者說 物體定位、位姿估計到抓取位姿估計。
本文盡力實現抓取檢測系統實現的技術全貌,瞭解如何在給定原始視覺資料的情況下檢測目標進行位姿估計,並根據目標物體的位姿,計算得到機器人抓取時夾爪的位姿。

目標定位
大多數機器人抓取方法首先需要目標物件在輸入資料中的位置。 這涉及三種不同的情況:無分類的物件定位、物件檢測和物件例項分割。 無分類的物件定位只輸出目標物件的潛在區域,而不知道它們的類別。 物件檢測提供目標物件及其類別的邊界框。 物件例項分割進一步提供了目標物件畫素級或點級區域及其類別。

無分類的物件定位

  1. 基於2D影象


圖3 基於2D影象的定位方法

如果物體的外部輪廓已知,可以採用擬合形狀基元法。先提取出影象所有封閉的輪廓,其次再用擬合方法得到潛在可能是目標的物體,如果存在多個候選,可以使用模板匹配去除干擾。如果物體輪廓未知的,可以採用顯著性檢測方法,顯著性區域可以是任意形狀。2D顯著性區域檢測的目的是定位和分割出給定影象中最符合視覺顯著性的區域,可以依據一些經驗例如顏色對比、形狀先驗來得到顯著性區域。

  1. 基於3D點雲


圖4 基於3D點雲的定位方法

基於3D點雲的定位方法,與2D類似,只是維度上升到了三維。針對有形狀的物體(如球體、圓柱體、長方體等),將這些基本的形狀作為3維基元,通過各種方法進行擬合來定位。而基於3D顯著性區域檢測方法,需要從完整的物體點雲中提取顯著性圖譜作為特徵。

目標檢測
物體檢測任務是檢測某一類物體的例項,可以將其視為定位任務加分類任務。 通常,目標物體的形狀是未知的,並且很難獲得準確的顯著區域。 因此,規則邊界框用於一般物件定位和分類任務,物件檢測的輸出是帶有類標籤的邊界框。

  1. 基於2D影象

圖5 基於2D影象的目標檢測

有兩種主流的演算法,第一種是基於區域候選的方法,通過使用滑動視窗策略獲得候選矩陣框,然後針對每個矩形框進行分類識別。為了在不同觀測距離處檢測不同的目標,一般會使用多個不同大小和寬高比的視窗。而矩形框中的特徵,常使用的SIFT,FAST,SURF和ORB等。另一種,就是使用迴歸的方法,採用端到端的深度學習,進行神經網路訓練,直接一次預測出邊界框和類別分數,如我們熟知的YOLO演算法。

  1. 基於3D點雲

圖6 基於3D點雲的目標檢測

3D物體檢測的目的是找到目標物體的包圍盒,也就是找到一個立方體剛好能夠容納目標物體。基於區域候選的方法,使用3D區域候選,通過人工設計的3D特徵,例如Spin Images, 3D Shape Context, FPFH, CVFH, SHOT等,訓練諸如SVM之類的分類器完成3D檢測任務,代表方法為Sliding Shapes。隨著深度學習的發展,可以直接通過網路預測物體的3D包圍盒及其類別概率,其中比較有代表性的是VoxeNet。VoxelNet將輸入點雲劃分成3D voxels,並且將每個voxel內的點雲用統一特徵表示,再用卷積層和候選生成層得到最終的3D包圍盒。

物體分割
物體例項分割是指檢測某一類的畫素級或點級例項物件,與物件檢測和語義分割任務密切相關。 存在兩種方法,即兩階段方法和一階段方法。 兩階段方法是指基於區域候選的方法,一階段方法是指基於迴歸的深度學習方法。

  1. 基於2D影象

圖7基於2D圖片的目標分割

區域候選法藉助上一節目標檢測的結果生成的包圍盒或候選區域,在其內部計算物體的mask區域,然後使用CNN來進行候選區域的特徵提取與識別分類。另一種直接使用端到端的深度學習方法進行分割,預測分割的mask和存在物體的得分。其中比較有代表性的演算法有DeepMask,TensorMask,YOLACT等。

  1. 基於3D點雲

圖8基於3D點雲的目標分割

基於點雲資料的區域候選法,在點雲目標檢測的基礎上,對包圍盒區域進行前後景分割來得到目標物體的點雲。比較經典的演算法有GSPN和3D-SIS,GSPN通過在生成3D候選區域後,通過PointNet進行3D物體的例項分割。3D-SIS使用二維和三維融合特徵進行物體高位盒檢測盒語義例項分割。

目標6D位姿估計
在一些 2D 平面抓取中,目標物件被約束在 2D 工作空間中並且沒有堆積,物件6D位姿可以表示為 2D 位置和平面內旋轉角度。 這種情況相對簡單,基於匹配 2D 特徵點或 2D 輪廓曲線可以很好地解決。 在其他 2D 平面抓取和 6DoF 抓取場景中,需要得到 6D 物體姿態資訊,這有助於機器人瞭解目標物體的位置和朝向。6D物體位姿估計分為基於對應、基於模板和基於投票的三種方法,如下表。

基於對應關係
基於對應關係的目標6D 位姿估計涉及在觀察到的輸入資料和現有完整 3D 物件模型之間尋找對應關係的方法。 當我們想基於2D RGB影象解決這個問題時,需要找到現有3D模型的2D畫素和3D點之間的對應關係。然後通過 Perspective-n-Point (PnP) 演算法計算出位姿資訊。 當要從深度影象中提取的 3D 點雲來進行位姿估計時,要找到觀察到的區域性檢視點雲和完整 3D 模型之間的 3D 點的對應關係,此時可以通過最小二乘法預測物件6D姿態。

圖9 2D圖片基於對應關係的位姿估計

基於對應關係的方法主要針對紋理豐富的目標物體,首先將需要計算位姿的目標物體的3D模型投影到N個角度,得到N張2D模板影象,記錄這些模板圖上2D畫素和真實3D點的對應關係。當單視角相機採集到RGB影象後,通過特徵提取(SIFT,FAST,ORB等),尋找特徵點與模板圖片之間的對應關係。通過這種方式,可以得到當前相機採集影象的2D畫素點與3D點的對應關係。最後使用PnP演算法即可恢復當前視角下影象的位姿。除了使用顯示特徵的傳統演算法外,也出現了許多基於深度學習來隱式預測3D點在2D影象上投影,進而使用PnP演算法計算位姿的方法。

圖10 3D點雲基於對應關係的位姿估計

基於3D點雲的方法與2D影象類似,只是使用了三維的特徵來進行兩片點雲之間的對應。在特徵選擇方面也分為傳統特徵提取(如Spin Images,3D Shape Context等)和深度學習特徵提取(3D Match,3D Feat-Net等)的方法。

基於模板的方法
基於模板的物件6D姿態估計是從已有的物件6D姿態模板庫中找到最相似模板的方法。 在 2D 情況下,模板可以是來自已知 3D 模型的投影 2D 影象,模板內的物件在相機座標中具有相應的物件6D姿態。 因此,6D 物體姿態估計問題轉化為影象檢索問題。 在 3D 情況下,模板可以是目標物件的完整點雲。 我們需要找到將區域性點雲與模板對齊的最佳 6D 姿態,因此物件6D姿態估計成為一個部分到整體的粗配準問題。

圖11 2D圖片基於模板匹配的位姿估計

LineMode方法是基於2D影象的代表,通過比較觀測RGB影象和模板RGB影象的梯度資訊,尋找到最相似模板影象,以該模板對應的位姿作為觀測影象對應的位姿,該方法還可以結合深度圖的法向量來提高精度。而在模板匹配的過程中了,除了顯式尋找最相似的模板影象外,也有方法隱式地尋找最近似的模板,代表性方法是AAE。該方法將模板影象編碼形成碼書,輸入影象轉換為一個編碼和碼書進行比較尋找到最近似的模板。當然,也可以通過深度學習方法,直接從影象中預測目標物體的位姿資訊。該方法可看作是從帶有標籤的模板影象中尋找和當前輸入影象最接近的影象並且輸出其對應的6D位姿標籤的過程。

圖12 2D圖片基於模板匹配的位姿估計

當以3D點云為輸入資料時,傳統的點雲部分配準方法將採集到的部分點雲與完整點雲模板進行對齊匹配,在噪聲較大的情況下具有很好的魯棒性,但是演算法計算過程耗時較長。在這方面,一些基於深度學習的方法也可以有效地完成部分配準任務。這些方法使用一對點雲,從 3D 深度學習網路中提取具有代表性和判別性的特徵,通過迴歸的方式確定對點雲之間的 6D 變換,進而來計算目標物體的6D位姿。

基於投票的方法
基於投票的方法意味著每個畫素或 3D 點通過提供一票或多票對物件6D姿態估計做出貢獻。 按照投票方式可分為兩種,一種是間接投票方式,一種是直接投票方式。 間接投票方法意味著每個畫素或 3D 點對某些特徵點進行投票,從而提供 2D-3D 對應關係或 3D-3D 對應關係。 直接投票方法是指每個畫素或 3D 點對某個 6D 物件座標或姿勢進行投票。

  1. 間接投票

圖13 基於間接投票的位姿估計

間接投票可以看作是基於對應的投票。 在 2D 情況下,對 2D 特徵點進行投票,可以實現 2D-3D 對應。 在 3D 情況下,對 3D 特徵點進行投票,可以實現觀察到的區域性點雲和規範的完整點雲之間的 3D-3D 對應關係。此類方法大多使用深度學習,因為它具有強大的特徵表示能力,可以預測出更好的投票結果。

  1. 直接投票

圖14 基於直接投票的位姿估計

直接投票方法,通過生成大量位姿預測,再進行選擇和優化,可以得到最終的位姿。在二維情況下,這種方法主要用於計算有遮擋物體的姿態。對於這些物件,影象中的區域性證據限制6D位姿的可能性,因此可通過區域性區域中每個畫素投票方式預測位姿。2D輸入的代表性方法有[2014-Learning 6d object pose]和[2014-Latent-class],3D輸入的代表性方法有PPF[2012-3d object detection],[2018-6d pose estimation]。

抓取估計
抓取估計是指估計相機座標中的夾具6D位姿。如前所述,抓取可分為二維平面抓取和 6 DoF 抓取。 對於 2D 平面抓取,受到一個方向的約束,6D 抓手姿勢可以簡化為 3D 表示,其中包括 2D 平面內位置和 1D 旋轉角度,因為高度和沿其他軸的旋轉是固定的 . 對於 6DoF 抓取,抓手可以從各個角度抓取物體,因而抓手6d位姿對於抓取至關重要。

2D平面抓取估計
二維平面抓取估計常用的方法是估計抓取接觸點。 在 2D 平面抓取中,抓取接觸點可以唯一定義抓手的抓取姿勢,這在 6DoF 抓取中是不存在的。這種方法首先對候選抓取接觸點進行取樣,然後使用分析方法或基於深度學習的方法來評估抓取成功的可能性。這種方法屬於分類的方法,機器人抓取的經驗是基於某些先驗知識(例如物件幾何學、物理模型或力分析)已知的前提下執行的。抓取資料庫通常涵蓋的物件數量有限,經驗在處理未知物件時會遇到困難。

圖15 2D平面抓取抓取接觸點估計

6 Dof抓取估計

圖11 6 Dof抓取估計

如果目標物體已知,則可以從RGB-D資料中準確地估計出6D物體姿態,並且可以通過離線預計算或線上生成來獲得6DOF抓取位姿,這是抓取系統最常用的方法。如果資料庫中存在6DoF抓取姿勢,則可以從知識庫中檢索當前的6DoF抓取姿勢,或者通過與現有抓取進行比較來對其進行取樣和排序,從而獲得當前的6DoF抓取姿勢。如果資料庫中不存在6DoF抓取姿勢,則利用解析方法計算抓取姿勢。這類方法適合任意角度的抓取,然而該類方法的弊端是,儘管能成候選抓取位置,但是單個角度下獲得的資料畢竟有限,而如果能夠對物體進行補全,則使用傳統方法生成候選抓取位置也能夠得到很好的結果。

總結
目前機器人抓取系統都與給定的場景深度繫結,不存在一種抓取系統能夠一勞永逸適用於多場景下的抓取任務。因此,針對機器人抓取系統的研究一定是在某個給定場景下,針對給定場景構建基於視覺的物體定位、位姿估計和抓取估計演算法。

物體定位方面,定位但不識別演算法要求物體在結構化場景中或者與背景具有顯著差異,因此限制了其應用場景,而例項級的目標檢測演算法,需要大量目標物體訓練集,且演算法只對訓練集上的物體具良好的檢測精度,對與新的識別目標,需要重新進行訓練,比較耗時。

位姿估計方面,當目標物體具有豐富的紋理和幾何細節時,基於對應關係的方法是一個很好選擇。當目標物件具有弱紋理或幾何細節時,可以使用基於模板的方法。當物件被遮擋且僅部分表面可見時,可以選擇投票的方法進行位姿估計。

抓取估計方面,在有精確的3D模型的情況下,可以精確的估計目標物體的6D姿態。然而,當現有的3D模型與目標模型不同時,估計的6D姿態會產生較大的偏差,從而導致抓取失敗。在這種情況下,需要通過對部分視點雲進行補全,以獲得完整的形狀。在重建的完整3D形狀上生成抓取點。

雖然目前基於視覺端到端的抓取檢測系統研究很多,但是依然存在很多沒有解決的問題。如在日常化的抓取場景中,不是每個抓取的物體都能實現在系統中存有3D模型。同時,基於深度學習的方法大多都是在開放抓取資料集上進行效能測試,而我們日常生活中的物件遠不是這些資料集所能表徵的。另外,目前的抓取系統對於透明物體“無可奈何”,因為深度感測器很難獲取它們的三維資訊。因此,要將學術研究領域的抓取系統直接應用於日常的抓取場景還有很長的路要走。

參考文獻:

[1] Du, Guoguang, et al. "Vision-based robotic grasping from object localization, object pose estimation to grasp estimation for parallel grippers: a review." Artificial Intelligence Review 54.3 (2021): 1677-1734.

[2]《杜國光博士,基於視覺的機器人抓取--物體定位,位姿估計到抓取估計講座筆記》 https://blog.csdn.net/dbdxnuliba/article/details/109544312