Files
Hero-C-Board-Legacy/云台/云台-old/AHRS/ahrs_lib.h

70 lines
2.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef AHRS_H
#define AHRS_H
#include "AHRS_MiddleWare.h"
/**
* @brief 根据加速度的数据,磁力计的数据进行四元数初始化
* @author luopin
* @param[in] 需要初始化的四元数数组
* @param[in] 用于初始化的加速度计,(x,y,z)不为空 单位 m/s2
* @param[in] 用于初始化的磁力计计,(x,y,z)不为空 单位 uT
* @retval 返回空
*/
extern void AHRS_init(fp32 quat[4], const fp32 accel[3], const fp32 mag[3]);
/**
* @brief 根据陀螺仪的数据,加速度的数据,磁力计的数据进行四元数更新
* @author luopin
* @param[in] 需要更新的四元数数组
* @param[in] 更新定时时间固定定时调用例如1000Hz传入的数据为0.001f,
* @param[in] 用于更新的陀螺仪数据,数组顺序(x,y,z) 单位 rad
* @param[in] 用于初始化的加速度数据,数组顺序(x,y,z) 单位 m/s2
* @param[in] 用于初始化的磁力计数据,数组顺序(x,y,z) 单位 uT
* @retval 返回空
*/
extern bool_t AHRS_update(fp32 quat[4], const fp32 timing_time, const fp32 gyro[3], const fp32 accel[3], const fp32 mag[3]);
/**
* @brief 根据四元数大小计算对应的欧拉角偏航yaw
* @author luopin
* @param[in] 四元数数组不为NULL
* @retval 返回的偏航角yaw 单位 rad
*/
extern fp32 get_yaw(const fp32 quat[4]);
/**
* @brief 根据四元数大小计算对应的欧拉角俯仰角 pitch
* @author luopin
* @param[in] 四元数数组不为NULL
* @retval 返回的俯仰角 pitch 单位 rad
*/
extern fp32 get_pitch(const fp32 quat[4]);
/**
* @brief 根据四元数大小计算对应的欧拉角横滚角 roll
* @author luopin
* @param[in] 四元数数组不为NULL
* @retval 返回的横滚角 roll 单位 rad
*/
extern fp32 get_roll(const fp32 quat[4]);
/**
* @brief 根据四元数大小计算对应的欧拉角yawpitchroll
* @author luopin
* @param[in] 四元数数组不为NULL
* @param[in] 返回的偏航角yaw 单位 rad
* @param[in] 返回的俯仰角pitch 单位 rad
* @param[in] 返回的横滚角roll 单位 rad
*/
extern void get_angle(const fp32 quat[4], fp32 *yaw, fp32 *pitch, fp32 *roll);
/**
* @brief 返回当前的重力加速度
* @author luopin
* @param[in] 空
* @retval 返回重力加速度 单位 m/s2
*/
extern fp32 get_carrier_gravity(void);
#endif