×

基于STM32的四轴飞行器程序

消耗积分:1 | 格式:rar | 大小:2KB | 2014-10-25

lsrjack

分享资料个

STM32 MPU6050

  // 定义四元数类型。

  typedef struct

  {

  float w;

  float x;

  float y;

  float z;

  }quaternion;

  // 规范化四元数。

  void quaternion_normalize(quaternion * q)

  {

  float norm_r = 1.0f / sqrtf(q-》w*q-》w + q-》x*q-》x + q-》y*q-》y + q-》z*q-》z);

  q-》w *= norm_r;

  q-》x *= norm_r;

  q-》y *= norm_r;

  q-》z *= norm_r;

  }

  // 四元数相乘

  // left : 被乘数,输入。

  // right : 乘数,输入。

  // result : 积,输出。

  void quaternion_mult(quaternion * result,const quaternion * left,const quaternion * right)

  {

  result-》w = left-》w * right-》w - left-》x * right-》x - left-》y * right-》y - left-》z * right-》z;

  result-》x = left-》x * right-》w + left-》w * right-》x + left-》y * right-》z - left-》z * right-》y;

  result-》y = left-》y * right-》w + left-》w * right-》y + left-》z * right-》x - left-》x * right-》z;

  result-》z = left-》z * right-》w + left-》w * right-》z + left-》x * right-》y - left-》y * right-》x;

  }

  // 用四元数来旋转向量。

  void quaternion_rotateVector(const quaternion * rotation,const float from[3],float to[3])

  {

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !