El ángulo de rumbo VTD RDB está alineado con el ángulo de rumbo estándar nacional 53-2017

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;
}

 

 
 
 
 
 

Supongo que te gusta

Origin blog.csdn.net/qq_41854291/article/details/107013574
Recomendado
Clasificación