引言
在之前的一篇文章中有提到購入了一臺myAGV,以樹莓派4B為控制核心的移動機器人。上篇文章中向大家介紹了myAGV如何實現建圖、導航以及靜態避障,但我們深知,這只是機器人自主導航能力的基礎。在實際應用場景中,機器人需要面對復雜的動態環境,如人流、障礙物等,如何實現可靠的動態避障,是我們不斷探索和挑戰的問題。在本文中,我們將分享我們在探索動態避障方面的實踐和經驗,希望能夠為其他創客開發者和機器人愛好者提供一些參考和啟發。
如果想知道上篇介紹了些什么,點擊這個連接
在此之前,還是在介紹一下myAGV,我使用的這款機器人。
myAGV是一款大象機器人公司出品的移動機器人,由樹莓派4B為控制核心,內置Ubuntu18系統,ROS編譯環境;360°激光雷達,內置高清攝像頭。它采用了競賽級別的麥克納姆車輪和帶有金屬框架的全包裹設計。
動態避障
動態避障是指在移動機器人或自動駕駛汽車等智能移動設備在行進過程中,通過實時感知周圍環境的變化,采取相應的措施以避免與障礙物發生碰撞的技術。動態避障需要實時感知環境的變化,如監測障礙物的位置、大小、形狀、運動狀態等,然后通過對這些信息的處理和分析,生成相應的行動指令,使機器人或汽車能夠避免與障礙物發生碰撞并繼續前進。
下面分享了一個視頻,內容關于無人飛機進行快速動態避障的記錄。
突然起來的障礙物,需要立即避開它,避免造成無人機的損傷。今天我們要實現的是myAGV在自動導航的時候也能夠及時的躲避障礙物。
TEB算法
TEB(Timed-Elastic-Band)是一種用于軌跡優化的算法,可用于機器人的動態避障和路徑規劃。主要對全局路徑規劃器生成的初始全局軌跡進行后續修正,從而優化機器人的運動軌跡,屬于局部路徑規劃。在軌跡優化過程中,該算法擁有多種優化目標,包括但不限于:整體路徑長度、軌跡運行時間、與障礙物的距離、通過中間路徑點以及機器人動力學、運動學以及幾何約束的符合性。
起始點和目標點狀態都有全局規劃器制定,中間插入N個控制橡皮筋形狀的控制點。這個路徑是可以變形的,變形的條件就是所有約束條件,當作橡皮筋的外力,例如距離障礙物的距離,移動機器人的最大速度,最大角速度,最大轉彎半徑等。依靠這些約束條件來保證移動機器人的安全和穩定。
TEB算法具體實現的過程如下:
1. 根據機器人當前位置和目標位置,生成一條初始路徑。
2. 將路徑表示為一系列時間段上的線段,稱為軌跡片段。每個軌跡片段表示機器人在一個時間段內沿著一條直線運動的軌跡。
3. 對每個軌跡片段進行優化,以滿足機器人的運動約束和避障需求。優化目標是使軌跡片段的長度和運動時間最小,同時避免與障礙物發生碰撞。
4. 將優化后的軌跡片段拼接在一起,形成機器人的最終運動軌跡。如果機器人遇到障礙物,可以重新生成軌跡片段,并進行優化。
TEB算法的優點是可以在運動中實時避開障礙物,并可以處理機器人的動態運動。同時,TEB算法可以結合其他的避障算法,例如基于模型預測控制的算法,提高避障效果。
DWA算法
DWA(DynamicWindowApproach)是一種用于機器人動態避障的算法。該算法旨在在機器人的運動范圍內搜索最優的運動軌跡,以避開障礙物。DWA算法通過將機器人的運動軌跡表示為一組(v,w)速度和角速度的組合,然后對這些組合進行搜索和評估,找到最優的運動軌跡。
DWA算法的具體實現過程如下:
1. 根據機器人當前位置和目標位置,生成一組速度和角速度的候選集合,稱為速度窗口。
2. 對速度窗口中的每個速度和角速度組合,計算機器人在接下來的一段時間內所能到達的位置,即運動軌跡。
3. 對每個運動軌跡進行評估,以確定是否與障礙物發生碰撞。評估的方法包括計算軌跡上的代價函數,例如與障礙物的距離和速度等。
4. 根據評估結果,選擇代價函數最小的運動軌跡,并將該軌跡作為機器人的運動指令。
這個視頻能夠輔助了解DWA算法。
TEB-DWA算法
TEB在實現動態避障方面具有一定的優勢。然而,TEB算法也存在一些局限性,其中包括:
●對初始路徑依賴性強:TEB算法的性能很大程度上依賴于初始路徑的質量。如果初始路徑存在較大的偏差或錯誤,TEB算法很可能會陷入無法解決的困境。
●對環境模型的依賴性強:TEB算法需要準確的環境模型,包括障礙物的位置和形狀等信息。如果環境模型存在偏差或誤差,TEB算法可能會出現路徑規劃錯誤的情況。
●對計算資源的要求高:TEB算法需要進行大量的計算和優化,時間復雜度較高,對計算資源的要求也較高。
DWA算法也具有能對軌跡進行搜索和評估,選出最優路徑解,但也有一定的局限性:
●無法處理高速運動的障礙物:DWA算法是基于機器人的運動模型和環境感知,通過搜索和評估速度和角速度的組合,找到最優的運動軌跡,以避開障礙物。然而,在高速運動的障礙物出現時,DWA算法可能無法及時感知和處理,從而導致機器人的碰撞和安全問題。
●對環境模型的要求較高:DWA算法需要機器人具有較好的環境感知能力,以獲取環境中障礙物的位置、形狀和大小等信息。如果環境模型不準確或者不完整,DWA算法可能無法正確地評估運動軌跡的代價函數,從而導致機器人的錯誤運動和避障失敗。
●無法處理不確定的環境:DWA算法是基于靜態環境的假設,即環境中的障礙物位置不會發生變化。然而,在一些不確定的環境中,例如動態障礙物頻繁出現的場景,DWA算法可能無法有效地避開障礙物,從而導致機器人的碰撞和安全問題。
●難以處理多機器人協同避障:DWA算法通常是針對單個機器人的避障問題進行設計的,難以處理多機器人協同避障的問題。在多機器人協同避障時,需要考慮機器人之間的相互作用和協調,從而進行更加復雜和高級的避障算法設計。
為了解決TEB和DWA算法的局限性,實現更加精細和高效的動態避障和路徑規劃,有人提出了TEB-DWA算法,TEB-DWA算法的核心思想是通過將TEB算法和DWA算法的優點結合起來,設計出一種更加精細和高效的動態避障算法。具體來說,TEB-DWA算法采用TEB算法的彈性帶方法,實現路徑規劃和優化,同時采用DWA算法的速度窗口方法,實現速度和角速度的搜索和評估,從而實現機器人的動態避障和路徑規劃。
teb-dwa算法的實現過程是啥
TEB-DWA算法的實現過程主要分為以下幾個步驟:
1. 機器人運動模型的建立:根據機器人的運動約束和動力學模型,建立機器人的運動模型,用于計算機器人的運動軌跡和速度約束。
2. 環境感知和障礙物檢測:通過機器人的傳感器獲取環境中障礙物的位置、形狀和大小等信息,進行障礙物檢測和分類,以確定機器人的運動路徑和避障策略。
3. 彈性帶路徑規劃:根據機器人的起點和終點,利用彈性帶方法生成機器人的運動路徑,并考慮機器人的運動約束和避障需求,以實現路徑規劃和優化。
4. 速度窗口搜索和評估:根據機器人的運動模型和環境感知信息,利用DWA算法搜索機器人的最優速度和角速度組合,并評估每個速度和角速度組合的代價函數,以確定機器人的運動軌跡和避障策略。
5. 運動控制和執行:根據計算得到的最優速度和角速度組合,利用控制算法實現機器人的運動控制和執行,以實現機器人的動態避障和路徑跟蹤。
實際操作
在ROS中,可以使用MoveBase包來實現TEB-DWA算法。MoveBase是ROS中常用的路徑規劃和導航包,提供了多種路徑規劃算法和導航功能,包括TEB-DWA算法。下面是使用ROS中TEB-DWA算法的步驟:
1. 安裝MoveBase包:在ROS中安裝MoveBase包,可以使用以下命令:“sudoapt-getinstallros--move-base”
2. 配置MoveBase參數:在使用TEB-DWA算法之前,需要配置MoveBase的參數。可以使用move_base.launch文件來配置參數,例如設置機器人的起點和終點、地圖信息、運動約束和避障參數等。可以根據具體的應用場景和任務需求,進行參數的調整和優化。
3. 運行MoveBase節點:在配置好參數之后,可以使用以下命令來啟動MoveBase節點:”roslaunchmove_basemove_base.launch“
4. 發布目標點:在運行MoveBase節點之后,可以使用move_base/goal話題來發布機器人的目標點。例如使用rostopicpub命令來發布目標點:
5. 監聽機器人狀態和反饋:在機器人開始運動之后,可以使用/move_base/status話題來監聽機器人的狀態和反饋信息。例如使用rostopicecho命令來監聽狀態和反饋信息:
建圖
我們快速的建圖,進行避障的實驗。
打開終端運行命令,啟動雷達
cdmyagv_rossource./devel/setup.bashroslaunchmyagv_odometrymyagv_active.launch
然后運行gmapping算法建圖
roslaunchmyagv_navigationmyagv_slam_laser.launch
動態避障
我們使用默認的配置,看看效果如何。
這似乎看起來實現了動態避障,但是似乎看起來有些許的愚蠢,在發現障礙物的時候還繞了一圈掃描環境。
調整了一下規劃的頻率(plannedfrequency)重新進行了一次測試。
這樣看起來效果就好多了。
總結
對myAGV也使用了有一段的時間了,首先我是十分喜歡它的外觀的,很酷炫,沒有結構件在外面展露出來,內部包裹的很好,發生了碰撞也會有一定的保護作用。其次是它配套的資料都非常地詳細,能夠提供一個快速上手地模板使用,對于剛接觸一款全新未知的產品很有幫助。
使用下來的整體感受還是不錯的,連接顯示器就能夠使用,基于樹莓派也有很多的社區能夠提供幫助,有許多優秀的案例。此外也有一些需要提升的地方,在進行建圖的時候,有時候并不是那么的準確,可能是因為外殼的原因?遮擋住了雷達的范圍。也希望使用時間上能夠更長。
審核編輯 黃宇
-
機器人
+關注
關注
211文章
28476瀏覽量
207416 -
算法
+關注
關注
23文章
4616瀏覽量
93027 -
SLAM
+關注
關注
23文章
425瀏覽量
31860
發布評論請先 登錄
相關推薦
評論