I am working on estimation position and rotation in a 3D.
Currently im using a Kalman Filter (and mostly understand how a kalman filter works) to get position (assuming no rotation).
I am stuck on figuring out how to estimate rotation.
I can find resources on how to do it using the accelerometer, but I don’t think this will work for my use case. (My use case being a data logger on a Model Rocket, and they are using the IMU to find a gravity vector for down).
Colin Sutter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Gyros are angular velocity sensors. Relative change of angle is this integral of angular velocity.
Moreover a gyro will have an output level corresponding to zero angular velocity (Z).
It integrate the angular velocity, you need to sample at regular intervals and at a rate somewhat higher than twice the specified bandwidth of the gyro. Then for each sample (S), relative orientation (A) is:
A = K * (A + (S -Z))
Where K is the constant of proportionality.
Typically the zero level and to some extent the slope will drift thermally, and you may need a means of compensating or resetting to maintain precision over longer terms. It is possible to acquire zero samples while stationary.
1