diff --git a/python/fusion_engine_client/analysis/analyzer.py b/python/fusion_engine_client/analysis/analyzer.py index c6613e6d..5bf1b941 100755 --- a/python/fusion_engine_client/analysis/analyzer.py +++ b/python/fusion_engine_client/analysis/analyzer.py @@ -2399,7 +2399,6 @@ def plot_gnss_attitude_measurements(self): row=1, col=1 ) - # Corrected heading plot if len(heading_data.p1_time) > 0: p1_time = heading_data.p1_time diff --git a/python/fusion_engine_client/messages/defs.py b/python/fusion_engine_client/messages/defs.py index 52c72da2..30e88b00 100644 --- a/python/fusion_engine_client/messages/defs.py +++ b/python/fusion_engine_client/messages/defs.py @@ -802,16 +802,18 @@ def PackedDataToBuffer(packed_data: bytes, buffer: Optional[bytes] = None, offse def yaw_to_heading(yaw: Union[float, np.ndarray], deg: bool = True): if deg: heading_deg = 90.0 - yaw - return np.fmod(heading_deg + 180.0, 360.0) + return heading_deg % 360.0 else: heading_rad = math.pi / 2.0 - yaw - return np.fmod(heading_rad + math.pi, 2.0 * math.pi) + return heading_rad % (2.0 * math.pi) def heading_to_yaw(heading: Union[float, np.ndarray], deg: bool = True): if deg: yaw_deg = 90.0 - heading - return np.fmod(yaw_deg + 180.0, 360.0) - 180.0 + yaw_deg = (yaw_deg + 180.0) % 360.0 - 180.0 + return np.where(yaw_deg == 180.0, -180.0, yaw_deg) else: yaw_rad = math.pi / 2.0 - heading - return np.fmod(yaw_rad + math.pi, 2.0 * math.pi) - math.pi + yaw_rad = (yaw_rad + math.pi) % (2.0 * math.pi) - math.pi + return np.where(yaw_rad == math.pi, -math.pi, yaw_rad)