姿态解算流程图
2022-02-16 18:39:36   0  举报             
     
         
 Pixhawk姿态解算流程图
    作者其他创作
 大纲/内容
 修正积分项ei=[e(yaw)+e(pitch roll)]*dt比例项ep=e(yaw)+e(pitch roll)
  函数内部
  函数update()
  函数结束
  通过函数from_dcm(),由R得到初始四元数
  不为ture
  四元数归一化
  更新GPS数据:1. 如果mag_decl_auto配置不为0,利用GPS更新磁偏角;2. 如果acc_comp配置不为0,则利用GPS测得速度,转换到机体坐标系下,并存储在_pos_acc中以待后用
  第一次进入,执行函数Init(),得到初始四元数
  w(coor)=w+ep+sum(ei)其中:w为陀螺仪测得的角速度
  attitude_estimator_q_main.cpp的工作流程图
  通过变量control_state将数据发布
  函数task_main
  二次及以后进入函数
  配置阻塞时间(1s读取一次sensor_combined的数据)
  利用w(coor)对四元数进行更新
  函数attitude_estimator_q_main
  将得到的四元数,补偿后的角速度,加速度存入control_state_s类型的变量control_state中
  通过att将数据发布
  j=i x k作为E(NED坐标系)方向
  函数task_main_trampoline
  extern \"C\
  初始方向余弦R=(i ,j,k)
  由四元数得到欧拉角
  依据不同外设:利用vision或mocap对航向角进行修正
  更新配置参数(update_parameters)
  by  蜗牛拉火车
  Init()函数处理方法单独列出
  防止积分饱和处理
  取消主题订阅
  依据不同外设1.用vision或mocap更新航向2.更新airspeed
  进入while大循环
  _task_should_exit==ture(在析构函数中置为ture)
  函数start(定义attitude_estimator_q函数句柄、开启任务等)
  为ture
  函数Init()
  将得到的欧拉角、补偿后的角速度、加速度、四元数、转换矩阵、陀螺仪补偿项等存入vehicle_attitude_s类型的att变量中
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 