yincheng.zhong
2025-11-24 275b03224aa6170d4dc8c661c1cd949dd88c1fcb
python/hitl/geo.py
@@ -161,10 +161,14 @@
def heading_math_to_nav(heading_rad: float) -> float:
    """
    将数学坐标系 (东为0°, CCW为正) 的航向角转换为导航坐标系 (北为0°, 顺时针为正)。
    与STM32代码保持一致:compass_deg = 90.0f - (heading_rad * RAD2DEG)
    """
    heading_deg = math.degrees(heading_rad)
    nav = (90.0 - heading_deg) % 360.0
    if nav < 0:
    nav = 90.0 - heading_deg
    # 与STM32代码保持一致:先计算,再包装到[0, 360)
    while nav >= 360.0:
        nav -= 360.0
    while nav < 0.0:
        nav += 360.0
    return nav