matlab 角度转四元数_四元数转旋转矩阵公式推导
容易知以下公式成立: 上面公式用四元数表示如下: 由于是用四元数的形式表示的,所以即可完成四元数到旋转矩阵的转换公式推导,详细推导如下:设,为实部,为虚部,,是的共轭四元数。 所以:容易推出: 所以可以化简为: 所以: 上述公式推导的结果和matlab推导的结果是一样的,主要代码如下:addpath('../utils');syms q0 q1 q2 q3 a_x...
·
容易知以下公式成立:
上面公式用四元数表示如下:
由于
设
所以:
容易推出:
所以可以化简为:
所以:
上述公式推导的结果和matlab推导的结果是一样的,主要代码如下:
addpath('../utils');
syms q0 q1 q2 q3 a_x a_y a_z ab_x ab_y ab_z
q_k0 = [q0,q1,q2,q3];
q_k0_conj = [q0,-q1,-q2,-q3];
acce_x_bias = a_x+ab_x;
acce_y_bias = a_y+ab_y;
acce_z_bias = a_z+ab_z;
p = [1,acce_x_bias,acce_y_bias,acce_z_bias];
% quaternProd:四元数乘法
q_k1 = quaternProd(quaternProd(q_k0, p),q_k0_conj);
% 求偏导
q_k1_dif = [diff(q_k1,a_x).',diff(q_k1,a_y).',diff(q_k1,a_z).']
% 结果如下:
% [ 0, 0, 0]
% [ q0^2 + q1^2 - q2^2 - q3^2, 2*q1*q2 - 2*q0*q3, 2*q0*q2 + 2*q1*q3]
% [ 2*q0*q3 + 2*q1*q2, q0^2 - q1^2 + q2^2 - q3^2, 2*q2*q3 - 2*q0*q1]
% [ 2*q1*q3 - 2*q0*q2, 2*q0*q1 + 2*q2*q3, q0^2 - q1^2 - q2^2 + q3^2]
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)