cleanup IMU interface
the current imu interface is hard to understand.
the IMUData contains 4 float vectors:
- orientationQuaternion (this is a quaternion, but is it (qw,qx,qy,qz) or (qx,qy,qz,qw)?)
- magneticRotation (this always gets 3 values, but is it orientation or velocity (my guess)?)
- gyroscopeRotation (this always gets 3 values, but is it orientation or velocity (my guess)?)
- acceleration (this always gets 3 values, but is it linear (my guess) or angular?
also the frame is unclear.
a better naming scheme would be:
{linear,angulat}{Velocity,Acceleration}
also framed positions/orientations should be used
e.g:
struct IMUData { FramedOrientationBase orientation; FramedDirectionBase angulatVelovityMagnetic; FramedDirectionBase angulatVelovityGyroscope; FramedDirectionBase linearAcceleration; };
Maybe it would make sense to force the integration/derivation and add data members for angulatAcceleration and linearVelocity.
also the function reportSensorValues
has the parameter name
with no documentation.
Is it agentName
?