mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-24 06:03:33 +08:00
helper_functions: simplify unwrap function
This commit is contained in:
@@ -133,15 +133,7 @@ Type wrap_2pi(Type x)
|
|||||||
template<typename Type>
|
template<typename Type>
|
||||||
Type unwrap(const Type last_angle, const Type new_angle)
|
Type unwrap(const Type last_angle, const Type new_angle)
|
||||||
{
|
{
|
||||||
// wrap the last angle in [-pi,pi]
|
return last_angle + wrap_pi(new_angle - last_angle);
|
||||||
const Type last_angle_wrapped = matrix::detail::wrap_floating(last_angle, -Type(M_PI), Type(M_PI));
|
|
||||||
|
|
||||||
// use the shortest distance
|
|
||||||
Type delta = new_angle - last_angle_wrapped;
|
|
||||||
delta += ((delta < -Type(M_PI)) - (delta > Type(M_PI))) * Type(2 *
|
|
||||||
M_PI); // adds or subtracts 2*pi if delta out of range
|
|
||||||
|
|
||||||
return delta + last_angle;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|||||||
Reference in New Issue
Block a user