Calculate difference in Euler angle
Show older comments
Hello. I have a set of Euler data (yaw, pitch roll). I need to calculate the relative differences in the, for example, the yaw angle from the start position.
I have a problem in calculating this since, say, the yaw angle will go from 0 to 360 degree. If the initial position is at 356 degree, I am not sure how to handle the data when the movement yaws to 1 again. If I use x-initialPosition metric, i will get 1-356, which is not the answer. Any suggestion?
This also applies to pitch that goes from 180 to -180
Answers (1)
4 Comments
Sharah
on 27 Sep 2016
Guillaume
on 27 Sep 2016
You said you wanted 0-360 for yaw. If, instead you want -180 to 180, simply:
mod(angle + 180, 360) - 180
Angles follow modular arithmetic. You perform modular arithmetic using mod.
Sharah
on 27 Sep 2016
mod(351-387, 360) is 354 not -354. Note that -6 and 354 are the same angles (modulo 360).
As demonstrated (twice now), you perform you difference as usual. If you want to display it in the range [0,360[ you use
mod(difference, 360)
If you want to display it in the range [-180, 180[ you use
mod(difference + 180, 360) - 180
Categories
Find more on Point Cloud Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!