視覺slam第三講筆記 矩陣運算Eigen庫

2021-09-24 03:14:25 字數 3136 閱讀 8960

內積:a⋅b

a·ba⋅

b外積:a×b

=a^b

a \times b =\hat a b

a×b=a^

b,其中 a

^\hat a

a^為a

aa的反對稱矩陣表示

a ×b

=(0−

a3a2

a30−

a1−a

2a10

)b

a\times b=\begin 0 & -a_ & a_\\ a_ & 0 & -a_\\ -a_ & a_ & 0 \endb

a×b=⎝⎛

​0a3

​−a2

​​−a

3​0a

1​​a

2​−a

1​0​

⎠⎞​b

旋轉矩陣:單位正交基}

ei​}經旋轉為'}

ei′​

},某向量原座標a

aa在新基下的座標為a′a'

a′,則a =r

a′

a=ra'

a=ra

′旋轉矩陣r

rr:標準正交單位矩陣, 反向旋轉r

tr^t

rt歐氏變換:旋轉+平移:旋轉矩陣r

rr,平移向量ttta

′=ra

+t

a'=ra+t

a′=ra+

t變換矩陣t:a–>b,b–>c,則a–>c?b=r

1a+t

1b=r_a+t_

b=r1​a

+t1​

,c =r

2b+t

2c=r_b+t_

c=r2​b

+t2​

,則c =r

2(r1

a+t1

)+t2

c=r_(r_a+t_)+t_

c=r2​(

r1​a

+t1​

)+t2

齊次座標的作用:將旋轉平移寫在乙個矩陣內,使整個關係為線性

所以上式變換可寫作,變換矩陣形式t

tt:(a′

1)=(

rt0t

1)(a

1)=t

(a1)

\begin a' \\1 \end=\beginr & t \\0^t & 1\end\begina \\1\end=t\begina \\1\end

(a′1​)

=(r0

t​t1

​)(a

1​)=

t(a1

​)記為:b~=

t1a~

,c~=

t2b~

\widetilde=t_\widetilde,\widetilde=t_\widetilde

b=t1​a

,c=t

2​b,則

c ~=

t2t1

a~

\widetilde=t_t_\widetilde

c=t2​t

1​a

特殊正交群:旋轉矩陣的集合:so(

n)

so(n)

so(n

)= ^|rr^}=i,det(r)=1

r∈rn×n

∣rrt

=i,d

et(r

)=1 }

特殊歐氏群:變換矩陣的集合:se(

3)

se(3)

se(3

)= r & t \\0^t & 1\end\in \mathbb^

(r0t​t

1​)∈

r4×4

|r ∈s

o(3)

,t∈r

3r\in so(3),t\in \mathbb^

r∈so(3

),t∈

r3}eigen:提供矩陣線性代數運算的庫,只用標頭檔案搭建,只需要引入標頭檔案即可使用

cmake_minimum_required(version 2.8)

project(threeeigen)

set(cmake_cxx_standard 14)

add_executable(threeeigen main.cpp)

# 加上下一行就可以用eigen了

include_directories(/usr/include/eigen3)

#include

#include

#include

using namespace std;

intmain()

#include

intmain()

其中n

^\hat n

n^表示向量的叉積矩陣

#include

#include

#include

using namespace std;

intmain()

旋轉矩陣(33):eigen::matrix3d

旋轉向量(31):eigen::angleaxisd

尤拉角(31):eigen::vector3d

四元數(41):eigen::quaterniond

歐氏變換(44):eigen::isometry3d

仿射變換(44):eigen::affine3d

射影變換(4*4):eigen::projective3d

[1]: xiang gao, tao zhang, yi liu, qinrui yan, 14 lectures on visual slam: from theory to practice, publishing house of electronics industry, 2017.

強烈安利《視覺slam十四講》,這是極好的一本書

2019 0405視覺SLAM的學習第三講02

今天就先到這裡,明天繼續!1.把第三講的實踐部分單獨拿出來進行記錄。1.安裝eigen庫 2.我們執行一遍這個eigen的cpp程式直接 執行結果如下 3.這裡我們需要詳細記錄一下其中執行時的乙個錯誤 fatal error eigen core no such file or directory ...

視覺SLAM十四講學習筆記 第三講

slam十四講是高翔博士寫的非常經典的視覺slam書籍,記錄下學習心得,與大家分享學習。一 知識總結 1 內積 描述向量間的投影關係 它是兩個向量張成的四邊形的有向面積。外積只對三維向量存在定義,可以表示旋轉 表示反對稱符號,外積公式 3 歐氏變換 同乙個向量在各個座標系下的長度和夾角都不會發生變換...

第三講Python運算子

1.算數運算子 運算子描述 加 減 乘 除 返回除法的餘數 冪次 返回商的整數部分 需要注意的 運算子描述 比較值是否相等 比較值是否不相等 大於 小 大於等於 小於等於 3.賦值運算子 運算子描述例項 賦值運算子 c a b 加法賦值運算子 c a等同於c c a 減法賦值運算子 c a 等效 c...