預抓取與接近
預抓取與接近,是機器人的手在真正碰到物體之前那段小心翼翼的「助跑」——在這段動作裡,它把手指對正、張開到合適的寬度,並沿著選定的路徑滑入。看看你自己怎麼端起一隻咖啡杯:你不會一巴掌直拍上去,而是先把手指張開,把手繞過去、從敞開的那一側靠近把手,並在臨近時放慢。機器人也做同樣的事,分成兩個有名字的部分。預抓取是一個「路徑點」姿態,停在物體正前方一小段距離處,此時夾爪已經擺好朝向、預先張開。接近則是從那個路徑點最後滑向接觸的一段、通常是直線的運動。
把動作這樣拆開,解決了一個實實在在的難題:機器人想讓手指最終落到的那個位置,往往恰恰被它要去拿的物體占著,再加上桌面、料箱壁或旁邊的其他物件,擠成一團。先飛到一個空曠的預抓取姿態,然後才沿著一條乾淨、無碰撞的直線接近(常常是順著夾爪閉合軸筆直伸入,或順著吸盤法線方向貼入),機器人就能避免把目標撥飛、避免蹭到箱壁,也避免「最終姿態很好、但到達它的路徑根本走不通」。接近方向還決定了手指會落在哪些表面上,所以一個考慮周全的預抓取,已經完成了「穩穩抓住」這件事的一半。
實際操作中,一個抓取方案並不只是單獨一個目標姿態,而是一道簡短的「配方」——預抓取姿態、接近的方向向量與距離,然後閉合——運動規劃器會被要求先到達預抓取、再執行接近。如果筆直伸入的接近被擋住,或預抓取姿態夠不著,系統就會否決這個抓取、改試另一個候選方案。正因如此,這兩個步驟幾乎被寫進了每一條取放與料箱揀選的流水線裡。
一台料箱揀選機器人發現一隻瓶子靠在箱壁上。它算出一個預抓取姿態,懸停在瓶身中段上方十釐米處、夾爪與瓶子長度方向對齊,先讓手臂自由地擺到那裡,然後筆直向下接近,直到手指跨在瓶子兩側——全程不碰箱壁——再閉合夾爪。
一個預抓取路徑點,加上一段筆直向下的接近,讓機器人不撞料箱就能夠到藏在角落的物體。
這裡說的「姿態」是指位置加朝向的合稱——手在哪裡、又轉向哪個方向。抓握閉合之後那個小小的「退開」動作,用來把物體提離原處,正是接近動作的鏡像,常被稱為「撤離」或「抬起」。