diff options
author | CNLohr <charles@cnlohr.com> | 2018-04-04 02:27:42 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 02:27:42 -0400 |
commit | ce6322b6b604b12018a2daf427dbd36afc5fbda2 (patch) | |
tree | 5929c2793c33c80e5392982a9baaa8d5ccaca724 /include/libsurvive/survive_imu.h | |
parent | 6a45298c9bc34aac59cc2ebb9de2d82c7a42756e (diff) | |
parent | c7d9d271796b20f886e2441de852498ecb25ca82 (diff) | |
download | libsurvive-ce6322b6b604b12018a2daf427dbd36afc5fbda2.tar.gz libsurvive-ce6322b6b604b12018a2daf427dbd36afc5fbda2.tar.bz2 |
Merge pull request #122 from cnlohr/imu
Imu
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 |