時間:2023-11-14 13:46:01來æºï¼šæ©Ÿå™¨è¦–覺沙é¾
å°Žèˆªå †æ£§çš„å·¥ä½œæ˜¯é€šéŽè™•ç†ä¾†è‡ªæ¸¬è·ã€å‚³æ„Ÿå™¨å’Œç’°(huán)境圖的數(shù)據(jù)來產(chÇŽn)生讓機器人執(zhÃ)行的安全路徑。
最大é™åº¦åœ°æé«˜æ¤å°Žèˆªå †æ£§çš„æ€§èƒ½éœ€è¦å°åƒæ•¸(shù)進行一些精細的調(dià o)æ•´ï¼Œé€™é …å·¥ä½œå¹¶ä¸åƒçœ‹èµ·ä¾†é‚£ä¹ˆç°¡å–®ã€‚
å¦‚æžœå°æ¦‚念和推ç†äº†è§£ä¸æ¸…楚,å¯èƒ½æœƒéš¨æ„å˜—è©¦ï¼Œé€™å°‡æµªè²»å¤§é‡çš„æ™‚間。
本文旨在引導讀者æ£ç¢ºå¾®èª¿(dià o)å°Žèˆªåƒæ•¸(shù)。當在è¨(shè)置一些關(guÄn)éµåƒæ•¸(shù)的時候,需è¦çŸ¥é““如何â€å’Œâ€œç‚ºä»€ä¹ˆâ€ã€‚
本指å—å‡å®šè®€è€…有已經(jÄ«ng)è¨(shè)ç½®äº†å°Žèˆªå †æ£§å¹¶æº–å‚™å„ª(yÅu)化。這也是我總çµ(jié)在 ROS å°Žèˆªå †æ£§çš„ä¸€å€‹éŽç¨‹ã€‚
æ£æ–‡
1 é€Ÿåº¦å’ŒåŠ é€Ÿåº¦
本節(jié)涉åŠåŒæ¥é©…(qÅ«)動機器人。動力性(å³é€Ÿåº¦å’Œæ©Ÿå™¨äººçš„åŠ é€Ÿåº¦ï¼‰å°äºŽåŒ…括動態(tà i)çª—å£æ–¹æ³•(DWA)和定時彈性帶(TEB)在內(nèi)的本地è¦(guÄ«)劃器來說是必ä¸å¯å°‘的。
在 ROS å°Žèˆªå †æ£§ï¼Œæœ¬åœ°è¦(guÄ«)åŠƒå™¨æŽ¥æ”¶æ¸¬è·æ¶ˆæ¯ï¼ˆâ€œodomâ€ä¸»é¡Œï¼‰å¹¶è¼¸å‡ºé€Ÿåº¦å‘½ä»¤ï¼ˆâ€œcmd_velâ€ä¸»é¡Œï¼‰ä¾†æŽ§åˆ¶æ©Ÿå™¨äººçš„é‹å‹•。
最大/最å°é€Ÿåº¦å’ŒåŠ é€Ÿåº¦æ˜¯ç§»å‹•åŸºç«™çš„å…©å€‹åŸºæœ¬åƒæ•¸(shù)æ£ç¢ºè¨(shè)置它們å°äºŽæœ€ä½³çš„æœ¬åœ°è¨ˆåŠƒè¡Œç‚ºéžå¸¸æœ‰å¹«åŠ©ã€‚
在 ROS ä¸å°Žèˆªï¼Œæˆ‘們需è¦çŸ¥é“平移和旋轉(zhuÇŽn)çš„é€Ÿåº¦å’ŒåŠ é€Ÿåº¦ã€‚
1.1 ç²å¾—最大速度
通常å¯ä»¥åƒè€ƒä½ 的移動基站的手冊。例如,SCITOS G5 的最大速度是 1.4m/s。
在 ROS ä¸ï¼Œä½ å¯ä»¥è¨‚é–± odom 主題來ç²å–ç•¶å‰çš„æ¸¬è·ä¿¡æ¯ã€‚
å¦‚æžœä½ å¯ä»¥æ‰‹å‹•æŽ§åˆ¶ä½ çš„æ©Ÿå™¨äººï¼ˆå¦‚é€šéŽæ“ç¸±æ¡¿ï¼‰ï¼Œä½ å¯ä»¥å˜—試å‘å‰é‹è¡Œï¼Œç›´åˆ°é”到æ’定速度,然åŽè¼¸å‡ºé‡Œç¨‹è¨ˆæ•¸(shù)據(jù)。
平移速度(m/s)是機器人在直線移動時的速度。它的最大值就是上邊我們ç²å¾—的最大值。
旋轉(zhuÇŽn)速度(rad/sï¼‰ç‰æ•ˆäºŽè§’速度,它的最大值是機器人旋轉(zhuÇŽn)åˆ°ä½æ™‚的速度。
為了ç²å¾—最大角速度,我們å¯ä»¥é€šéŽæŽ§åˆ¶æ“縱桿來讓機器人旋轉(zhuÇŽn) 360°,直到它的角速度é”到æ’定值。
為了安全起見,我們傾å‘于è¨(shè)定最大平移速度和旋轉(zhuÇŽn)速度低于它們的實際值。
1.2 ç²å¾—æœ€å¤§åŠ é€Ÿåº¦
如果手冊沒有說明,有很多種方法å¯ä»¥ç²å¾—ç§»å‹•åŸºç«™çš„æœ€å¤§åŠ é€Ÿåº¦ã€‚
在 ROS ä¸ï¼Œæˆ‘們å¯ä»¥è¼¸å‡ºå¸¶æœ‰æ™‚間戳的里程計數(shù)據(jù),然åŽçœ‹æ©Ÿå™¨äººé”到æ’定的最大平移速度(ti)需è¦å¤šé•·æ™‚間,然åŽä½¿ç”¨ä¾†è‡ªé‡Œç¨‹è¨ˆæ•¸(shù)據(jù)(nav_msgs/Odometry message)來計算這個éŽç¨‹çš„åŠ é€Ÿåº¦ã€‚å¤šåšå¹¾æ¬¡å¯¦é©—求平å‡å€¼ã€‚
使用 ttã€tr 分別來表å¾å¾žéœæ…‹(tà i)åˆ°é”æœ€å¤§å¹³ç§»é€Ÿåº¦å’Œæœ€å¤§æ—‹è½‰(zhuÇŽn)速度的時間。
æœ€å¤§å¹³ç§»åŠ é€Ÿåº¦ç´„ç‰äºŽæœ€å¤§å¹³ç§»é€Ÿåº¦é™¤ä»¥æ™‚é–“ ttï¼ŒåŒæ¨£çš„,最大旋轉(zhuÇŽn)åŠ é€Ÿåº¦ç´„ç‰äºŽæœ€å¤§æ—‹è½‰(zhuÇŽn)速度除以旋轉(zhuÇŽn)時間 tr。
1.3 è¨(shè)置最å°å€¼
è¨(shè)置最å°é€Ÿåº¦çš„æ–¹æ³•與上述ä¸åŒã€‚å°äºŽæœ€å°å¹³ç§»é€Ÿåº¦ï¼Œæˆ‘們將它è¨(shè)ç½®ç‚ºä¸€å€‹å¤§çš„è² å€¼ï¼Œå› ç‚ºé€™å°‡å¯ä»¥ä½¿æ©Ÿå™¨äººé™·å…¥å›°å¢ƒä¸æ™‚å¯ä»¥åŽé€€ï¼Œå³ä½¿å¤§å¤šæ•¸(shù)情æ³ä¸‹å®ƒéƒ½æ˜¯å‰é€²çš„。
å°äºŽæœ€å°çš„æ—‹è½‰(zhuÇŽn)é€Ÿåº¦ï¼Œå¦‚æžœåƒæ•¸(shù)å…許,我們將其è¨(shè)ç½®ç‚ºè² å€¼ï¼Œä»¥ä¾¿æ©Ÿå™¨äººå¯ä»¥åœ¨ä»»æ„æ–¹å‘æ—‹è½‰(zhuÇŽn)ã€‚è¦æ³¨æ„,DWA 本地è¦(guÄ«)åŠƒå™¨é‡‡ç”¨çš„æ˜¯æ©Ÿå™¨äººæœ€å°æ—‹è½‰(zhuÇŽn)速度的絕å°å€¼ã€‚
1.4 xã€y æ–¹å‘速度
x æ–¹å‘的速度是指平行于機器人直線é‹å‹•æ–¹å‘的速度,這與移動速度相åŒã€‚
y æ–¹å‘的速度垂直于直線é‹å‹•,它被稱之為“沖擊速度â€ã€‚å°äºŽéžæ•´é«”機器人(如差速輪機器人),y 速度應(yÄ«ng)該è¨(shè)置為零。
2 全局路徑è¦(guÄ«)劃
2.1 全局路徑è¦(guÄ«)åŠƒæ–¹æ³•é¸æ“‡
為了使用導航包ä¸çš„ move_base 節(jié)é»žï¼Œæˆ‘å€‘éœ€è¦æœ‰å…¨å±€è¦(guÄ«)劃器和局部è¦(guÄ«)åŠƒå™¨ã€‚åœ¨å°ŽèˆªåŒ…ä¸æœ‰ä¸‰ç¨®å…¨å±€è¦(guÄ«)劃器:carrot è¦(guÄ«)劃器ã€navfn è¦(guÄ«)劃器和 global è¦(guÄ«)劃器。
2.1.1 carrot è¦(guÄ«)劃器
這是最簡單的一種è¦(guÄ«)åŠƒå™¨ã€‚å®ƒæª¢æŸ¥çµ¦å®šçš„ç›®æ¨™é»žæ˜¯å¦æ˜¯éšœç¤™ç‰©ï¼Œå¦‚æžœæ˜¯ï¼Œå‰‡é€šéŽæ²¿æ©Ÿå™¨äººå’Œç›®æ¨™é»žçš„å‘é‡ä¾†é¸æ“‡é 近原始目標的替代目標。
最終他將給局部è¦(guÄ«)劃器或內(nèi)éƒ¨æŽ§åˆ¶å™¨ä¸€å€‹æœ‰æ•ˆçš„ç›®æ¨™é»žã€‚å› æ¤ï¼Œé€™ç¨®è¦(guÄ«)劃器沒有任何全局路徑è¦(guÄ«)劃。
å¦‚æžœä½ éœ€è¦æ©Ÿå™¨äººé 近給定的目標,å³ä½¿ç›®æ¨™ä¸å¯åˆ°é”的情æ³ä¸‹ï¼Œé€™ç¨®æ–¹æ³•是有效的。但在復雜的室內(nèi)ç’°(huán)境ä¸ï¼Œé€™ç¨®æ–¹æ³•䏿˜¯å¾ˆå¯¦ç”¨ã€‚
2.1.2 navfn å’Œ global è¦(guÄ«)劃器
navfn 使用 dijkstra 算法來在起點和終點之間尋找最å°ä»£åƒ¹è·¯ç·šã€‚global è¦(guÄ«)åŠƒå™¨å»ºç«‹äº†æ›´éˆæ´»çš„æ›¿ä»£ navfn çš„é¸æ“‡ï¼Œé€™äº›é¸æ“‡åŒ…括:
(1ï¼‰æ”¯æŒ A*算法(2)切æ›äºŒæ¬¡è¿‘似(3)切æ›ç¶²(wÇŽng)æ ¼è·¯å¾‘ã€‚navfn å’Œ global è¦(guÄ«)劃器都是基于這篇論文:
https://cs.stanford.edu/group/manips/publications/pdfs/Brock_1999_ICRA.pdf
2.2 全局路徑è¦(guÄ«)åŠƒåƒæ•¸(shù)
å› ç‚º global è¦(guÄ«)劃器是一種更常使用的方法,我們來看它的一些關(guÄn)éµåƒæ•¸(shù)。
注æ„ï¼šä¸æ˜¯æ‰€æœ‰çš„åƒæ•¸(shù)都能在 ROS ç¶²(wÇŽng)é 上找到,ä½†æ˜¯ä½ å¯ä»¥é€šéŽé‹è¡Œ rosrun rqt_reconfigure rqt_reconfigure 來查看。
我們å¯ä»¥è¨(shè)置這些默èªå€¼ï¼šallow unknown(true), use dijkstra(true), use quadrati c(true), use grid path(false), old navfn behavior(false) 。
如果我們想在 RVIZ 䏿Ÿ¥çœ‹å‹¢åŠ›åœ–å¯ä»¥å°‡ visualize_potential 值由 FALSE è¨(shè)為 TRUE。
é™¤äº†é€™äº›åƒæ•¸(shù)外, é‚„æœ‰ä¸‰å€‹æ²’æœ‰åˆ—å‡ºä¾†çš„åƒæ•¸(shù)會決定全局路徑è¦(guÄ«)劃的性能。分別cost_factor, neutral_cost, lethal_cost。
äº‹å¯¦ä¸Šï¼Œé€™äº›åƒæ•¸(shù)在 navfn 算法ä¸ä¹Ÿæåˆ°äº†ã€‚這個開æºä»£ç¢¼è©³ç´°çš„解釋了 navfn 如何計算這些代價值。
https://github.com/rosplanning/navigation/blob/indigo-devel/navfn/include/navfn/navfn.h
navfn 代價值的計算方法如下:
cost = COST_NEUTRAL + COST_FACTOR * costmap_cost_value
傳入的代價值è¨(shè)置在 0 到 252 的范åœï¼Œé€²ä¸€æ¥åˆ†æžï¼š
COST_NEUTRAL 為 50 時,COST_FACTOR 需è¦ç´„為 0.8,從而確ä¿è¼¸å…¥å€¼çš„分布能使輸出值在 50 到 253 間變化。
如果 COST_FACTOR 較高,cost 值將會在障礙物附近有一個峰值,然åŽè¦(guÄ«)åŠƒå™¨å°‡è¦–ç‹¹çª„èµ°å»Šçš„æ•´å€‹å¯¬åº¦ç‚ºè¼ƒå·®ï¼Œå°‡ä¸æœƒæ²¿è‘—ä¸å¿ƒè¦(guÄ«)劃路徑。
實驗觀察:實驗也è‰å¯¦äº†é€™äº›è§£é‡‹ã€‚å°‡ cost_factor è¨(shè)ç½®éŽé«˜æˆ–éŽä½Žéƒ½æœƒé™ä½Žè·¯å¾‘質(zhì)é‡ã€‚這些路徑?jÄ«ng)]æœ‰ç©¿éŽæ¯å´(cè)障礙物的ä¸é–“,也沒有相å°å…‰æ»‘的曲率。
極端的 COST _NEUTRAL 值也有類似的效果。å°äºŽé—œ(guÄn)éµçš„ cost 值,如果è¨(shè)置的éŽä½Žå¯èƒ½æœƒç„¡æ³•產(chÇŽn)生任何路徑,å³ä½¿å¯è¡Œè·¯å¾‘是明顯的。
圖 5-10 顯示了 COST_FACTOR å’Œ COS T_NEUTRAL å°å…¨å±€è·¯å¾‘è¦(guÄ«)åŠƒçš„å½±éŸ¿ã€‚ç¶ è‰²çš„ç·šæ˜¯å…¨å±€è¦(guÄ«)劃器產(chÇŽn)生的全局路徑。經(jÄ«ng)éŽå¹¾æ¬¡å¯¦é©—.
我們發(fÄ)ç¾(xià n)ç•¶ COST_FACTOR=0.55,COST_NEUTRAL=66,cost=253 時,全局路徑是很好的。
3 局部路徑è¦(guÄ«)劃
局部è¦(guÄ«)åŠƒå™¨åŒ…å« dwa 局部è¦(guÄ«)劃器ã€eband 局部è¦(guÄ«)劃器和 teb 局部è¦(guÄ«)劃器。
它們使用ä¸åŒçš„算法來產(chÇŽn)生速度指令。通常 dwa è¦(guÄ«)劃器使用的較多,我們將詳細討論這種算法。其它è¦(guÄ«)劃器的信æ¯ç¨åŽå°‡æœƒæä¾›ã€‚
3.1 DWA 本地è¦(guÄ«)劃器
3.1.1 DWA 算法
dwa 局部è¦(guÄ«)劃器采用動態(tà i)çª—å£æ–¹æ³•,ROS ç¶åŸºä¸Šæä¾›äº†é€™ç¨®ç®—法執(zhÃ)行éŽç¨‹çš„介紹:
1.將機器人的控制空間離散化(dx,dy,dtheta)
2. å°äºŽæ¯ä¸€å€‹é‡‡æ¨£é€Ÿåº¦ï¼Œå¾žæ©Ÿå™¨äººçš„ç•¶å‰ç‹€æ…‹(tà i)執(zhÃ)行æ£å‘模擬,以é (yù)æ¸¬å¦‚æžœåœ¨çŸæ™‚間段內(nèi)采用采樣速度將會發(fÄ)生什么
3. 評估從æ£å‘模擬產(chÇŽn)生的æ¯å€‹è»Œè·¡ä½¿ç”¨åŒ…å«è«¸å¦‚:障礙物接近度ã€ç›®æ¨™æŽ¥è¿‘度ã€å…¨å±€è·¯å¾‘接近度和速度ç‰ç‰¹å¾çš„度é‡ï¼Œä¸Ÿæ£„éžæ³•軌跡(與障礙物相撞的軌跡)
4. 鏿“‡å¾—分最高的軌跡,將相關(guÄn)è¯(lián)的速度發(fÄ)é€çµ¦ç§»å‹•基站
5. 清零然åŽé‡å¾©ä»¥ä¸ŠéŽç¨‹DWA 算法是由 Dieter Fox 的論文:
https://www.ri.cmu.edu/pub_files/pub1/fox_diet er_1997_1/fox_dieter_1997_1.pdfæå‡ºçš„。
æ ¹æ“š(jù)這篇論文的介紹,DWA 算法的目的是生æˆä¸€å€‹å‹•作å°ï¼ˆv,w),它代表了機器人最佳的圓形軌跡。
DWA 通éŽåœ¨ä¸‹ä¸€å€‹æ™‚間間隔內(nèi)æœç´¢é€Ÿåº¦ç©ºé–“來é”到æ¤ç›®çš„。
這個空間的速度被é™åˆ¶ç‚ºå¯ä»¥æŽ¥å—的,這æ„å‘³è‘—æ©Ÿå™¨äººå¿…é ˆèƒ½å¤ åœ¨åˆ°é”é€™äº›å¯æŽ¥å—速度所è¦(guÄ«)定的圓形軌跡上的最接近的障礙物之å‰åœæ¢ã€‚
æ¤å¤–,DWA 將僅考慮動態(tà i)窗å£å…§(nèi)的速度,其被定義為給定當å‰å¹³ç§»å’Œæ—‹è½‰(zhuÇŽn)é€Ÿåº¦å’ŒåŠ é€Ÿåº¦åœ¨ä¸‹ä¸€æ™‚é–“é–“éš”å…§(nèi)å¯åˆ°é”的速度å°é›†åˆã€‚
ç¾(xià n)在,我們來看 ROS Wiki 的算法總çµ(jié)ã€‚ç¬¬ä¸€æ¥æ˜¯åœ¨å‹•æ…‹(tà i)窗å£å…§(nèi)的速度空間ä¸çš„采樣速度å°ï¼ˆvx,vy,w)。
ç¬¬äºŒæ¥æ˜¯æ¶ˆé™¤ä¸å¯æŽ¥å—çš„é€Ÿåº¦ï¼ˆå³æ¶ˆé™¤ä¸è‰¯è»Œè·¡ï¼‰ã€‚
ç¬¬ä¸‰æ¥æ˜¯ä½¿ç”¨ç›®æ¨™å‡½æ•¸(shù)來評估速度å°ï¼Œè¼¸å‡ºè»Œè·¡å¾—分。第四和第五æ¥å¾ˆå®¹æ˜“了解:采å–ç•¶å‰æœ€ä½³é€Ÿåº¦é¸é …并釿–°è¨ˆç®—。
這個 DWA è¦(guÄ«)åŠƒå™¨å–æ±ºäºŽæä¾›éšœç¤™ç‰©ä¿¡æ¯çš„æœ¬åœ°æˆæœ¬åœ–。
å› æ¤ï¼Œèª¿(dià o)æ•´æœ¬åœ°æˆæœ¬åœ–çš„åƒæ•¸(shù)å°äºŽ DWA 本地è¦(guÄ«)劃的最佳行為至關(guÄn)é‡è¦ã€‚接下來,我們將åƒè€ƒå‰å‘ä»¿çœŸï¼Œè»Œè·¡è©•åˆ†ï¼Œæˆæœ¬åœ°åœ–ç‰åƒæ•¸(shù)。
3.1.2 DWA 本地è¦(guÄ«)劃器:å‰å‘模擬
å‰å‘模擬是 DWA 算法的第二æ¥ã€‚
在這一æ¥ä¸ï¼Œæœ¬åœ°è¦(guÄ«)劃器將機器人控制空間ä¸çš„速度采樣,并檢查由這些速度樣本表示的圓形軌跡,并最終消除ä¸è‰¯é€Ÿåº¦ï¼ˆè»Œè·¡èˆ‡éšœç¤™ç‰©ç›¸äº¤ï¼‰ã€‚
在機器人的一段時間間隔內(nèi),æ¯å€‹é€Ÿåº¦æ¨£æœ¬ç”±ä»¿çœŸæ™‚間控制åŠä»¿çœŸã€‚
我們å¯ä»¥å°‡æ¨¡æ“¬æ™‚間視為å…許機器人以采樣速度移動的時間。
通éŽå¯¦é©—ï¼Œæˆ‘å€‘è§€å¯Ÿåˆ°ä»¿çœŸæ™‚é–“è¶Šé•·ï¼Œè¨ˆç®—è² è·è¶Šå¤§ã€‚æ¤å¤–,當仿真時間變長åŽï¼Œæœ¬åœ°è·¯å¾‘è¦(guÄ«)劃器產(chÇŽn)生路徑的時間也會變長,這是åˆç†çš„。
這里有一些關(guÄn)于如何調(dià o)æ•´ä»¿çœŸæ™‚é–“åƒæ•¸(shù)的建è°ã€‚
如何è¨(shè)置仿真時間:如果將仿真時間è¨(shè)置為éžå¸¸ä½Žçš„值(≤2.0)將導致性能有é™ï¼Œç‰¹åˆ¥æ˜¯ç•¶æ©Ÿå™¨äººéœ€è¦é€šéŽç‹¹çª„çš„é–€å£æˆ–家具之間的間隙時.
å› ç‚ºæ²’æœ‰è¶³å¤ çš„æ™‚é–“ä¾†ç²å¾—最佳軌跡來通éŽç‹¹çª„的通é“。å¦ä¸€æ–¹é¢ï¼Œç”±äºŽä½¿ç”¨äº† DWA 本地è¦(guÄ«)劃器,所有的軌跡都是簡單的圓弧,如果將仿真時間è¨(shè)置的éžå¸¸é«˜ï¼ˆâ‰¥5.0ï¼‰ï¼Œå°‡å°Žè‡´é•·æ›²ç·šä¸æ˜¯éžå¸¸éˆæ´»ã€‚
這個å•é¡Œå¹¶ä¸æ˜¯ä¸å¯é¿å…çš„ï¼Œå› ç‚ºè¦(guÄ«)劃器在æ¯å€‹æ™‚é–“é–“éš”åŽéƒ½æœƒç©æ¥µåœ°é‡æ–°è¦(guÄ«)劃,å¯ä»¥é€²è¡Œå°çš„調(dià o)整。å°äºŽé«˜æ€§èƒ½çš„計算機,4.0 ç§’çš„å€¼ä¹Ÿæ˜¯è¶³å¤ çš„ã€‚
é™¤äº†ä»¿çœŸæ™‚é–“ï¼Œé‚„æœ‰å¹¾å€‹åƒæ•¸(shù)值得關(guÄn)注。
é€Ÿåº¦é‡‡æ¨£ï¼šåœ¨å…¶å®ƒå¹¾å€‹åƒæ•¸(shù)ä¸ï¼Œvx_sample,vy_sample 確定在 x,y æ–¹å‘上å–多少平移速度樣本。vth_sample 控制旋轉(zhuÇŽn)速度樣本的數(shù)é‡ã€‚
樣本的數(shù)é‡å–æ±ºäºŽä½ çš„è¨ˆç®—èƒ½åŠ›ã€‚åœ¨å¤§å¤šæ•¸(shù)情æ³ä¸‹ï¼Œæˆ‘們傾å‘于è¨(shè)ç½® vth_sample é«˜äºŽå¹³ç§»é€Ÿåº¦æ¨£æœ¬ï¼Œå› ç‚ºé€šå¸¸æ—‹è½‰(zhuÇŽn)比直線å‰é€²æ›´å¾©é›œã€‚
如果將 y 呿œ€å¤§é€Ÿåº¦è¨(shè)置為零,則沒必è¦åœ¨ y æ–¹å‘æå–é€Ÿåº¦æ¨£æœ¬ï¼Œå› ç‚ºæ²’æœ‰å¯ç”¨çš„æ¨£æœ¬ã€‚我們è¨(shè)ç½®
vx_sample=20,vth_samples=40。
仿真粒度:sim_granularity 是在軌跡上的點之間采å–çš„æ¥é•·ã€‚它æ„味著è¦å¤šé »ç¹çš„æª¢æŸ¥è»Œè·¡ä¸Šçš„點(檢測它們是å¦èˆ‡éšœç¤™ç‰©ç›¸äº¤ï¼‰ã€‚
較低的值æ„å‘³è‘—é«˜é »çŽ‡ï¼Œé€™éœ€è¦æ›´å¤šçš„計算能力。å°äºŽ turtlebot 機器人來說,0.025 的默èªå€¼æ˜¯è¶³å¤ 的。
3.1.3 DWA 本地è¦(guÄ«)劃器:軌跡得分
如上所述,DWA 本地è¦(guÄ«)劃器最大化目標函數(shù)來ç²å¾—最佳速度å°ã€‚
在其論文ä¸ï¼Œç›®æ¨™å‡½æ•¸(shù)的值ä¾è³´äºŽä¸‰å€‹çµ„æˆéƒ¨åˆ†ï¼šåˆ°ç›®æ¨™é»žçš„éŽç¨‹ã€æ¸…除障礙物和å‰é€²é€Ÿåº¦ã€‚在 R OS ä¸ï¼Œç›®æ¨™å‡½æ•¸(shù)的計算公å¼å¦‚下:
cost = path_distance_bias*(distance(m) to path from the endpoint of the trajectory)+ goal_distance_bias (distance(m) to local goal from the endpoint of the trajectory)+ occdist_scale*(maximu m obstacle cost along the trajectory in obstacle cost (0-254))
目標是ç²å¾—最å°çš„代價。path_distance_bias 是本地è¦(guÄ«)åŠƒå™¨èˆ‡å…¨å±€è·¯å¾‘ä¿æŒä¸€è‡´çš„æ¬Š(quán)é‡ã€‚較大的值將使本地è¦(guÄ«)劃器更傾å‘于跟蹤全局路徑。
goal_distance_bias 是機器人嘗試到é”目標點的權(quán)é‡ã€‚å¯¦é©—é¡¯ç¤ºå¢žåŠ goal_distance_bias 值將會使機器人與全局路徑的一致性å低。
occdist_scale 是機器人嘗試躲é¿éšœç¤™ç‰©çš„æ¬Š(quán)é‡ï¼Œé€™å€‹å€¼å大將導致機器人陷入困境。
在 SCITOS G5 上,我們è¨(shè)ç½® path_distance_bias 為 32,goal_distance_bias 為 20,occdist_sacle 為 0.02,仿真çµ(jié)果良好。
3.1.4 DWA 本地è¦(guÄ«)åŠƒå™¨ï¼šå…¶ä»–åƒæ•¸(shù)
目標è·é›¢å…¬å·®ï¼ˆGoal distance tolerance):
é€™äº›åƒæ•¸(shù)很容易ç†è§£ï¼Œä»¥ä¸‹æ˜¯ä»–們在 ROS ç¶åŸºä¸Šçš„æè¿°ï¼šyaw_goal_tolerance(double,默èªå€¼ï¼š0.05),實ç¾(xià n)目標時,å航/旋轉(zhuÇŽn)ä¸æŽ§åˆ¶å™¨å¼§åº¦å…¬å·®
xy_goal_tolerance(double,,默èªå€¼ï¼š0.10),實ç¾(xià n)目標時,在 x y æ–¹å‘çš„è·é›¢å…¬å·®
latch_xy_goal_tolerance(bool,默èªï¼šfalse)如果目標公差被鎖定,å³ä½¿åœ¨ç›®æ¨™å…¬å·®ä¹‹å‰çµ(jié)æŸï¼Œå¦‚果機器人到é”目標 xy ä½ç½®ï¼Œå®ƒæœƒç°¡å–®æ—‹è½‰(zhuÇŽn)到ä½
振蕩復ä½ï¼ˆOscilation reset):在通éŽé–€å£çš„æƒ…æ³ä¸‹ï¼Œæ©Ÿå™¨äººå¯èƒ½æœƒä¾†å›žæŒ¯è•©ï¼Œæ˜¯å› 為本地è¦(guÄ«)劃器æ£åœ¨ç”¢(chÇŽn)生通éŽå…©å€‹ç›¸åæ–¹å‘的路徑。
å¦‚æžœæ©Ÿå™¨äººä¿æŒæŒ¯è•©ï¼Œå°Žèˆªå †æ£§å°‡è®“機器人嘗試æ¢å¾©è¡Œç‚ºã€‚
oscillation_reset_dist(double,默èªå€¼ï¼š0.05)在振蕩標志復ä½ä¹‹å‰ï¼Œæ©Ÿå™¨äººä»¥ç±³ç‚ºå–®ä½è¡Œèµ°å¤šé
4 ä»£åƒ¹åœ°åœ–åƒæ•¸(shù)
å¦‚ä¸Šæ‰€è¿°ï¼Œä»£åƒ¹åœ°åœ–åƒæ•¸(shù)å°äºŽæœ¬åœ°è¦(guÄ«)劃器(ä¸åƒ…僅是 DWA)是至關(guÄn)é‡è¦çš„。
在 RO S ä¸ï¼Œä»£åƒ¹åœ°åœ–ç”±éœæ…‹(tà i)地圖層ã€éšœç¤™ç‰©åœ–層和膨脹層組æˆã€‚
éœæ…‹(tà i)åœ°åœ–å±¤ç›´æŽ¥çµ¦å°Žèˆªå †æ£§æä¾›éœæ…‹(tà i) SLAM åœ°åœ–è§£é‡‹ã€‚éšœç¤™ç‰©åœ–å±¤åŒ…å« 2D 障礙物和 3D éšœç¤™ç‰©ï¼ˆé«”ç´ å±¤ï¼‰ã€‚
膨脹層是將障礙物膨脹來計算æ¯å€‹ 2D 代價地圖單元的代價。
æ¤å¤–,有全局代價地圖,也有局部代價地圖。全局代價地圖是通éŽè†¨è„¹å°Žèˆªå †æ£§ä¸Šçš„地圖障礙物來實ç¾(xià n)的。
局部代價地圖是通éŽå°‡æ©Ÿå™¨äººå‚³æ„Ÿå™¨æª¢æ¸¬åˆ°çš„障礙物膨脹產(chÇŽn)生的.
4.1 足跡
足跡是移動基站的輪廓。在 ROS ä¸ï¼Œå®ƒç”±äºŒç¶æ•¸(shù)組表示[x0,y0] ; [x1,y1] ; [x2,y2]……ä¸éœ€è¦é‡å¾©ç¬¬ä¸€å€‹å標。
該å ä½é¢ç©å°‡ç”¨äºŽè¨ˆç®—å…§(nèi)切圓和外接圓的åŠå¾‘,用于以é©åˆæ¤æ©Ÿå™¨äººçš„æ–¹å¼å°éšœç¤™ç‰©é€²è¡Œè†¨è„¹ã€‚為了安全起見,我們通常將足跡ç¨å¤§äºŽæ©Ÿå™¨äººçš„實際輪廓。
è¦ç¢ºå®šæ©Ÿå™¨äººçš„å 地é¢ç©ï¼Œæœ€ç›´æŽ¥çš„æ–¹æ³•是åƒè€ƒæ©Ÿå™¨äººçš„圖紙。
æ¤å¤–,您å¯ä»¥æ‰‹å‹•æ‹æ”å…¶åŸºåº§é ‚è¦–åœ–ã€‚ç„¶åŽä½¿ç”¨ CAD 軟件(如 Solidworks)é©ç•¶ç¸®æ”¾åœ–åƒï¼Œå¹¶å°‡é¼ 標移動到基座輪廓上并讀å–其忍™ã€‚
忍™çš„起點應(yÄ«ng)該是機器人的ä¸å¿ƒã€‚或者,您å¯ä»¥å°‡æ©Ÿå™¨äººç§»å‹•到一張大紙上,然åŽç¹ªåˆ¶åŸºåº§çš„輪廓。
ç„¶åŽé¸æ“‡ä¸€äº›é ‚é»žå¹¶ä½¿ç”¨æ¨™å°ºä¾†ç¢ºå®šå®ƒå€‘çš„åæ¨™ã€‚
4.2 膨脹
膨脹層由代價值為 0-255 的單元組æˆã€‚æ¯å€‹å–®å…ƒå¯èƒ½æœƒè¢«å 據(jù)ã€ç„¡éšœç¤™æˆ–未知三種情æ³ã€‚下圖介紹了膨脹值的計算方法。
inflation_radius å’Œ cost_scaling_factor 是決定膨脹的主è¦åƒæ•¸(shù)。
inflation_radius æŽ§åˆ¶é›¶æˆæœ¬é»žè·é›¢éšœç¤™ç‰©æœ‰å¤šé 。
cost_scaling_factor 與單元的代價值æˆå比,è¨(shè)置高值將使衰減更陡å³ã€‚
Pronobis åšå£«å»ºè°ï¼Œæœ€ä½³çš„代價圖衰減曲線是具有相å°è¼ƒä½Žæ–œçŽ‡çš„æ›²ç·šï¼Œä»¥ä¾¿æœ€ä½³è·¯å¾‘ç›¡å¯èƒ½é 離æ¯å´(cè)的障礙物。
優(yÅu)點是機器人å¯ä»¥åœ¨éšœç¤™ç‰©ä¸é–“移動。如圖14和圖15所示,具有相åŒçš„èµ·é»žå’Œç›®æ¨™ï¼Œç•¶ä»£åƒ¹åœ–æ›²ç·šé™¡å³æ™‚,機器人往往é 近障礙物。
在圖14ä¸ï¼Œè†¨è„¹åŠå¾‘=0.55ï¼Œä»£åƒ¹æ¯”ä¾‹å› å=5.0;在圖15ä¸ï¼Œè†¨è„¹åŠå¾‘=1.75ï¼Œä»£åƒ¹æ¯”ä¾‹å› å=2.58
æ ¹æ“š(jù)衰變曲線圖,我們è¦è¨(shè)å®šé€™å…©å€‹åƒæ•¸(shù)值,使得膨脹åŠå¾‘幾乎覆蓋走廊,代價值的衰減ä¸ç‰ï¼Œé€™æ„味著è¦é™ä½Žä»£åƒ¹æ¯”ä¾‹å› å cost_scaling_factor 的值
4.3 代價地圖精度 costmap resolution
æœ¬åƒæ•¸(shù)å¯ä»¥åˆ†åˆ¥è¨(shè)ç½®æœ¬åœ°ä»£åƒ¹åœ°åœ–å’Œå…¨å±€ä»£åƒ¹åœ°åœ–ï¼Œå®ƒå€‘å½±éŸ¿è¨ˆç®—è² è·å’Œè·¯å¾‘è¦(guÄ«)劃能力。
在低分別率(≥0.05)的情æ³ä¸‹ï¼Œéšœç¤™ç‰©å€(qÅ«)域å¯èƒ½é‡ç–Šï¼Œå°Žè‡´æœ¬åœ°è¦(guÄ«)劃器無法找到å¯ç”¨è·¯å¾‘。
å°äºŽå…¨å±€ä»£åƒ¹åœ°åœ–精度,åªè¦ä¿æŒèˆ‡æä¾›çµ¦å°Žèˆªå †æ£§çš„地圖的分辨率相åŒå³å¯ã€‚
å¦‚æžœæœ‰è¶³å¤ çš„è¨ˆç®—èƒ½åŠ›ï¼Œå¯ä»¥æŸ¥çœ‹æ¿€å…‰æŽƒæå„€çš„åˆ†è¾¨çŽ‡ï¼Œå› ç‚ºç•¶ä½¿ç”¨ gmapping 建圖時.
如果激光掃æå„€çš„分辨率低于所需的地圖分辨率,則會有很多å°çš„“未知點â€ï¼Œå› 為激光掃æå„€ä¸èƒ½è¦†è“‹è©²å€(qÅ«)域,如圖 16 所示。
例如,Hokuyo URG-04LX-UG01 激光掃æå„€çš„分辨率是 0.01mmï¼Œå› æ¤æŽƒæåˆ†è¾¨çŽ‡â‰¤0.01 çš„åœ°åœ–å°‡éœ€è¦æ©Ÿå™¨äººæ—‹è½‰(zhuÇŽn)幾次æ‰èƒ½æ¸…除未知的點。我們發(fÄ)ç¾(xià n) 0.02 çš„ç²¾åº¦å°±å¤ ç”¨äº†ã€‚
4.4 éšœç¤™ç‰©å±¤å’Œé«”ç´ å±¤
é€™å…©å±¤è² è²¬æ¨™æ³¨ä»£åƒ¹åœ–ä¸Šçš„éšœç¤™ï¼Œä»–å€‘å¯ä»¥è¢«ç¨±ç‚ºéšœç¤™å±¤ã€‚æ ¹æ“š(jù) ROS ç¶åŸºï¼Œéšœç¤™ç‰©å±¤è·Ÿè¹¤äºŒç¶çš„ï¼Œé«”ç´ å±¤è·Ÿè¹¤ä¸‰ç¶çš„。
éšœç¤™ç‰©æ˜¯æ ¹æ“š(jù)機器人傳感器的數(shù)據(jù)進行標記(檢測)或清除(刪除),其ä¸éœ€è¦è¨‚閱代價圖的主題。
在 ROS 執(zhÃ)行ä¸ï¼Œé«”ç´ å±¤å¾žéšœç¤™ç‰©å±¤ç¹¼æ‰¿ï¼Œå¹¶ä¸”éƒ½æ˜¯é€šéŽä½¿ç”¨æ¿€å…‰é›·é”發(fÄ)布的 Point Cloud 或 PointCloud2 類型的消æ¯ä¾†ç²å–障礙物信æ¯ã€‚
æ¤å¤–ï¼Œé«”ç´ å±¤éœ€è¦æ·±åº¦å‚³æ„Ÿå™¨ï¼Œå¦‚ Microsoft Kinect 或è¯ç¢© Xtion,3D 障礙物最終會被膨脹為二ç¶ä»£åƒ¹åœ–。
é«”ç´ å±¤å¦‚ä½•å·¥ä½œï¼šé«”ç´ æ˜¯ç©ºé–“ä¸å…·æœ‰ä¸€å®šç›¸å°ä½ç½®çš„ 3D 立方體(類似于 3D åƒç´ )。它å¯ä»¥ç”¨äºŽèˆ‡é™„è¿‘é«”ç©çš„æ•¸(shù)據(jù)或?qÅ«)傩韵嚓P(guÄn)è¯(lián)。
例如,它的ä½ç½®æ˜¯å¤ æ˜¯ä¸€å€‹éšœç¤™ã€‚èˆ‡é«”ç´ èˆ‡æ·±åº¦ç›¸æ©Ÿç›¸é—œ(guÄn)çš„ 3D é‡å»ºå·²ç¶“(jÄ«ng)æœ‰å¾ˆå¤šç ”ç©¶äº†ã€‚
é«”ç´ ç¶²(wÇŽng)æ ¼æ˜¯ä¸€å€‹ ROS 包,它æä¾›äº†ä¸€å€‹é«˜æ•ˆçš„三ç¶é«”ç´ ç¶²(wÇŽng)æ ¼æ•¸(shù)據(jù)çµ(jié)æ§‹(gòu)的實ç¾(xià n),它å˜å„²ä¸‰ç¨®ç‹€æ…‹(tà i)çš„é«”ç´ ï¼šæ¨™è¨˜ã€è‡ªç”±ã€æœªçŸ¥ã€‚
é«”ç´ ç¶²(wÇŽng)æ ¼å æ“š(jù)了代價地圖å€(qÅ«)域內(nèi)的體ç©ã€‚åœ¨æ¯æ¬¡æ›´æ–°é«”ç´ é‚Šç•ŒæœŸé–“ï¼Œé«”ç´ å±¤æ ¹æ“š(jù)傳感器的數(shù)據(jù)ä¾†æ¨™è¨˜æˆ–åŽ»é™¤é«”ç´ ç¶²(wÇŽng)æ ¼ä¸çš„ä¸€äº›é«”ç´ ã€‚
它還執(zhÃ)行光線跟蹤,接下來會討論。請注æ„ï¼Œåœ¨æ›´æ–°æ™‚ï¼Œä¸æœƒé‡æ–°å‰µ(chuà ng)å»ºé«”ç´ ç¶²(wÇŽng)æ ¼ï¼Œè€Œåƒ…åƒ…åœ¨æ›´æ”¹æœ¬åœ°ä»£åƒ¹åœ–çš„å¤§å°æ™‚æ‰æ›´æ–°ã€‚
為什么è¦åœ¨éšœç¤™ç‰©å±¤æˆ–é«”ç´ å±¤å…‰ç·šè·Ÿè¹¤ï¼šå…‰ç·šè·Ÿè¹¤ç‚ºäººæ‰€çŸ¥æ˜¯å› ç‚ºç”¨äºŽæ¸²æŸ“é€¼çœŸçš„ 3D 圖形,所以å¯èƒ½æœƒå›°æƒ‘為什么被用于處ç†éšœç¤™ç‰©ã€‚
一個é‡è¦çš„åŽŸå› æ˜¯å¯ä»¥é€šéŽå‚³æ„Ÿå™¨ä¾†æª¢æ¸¬ä¸åŒé¡žåž‹çš„障礙物。ç†è«–上,我們還å¯ä»¥çŸ¥é“障礙物是剛性的還是柔性的。
通éŽä»¥ä¸Šçš„ç†è§£ï¼Œæˆ‘å€‘ä¾†ç ”ç©¶ä¸€ä¸‹éšœç¤™ç‰©å±¤çš„ä¸€äº›åƒæ•¸(shù)ï¼Œé€™äº›åƒæ•¸(shù)å°äºŽæ‰€æœ‰çš„傳感器都是é©ç”¨çš„。
max_obstacle_height:æ’入代價圖ä¸çš„éšœç¤™ç‰©çš„æœ€å¤§é«˜åº¦ã€‚è©²åƒæ•¸(shù)è¨(shè)置為ç¨é«˜äºŽæ©Ÿå™¨äººçš„高度,å°äºŽé«”ç´ å±¤ï¼Œé€™åŸºæœ¬ä¸Šæ˜¯é«”ç´ ç¶²(wÇŽng)æ ¼çš„é«˜åº¦ã€‚
obstacle_range:障礙物è·é›¢æ©Ÿå™¨äººçš„æœ€å¤§è·é›¢ï¼Œéšœç¤™ç‰©ä»¥ç±³ç‚ºå–®ä½æ‘»å…¥ä»£åƒ¹åœ°åœ–,并å¯ä»¥åœ¨æ¯å€‹å‚³æ„Ÿå™¨çš„基礎(chÇ”)上進行覆蓋
raytrace_range:用于使用傳感器數(shù)據(jù)åœ¨åœ°åœ–ä¸æŽƒæå‡ºéšœç¤™ç‰©ï¼Œä»¥ç±³ç‚ºå–®ä½ï¼Œå¯ä»¥åœ¨æ¯å€‹å‚³æ„Ÿå™¨çš„基礎(chÇ”)上進行覆蓋下é¢çš„é€™äº›åƒæ•¸(shù)僅é©ç”¨äºŽé«”ç´ å±¤
origin_z:地圖的 Z 軸原點,以米為單ä½
z_resolution:地圖 Z 軸精度
z_voxels:æ¯å€‹åž‚直列ä¸çš„é«”ç´ æ•¸(shù),網(wÇŽng)æ ¼çš„é«˜åº¦æ˜¯ Z 軸分辨率*Z è»¸é«”ç´ æ•¸(shù)
unknown_threshold:被èªç‚ºæ˜¯â€œå·²çŸ¥â€çš„列ä¸å…許的未知單元的數(shù)é‡
mark_threshold:在被èªç‚ºæ˜¯â€œè‡ªç”±â€çš„列ä¸å…許的標記單元的最大數(shù)é‡
實驗觀察:實驗進一æ¥é—¡æ˜Žäº†é«”ç´ å±¤æ•¸(shù)的影響。我們使用è¯ç¢© Xtion Pro 作為我們的深度傳感器。
我們發(fÄ)ç¾(xià n) Xtion çš„ä½ç½®å¾ˆé‡è¦ï¼Œå®ƒæ±ºå®šäº†â€œç›²å€(qÅ«)的范åœâ€ï¼Œå³æ·±åº¦å‚³æ„Ÿå™¨çœ‹ä¸åˆ°çš„å€(qÅ«)域。
æ¤å¤–,當障礙物出ç¾(xià n)在 Xtion 范åœå…§(nèi)æ™‚ï¼Œè¡¨ç¤ºéšœç¤™ç‰©çš„é«”ç´ æœƒæ›´æ–°ï¼ˆæ¨™è¨˜æˆ–æ¸…é™¤ï¼‰ã€‚
å¦å‰‡ï¼Œä¸€äº›é«”ç´ çš„ä¿¡æ¯ä»ä¿æŒä¸è®Šï¼Œåœ¨ä»£åƒ¹åœ°åœ–ä¸çš„膨脹信æ¯ä¹Ÿæœƒä¿ç•™ã€‚æ¤å¤–,Z 軸分辨率ç°é ‚ Z è»¸é«”ç´ çš„å¯†åº¦ã€‚å¦‚æžœå€¼å¾ˆé«˜ï¼Œé«”ç´ å±¤æœƒå¾ˆå¯†é›†ã€‚
如果值太低(例如 0.01ï¼‰ï¼Œæ‰€æœ‰çš„é«”ç´ å°‡è¢«æ”¾åœ¨ä¸€èµ·ï¼Œå°‡ä¸æœƒç²å¾—有效的代價圖信æ¯ã€‚
如果將 Z 軸分辨率è¨(shè)置為較高的值,æ„圖是更好地ç²å¾—éšœç¤™ç‰©ï¼Œå› æ¤éœ€è¦å¢žåŠ Z è»¸é«”ç´ æ•¸(shù)ï¼ˆè©²åƒæ•¸(shù)控制æ¯å€‹åž‚直列ä¸çš„é«”ç´ æ•¸(shù))。
如果列ä¸çš„é«”ç´ æ•¸(shù)太多但分辨率ä¸å¤ ä¹Ÿæ˜¯æ²’ç”¨çš„ï¼Œå› ç‚ºæ¯å€‹åž‚直列的高度都有é™åˆ¶ã€‚圖 18-20 顯示了ä¸åŒé«”ç´ åƒæ•¸(shù)è¨(shè)置之間的比較。
5 AMCL
AMCL æ˜¯è™•ç†æ©Ÿå™¨äººå®šä½çš„ ROS åŒ…ã€‚å®ƒæ˜¯è‡ªé©æ‡‰(yÄ«ng)蒙特å¡ç¾…定ä½çš„縮寫(AdaptiveMonte Carlo Localization),也被稱為部分濾波定ä½å™¨ã€‚
é€™ç¨®å®šä½æ–¹æ³•的原ç†å¦‚下:æ¯å€‹æ¨£æœ¬å˜å„²è¡¨ç¤ºæ©Ÿå™¨äººå§¿æ…‹(tà i)çš„ä½ç½®å’Œæ–¹å‘數(shù)據(jù)。
ç²’åæ˜¯éš¨æ©ŸæŠ½æ¨£çš„ï¼Œç•¶æ©Ÿå™¨äººç§»å‹•æ™‚ï¼Œç²’åæ ¹æ“š(jù)他們的狀態(tà i)è¨˜æ†¶æ©Ÿå™¨äººçš„å‹•ä½œï¼Œé‡‡ç”¨éžæ¸è²è‘‰æ–¯ä¼°è¨ˆé€²è¡Œé‡é‡‡æ¨£ã€‚ç¨åŽå°‡æä¾› AMCL åƒæ•¸(shù)調(dià o)整的更多討論。
è«‹åƒè€ƒ ROS ç¶åŸº http://wiki.ros.org/amcl 了解更多信æ¯ã€‚é—œ(guÄn)于原始算法的細節(jié),å¯ä»¥åƒè€ƒ Chapter 8 of Probabilistic Robot ics, by Thrun, Burgard, and Fox.
6 æ¢å¾©è¡Œç‚º
機器人導航的一個討åŽçš„事情就是機器人å¯èƒ½æœƒå¡ä½ã€‚幸é‹çš„æ˜¯ï¼Œå°Žèˆªå †æ£§å…·æœ‰å…§(nèi)置的æ¢å¾©è¡Œç‚ºã€‚
å³ä½¿å¦‚æ¤ï¼Œæœ‰æ™‚機器人會耗盡所有å¯ç”¨çš„æ¢å¾©è¡Œç‚ºåŽä¿æŒéœæ¢ã€‚å› æ¤ï¼Œæˆ‘們需è¦ä¸€å€‹æ›´å¼·å¤§çš„解決方案。
æ¢å¾©è¡Œç‚ºçš„類型:ROS 導航包有兩種æ¢å¾©è¡Œç‚ºï¼Œåˆ†åˆ¥æ˜¯æ¸…除代價地圖æ¢å¾©å’Œæ—‹è½‰(zhuÇŽn)æ¢å¾©ã€‚
清除代價地圖æ¢å¾©æ˜¯å°‡æœ¬åœ°ä»£åƒ¹åœ°åœ–還原æˆå…¨å±€ä»£åƒ¹åœ°åœ–的狀態(tà i)。旋轉(zhuÇŽn)æ¢å¾©æ˜¯é€šéŽæ—‹è½‰(zhuÇŽn) 360°來æ¢å¾©ã€‚
解救機器人:有時由于旋轉(zhuÇŽn)故障,旋轉(zhuÇŽn)æ¢å¾©å°‡ç„¡æ³•執(zhÃ)行。在這一點上,機器人å¯èƒ½æœƒæ”¾æ£„ï¼Œå› ç‚ºå®ƒå·²ç¶“(jÄ«ng)嘗試了所有的æ¢å¾©è¡Œç‚ºã€‚
在大多數(shù)試驗ä¸ï¼Œæˆ‘們觀察到,當機器人放棄時,實際上有很多方法å¯ä»¥è§£æ•‘機器人。
為了é¿å…放棄,我們使用 SMAC H 來連續(xù)嘗試ä¸åŒçš„æ¢å¾©è¡Œç‚ºï¼Œé€šéŽå…¶ä»–é¡å¤–的行為,例如è¨(shè)ç½®éžå¸¸æŽ¥è¿‘機器人的臨時目標,并返回到以å‰è¨ªå•éŽå¾—å§¿æ…‹(tà i)(å³é€€å‡ºï¼‰ã€‚
這些方法å¯ä»¥é¡¯è‘—æé«˜æ©Ÿå™¨äººçš„è€ä¹…性,并且從以å‰è§€å¯Ÿåˆ°çš„無望空間ä¸è§£æ•‘出來。
åƒæ•¸(shù):ROS æ¢å¾©è¡Œç‚ºçš„åƒæ•¸(shù)一般è¨(shè)為默èªå€¼ã€‚
為了清除代價地圖æ¢å¾©ï¼Œä½ å¯ä»¥è¨(shè)置一個相å°è¼ƒé«˜çš„æ¨¡æ“¬æ™‚é–“ sim_time,這æ„å‘³è‘—è»Œè·¡å¾ˆé•·ï¼Œä½ å¯èƒ½éœ€è¦è€ƒæ…®å¢žåŠ res et_distance åƒæ•¸(shù)的值,這樣å¯ä»¥æ¶ˆé™¤æœ¬åœ°ä»£åƒ¹åœ°åœ–上更大的å€(qÅ«)域,并且有更好的機會尋找一æ¢è·¯å¾‘。
7 å‹•æ…‹(tà i)釿–°é…ç½®
é—œ(guÄn)于 ROS å°Žèˆªæœ€éˆæ´»çš„æ–¹é¢ä¹‹ä¸€æ˜¯å‹•æ…‹(tà i)釿–°é…ç½®ï¼Œå› ç‚ºä¸åŒçš„åƒæ•¸(shù)è¨(shè)ç½®å¯èƒ½å°æŸäº›æƒ…æ³ï¼ˆå¦‚機器人é 近目標點時)更有幫助。
ç„¶åŽï¼Œæ²’有必è¦é€²è¡Œå¤§é‡çš„å‹•æ…‹(tà i)釿–°é…置。
示例:我們在實驗ä¸è§€å¯Ÿåˆ°çš„ä¸€ç¨®æƒ…æ³æ˜¯æ©Ÿå™¨äººå¸¸å¸¸å€(qÅ«)域脫離全局路徑,å³ä½¿æ²’有必è¦é€™ä¹ˆåšã€‚
å› æ¤ï¼Œæˆ‘å€‘å¢žåŠ è·¯å¾‘è·é›¢åå·® path_distance_bias。
由于大的路徑è·é›¢å差值會使機器人éµå¾ªå…¨å±€è·¯å¾‘ï¼Œä½†å¯¦éš›ä¸Šç”±äºŽå…¬å·®ä¸æœƒæœ€çµ‚到é”ç›®æ¨™é»žï¼Œæˆ‘å€‘éœ€è¦æ‰¾åˆ°ä¸€ç¨®æ–¹æ³•來使機器人毫ä¸çŒ¶è±«çš„到é”目標點。
å› æ¤æˆ‘們鏿“‡å‹•æ…‹(tà i)減少路徑è·é›¢å差,以便在機器人é 近目標點時有一個å°çš„å€¼ã€‚ç•¢ç«Ÿï¼Œåšæ›´å¤šçš„實驗是為了找到解決å•題的方法。
8 å•題
8.1 陷入困境
在使用 ROS 導航的時候,這個å•題經(jÄ«ng)常出ç¾(xià n),無論是在仿真還是實際ä¸ï¼Œæ©Ÿå™¨äººéƒ½å¯èƒ½é™·å…¥å›°å¢ƒç„¶åŽæ”¾æ£„目標
8.2 ä¸åŒæ–¹å‘çš„ä¸åŒé€Ÿåº¦
åœ¨å°Žèˆªå †æ£§ä¸æˆ‘們觀察到一些奇怪的行為。當目標點è¨(shè)置在相å°äºŽ TF原點的-x æ–¹å‘æ™‚,dwa 局部è¦(guÄ«)劃器è¦(guÄ«)劃ä¸ç©©(wÄ›n)定(局部è¦(guÄ«)劃路徑跳èºï¼‰ï¼Œè€Œä¸”機器人的移動速度éžå¸¸æ…¢ã€‚
但是當把目標è¨(shè)置在+x æ–¹å‘æ™‚,dwa 局部è¦(guÄ«)劃器就比較穩(wÄ›n)定了,并且移動速度很快。
8.3 實際和仿真
實際與仿真是有å€(qÅ«)別的。在ç¾(xià n)實情æ³ä¸ï¼Œéšœç¤™ç‰©æœ‰å„ç¨®å„æ¨£çš„形狀。
ä¾‹å¦‚ï¼Œåœ¨å¯¦é©—å®¤ä¸æœ‰ä¸€å€‹åž‚直的柜å,防æ¢é–€é–‰ä¸Šï¼Œç”±äºŽå¤ªç´°ï¼Œæ©Ÿå™¨äººæœ‰æ™‚ç„¡æ³•æª¢æ¸¬åˆ°ç„¶åŽæ’žæ“Šä¸ŠåŽ»ã€‚è€Œä¸”å¯¦éš›ä¸ä¹Ÿæœƒæœ‰æ›´å¤šå¾©é›œçš„人類活動。
8.4 å‰åŽçŸ›ç›¾
使用 ROS å°Žèˆªå †æ£§å¯èƒ½æœƒå‡ºç¾(xià n)ä¸ä¸€è‡´çš„行為。
例如進門時,在ä¸åŒæ™‚間本地代價地圖會一次åˆä¸€æ¬¡çš„生æˆï¼Œé€™å¯èƒ½æœƒå½±éŸ¿è·¯å¾‘è¦(guÄ«)劃,特別是在分辨率較低的時候。
å¦å¤–,機器人沒有內(nèi)å˜ï¼Œå®ƒä¸è¨˜å¾—ä¸Šæ¬¡å¾žé–€é€²å…¥æˆ¿é–“ï¼Œæ‰€ä»¥æ¯æ¬¡å˜—試進門都需è¦é‡æ–°é–‹å§‹ã€‚
å› æ¤ï¼Œå¦‚果沒有與以å‰ç›¸åŒçš„進門角度,機器人å¯èƒ½æœƒå¡ä½å¹¶æ”¾æ£„目標。翻è¯è‡ª ROS Navigation Tuning Guide(導航調(dià o)試指å—)
上一篇:汽車感知傳感器是什么?
下一篇:人形機器人çªé€²èˆ‡é˜»åŠ›çš„è¼ƒé‡
ä¸åœ‹å‚³å‹•ç¶²(wÇŽng)版權(quán)與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來æºï¼šä¸åœ‹å‚³å‹•ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(wÇŽng)(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉(zhuÇŽn)載請與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個人轉(zhuÇŽn)è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Š(quán)法律責任。
相關(guÄn)資訊