Eigen庫中進行矩陣間的變換

2021-10-01 14:01:58 字數 1324 閱讀 6406

一、剛體旋轉的表示方法有如下四種:

旋轉矩陣(r3x3) ------旋轉矩陣r為正交陣(行或列向量都是兩兩正交的單位向量)。

四元數(quaternion)------ 四元數可以只用四個元素就能表示旋轉,在使用四元數進行旋轉變換之前需要對四元數進行歸一化。

旋轉向量v -------也稱:軸角,由乙個旋轉軸向量和旋轉角組成。旋轉軸向量需要標準化為單位向量。

尤拉角(vector3d) -------常用於飛機等人機互動的介面,不常用於slam中。在eigen庫中,其常用軸角來進行模擬x,y,z軸的旋轉情況。

二、各種旋轉之間的轉換關係如下:

四元數---->旋轉向量:     v_rotate = angleaxisd (q)

旋轉向量----->四元數:    q = quaterniond (v_rotate)

旋轉向量----->旋轉矩陣: r = v_rotate.matrix() 或 r = v_rotate.torotationmatrix()

旋轉矩陣----->旋轉向量: v_rotate = angleaxisd (r)

四元數------>旋轉矩陣:    r = matrix3d (q)

旋轉矩陣----->四元數:     q = quaterniond (r)

四元數----->變換矩陣:     t.rotate(q) , t.pretranslate(t) , t.matrix()

旋轉矩陣----->尤拉角:      euler_angle = r.eulerangles(0,0,1)

尤拉角------>旋轉矩陣:     r = angleaxisd(m_pi/4 , vector3d::unitx())*angleaxisd(m_pi/2 ,           vector3d::unity())*angleaxisd(m_pi/3 , vector3d::unitz())

[1]     旋轉矩陣、旋轉向量(軸角)、四元數、尤拉角之間相互轉換的**實現

[2]     eigen中尤拉角,旋轉向量,旋轉矩陣,四元數的轉換

[3]     eigen庫使用教程之旋轉矩陣,旋轉向量和四元數的初始化和相互轉換的實現

[4]     

[5]     三維旋**尤拉角、四元數、旋轉矩陣、軸角之間的轉換

[6]     eigen實現座標轉換

[7]    旋轉矩陣(rotate matrix)的性質分析

C 呼叫Eigen庫進行矩陣基礎運算

eigen標頭檔案介紹 利用c 呼叫eigen庫實現矩陣的基礎運算,包括矩陣的相加,相乘,轉置,求逆,伴隨矩陣,特徵值。eigen是c 中可以用來呼叫並進行矩陣計算的乙個庫,裡面封裝了一些類,需要的標頭檔案和功能如下 eigen基礎語法說明 矩陣型別 eigen中的矩陣型別一般都是用類似matri ...

Qt下Eigen矩陣函式庫的新增

之前在vs裡用eigen庫寫了一堆機械人姿態解算的矩陣運算,然而畢設要用到gui介面,聽大神說用qt比mfc有前途,所以著手用qt寫。但是在qt下eigen庫的新增上浪費了一點時間,所以索性再花點時間寫個部落格來幫助像我一樣的小白實現qt下eigen庫的新增。用qt隨便建乙個gui工程,在.pro下...

Qt下Eigen矩陣函式庫的新增

用qt隨便建乙個gui工程,在.pro下新增如下 路徑就是解壓eigen的那個路徑 includepath d library eigen eigencpp檔案中新增 qt下eigen矩陣函式庫的新增 include include主函式內部新增 eigen matrixxd aaa 2,3 aaa...