SLAM產品化的一些思考

這兩年一直在作SLAM產品化的一些工做,有些感觸,想和你們分享一下。不少想法只是我的淺見,不當之處還望你們指正。前端

我這兩年分別作了AR眼鏡和輔助駕駛方向的開發,說實話,挫折大於成果。SLAM產品化之難,超出了個人想象。
先說說我作項目的通常思路。算法

  • 前期調研。分析項目的產品化需求,輸入輸出,軟硬件平臺,以及相關(開源)算法的初步測試和分析。
  • 算法架構設計。根據調研結果,大體肯定算法模塊的功能和具體實現方法。
  • 迭代開發。開發過程當中必然會碰到不少預料以外的問題。若是有備案,那麼嘗試備案方案。若是遇到了原理性的問題,那麼要修正和擴展架構。
  • 技術儲備。開發過程當中要時刻注從新技術和新方法的儲備。

實際開發過程當中,有幾個方面會特別影響SLAM的進程。這和SLAM技術的特色有關。架構

其一,SLAM是一個技術棧,而不是一個單一算法。不管在哪一個應用領域,開發者都會面臨不少單一開源算法解決不了的實際問題。SLAM算法自己又有多種實現方式,濾波VS優化,稀疏VS稠密,鬆耦合VS緊耦合,里程計VS迴環優化,人工特徵VS語義特徵,等等等等。所以,SLAM的架構設計既須要SLAM理論的深度和廣度,又須要大量的實踐經驗,還須要對上下游的算法和硬件有比較充分的理解和認知。模塊化

其二,SLAM強依賴於硬件。硬件不一樣,算法大大不一樣,整個系統的計算複雜度、魯棒程度和可擴展性都會有差異。多傳感器SLAM更是提升了系統設計的複雜度。測試

其三,SLAM的實用化還須要探索。SLAM算法的不一樣模塊耦合程度高,當算法不能知足要求時,不能簡單經過調參或者增減模塊控制精度,有可能須要調整整個算法架構或者傳感器設計,所以老是屬於系統中風險較高的部分,不可控性強。SLAM須要軟硬件和計算平臺強有力的支撐,但SLAM自己在項目中的地位常常沒法達到如此的高度,所以會有些尷尬。優化

要解決以上幾個問題並不容易,有幾點意見僅供參考吧。架構設計

  • 除了提高自身水平之外,SLAM圈子須要更深刻的交流。泡泡機器人在普及方面作的很好,但可能在交流方面作得還不夠深刻。
  • SLAM的架構設計應當高度模塊化,儘可能解耦。將建圖和定位分開算是必定程度上的解耦。語義SLAM能夠看作是將前端特徵提取和SLAM系統解耦。SLAM也許不該當大包大攬全部功能。
  • 針對應用場景作微創新。譬如,減少問題自由度,利用各類已知信息(landmark/map),等等。

路漫漫其修遠兮。設計

相關文章
相關標籤/搜索