开篇
在基于lwip协议栈搭建好tcp或udp通讯后,我们就可以开始用板载网口与雷达通信了,目前先将接收到的雷达数据在udp接收回调函数中进行转存。
一、雷达协议介绍
雷达作为udp服务器端,发送广播信号到另一端,当平台设置好同一网段IP,并开启广播接收后,嵌入式端就能接收到udp广播数据报。其中,所使用的激光雷达数据包如下所示:
由于先前设置了激光雷达的扫描频率为20Hz,且雷达扫描的角度为270°,雷达开发者将其分为8个块,每个块33.75°,在扫描频率20Hz情况下,每个块有144个点,且各个点分布均匀(也就是说每个点相差角度约为0.234°):
二、雷达数据解析
根据上述雷达udp数据包的描述,编写出udp回调函数中的数据解析函数:
udp数据包中用到的是CRC16校验(CRC16_CCITT_FALSE),也即初始值为0xFFFF,异或值为0x0000,多项式poly为0x1021:
由于雷达是从block0~block7的顺序不断循环发送出来的,因此当接收到block7字段的数据包时,将frameOK置1,作为标志位告知系统雷达的一次8块扫描已经完成。
三、解析函数验证
雷达的分辨率是2毫米,在接收到雷达一次8块扫描点后,通过串口将数据转换出来,验证结果如下: