1.53-2017国标航向角定义
2.VTD RDB中heading
VTD RDB数据总线中包括了OBJECT包,其中item.base.h代表了车的航向角,但存在正负交替的情况,核实后正负相差整360度,故暂无影响。
3.对齐
1.减去90度,0度对齐
2.乘以-1,符号对齐
3.如果角度不在(0,360),则数据范围对齐
PS:1,2两步并作 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))
=============================================================================
以上为分析情况
实际情况: item.base.h是弧度制
1.定义宏 弧度转角度
#define rad_to_d(d) (d*180/PI)
2.坐标转换
//日期: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;
}