2011年3月26日 星期六

Discussion about position of NXT robot

http://4rdp.blogspot.com/2011/03/discussion-about-position-of-nxt-robot.html

前些時間 CAVE 的祥瑞與我討論機器人定位問題,他想在科展中利用 NXT 機器人來展現精密的定位技術,可惜我給他潑了許多冷水,下面是我們之間的問答。

Q:
我在學校的社團在作一個科展題目,是討論如何不使用定位器的限制下,使用羅盤使二輪機器人轉彎時最接近理論路徑,同時要討論 A 到 B 最快的走法。
我們設計實驗遇到一個難題:如何在機器人行走的同時測量機器人的位置(使用 NXT 實驗),精準度希望可以達到 1mm,我們想到的的方式有
(1)方格紙打點
(2)超音波感應器測距
(3)雷射脈衝測距儀
(4)攝影機俯視影像定位
(5)使用定位器
(6)其他

我們考量是
(1)土法煉鋼,優點便宜方便,但試過後覺得無效率,精準路會受打點影響
(2)距離超過多於 10cm 精準度堪慮,若和反射面入射角太大數值有問題,更新頻率有點慢
(3)優點是精準,但是價格昂貴
(4)技術門檻高,這點是沒問題,不過我不確定精準度有沒有機會達到 1mm
(5)如果有類似 GPS 定位器的儀器更好,但是精準度要達到 1mm
(6)希望有你的建議

我的問題是有沒有方式是可以在機器人行走的同時測量機器人的位置,中途不可停止,最好的話實驗過程可以自動化,也就是將相關的參數設定好後,機器人跑一次,電腦便自動蒐集數據,這樣一來可以進行大量的實驗。如果使用測距器,實驗時必須在機器人移動範圍邊界設牆壁,若使用定位器會更方便。此外,你有沒有對這科展內容有沒有建議?

A:
在還沒討論使用何種定位糸統之前,先讓你充分明瞭精確度 (Accuracy) 的觀念,假設你的檢知設備誤差標示為 1mm,那麼你期望整個系統誤差也為 1mm,那是辨不到的事,工業界一般採用三個標準差 (3 sigma) 的方式來訂定規格,也就是規格你只能訂到 3mm,表示有 68% 機率可以達到 1mm,99% 機率可達 3mm。

前面只討論檢知系統誤差,另外還有控制系統誤差,假設你使用直徑 56mm 輪胎,NXT 馬達解析度一度,相當 0.5mm/° 誤差,表示 1mm 規格也是不可能的,因此規格的問題你需要重新思考。假設你可以找到規格 1mm 檢知系統,那麼合理的規格應該訂在 5mm,3 sigma = 3x(1+0.5) = 4.5mm ,可以確保 100% 落於規格內。

再來討論動態檢知的問題,由於你的系統是動態運動,檢知及計算位置都需要時間,也就是系統取得的資料,將會是前一刻的狀態,這會是目前系統最大誤差來源,假設機器人的馬達以 800°/sec 速度全速前進,系統以 100ms 時間間隔檢知位置,那麼誤差情形 = 800°/sec * 0.1sec * 0.5mm/° = 40 mm,這才只是一個標準差,三個標準差將是 12 公分。

因為動態檢知誤差很大,我認為用方格紙打點定位應該足夠,另外,動態檢知是取得前一刻狀態,因此現在位置須根據前一刻檢知所得位置,再利用牛頓力學定律推算。

關於自動測量位置及記錄,這是辦的到的,建議你先儲存在變數陣列中(目前 leJOS 查不到檔案功能,因此無法使用檔案讀寫功能),然後再利用藍芽將資料傳回電腦存檔與分析。

以上是我的回覆,可能許多讀者不懂標準差是什麼? 有空我將補充統計學基礎知識及應用。

7 則留言:

  1. 老師您好 我是就讀國立高雄大學應用物理系三年級的學生=)
    無意間逛到您的部落格,覺得很酷xd
    因為接下來準備研究所想轉往比較有興趣的機械控制類群,但可能較慢接觸,準備起來挫折感頗深
    希望老師能提點指教

    回覆刪除
  2. Scotttimmy 您好,

    很高興認識你,謝謝你對本部落格的支持,稱老師不敢當,只是提供個人所知給大家參考。

    關於你的提問,有幾個方向可以進行,
    一、先找出你有興趣的研究所,這樣可以提升用功的動力。
    二、每家研究所的考試科目都不同,確定目標研究所,也比較容易準備。
    三、因為你主修應用物理,對機械控制不熟悉,那就去旁聽或是補修這方面的學科,應該有助你克服準備考試的障礙。

    回覆刪除
  3. 上述的主題類似電腦鼠走迷宮?(起點到終點,讓電腦鼠記得所經過的路徑,並推算最短路徑)非常有趣的主題,以前是用8051去寫。

    回覆刪除
  4. 薛老師您好,

    祥瑞沒有提到電腦鼠走迷宮,我沒有這方面的經驗,日後找機會向你請教。祥瑞只在意機器人定位問題,我覺得動態檢知是這個問題的關鍵,Segway應該有部分與這主題相關。

    回覆刪除
  5. B大您好,恰逢路過貴網站看到這個議題讓我很感興趣,不曉得若從純粹硬體觀點改成控制觀點會否更有出路?假設detection device能有適當精度,那麼考慮使用一些較進階的控制方法(ex:預測控制/穩健控制/適應控制等法)應更能有效達成機器人移動中偵測障礙物並進行閃避問題。淺見請您參考

    回覆刪除
  6. 另外關於原題目提到定位以及先做一次實驗讓robot認識未知環境問題已有大量學理在處理這方面議題比如Slam method/map reconstruction/,常見的達成方式多仰賴各種計算最佳化方法如Extended Kalman filtering, particle swarm optimization, Genetic Algortihm等等,在這中間選擇一種適合問題陳述者,我想應能直接實現:)

    回覆刪除
  7. 宗翰您好,

    跟阿吉老師聚餐多次,還未見過你,希望以後有機會見面聊聊。

    純控制觀點,也就是純數學計算,誤差幾乎可以完全忽略,但是現實世界還是要考慮儀器設備誤差,試想有一顆沒有位置檢知器的馬達,它最小解析 1mm,絕對不可能控制低於 1mm解析,但也不容易精準到 1mm毫無誤差,沒有檢測器回授,你無法知道馬達位置,就算開始位置校驗正確,但是馬達在不同負載條件,轉動位置就會產生差異,如果只想靠數學推算是不可能精確控制,因此檢知回授是必要的。

    檢知器的解析度也是決定控制精準的關鍵,想讓馬達達到 1mm控制解析,檢知器的解析要更好,解析度0.5mm +/- 0.1mm,再含入三個標準差,就可以達到目的。

    因此一切精確度重點在實體本身的基本誤差,搭配各式控制方法,只是達到基本目的。

    NXT方面您也是專家,有機會可以驗證這些理論方法當作論文。

    回覆刪除