Eigen中幾何模組資料演示

2021-10-06 13:49:14 字數 3203 閱讀 8922

1.0 初始化旋轉向量:旋轉角為alpha,旋轉軸為(x,y,z)

eigen::angleaxisd rotation_vector(alpha,vector3d(x,y,z))

1.1 旋轉向量轉旋轉矩陣

eigen::matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix();

eigen::matrix3d rotation_matrix;rotation_matrix=rotation_vector.torotationmatrix();

1.2 旋轉向量轉尤拉角(z-y-x,即rpy)

eigen::vector3d eulerangle=rotation_vector.matrix().eulerangles(2,1,0);

1.3 旋轉向量轉四元數

eigen::quaterniond quaternion(rotation_vector);

eigen::quaterniond quaternion;quaterniond quaternion;

eigen::quaterniond quaternion;quaternion=rotation_vector;

2.0 初始化旋轉矩陣

eigen::matrix3d rotation_matrix;rotation_matrix<2.1 旋轉矩陣轉旋轉向量

eigen::angleaxisd rotation_vector(rotation_matrix);

eigen::angleaxisd rotation_vector;rotation_vector=rotation_matrix;

eigen::angleaxisd rotation_vector;rotation_vector.fromrotationmatrix(rotation_matrix);

2.2 旋轉矩陣轉尤拉角(z-y-x,即rpy)

eigen::vector3d eulerangle=rotation_matrix.eulerangles(2,1,0);

2.3 旋轉矩陣轉四元數

eigen::quaterniond quaternion(rotation_matrix);

eigen::quaterniond quaternion;quaternion=rotation_matrix;

3.0 初始化尤拉角(z-y-x,即rpy)

eigen::vector3d eulerangle(yaw,pitch,roll);

3.1 尤拉角轉旋轉向量

eigen::angleaxisd rollangle(angleaxisd(eulerangle(2),vector3d::unitx()));

eigen::angleaxisd pitchangle(angleaxisd(eulerangle(1),vector3d::unity()));

eigen::angleaxisd yawangle(angleaxisd(eulerangle(0),vector3d::unitz()));

eigen::angleaxisd rotation_vector;rotation_vector = yawangle* pitchangle * rollangle;

3.2 尤拉角轉旋轉矩陣

eigen::angleaxisd rollangle(angleaxisd(eulerangle(2),vector3d::unitx()));

eigen::angleaxisd pitchangle(angleaxisd(eulerangle(1),vector3d::unity()));

eigen::angleaxisd yawangle(angleaxisd(eulerangle(0),vector3d::unitz()));

eigen::matrix3d rotation_matrix;rotation_matrix = yawangle* pitchangle * rollangle;

3.3 尤拉角轉四元數

eigen::angleaxisd rollangle(angleaxisd(eulerangle(2),vector3d::unitx()));

eigen::angleaxisd pitchangle(angleaxisd(eulerangle(1),vector3d::unity()));

eigen::angleaxisd yawangle(angleaxisd(eulerangle(0),vector3d::unitz()));

eigen::quaterniond quaternion;quaternion=yawanglepitchanglerollangle;

4.0 初始化四元數

eigen::quaterniond quaternion(w,x,y,z);

4.1 四元數轉旋轉向量

eigen::angleaxisd rotation_vector(quaternion);

eigen::angleaxisd rotation_vector;rotation_vector=quaternion;

4.2 四元數轉旋轉矩陣

eigen::matrix3d rotation_matrix;rotation_matrix=quaternion.matrix();

eigen::matrix3d rotation_matrix;rotation_matrix=quaternion.torotationmatrix();

4.4 四元數轉尤拉角(z-y-x,即rpy)

eigen::vector3d eulerangle=quaternion.matrix().eulerangles(2,1,0);

isometry3d t = isometry3d::identity(); //雖然為3d,實際上是4*4矩陣

t.rotate(rotation_matrix);

t.pretranslate(vector3d(1, 2, 3));

視覺SLAM學習 Eigen幾何模組使用方法

標頭檔案包含 include include using namespace eigen 旋轉向量 角1 軸3 angleaxisd 旋轉矩陣 3 3 matrix3d 尤拉角 3 1 vector3d 四元數 4 1 quaterniond 歐式變換矩陣 仿射矩陣 射影矩陣 4 4 isometr...

基礎知識點 Eigen幾何模組 旋轉變換

剛體運動中的旋轉通常可以由旋轉矩陣,旋轉向量和四元數等多種方式表示,在eigen庫中也有其對應的實現。本文主要介紹剛體運動時旋轉矩陣,旋轉向量和四元數的初始化以及相互轉換在eigen中的實現方式。1.eigen庫中各種形式的表示旋轉矩陣 3x3 eigen matrix3d 旋轉向量 3x1 eig...

Python中資料管理模組 Numpy

python資料分析模組numpy 建立全0陣列 pa np.zeros 2 2 print pa 0.0.0.0.建立全1陣列 同zeros函式用法相同,np.ones 3.建立指定元素的陣列 b np.array 1,2,3 2,3,4 print b 1 23 234 4.按照一定規律建立陣列...