我正在與一個機器人一起工作,該機器人必須找到對象的方式,並避免遇到一些障礙物時,它必須拿起。A *探路者障礙物碰撞問題
問題在於機器人和機器人需要拾取的物體在探路者中都是一個像素寬。實際上它們更大。通常A *探路者選擇沿着障礙物的邊緣放置路線,有時會使它與它們碰撞,這是我們不希望做的。
我試圖添加一些更多的非步行領域的障礙,但它並不總是工作得很好。它仍然與障礙物碰撞,並且在不允許行走的地方添加太多點,導致它沒有可以運行的路徑。
對於如何解決這個問題你有什麼建議嗎?
編輯:
所以我做賈斯汀大號建議通過增加大量的成本在其周圍產生的folling的障礙: Grid with no path http://sogaard.us/uploades/1_grid_no_path.png
在這裏你可以看到周圍的障礙物的成本,最初的中間的兩個障礙應該看起來就像在角落的,但運行我們的探路者之後好像費用將被覆蓋:
Grid with path http://sogaard.us/uploades/1_map_grid.png
Picture that shows things found on the picture http://sogaard.us/uploades/2_complete_map.png
上面的圖片顯示了圖片上發現的東西。
Path found http://sogaard.us/uploades/3_path.png
這是路徑發現這是我們的問題也被前擁抱了障礙。
The grid from before with the path on http://sogaard.us/uploades/4_mg_path.png
而且隨着成本與地圖上的道路另一張照片。
所以我覺得奇怪的是,爲什麼A *探路者重寫這些場地成本非常高。
當它評估當前字段的打開列表中的節點以查看當前字段路徑是否比打開列表中的路徑短?
這裏是我使用的探路代碼:
Pathfinder.cs:http://pastebin.org/343774
Field.cs和Grid.cs:http://pastebin.org/343775
只是爲了澄清,這是一個物理機器人嗎?你有一個機器人所在的物理場的地圖,你想通過軟件地圖A *,這樣也可以讓你的物理機器人通過物理地圖在相同的方向上移動? – 2010-06-18 11:04:23
是的,這是正確的,我們有一個攝像頭懸掛在機器人上,然後我們粘貼圖像,將圖像轉換爲可喚醒且無法喚醒的地圖,然後將此地圖與開始和結束座標一起送入我們的A *。目前我們是否在障礙物周圍增加了無人漫遊的場地,但這是非常緩慢的。 – Androme 2010-06-18 12:16:21
是的,DoomStone說,我們有一個攝像頭掛在障礙物,物體和機器人的路線上方的三腳架上。我們拍攝這個課程的照片,解析它,以便找到物體和障礙物以及機器人,然後嘗試從機器人到它必須拾取的物體之間建立一條路徑。因此,A *算法返回我們可以運行的每個像素,正如我所說的那樣,如果說對象位於機器人的另一側,通常會擁抱障礙物。 – Cheesebaron 2010-06-18 12:23:49