Rotation 读取偏航导航角度并将其设置为0

Rotation 读取偏航导航角度并将其设置为0,rotation,angle,ar.drone,Rotation,Angle,Ar.drone,我和一架无人机一起工作,我可以从它的传感器中读取偏航导航角度。但是,我希望在开始我的流程时将此角度设置为“0”角度。此角度的范围介于-180度到180度之间 initial_yaw = read_yaw_angle() current_yaw = read_yaw_angle() - initial_yaw 但是如果初始偏航是180度,那么测量的角度是,比方说,-50度。现在我知道当前的_偏航为-230,超出了-180到180度的范围。我如何解决这个问题?(我需要使用的是模运算符吗?当前偏航=

我和一架无人机一起工作,我可以从它的传感器中读取偏航导航角度。但是,我希望在开始我的流程时将此角度设置为“0”角度。此角度的范围介于-180度到180度之间

initial_yaw = read_yaw_angle()
current_yaw = read_yaw_angle() - initial_yaw
但是如果初始偏航是180度,那么测量的角度是,比方说,-50度。现在我知道当前的_偏航为-230,超出了-180到180度的范围。我如何解决这个问题?(我需要使用的是模运算符吗?

当前偏航=读取偏航角度()-初始偏航;
如果(当前偏航<-180){
电流_偏航+=360;
}否则,如果(当前偏航>180){
电流_偏航-=360;
}

太好了。我应该提到的是:我假设read_yaw_angle()返回一个介于-180和180之间的角度,单位为度。如果它返回不同的范围,则可能需要更多If子句。
current_yaw = read_yaw_angle() - initial_yaw;
if (current_yaw < -180) {
  current_yaw += 360;
} else if (currrent_yaw > 180) {
  current_yaw -= 360;
}