當前位置: 華文星空 > 知識

機械臂的軌跡規劃,路徑規劃,運動規劃有什麽區別呢?

2019-10-10知識

先解決定義問題。名詞定義不重要,但是我們有必要了解它們可能涉及機器人研究中的哪些工作。

路徑規劃 ,規劃的就是路徑,也即機器人運動到目標點的空間路線,它規劃的結果往往是不包含速度、時間資訊的,也即 \theta(s)(0\leq s\leq1) ,解決的是可達性的問題。

軌跡規劃 ,規劃的就是軌跡,也即動點在空間的位置隨時間連續變化而形成的曲線,它規劃的結果是機器人關節角度隨時間變化的關系,也即 \theta(t) (t_{min} \leq t \leq t_{max}) ,解決的是與時間、速度等微分約束相關的問題。

運動規劃 ,可以認為是更加寬泛的概念,它規劃的結果是讓機器人實作某種約束目標的動作(motion),這些動作既可以是離散的空間路徑點 {\theta_1, \theta_2, ..., \theta_n} ,也可以是一個連續的空間路徑 \theta(s) ,又可以是帶有時間資訊的空間軌跡 \theta(t) ,甚至可以是機器人底層的控制資訊 u(t) ,或者是某種控制策略。

再解決這些工作之間的關系問題。

機器人底層控制最終需要的就是一堆電流控制指令,所以,不管是什麽任務,最終都需要轉譯成每個電機的控制指令。但是,由於不同任務的硬件平台、任務需求、約束不同,所以,可能會不同層次地將任務進行分解。

對於最簡單的任務,只要求機器人從 A 運動到 B,中間避開障礙物,而不用考慮運動時間等問題。這時候,基本上規劃部份只需要進行路徑規劃即可:規劃器輸出一條幾何路徑 \theta(s) ,發送給機器人控制器,機器人控制器自行進行路徑點之間的軌跡插補(如 T型速度曲線、樣條插值等),計算得到 \theta(t) ,並透過 PID 之類的閉環控制演算法轉換電機控制指令,控制機器人完成任務。

例如,之前的一個回答,要求機器人運動的時候避開相機視野區域,就是這樣的問題:

另一方面,不同任務,即使在其空間路徑相同的情況下,也可能對軌跡有不同的要求。例如,有些任務要求機器人的運動時間最短,有些任務要求機器人的運動節拍固定,有些任務要求機器人的末端勻速運動。甚至是,從運動平穩性考慮,需要規劃出速度、加速度、甚至是加加速度連續的軌跡。

對於這類任務,僅做路徑規劃就無法滿足要求,往往需要路徑規劃與軌跡規劃相結合。對於這類任務,可以先進行路徑規劃,獲得滿足任務的空間路徑,之後再進行軌跡插補,獲得需要的軌跡後,透過即時通訊的方式,將軌跡發送給機器人控制器,透過閉環控制,得到電機控制指令。

下面的影片是相同的路徑,但是不同的軌跡規劃結果。分別是時間最優、節拍固定和末端勻速的軌跡:

但是,如果機器人的運動軌跡需要滿足某種動力學約束,那麽,往往需要規劃器直接計算出符合約束的軌跡,而不是分為路徑規劃和軌跡插補兩部份。

例如,之前釋出的一篇文章,介紹如何透過運動規劃實作機械臂高速搬運液體:

對於某些任務,規劃的時候,環境的狀態不完全可觀,或者說環境可能發生變化。這時候,需要的是某種運動策略,輸入當前的環境與機器人狀態 s,輸出當前時刻的控制指令 u。很多強化學習的工作,其實就是在做這類工作,透過 DRL 去學習不同狀態下的控制策略。

所有上面這些場景,都可以是運動規劃的範疇。