[Algorithm] 尋找機器人在自己家中的位置


Answers

如果您可以在房間內放置一些標記,則可以選擇使用相機。 如果兩個已知的標記具有角位移(從左到右),則相機和標記位於半徑與標記之間的測量角度相關的圓上。 我不記得公式,但標記之間的弧段(在該圓上)將是你看到的角度的兩倍。 如果您的標記位於已知高度,且攝像機處於固定的傾斜角度,則可以計算與標記的距離。 只要這些方法中的任何一種都可以在給定足夠的標記的情況下確定你的位置 使用這兩個將有助於做更少的標記。

不幸的是,由於測量誤差,這些方法是不完善的。 你可以通過使用卡爾曼估計器來解決這個問題,將多個噪聲測量值合併到一個很好的位置估計中 - 然後你可以輸入一些航位推算信息(這也是不完美的)以進一步細化。 這部分內容深入數學,但是我認為這是一個需要做的很好的工作,你正在嘗試。 如果沒有它,你可以做得好,但是如果你想要一個最佳的解決方案(就給定的輸入而言最好的位置估計),沒有更好的辦法。 如果你真的想要自主機器人的職業生涯,這將在未來發揮巨大的作用。 (

一旦你可以確定你的位置,你可以用任何你想要的方式來覆蓋房間。 繼續使用碰撞傳感器來幫助構建一個障礙地圖,然後你需要設計一個方法來掃描合併障礙物。

不知道您是否有數學背景,但請參閱以下書籍: http : //books.google.com/books/about/Applied_optimal_estimation.html?id=KlFrn8lpPP0C

Question

我正在使用真空吸塵器機器人來控制微控制器(Arduino)。 清潔房間時,我想讓它更有效率 。 就目前來說,它只是直行,當它碰到什麼東西時就轉身。

但是,我很難找到最好的算法或方法了解它在房間裡的位置 。 我正在尋找一種保持便宜(不到100美元)而不是複雜(不需要計算機視覺博士論文)的想法。 如有必要,我可以在房間裡添加一些不連續的標記。

現在,我的機器人有:

  • 一個攝像頭
  • 三個接近傳感器(約1米範圍)
  • 指南針(現在不用)
  • 無線上網
  • 如果電池已滿或幾乎空著,其速度可能會有所不同
  • 上網本Eee PC嵌入在機器人上

你有這個想法嗎? 這些問題是否存在任何標準方法?

注意:如果這個問題屬於另一個網站,請移動它,我找不到比更好的地方。




假設你不是在尋找一個通用的解決方案,你可能實際上知道房間的形狀,大小,潛在的障礙位置等等。當機器人存在時,工廠就沒有關於其未來的運行環境的信息,哪種方式迫使它是低效的從一開始 如果是這種情況,您可以對該信息進行硬編碼,然後使用基本測量(即輪子上的旋轉編碼器+指南針)來精確地找出其在房間/房屋中的位置。 在我看來,無需三角測量或瘋狂的傳感器設置。 至少一開始。




這並不代替接受的答案(這是非常好的,謝謝!),但我可能會建議獲得一個Kinect,並使用,而不是你的網絡攝像頭,無論是通過微軟最近發布的官方驅動程序或使用黑客驅動程序,如果你的EeePC沒有Windows 7(想必它不)。

這樣的方式將通過3D視覺來改善定位。 現在觀察地標會告訴你地標有多遠,而不僅僅是地標所在的視野。

無論如何,被接受的答案並沒有真正解決如何挑選視覺領域的標誌,只是假設你可以。 雖然Kinect驅動程序可能已經包含了功能檢測(我不確定),但您也可以使用OpenCV檢測映像中的功能。




你有一個相機,你說? 你有沒有考慮看天花板? 兩個房間幾乎沒有可能具有相同的尺寸,所以你可以確定你是在哪個房間裡,在房間裡的位置可以從角度到天花板的邊界計算出來,方向可以通過門的位置來提取。

這將需要一些圖像處理,但吸塵器移動緩慢,有效清潔將有足夠的時間來計算。

祝你好運 !




我也在想這個問題。 但我不明白為什麼你不能只是三角形? 有兩個或三個信標(如不同頻率的紅外LED)和一個伺服上的紅外旋轉傳感器“眼睛”。 那麼你可以得到一個幾乎不變的定位在你的位置。 我期望的精度將在低厘米範圍內,這將是便宜的。 然後你可以映射任何碰到的東西。

也許你也可以使用信標光束中的任何中斷來繪製離機器人很遠的物體。




Links