方向向量轉尤拉角 旋轉矩陣 四元數

2021-10-22 14:20:54 字數 804 閱讀 6998

基於eigen庫實現演算法中的矩陣運算。

輸入

方向向量vector3d tmpvec,參考單位向量vector3d zaxis(0,0,1)

輸出

旋轉矩陣m

eigen::matrix3d m;

eigen::vector3d zaxis(0, 0, 1);

eigen::vector3d tmpvec(vx, vy, vz);

tmpvec.normalize();

eigen::vector3d xaxis = zaxis.cross(tmpvec);

xaxis.normalize();

eigen::vector3d yaxis = tmpvec.cross(xaxis);

yaxis.normalize();

m(0, 0) = xaxis(0);

m(0, 1) = yaxis(0);

m(0, 2) = tmpvec(0);

m(1, 0) = xaxis(1);

m(1, 1) = yaxis(1);

m(1, 2) = tmpvec(1);

m(2, 0) = xaxis(2);

m(2, 1) = yaxis(2);

m(2, 2) = tmpvec(2);

得到旋轉矩陣後便可基於eigeigen庫計算四元數或尤拉角,根據參考向量的不同需要對旋轉矩陣做相應調整,可參考[3]。

旋轉矩陣

Eigen 四元數 尤拉角 旋轉矩陣 旋轉向量

一 旋轉向量 1.0 初始化旋轉向量 旋轉角為alpha,旋轉軸為 x,y,z eigen angleaxisd rotation vector alpha,vector3d x,y,z 1.1 旋轉向量轉旋轉矩陣 eigen matrix3d rotation matrix rotation ma...

旋轉矩陣 尤拉角 四元數比較

旋轉矩陣 尤拉角 四元數主要用於 向量的旋轉 座標系之間的轉換 角位移計算 方位的平滑插值計算。旋轉矩陣 尤拉角 四元數比較 不同的方位表示方法適用於不同的情況。下面是我們對合理選擇格式的一些建議 1.尤拉角最容易使用。當需要為世界中的物體指定方位時,尤拉角能大大的簡化人機互動,包括直接的鍵盤輸入方...

旋轉矩陣,四元素,尤拉角

旋轉變換 旋轉變換最為直觀的表示方法是 軸 角 繞著某乙個過原點軸,旋轉某一角度。軸可以用乙個單位長度的點 w1,w2,w3 w1,w2,w3 表示 原點到該點的射線即為此軸。使用右手座標系,拇指指向軸方向,四指方向即為旋轉的方向。乙個旋轉變換可以用用尤拉角 四元數或者旋轉矩陣表示。以下討論不同表示...