(pai / 180.0 ) //弧度 = 角度 * π / 180
#define angle (180.0 / pai ) //角度 = 弧度 * 180 / π
2、旋轉矩陣轉換為尤拉角
/*** @brief 已知旋轉矩陣求尤拉角
* @param arr : 旋轉矩陣陣列 n o a
* @retval 尤拉角(弧度值) 偏航角,俯仰角,滾動角
*/float *matrix_eulerian_angle(float *arr)
e[0] = atan2(t[1],t[0]);//ny/nx
e[1] = atan2(-1*t[2],(t[0]*cos(e[0])+t[1]*sin(e[0])));//nz/(nx+ny)
e[2] = atan2((t[6]*sin(e[0])-t[7]*cos(e[0])),(-1*t[3]*sin(e[0])+t[4]*cos(e[0])));//ax-ay/-ox+oy
return e;
}3、尤拉角轉換為旋轉矩陣
/*** @brief 已知尤拉角(角度值)求旋轉矩陣
* @param arr : 尤拉角(弧度值) 偏航角,俯仰角,滾動角
* @retval
*/eulerian_angle_matrix(float *arr)
/*n*/
t[0] = 1*(cos(e[0])*cos(e[1]));
t[1] = 1*(sin(e[0])*cos(e[1]));
t[2] = -1*(sin(e[1]));
/*o*/
t[3] = 1*(cos(e[0])*sin(e[1])*sin(e[2])-sin(e[0])*cos(e[2]));
t[4] = 1*(sin(e[0])*sin(e[1])*sin(e[2])+cos(e[0])*cos(e[2]));
t[5] = 1*(cos(e[1])*sin(e[2]));
/*a*/
t[6] = 1*(cos(e[0])*sin(e[1])*cos(e[2])+sin(e[0])*sin(e[2]));
t[7] = 1*(sin(e[0])*sin(e[1])*cos(e[2])-cos(e[0])*sin(e[2]));
t[8] = 1*(cos(e[1])*cos(e[2]));
return t;
}
機械人學中旋轉矩陣與尤拉角之間互換公式及程式
弧度 角度 define pai 3.141592653589793 define radian pai 180.0 弧度 角度 180 define angle 180.0 pai 角度 弧度 180 2 旋轉矩陣轉換為尤拉角 brief 已知旋轉矩陣求尤拉角 param arr 旋轉矩陣陣列 n...
機械人學中旋轉矩陣與尤拉角之間互換公式及程式
弧度 角度 define pai 3.141592653589793 define radian pai 180.0 弧度 角度 180 define angle 180.0 pai 角度 弧度 180 2 旋轉矩陣轉換為尤拉角 brief 已知旋轉矩陣求尤拉角 param arr 旋轉矩陣陣列 n...
推到 旋轉矩陣公式 旋轉矩陣公式推導
1.在二維平面中 如下圖所示,在xoyxoy平面中有一向量op x,y top x,y t,旋轉 角後變為向量op x y top x y t。據圖可得 x op cos y op sin x op cos y op sin 經旋轉 角後有 x op cos op cos cos sin sin x...