從零開始搭二維雷射SLAM 序章

2021-10-25 11:42:42 字數 2227 閱讀 1300

從17年3月開始接觸slam,到現在已經3年了。雖然時間很長,但並不是所有時間都在單純的搞slam。

17年3月,研一下學期的時候選的課題題目,基於slam的室內移動機械人導航技術研究。之前並沒有接觸過slam,ros等等。就連c++都是16年研一上學期的時候學的(大一學過以後沒再接觸過)。從17年3月開始學ros,開始了解slam,還看了概率機械人這本書(當時基本沒看懂)。

到了17年7月,去了安徽蕪湖的一家公司實習,因為課題是這家公司給的。到了之後第一次接觸機械人,小強機械人,學習操作機械人,搭自己電腦的環境等等,用了2個月。到10月份開題時候還不明白課題到底要幹啥。

11月份的時候,考慮到建圖的時候總有人,總會在地圖上留下乙個單獨的點,所以做了乙個二維雷達的檢測人小腿部分的濾波,通過距離等幾何資訊分辨出人腿,同時也會把和人腿差不多寬度的其他東西也過濾掉。後來跟同事大哥聊了聊,他說,你在沒人的時候建圖不就完了,這功能有點雞肋。好吧,後來一想感覺也沒啥大用,就沒放**裡。

開發完這個功能基本就到12月中旬了,之後邊查文章,邊研究cartographer,那時候cartographer剛出來不久(具體多久不知道了),國內的資源能查到的很少。只能自己研究。

到了18年1月中旬,終於把配置檔案lua,launch,node這些東西全弄懂了,能夠成功的建圖了,然後被告知快中期了。。。這時候除了建圖我還沒整啥呢,然後趕緊跑amcl,move_base。為了找創新點加了個主動slam,就是邊導航遍建圖,用的現成的ros包。。。

**終於寫完了,ppt花了1天時間做完,然後晚上老師讓試講ppt,剛做完沒熟悉呢,講的磕磕巴巴,好多東西說不清楚,很難受。後來又花了2天把ppt重做了,然後繼續熟讀,還好最終答辯順利通過了。

總體下來,這一年基本就是在為了**而學習,只能說是知道了好多概念的名字,但是概念具體是怎麼實現的完全不懂。

18年7月到19年1月,這時候的工作與ros無關,做了雷射叉車的運動控制。19年1月開始做雷射導航a**,使用ros現成的包。只是在用ros,沒有進行深入研究。

19年2-3月有時間了看了下hector的原始碼。

19年5月-8月進行深入閱讀cartographer**(剛入職一家公司,試用期沒讓接觸專案),9-12月在各種使用cartographer建圖,二維的三維的,室內的室外的。

2023年2-5月在家辦公,抽時間看了karto的原始碼。

9-10月份又看了下cartographer的分枝定界部分,寫了個專利,同時看了orb-slam2的**,以及視覺slam14講。

11月份看了lio-sam的**,查了查loam與lego-loam的實現原理。

我把我接觸slam的整個經歷寫出來,不知道是不是有人和我的經歷差不多,一直在使用slam,也看了好多slam相關的理論知識,也懂了一些,但是沒有自己寫過乙個slam就感覺懂的不夠透徹,不夠完全。

碩士階段了解了slam相關的知識。

工作階段一直是使用開源的slam演算法。因為建圖只是機械人導航的第一步,只要能穩定的建圖以後就不會總調slam的引數。而且,工作上也不會太去摳細節,扣**,只要調參調好了,能建圖就行了。所以後來的工作重點變成了和同事一起調導航去了,去調move_base,去調導航的效果。

不知道其他公司裡的slam崗位是不是也這樣,哪位同行大佬看到了可以留個言不。

所有這一切,導致了我看了很多slam的**,依然感覺自己不是特別會,對slam不是特別有把握。

同時,加了一些社群,發現現在剛開始做雷射slam的也有很多人,也有很多人問有沒有像高翔博士的視覺slam14講一樣的雷射slam的教程。

高翔博士出的視覺slam14講在國內視覺slam的發展歷程中起著十分重要的作用,所以想著向高博學習的想法,我也打算從零開始搭乙個雷射slam,做乙個系列的教程。

由於我現在的水平有限,只能邊學編寫文章,同時還要工作,所以打算以每兩周更新一次的頻率進行文章的更新。

本人的理論基礎知識十分有限,所以本系列文章將是以 想要實現的功能進行**的編寫 為主,也就是說本系列文章將以**為主,而不會進行太多的理**式推倒。

而編寫**的過程以及思路,我將從0開始,一步一步地帶著大家進行二維雷射slam的編碼。

本系列文章不會對各種概念進行深入講解,也不會對各種理論模型進行講解,原因很簡單,我不會。。。所以,我已經預設了讀者已經具備了這些基礎知識,起碼知道slam的各個模組等等。

github:

csdn: 李太白lx - 從零開始搭二維雷射slam專欄 -

從零開始搭二維雷射SLAM 文章索引

本節為索引頁,無演算法內容。1 從零開始搭二維雷射slam 序章 為什麼要做這個開源專案 2 從零開始搭二維雷射slam 前言 我眼中的slam 3 從零開始搭二維雷射slam 寫作計畫 4 從零開始搭二維雷射slam 雷射雷達資料效果對比 5 從零開始搭二維雷射slam 了解雷達資料 6 從零開始...

jQuery從零開始 二

1.css類的操作 addclass 向被選元素新增乙個或者多個類 removeclass 刪除被選元素的類 toggleclass 取反 css 獲取或者設定被選元素的css樣式 使用這個方法的時候不需要使用小駝峰,當通過這個方法設定樣式的時候,可以通過傳入乙個物件的形式來設定css樣式 widt...

Git從零開始(二)

前面提交了乙個test1.txt檔案,接下來看看這個檔案接下來的命運。一 繼續修改並提交 在test1.txt中修改後,git status檢視git的狀態,會提示我們檔案test1.txt被修改了,但還沒有提交。但到底修改了什麼呢?接著往下看,git diff test1.txt檢視剛剛修改的內容...