How to integrate arbitrary discrete-time linear and angular body fixed velocity to world space?

24 Views Asked by At

I have body fixed angular velocity values and linear acceleration values streaming in to my application. at some interval $\delta t$.

I need to get a world position from these, assuming the start position is $(0,0,0)$.

My idea is to find the quaternion $q_{t}$ for $[\dot\phi, \dot\theta, \dot\psi]\delta t$ and append it to a overall quaternion $Q$ at every timestep i.e. $Q : = Q * q_{t}$ (euler order doesn't matter for small angles).

Now at every timestep I can apply the orientation Q to the linear velocity and numerically integrate similarly. In the end I should have position and orientation.

But it's also true that, at each time step, I could integrate linear velocity first, applying the rotation from the previous time step, before updating the quaternion.

Or, I could update the orientation over half a time step, apply it to the linear velocity, and then update the orientation another half time step, to create some sort of average.

Is this even close to a good approach? I wasn't able to find clear answers to this in numerical methods text books that I have.