capture both raw ADC IQ data and processed UART point cloud data simultaneously in pure python code (with a little C code)
该模块分为两部分,mmwave和fpga_udp。
- mmwave修改自OpenRadar,用于配置文件读取、串口数据发送与接收、原始数据解析等。
- fpga_udp修改自pybind11 example,用于通过C语言编写的socket代码从网口接收高速的原始数据。
- clone this repository
pip install ./fpga_udp
同时采集原始ADC采样的IQ数据及片内DSP预处理好的点云等串口数据的示例代码。
- (optional)创建从串口接收片内DSP处理好的数据的进程
- 通过串口启动雷达(理论上通过网口也能控制,暂未实现)
- 通过网口udp发送配置fpga指令
- 通过网口udp发送配置record数据包指令
- (optional)启动串口接收进程(只进行缓存清零)
- 通过网口udp发送开始采集指令
- 实时数据流处理或离线采集保存
- 通过网口udp发送停止采集指令
- 通过串口关闭雷达 或 通过网口发送重置雷达命令
- (optional)停止接收串口数据
- (optional)解析从串口接收的点云等片内DSP处理好的数据
- Default profile in Visualizer disables the LVDS streaming.
- To enable it, please export the chosen profile and set the appropriate enable bits.
- adcbufCfg需如下设置,lvdsStreamCfg的第三个参数需设置为1,具体参见mmwave_sdk_user_guide.pdf
- adcbufCfg -1 0 1 1 1
- lvdsStreamCfg -1 0 1 0
- In default conditions, Ethernet throughput varies up to 325 Mbps speed in a 25-µs Ethernet packet delay.
- The user can change the Ethernet packet delay from 5 µs to 500 µs to achieve different throughputs.
- "packetDelay_us": 5 (us) ~ 706 (Mbps)
- "packetDelay_us": 10 (us) ~ 545 (Mbps)
- "packetDelay_us": 25 (us) ~ 325 (Mbps)
- "packetDelay_us": 50 (us) ~ 193 (Mbps)
解析原始ADC采样数据及串口数据的示例代码,需要用Jupyter(推荐VS Code安装Jupyter插件)打开。
- 载入相关库
- 设置对应参数
- 载入保存的bin数据并解析
- 绘制时域IQ波形
- 计算Range-FFT
- 计算Doppler-FFT
- 计算Azimuth-FFT
- 载入相关库
- 载入保存的串口解析数据
- 显示cfg文件设置的数据
- 显示片内处理时间(可用来判断是否需要调整帧率)
- 显示各天线温度
- 显示数据包信息
- 显示点云数据
- 计算距离标签及多普勒速度标签
- 显示range profile及noise floor profile
- 显示多普勒图Doppler Bins
- 显示方位角图Azimuth (Angle) Bins
毫米波雷达配置参数合理性校验,需要用Jupyter(推荐VS Code安装Jupyter插件)打开。
- 主要校验毫米波雷达需要的cfg文件及DCA采集板需要的cf.json文件的参数配置是否正确。
- 参数的约束条件来自于IWR1843自身的器件特性,具体请参考IWR1843数据手册、mmwave SDK用户手册、chirp编程手册。
- 若参数满足约束条件将以青色输出调试信息,若不满足则以紫色或黄色输出。
- 需要注意的是,本程序约束条件并非完全准确,故特殊情况下即使参数全都满足约束条件,也有概率无法正常运行。
解析原始ADC采样数据的MATLAB示例代码
- 设置对应参数
- 载入保存的bin原始ADC数据
- 根据参数解析重构数据格式
- 绘制时域IQ波形
- 计算Range-FFT(一维FFT+静态杂波滤除)
- 计算Doppler-FFT
- 1D-CA-CFAR Detector on Range-FFT
- 计算Azimuth-FFT
TBD
- TBD
- 先按照要求搭建运行环境,未提及的模块在运行时若报错请自己查询添加
- TBD