From f60bed509a7e416c155bcd35d5151bca65eaa190 Mon Sep 17 00:00:00 2001 From: Justin Berger Date: Wed, 21 Mar 2018 11:20:34 -0600 Subject: IMU research --- src/poser_imu.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/poser_imu.c (limited to 'src/poser_imu.c') diff --git a/src/poser_imu.c b/src/poser_imu.c new file mode 100644 index 0000000..8ca716b --- /dev/null +++ b/src/poser_imu.c @@ -0,0 +1,31 @@ +#include +#include + +#include +#include + +int PoserIMU(SurviveObject *so, PoserData *pd) { + PoserType pt = pd->pt; + SurviveContext *ctx = so->ctx; + SurviveIMUTracker *dd = so->PoserData; + + if (!dd) { + so->PoserData = dd = malloc(sizeof(SurviveIMUTracker)); + *dd = (SurviveIMUTracker){}; + } + + switch (pt) { + case POSERDATA_IMU: { + PoserDataIMU *imu = (PoserDataIMU *)pd; + + survive_imu_tracker_integrate(so, dd, imu); + + PoserData_poser_raw_pose_func(pd, so, -1, &dd->pose); + + return 0; + } + } + return -1; +} + +REGISTER_LINKTIME(PoserIMU); -- cgit v1.2.3 From dcf5d7a482e022e762a656253017ebbc721d8a83 Mon Sep 17 00:00:00 2001 From: Justin Berger Date: Thu, 22 Mar 2018 12:06:41 -0600 Subject: Progress on IMU tracking --- src/poser_imu.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/poser_imu.c') diff --git a/src/poser_imu.c b/src/poser_imu.c index 8ca716b..02ff8e9 100644 --- a/src/poser_imu.c +++ b/src/poser_imu.c @@ -22,6 +22,8 @@ int PoserIMU(SurviveObject *so, PoserData *pd) { PoserData_poser_raw_pose_func(pd, so, -1, &dd->pose); + // if(magnitude3d(dd->pose.Pos) > 1) + // SV_ERROR("IMU drift"); return 0; } } -- cgit v1.2.3