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.按照一定規律建立陣列...