1.53-2017 definición de ángulo de rumbo estándar nacional
2. Encabezado en VTD RDB
El bus de datos VTD RDB incluye el paquete OBJECT, en el que item.base.h representa el ángulo de rumbo del automóvil, pero existe una situación de alternancia positiva y negativa. Después de la verificación, la diferencia entre positivo y negativo es de 360 grados, por lo que no tiene ningún efecto por el momento.
3. Alinear
1. Reste 90 grados y alinee con 0 grados
2. Multiplica por -1, los signos están alineados
3. Si el ángulo no es (0, 360), el rango de datos está alineado
PD: 1, 2 dos pasos y hacer vtdh = 90-vtdh;
/** * @brief 将VTDheading转换为53-2017标准*/
def test(vtdh):
vtdh = 90 - vtdh
if (vtdh < 0):
vtdh = vtdh + 360
if (vtdh > 360):
vtdh = vtdh - 360
return vtdh
if __name__ == '__main__':
for i in range(-360,360):
print('t(',i,'):', test(i))
================================================ ===========================
Lo anterior es el análisis
Situación real: item.base.h está en radianes
1. Defina el ángulo de rotación en radianes macro
#define rad_to_d(d) (d*180/PI)
2. Conversión de coordenadas
//日期:2020年06月30日12:44:05
//码农:zolty
//描述:外部注入需要heading
//国标描述:为车辆航向角,即为车头方向与正北方向的顺时针夹角。分辨率为 0.0125°。
//@param[in] 航向角 单位:1rad ; from: item.base.pos.h
//@param[out] 单位: ° ; 分辨率为 0.0125° ; range[0..28800]
long getHeadingGB(double h)
{
h = 90 - rad_to_d(h);
if (h < 0)
{
h = h + 360;
}
if (h > 360)
{
h = h - 360;
}
return h * 80;
}