slam主要完成的兩個問題是:
完成slam依賴sensor:
機械人本體上的sensor(主流方向,限制少)
完整的乙個slam流程圖:
slam中的數學描述包括兩個方程:
描述剛體在空間中的旋轉有如下幾種方式:
可以使用eigen庫進行相互轉換
對於描述剛體的運動我們已經可以使用李群(lie group)來描述了,比如:
s o(
3)=so(3)=\^ | rr^t=i, det(r)=1\}
so(3)=
s e(
3)=se(3)=\ r & t\\ o^t & 1 \end \in \mathbb^ | r \in so(3), t \in \mathbb^3\}
se(3)=
為什麼還要引出李代數呢?
主要是因為旋轉矩陣是帶約束的,進行優化的時候不方便,但是轉成lie algebra就會變成了無約束優化。
group滿足四個性質:
lie group是一種特殊的group,它具有連續光滑的性質,直觀來理解就是三維物體在空間中的運動是連續的。
所以引出lie algebra的主要目的是為了方便求導。
lie algebra的定義住乙個集合v
\mathbb
v,乙個數域f
\mathbb
f和乙個二元運算[,]
[,][,
](也稱之為李括號)組成。
lie algebra也有四個性質:
lie algebra本質生表達了兩個元素的差異。
lie algebra so(
3),s
e(3)
so(3), se(3)
so(3),
se(3
)的推導是非常有意思的,它們其實**於旋轉向量和平移向量。
lie group和lie algebra是一一對應的,可以通過指數對數對映互相轉換。
引出lie algebra的目的既然是為了求導,那麼求導的話,需要先理解bch公式,它描述的是在李群上兩個元素的乘法和對應兩個元素在李代數上的加法的關係。
求導有兩個思路: so(
3)和s
e(3)
so(3)和se(3)
so(3)和
se(3
)的左擾動模型求導直接參考slam14講。
最後值得一提的是sophus實現了李代數的基本運算,其實是對eigen庫的乙個高階封裝。
視覺slam14講之後端優化
前端視覺里程計能給出乙個短時間內的軌跡和地圖,但不可避免的誤差累積,這個地圖在長時間內是不準確的。要想構建乙個尺度,規模更大的優化問題,以考慮長時間內的最優軌跡和地圖,這時後端優化就出現了。slam中的運動方程和觀測方程通常是非線性函式,尤其是視覺slam中的相機模型,需要使用相機內參模型及李代數表...
視覺slam14講學習筆記 (第1講)
學習需具備的知識 高等數學 線性代數 概率論 c 語言基礎 linux基礎 指搭載特定感測器的主體,在沒有環境先驗資訊的情況下,於運動過程中建立環境模型,同時估計自己的運動。如果這裡的感測器為相機,則成為視覺slam 解決定位與地圖構建這兩個問題,即需要估計感測器自身的位置還要建立周圍環境模型 當相...
視覺slam14講之相機與框架
以下粗略介紹 1.視覺里程計 visual odometry 視覺里程計的任務是估算相鄰影象間相機的運動,以及區域性地圖的樣子。vo通過相鄰幀間的影象估計相機運動,並恢復場景的空間結構。它只計算相鄰時刻的運動,而和之前的資訊沒有關聯。但硬體計算肯定是有誤差的,也就是說把相鄰時刻的運動 串 起來,構成...