I have a list of angular velocity stored in Vector 3 or quaternion if that matter. To having this angular velocity, I work from quaternion and doing a delta (using inverse *) and then store it in a Vector3 using the quat.ToAngleAxis(out float magnitude, out Vector3 axis);. But I think I should keep the quaternion and work with it for more precision.
To reduce inputs errors, I would like to average all the data of the list, so it result in one angular velocity which is the average of the list.
Question: Can I do the same average method that I do for position velocity? (V1 V2 V3) / 3. Or which is the best method to do so?
I feel like for angular, as it represent direction the only proper way to go is using Slerp...
Thanks a lot!
CodePudding user response:
Averaging the speeds is approximate and makes more sense if taken at constant time intervals.
Averaging the angular velocities only makes sense if the rotation axis does not change direction and the rotation is represented by the axis-angle system (Rodrigues formula). In any other case, the average is meaningless.