該從哪裡抓?把抓取規劃當作一次搜尋
我們隨手拿起東西似乎毫不費力,但機器人必須先回答一個精確的問題:在我的手能接觸這個物體的所有方式中,哪一種真能把它穩穩抓住?做出這個選擇就是抓取規劃——在一批候選的手部擺位中搜尋,逐一打分、排序,直到選出最好的那個。這裡的抓取,指的就是手與物體之間的一組接觸點,它們合在一起能讓物體不滑脫。
可你沒法在一個連位置都不知道的物體上搜尋抓取點。所以抓取規劃幾乎總是接在物體位姿估計之後——這一感知步驟負責弄清物體在哪裡、朝向如何,通常表示為相機視野中的一個位置加一個朝向。給規劃器一個可靠的位姿,它就能針對真實的表面來推理;給它一個不準、晃動的位姿,再聰明的抓取也可能閉合在空氣裡。
對踵抓取:兩個相對的接觸點
規劃器最常提出的抓取就是對踵抓取:隔著物體彼此正對的兩個接觸點,最好落在大致平行的兩個表面上,這樣連接它們的那條線幾乎垂直地切入兩個表面。想想你怎麼用拇指和食指捏住一本書——兩個指腹沿同一條線、從相反兩側向內壓。一夾緊,物體就無處可滑。
為什麼這麼可靠?因為只要兩個接觸點能產生足夠的摩擦,夾得越緊,就越能抵抗物體想要做出的任何扭轉或拉拽——這種性質叫力封閉。當接觸點藉助摩擦能抵抗來自任意方向的推或扭時,抓取就具備力封閉。它更嚴格的表親形封閉,則單憑幾何就把物體徹底籠住,哪怕表面毫無摩擦也動彈不得。大多數兩指抓取靠的是力封閉;形封閉通常需要更多手指,或者一個能包裹的形狀。
三類夾爪,三種物體
規劃器選哪種抓取,很大程度上取決於機器人末端裝的是什麼手。這隻手就是夾爪,主流有三大類,各自最適合不同種類的物體。
- 平行二指夾爪——兩片扁平手指對夾。結構簡單、力量大、便宜,與對踵抓取是天作之合。最適合盒子、瓶子,以及帶有一對可抓平行面的零件;對脆弱、不規則或軟塌的物體則力不從心。
- 多指手——三根或更多手指,常帶關節,能裹住一個形狀。它們可以實現形封閉,甚至在拿起物體後重新調整抓握。這就為靈巧操作和手內操作打開了大門——手用自己的手指把物體重新轉向。代價是複雜:更多電機、更難控制,也更多可能出錯的地方。
- 吸盤夾爪——一隻吸盤貼住表面,在背後抽出真空。吸盤只需要一塊光滑、較為平整、不漏氣的區域,而不需要兩個相對的面,所以它在平整紙箱、光面袋子,以及鉗子難對付的薄片上大放異彩。遇到多孔、彎曲過陡或破損的表面,密封會漏氣,它就失靈了。
注意硬件如何改變了問題本身。平行二指要求規劃器找出兩個相對的面;吸盤只要求找到一塊好的密封區域;多指手提出的問題最豐富——每根手指該擺在哪裡?——這正是它強大的原因,也正是它難的原因。
從候選到接觸:抓取流水線
規劃器提出若干抓取後,機器人會給它們排序,再執行勝出的那一個。兩個概念把整套流程串了起來。其一,每個候選抓取都會得到一個抓取質量度量——用一個數字估計該抓取有多穩、多穩健,好讓規劃器把好的和冒險的分開。其二,機械臂不會直直地撲向物體;它會走一段預抓取與接近,先在稍遠處把手對齊,再沿接近方向乾淨俐落地切入。
- 估計物體位姿,並在其表面上提出幾個候選抓取。
- 用質量度量給每個候選打分,並剔除那些會撞到料箱、檯面或鄰近物體的抓取。
- 移動到物體正上方或旁邊的預抓取位姿,手指張開,與選定的接近方向對齊。
- 沿該方向接近,閉合夾爪(或抽真空),確認接觸,然後提起——同時盯住力或真空回饋,以便及早發現打滑。