diff options
Diffstat (limited to 'include/libsurvive/survive_imu.h')
-rw-r--r-- | include/libsurvive/survive_imu.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/libsurvive/survive_imu.h b/include/libsurvive/survive_imu.h new file mode 100644 index 0000000..124ad7e --- /dev/null +++ b/include/libsurvive/survive_imu.h @@ -0,0 +1,36 @@ +#ifndef _SURVIVE_IMU_H +#define _SURVIVE_IMU_H + +#include "poser.h" +#include "survive_types.h" +#include <stdint.h> + +#ifdef __cplusplus +extern "C" { +#endif + +struct SurviveIMUTracker_p; + +typedef struct { + FLT updir[3]; + FLT accel_scale_bias; + + LinmathVec3d current_velocity; // Velocity in world frame + PoserDataIMU last_data; + SurvivePose pose; + + SurvivePose lastGT; + uint32_t lastGTTime; + + float integralFBx, integralFBy, integralFBz; // integral error terms scaled by Ki + +} SurviveIMUTracker; + +void survive_imu_tracker_set_pose(SurviveIMUTracker *tracker, uint32_t timecode, SurvivePose *pose); +void survive_imu_tracker_integrate(SurviveObject *so, SurviveIMUTracker *tracker, PoserDataIMU *data); + +#ifdef __cplusplus +}; +#endif + +#endif |