運動與路徑規劃

時間參數化與軌跡平滑

規劃器交回來的通常是一條「路徑」:空間中的一串點——先到這裡,再到這裡,然後到那裡——就像地圖上的一連串圓點。但這些圓點對「時間」隻字未提。它們沒有告訴機器人該走多快、什麼時候加速、什麼時候鬆勁。時間參數化就是給這條光禿禿的路徑配上一隻時鐘的步驟:它為每一個時刻確定機器人此刻究竟應該在哪裡,於是那串沉默的點就變成了一份真正可以照著執行的、會動起來的計畫。其結果被稱為「軌跡」——也就是附帶了時間的路徑。

難點在於,機器人並不能想多快就多快。每個關節都有一個不能超過的最高速度(速度上限),以及一個改變速度的最快幅度(加速度上限);一旦硬闖過任何一個,機器人就會猛地一頓、衝過頭,或者乾脆卡住。所以時間參數化就像一位謹慎的司機在蜿蜒的山路上規劃行程:在直道上放開油門,在急彎前早早剎車,絕不向輪胎索取超過它抓地力的東西。它會沿著路徑把時間安排拉長或壓縮,讓機器人始終待在每一條限制之內,同時又盡這些限制所允許地盡快完成。

軌跡平滑是它的親密搭檔。一條剛規劃出來的原始路徑往往是稜角分明的——一段直線接上下一段直線的地方會出現尖角和突兀的折點。如果要機器人嚴格沿著這種尖角走,就意味著要在拐角處驟然停下、再猛地切換到新方向,既顛簸又緩慢,還很傷硬體。平滑會把那些拐角磨圓、把速度的變化揉和起來,讓運動匯成一氣呵成的連貫劃過,就像滑雪者順勢劃出一道柔和的弧線,而不是硬生生踩出一段段折線。時間安排與平滑合在一起,就把一條幾何路線變成了真實機器能夠優雅完成的動作。

給一隻機械臂一條平滑的路徑,讓它端著一杯咖啡橫穿桌面。時間參數化為它定下一條溫和的速度曲線——起步慢、停得也慢、沒有任何驟然的顛簸——這樣機械臂就絕不會猛到把咖啡晃出杯沿;可要是杯子是空的,它本來是可以快得多的。

同一條路徑,不同的時間安排:速度和加速度的限制,決定了走多快才是安全的。

路徑和軌跡不是一回事:路徑只是路線在空間中的形狀,而軌跡則加上了時間——你在每一瞬間所處的位置,從而也就決定了你走得多快。

又稱
trajectory timing时间参数化軌跡平滑time-optimal trajectory generation