機器人/導航/地圖
外觀
為了有效地找到路線,機器人必須瞭解其周圍環境。地圖在這種情況下非常有用。機器人可以自己擁有記憶和工具來繪製地圖,也可以事先獲取地圖,或者獲取部分地圖(例如,只有牆壁),然後自己新增其他障礙物。
- 在靜態環境中,事先獲取地圖效果很好。
- 部分地圖是一種更有效的方法,因為它已經包含了世界的所有靜態部分。
- 當機器人經常被放置在新的環境中時,從頭開始工作是最好的方法。
繪製地圖有兩個主要問題
- 並非周圍環境中的所有元素都是靜止的。大多數感測器過於有限,無法直接測量障礙物是牆壁、椅子還是人。解決此問題的辦法是對每個測量的障礙物使用一個“分數”。如果機器人經過同一位置時再次檢測到物體,則將分數新增到該物體。
- 定位並不完美。小的累積誤差可能會使確定機器人確切位置變得困難,因此可能難以確定檢測到的障礙物在地圖上的位置。解決此問題的辦法之一是同時定位與地圖構建(SLAM),它根據機器人位置估計誤差來校正檢測到的物體的位置。
第三個小問題是記憶體。在沒有計算機的機器人上,記憶體是有限的,儲存整個地圖幾乎是不可能的。如果您有記憶體,地圖可以以不同的方式儲存
- 二維陣列:易於訪問且速度快,但記憶體浪費很大。
- 連結串列:使用速度較慢,但記憶體效率更高。
- 四叉樹:比連結串列更快,但實現難度更大,記憶體效率很高。
在 PC 上實現這些結構相對容易,但在微控制器等有限環境中構建它們則是一項艱鉅的挑戰。