SLAM應用的一些思考
關心SLAM技術的人有兩種。一是像我這樣的研究者,為了了解其中各種方法和模塊的原理。二是機器人技術的開發者,旨在將SLAM技術用到他們自己的機器人上。從數量上來說,第二類人數遠多于第一類,他們的需求也日益迫切。SLAM是許多機器人技術的基礎。沒有預計的位姿和地圖,大部分任務都無法完成。這種需求,也是我們研究者應當認真思考、正面對待的,也是SLAM從實驗室走向市場應用的第一步。
那么,阻礙這種應用的困難在哪兒呢?是SLAM原理還不夠明確嗎?是視覺里程計、特征匹配、回環檢測的技術不夠先進嗎?事實上,有一個很重要的東西,是應用者們很關心,但研究者們經常忽視的:那就是SLAM方案的易用性。
反觀當前多數開源SLAM方案,它們幾乎都是研究者提出的。研究者做這些方案的目的,往往是為了實現自己某些新穎(但不一定可靠)的想法。實現出來之后,做幾個實驗,挑一部分漂亮的結果放在論文里去。這當然是無可厚非,甚至可以說,做研究本來就是如此的。但從應用者的角度去考慮,他們會花大量的時間配置程序的運行環境,為了看看效果是否和論文里相符(但通常失望的居多)。然后,他們會發現各式各樣的問題。攝像頭一快,匹配就跟不上了;地圖里重復的東西一多,回環就測不對了;走廊的長度往往比真實的要短,等等。許多開發者都有這種經歷,然而怎么辦呢?只好去看源代碼。接著他們又發現,一個實際的工程項目代碼很龐大,閱讀一遍還不如自己從頭實現一遍。
這就是所謂的易用性問題。
為何要單獨提這個問題呢?SLAM是眾多機器人技術的基礎。基礎是什么?簡而言之,“沒有它不行,光有它沒用”。試問現在為什么大家都想用SLAM?他們有各種不同的目的:想要機器人在房里自主運動啦,想要按順序清掃整個地圖啦,想要聽到人的命令就跑去某個屋啦。如果機器人是一幢樓,開發者們更關心的是,如何在SLAM這個地基上建出高樓大廈。
對于地基,我們有什么要求?無非是:簡單、有效、堅實。一個符合這樣條件的SLAM方案是什么樣子?它是不是像現在開源方案那樣,應用一些先進的技術,(有時)跑出了華麗的效果?似乎不是這樣的。我們應該把易用性加到設計SLAM方案的考慮中來。甚至,我們還應該設計一個極端強調易用性的方案:
- 請問你有什么傳感器? ——激光/單目/雙目/RGBD/IMU等等。更可能同時有多個。它們應該是一種優雅地方式集成起來,容易配置。
- 你的位姿和地圖需要什么形式? ——2D/3D位姿,柵格圖/拓撲圖/路標圖等。
然后,SLAM程序就自動決定用什么圖像特征、閉環檢測方法等等的東西,嘩啦嘩啦地運行起來了。開發者可以直接使用這些結果,也可以更進一步地調整:
- 偏向于速度還是精度?
- 是否使用GPU?
- 匹配丟失后如何處置?
當然,這些應該是有預設的。至于這個SLAM里頭的參數,應該是由研究者事先調節好的。應用開發人員不需要,也不應該關心它們的具體的值。
如果做一個強調易用性的SLAM,會不會有吸引力呢?
來自: http://www.cnblogs.com/gaoxiang12/p/5094751.html