ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

TI毫米波雷达IWR6843AOP+DCA1000EVM数据采集与点云处理实战

TI毫米波雷达IWR6843AOP+DCA1000EVM数据采集与点云处理实战 1. 为什么是IWR6843AOP这块板子到底解决了我什么问题先说结论这是一篇面向第一次用TI毫米波雷达做数据采集的实战记录全程基于IWR6843AOPDCA1000EVM这套组合从环境搭建、硬件连接、mmWave Studio配置一路写到真正跑出第一个点云图中间穿插我踩过的所有坑和对应的排查思路。我最早接触毫米波雷达是因为做室内人员检测的项目一开始图便宜选了某款国产24GHz雷达模块拿回去发现SDK文档残缺、数据手册里连寄存器描述都是英文缩写还不全更难受的是它输出的是封装好的目标列表我想看原始中频信号做算法优化根本看不到。折腾了一个月项目没有任何实质进展。后来咬牙换成TI的方案选了IWR6843AOP。这块板子的最大特点就是把天线封装进了模组里AOP是Antenna-on-Package的缩写板子上看不到外置的PCB天线阵列整个射频前端加天线都是封装在芯片上面的。这样做的好处是体积小、天线一致性高不需要自己做射频布线对非射频专业的算法工程师非常友好。配合DCA1000EVM使用是因为IWR6843AOP本身只能输出处理后的点云数据无法直接拿到ADC原始数据。而做算法研究、调参、验证信号处理链路很多时候都需要原始的ADC数据DCA1000EVM就是一块高速数据采集卡通过60pin的高密度连接器接到IWR6843AOP上把雷达输出的LVDS数据转成以太网数据包发给电脑这样才能在PC端用MATLAB或者Python做完整的信号处理流程。这套组合适合谁如果你是做雷达信号处理算法、做点云数据分析、做目标检测跟踪或者需要做多传感器融合比如毫米波雷达和激光雷达标定那你大概率需要原始ADC数据这套采集方案是TI生态里最成熟的选择。如果只是做个demo、用现成的点云做应用开发那IWR6843AOP单独使用就够了不一定需要DCA1000EVM。但如果你想深入到底层这篇文章的内容就是必经之路。安装配置之前先泼一盆冷水这套环境搭建的坑比我想象的多但不复杂只是要求你严格遵守顺序和版本要求。我在搭建过程中遇到的最抓狂的一个问题是mmWave Studio安装好了、硬件连接也没问题但点下连接按钮后软件直接卡死后来发现是XDS110 USB驱动版本不对。这类问题不会写在TI的官方文档里全靠自己一步步排查。2. 环境搭建全记录官方文档没写清楚的版本匹配问题2.1 需要安装的软件清单和版本选择先说版本。TI毫米波雷达的开发环境最让人头疼的其实就是版本兼容性。我最初随手装了最新版的mmWave Studio结果和固件不匹配打开软件后连接板子一直报错后来才发现版本之间是有严格对应关系的。我最终稳定运行的版本组合如下软件/组件推荐版本作用mmWave Studio03.01.01.00较新版本也可但需注意固件匹配数据采集主界面软件UniFlash8.x烧录雷达固件MATLAB Runtime9.10R2021a对应版本mmWave Studio运行时依赖Code Composer Studio12.x仅排查固件问题时需要调试工具XDS110驱动随CCS安装或单独安装最新版USB调试器驱动注意mmWave Studio安装时有一个很多人会忽略的问题它依赖MATLAB Runtime但安装包不会自动帮你装。如果你在安装mmWave Studio之前电脑里没有MATLAB Runtime那打开软件时会提示找不到某个DLL或者直接闪退。我当时就是安装完成以后双击图标界面闪了一下就消失了没有报任何错误。解决方法是先安装MATLAB Runtime版本要和mmWave Studio安装包内置的要求一致。mmWave Studio安装目录下有个文件夹叫MATLAB_Runtime里面就放着对应版本的安装包不需要自己去MATLAB官网下载。这一点TI做得还算贴心只是藏得比较深不注意看根本不知道。2.2 UniFlash烧录固件的完整操作流程IWR6843AOP拿到手以后板子里默认出厂固件可能不完全匹配DCA1000EVM的工作模式所以第一步通常是烧录mmWave SDK里自带的xwr68xx_mmw_demo.bin固件。当然如果你只是通过DCA1000做原始数据采集其实也可以不烧录用mmWave Studio里自带的固件下载功能但我个人建议还是通过UniFlash手动烧录一遍方便确认硬件本身没有问题。具体步骤安装并打开UniFlash在芯片选择界面输入IWR6843选择对应的型号。板子需要进入烧录模式。IWR6843AOP板载有一个SOP拨码开关在板子的角落里标着SOP0、SOP1、SOP2三个开关。烧录固件时需要设置为SOP01, SOP10, SOP20也就是SOP[2:0]001进入 flashing mode。用USB线连接IWR6843AOP的MicroUSB口到电脑这个口同时承担UART和XDS110调试器功能。连接后设备管理器里应该能看到两个新串口和一个XDS110调试器设备。在UniFlash里点击Load选择xwr68xx_mmw_demo.bin固件点击烧录。烧录过程大概需要几十秒完成后会提示Success。烧录完成后把SOP开关拨回SOP[2:0]011Functional Mode功能模式然后重新给板子上电。这里要特别说明拨码开关非常小建议用镊子拨别用手指甲硬扣。我第一次用螺丝刀拨的时候不小心划到了旁边的电容吓出一身冷汗好在没损坏板子。另外不同版本的mmWave SDK烧录的固件会影响后续mmWave Studio的操作。如果你用SDK 3.5版本编译的固件但mmWave Studio是03.01.01.00可能会出现版本不匹配的警告如果你和我一样只是做数据采集选个稳定的SDK版本比如03.05.00.00就行。2.3 DCA1000EVM的驱动与固件升级DCA1000EVM本身也需要驱动和固件。这块板子通过以太网线和电脑连接出现问题时先检查驱动是否正常。DCA1000EVM的电源是通过IWR6843AOP上的60pin连接器提供的所以只要雷达板的USB线接了DCA1000EVM上的LED指示灯就应该亮。如果你发现DCA1000EVM完全没反应大概率是60pin连接器没插紧这个连接器插拔需要点力道但也要注意对准方向别硬插。驱动方面DCA1000EVM的FPGA固件可以通过mmWave Studio里的固件下载按钮更新。打开mmWave Studio后界面右侧有个System Setup区域里面有DCA1000固件下载的按键选择对应的固件文件在mmWave Studio安装目录下的mmwave_studio_03_01_01_00\mmWaveStudio\DCA1000EVM\firmware文件夹里点击升级即可。这块板的驱动问题还有一个常见表现以太网连接无法识别。DCA1000EVM默认IP是192.168.33.30电脑网卡需要手动配置一个静态IP比如192.168.33.30的网段是33.30电脑可以设成192.168.33.180子网掩码255.255.255.0就可以ping通了。我见过太多人在这一步卡住不是硬件坏了就是网卡IP配置不对。3. 硬件连接与拨码开关看似简单但最容易翻车的地方3.1 完整的连线方式和供电说明硬件连接是整个流程里最傻瓜的一步但也是翻车率最高的一步。很多人在这一步出问题其实是细节没注意。我建议的连线顺序先把DCA1000EVM通过60pin连接器装到IWR6843AOP上注意接口方向两端对齐后均匀用力下压不要一边先下去另一边翘着硬按。用MicroUSB线连接IWR6843AOP到电脑。这里有个注意事项IWR6843AOP板上有两个USB口一个是给XDS110调试器用的一个是用作UART串口。实际上这两个功能共用同一个MicroUSB口板子上的丝印会标明但不同版本可能有些差异。插上以后设备管理器里应该能看到XDS110 Class Debugger、XDS110 Class Auxiliary Data Port以及两个COM口。用网线连接DCA1000EVM的网口到电脑。DCA1000EVM的网口不是千兆是百兆的普通的超五类网线就够了。注意在mmWave Studio采集数据时建议用网线直连电脑不要经过交换机减少不必要的丢包因素。检查电源。IWR6843AOP可以由USB供电但如果你后续要用到外接的雷达板扩展设备建议还是用配套的5V电源适配器供电。USB供电在多数场景下是够用的但数据采集过程中如果电流不够LVDS传输可能会不稳定偶尔会出现数据丢包。3.2 SOP模式配置详解SOP拨码开关的配置是所有硬件操作里最重要的。IWR6843AOP支持几种SOP模式不同模式对应不同的启动行为。我整理了一个表格SOP模式开关状态SOP2 SOP1 SOP0用途0010 0 1Flashing Mode烧录固件0110 1 1Functional Mode正常运行1011 0 1开发调试模式用于CCS连接调试SOP模式必须在板子上电之前设置好。上电之后改动SOP开关是不会生效的。这一点我踩过坑在烧录完固件后忘了改SOP直接在001模式下上电然后mmWave Studio连接一直报错查了一圈才发现问题是SOP没改。还有一点IWR6843AOP的SOP开关位置靠近板子边缘装好DCA1000EVM后可能被遮挡一部分操作起来不方便。建议先把SOP拨到合适位置再安装DCA1000EVM或者安装好之后用镊子小心调整。3.3 设备管理器检查连接后必须做的一步每次连接硬件后第一件事就是打开设备管理器检查设备是否都被正确识别。我总结了一个设备管理器就该长这样的清单端口COM和LPT下面应该有两个COM口一个用于命令行一个用于数据输出。通用串行总线控制器下面应该能看到XDS110 Class Debugger和XDS110 Class Auxiliary Data Port。网络适配器下面会出现一个新的以太网设备对应DCA1000EVM有时会显示为Realtek USB GbE Family Controller之类。如果设备管理器里看到的COM口后面带黄色感叹号说明驱动有问题。很多情况下是XDS110驱动被Windows自动更新替换成了旧版本或者不兼容版本。解决办法是去TI官网下载最新的XDS110驱动包在设备管理器里右键更新驱动程序手动指定到解压目录。这个步骤不要跳过。我习惯在每次连接前先看一眼设备管理器确认设备个数正确再往下走。一次数据采集刚开始发现采到的数据全是0排查下来发现是COM口设备出了问题重启电脑后才恢复。所以连接完成后检查设备管理器这个习惯能省掉后面大量排查时间。4. mmWave Studio完整配置从启动到成功采集ADC数据4.1 启动前的关键设置工作目录和配置文件mmWave Studio启动后第一件事不是急着连接硬件而是配置工作目录。在菜单栏选择Settings - System Settings有一个Working Directory配置项。这个目录是用来存放采集到的数据的我建议单独建一个文件夹比如D:\mmwave_data不要放在C盘系统盘。原因有两个一是数据文件比较大一次采集几十秒就可能产生几个GB的数据二是C盘权限问题可能导致写入失败。配置文件方面mmWave Studio会自动加载默认的配置文件但不同版本默认配置可能指向的雷达型号不对。IWR6843AOP对应的配置文件需要手动加载。在mmWave Studio的左侧面板有一个参数配置区域可以直接在界面上修改也可以通过导入.chirp配置文件的方式加载。TI的mmWave SDK安装目录下有现成的配置文件模板路径类似于C:\ti\mmwave_sdk_03_05_00_00\packages\ti\demo\xwr68xx\mmw\profiles里面有几个常用的配置文件对应不同的场景。我常用的是profile_2d.cfg它配置了一个二维阵列的chirp参数适合做人存在检测之类的简单场景。如果要三维定位可以用profile_3d.cfg。我第一次用mmWave Studio时直接忽略了配置文件这一步然后在界面上看到一个很糟糕的默认参数采集出来的数据完全不对。后来才发现需要用配置文件来一次性导入所有参数。4.2 配置雷达参数chirp、帧和采样率这一节是整个数据采集的核心。在mmWave Studio左侧的Sensor Config区域你需要正确填写参数才能采到有效的数据。关键的参数有这么几个起始频率Start FrequencyIWR6843工作在77GHz频段默认通常是77GHz。如果选了76GHz也没问题但最好保持一致。频率斜率Frequency Slope单位MHz/us决定了chirp的带宽影响距离分辨率。距离分辨率和带宽的关系是带宽越大距离分辨率越高。采样率Sample RateADC采样率单位Msps决定最大中频带宽也影响数据处理的计算量。每帧chirp数Chirps per Frame每个帧里发多少个chirp影响多普勒分辨率。采样点数Samples per Chirp每个chirp采多少个点直接影响距离FFT的点数。帧周期Frame Periodicity多少时间发一帧影响帧率。我有一次遇到一个问题配置完点击发送后数据始终不对距离维的FFT峰值出现在最远处后来发现是采样率设置和ADC的实际采样率不匹配。毫米波雷达的ADC采样率默认是10Msps但如果你在界面里填的是20Msps实际采出来的数据就会有问题。有个细节要注意mmWave Studio的参数区和雷达实际运行的参数是两回事。你需要把参数配置通过SPI发送给雷达板雷达板才会按照你设置的参数运行。这个发送过程就是右侧的SPI Connection和SPI Send按钮。如果只改了界面参数没有点发送雷达还是用之前的配置在跑。参数配置的一个实用技巧是先用TI提供的MATLAB工具箱里的默认参数跑通流程确认硬件和软件链路没有问题再一步步修改参数达成自己的需求。一上来就调很激进的参数出了问题很难判断是硬件问题还是参数问题。4.3 连接流程的完整顺序mmWave Studio的界面布局对新手不太友好按钮很多而且有严格的点击顺序。我记得第一次操作的时候不知道要先连接哪个乱点一通结果软件直接无响应。正确的连接顺序用鼠标点击右侧的Set按钮设置DCA1000EVM的以太网连接参数。这里会弹出一个窗口填入DCA1000EVM的IP和端口默认是192.168.33.30和4098。点击Connect按钮连接DCA1000EVM。等待状态栏显示连接成功的消息。点击Reset按钮复位雷达板。在SPI Connection区域点击Connect这时候mmWave Studio会和IWR6843AOP建立SPI连接。加载配置文件把chirp参数下发到雷达板。点击Send按钮配置雷达。在DCA1000区域点击ARM按钮然后点击Trigger按钮开始采集。这个流程的顺序不能乱。如果你先点击了Trigger但没点击ARM数据采集会失败或者采到的数据全为空。如果你还没连接SPI就打开配置文件界面可能会卡住。最后一步点击Trigger后mmWave Studio会弹出一个DCA1000采集配置窗口需要填写数据采集时间和文件存储路径。这个窗口里有个选项叫Number of frames我习惯把它设成一个具体的帧数而不是无限采集等采集结束后系统会自动生成adc_data.bin文件也可能是raw_data.bin取决于版本。采集完成后在mmWave Studio的右下角日志区域会显示采集成功的信息同时你设置的存储路径下会出现一个.bin文件。这个文件就是原始的ADC数据也是后面处理点云图的输入。5. 从ADC原始数据到点云图MATLAB处理链路详解5.1 为什么需要自己处理ADC数据拿到adc_data.bin之后很多初学者会困惑这明明就是一堆二进制文件我要怎么变成点云答案是你需要自己做信号处理。TI的毫米波雷达信号处理链路通常包括以下几个步骤距离FFTRange FFT对每一个chirp的采样点做FFT得到距离维的频谱峰值对应目标的距离。多普勒FFTDoppler FFT对多个chirp做FFT得到速度维的信息峰值对应目标的速度。角度估计Angle Estimation通过多根天线的相位差估计目标的到达角AoA。目标检测CFAR在距离-多普勒图上做恒虚警率检测找到有效目标点。点云生成结合距离、速度、角度信息生成每一个检测点的三维坐标和速度。这个过程是一个标准的FMCW雷达信号处理链路。如果你用的是mmWave SDK自带的demo固件板上已经在做这些处理输出的就是处理好的点云数据。但如果你用的是DCA1000EVM采集的原始ADC数据你就需要自己在MATLAB或Python里完整实现这些步骤。5.2 ADC数据的二进制解析格式和内存布局先解决最基础的问题怎么把bin文件读进MATLABIWR6843AOP有4个RX通道ADC数据是复数格式I/Q每个采样点两个16位整数分别代表I路和Q路。数据在bin文件里的存储方式是这样的每个采样点一个复数值I和Q各占2字节所以一个采样点占4字节。每个chirp包含多个采样点存的时候是先采样点后通道。每一帧包含多个chirp依次排列。如果是多通道的雷达所有RX通道的数据会交错排列。我读取数据的代码长这样% adc_data.bin 读取函数 % 参数numChirpsPerFrame, numSamplesPerChirp, numRxChan fileID fopen(adc_data.bin, r); data fread(fileID, int16); % 读入所有数据每个样点2字节 fclose(fileID); numChirpsPerFrame 128; % 根据cfg配置修改 numSamplesPerChirp 128; numRxChan 4; numFrames length(data) / (numChirpsPerFrame * numSamplesPerChirp * numRxChan * 2); % 重组成复数形式 data reshape(data, 2, []); data complex(data(1,:), data(2,:)); % 重组成四维数组[采样点, chirp, 通道, 帧] adcData reshape(data, numSamplesPerChirp, numChirpsPerFrame, numRxChan, numFrames);这段代码的关键是理解数据的排列顺序。TI的DCA1000EVM输出的数据是先按chirp排再按通道排。如果你读取的顺序不对后面的FFT结果会完全错误。我遇到过一种情况距离FFT的峰出现在正确位置但CFAR之后点云的位置全部偏了最后发现是我读取数据时通道顺序搞反了RX0和RX1的数据做了交换。5.3 距离维FFT的处理细节距离FFT就是对单个chirp的采样点做FFT。在MATLAB里代码很简单rangeFFT fft(adcData(:, :, :, 1), numSamplesPerChirp, 1);但有几个细节需要注意FFT之前要不要加窗通常建议加窗比如Hamming窗或Hanning窗能降低旁瓣但主瓣宽度会增加一点。轻微降低距离分辨率来换取更好的目标检测能力。FFT之后要取幅度值作为检测的输入。距离维度的坐标轴怎么换算每个FFT bin对应的距离是[ fd \frac{F_s}{N} ][ \text{range} \frac{fd \cdot c}{2 \cdot S \cdot F_s} \frac{n \cdot c}{2 \cdot N \cdot S} ]其中N是采样点数Fs是采样率S是频率斜率c是光速。比如采样点数128采样率10Msps频率斜率是30MHz/us那每个距离bin对应的距离大约是n 1时range 1 * 3e8 / (2 * 128 * 30e12) ≈ 0.039m约4厘米。这里有个常用的小工具TI的MATLAB工具箱里有一个叫做read_raw_data的函数和分析脚本可以直接帮你做距离维FFT。如果你不想从零开始写可以直接用它的脚本改一改。5.4 多普勒FFT与2D FFT图做完距离FFT后每个chirp得到一个距离频谱。把同一帧里的多个chirp沿chirp方向再做一次FFT就得到距离-多普勒图Range-Doppler Map简称RD图。dopplerFFT fftshift(fft(rangeFFT, numChirpsPerFrame, 2), 2);这里使用fftshift是为了把零速度分量放到中心方便展示和检测。二维FFT做完后一个目标在RD图上会呈现为一个峰值峰值所在的距离索引对应目标距离多普勒索引对应目标速度。速度换算公式[ v \frac{\lambda \cdot f_d}{2} ]其中fd是多普勒频率lambda是波长。在77GHz频段波长约为3.9mm所以速度分辨率取决于chirp周期的倒数乘以波长再除以2。我在实际处理中会在这一步就做一个初步的显示用imagesc函数绘制RD图。如果RD图上能清楚看到一个亮斑说明数据链路基本没有问题可以继续做CFAR和角度估计。如果RD图上一片模糊那八成是前面的参数配置或者数据读取出了错。有一个比较常见的问题RD图上目标出现在距离维正确的位置但速度维始终是0。这个问题的根源通常是chirp之间的相位差没有保留可能是因为数据读取时chirp的顺序被搞乱了也可能是发送chirp配置时两个chirp之间留了空隙导致多普勒维完全无法处理。解决方法是检查chirp配置中的idle time参数如果这个值太大多普勒模糊度会上升。5.5 CFAR检测与目标点提取CFARConstant False Alarm Rate是毫米波雷达目标检测里最常用的方法。简单说它的作用是在给定的虚警率下自动判断哪些点是真的目标哪些是噪声。常见的CFAR实现有两种CA-CFAR单元平均和OS-CFAR有序统计。在RD图上做二维CFAR会依次扫描每一个距离-多普勒bin和周围参考单元的平均功率比较如果该bin的功率超过参考平均功率的某个倍数阈值就判为目标。在MATLAB里可以自己写一个二维CFAR也可以用phased库里的函数。我的做法是先用一个简单的移位滑动窗口实现% 简化版2D CFAR cfarThreshold 12; % 阈值单位dB offset 3; % 保护单元 guardCells 2; % 保护单元半径 [rows, cols] size(dopplerFFT); map abs(dopplerFFT).^2; detected zeros(rows, cols); for i 1:rows for j 1:cols % 提取参考窗 ... end end不过自己写二维CFAR的效率不高一帧128x128的数据量虽然不大但如果在循环里逐点扫描还是有点慢。更推荐的做法是使用图像处理里的卷积方式实现具体可以用卷积核对参考单元求和。在获得检测点之后每个检测点都有距离索引、多普勒索引和功率值。接下来需要把这些索引换算成物理量并估计角度。对于常用的线性阵列角度估计可以用简单的FFT法对多根天线的数据做FFT峰值对应的角度就是目标的到达角。角度FFT的大致代码angleFFT fft(adcData(:, chirpIdx, :, frameIdx), numRxChan, 3);角度FFT的分辨率受限于天线数。IWR6843AOP有4根RX天线角度分辨率大约28度这个精度做粗定位够了做精细的测向就要用MIMO模式扩展虚拟阵列了。5.6 生成点云与可视化最后一步是把检测到的每个点转换成三维坐标。坐标系可以参考雷达板以雷达板面向前方为X轴法线方向为Y轴或Z轴取决于你定义的坐标系。距离、角度可以换算[ x r \cdot \cos(\theta) \cdot \cos(\phi) ][ y r \cdot \sin(\theta) \cdot \cos(\phi) ][ z r \cdot \sin(\phi) ]其中theta是水平角phi是俯仰角。可视化时最常用的就是scatter3函数scatter3(x, y, z, 10, velocity)可以在点云图上用颜色显示速度信息效果更直观。我第一次跑出点云图的时候用雷达对着房间里的墙角扫了一下能在点云图上清楚地看到两面墙和地板反射形成的点簇那种终于看到雷达眼中的世界的感觉还是挺有成就感的。如果你想把点云数据保存下来给其他程序用可以导出成txt或mat格式。后续做毫米波雷达和激光雷达标定、点云金属表面缺陷检测等应用时这一步就非常重要。6. 我踩过的坑常见报错完整排查链路6.1 mmWave Studio闪退或打不开现象双击mmWave Studio图标界面闪一下就消失没有任何报错。排查思路最先怀疑的就是MATLAB Runtime缺失或版本不匹配。mmWave Studio的主程序依赖于MATLAB Runtime提供的DLL如果系统里没有对应版本程序会在启动时静默失败。处理步骤打开mmWave Studio安装目录进入MATLAB_Runtime文件夹里面有一个.exe安装包。双击安装选择默认路径即可等待安装完成。重启mmWave Studio看是否正常打开。如果安装了正确的MATLAB Runtime后依然闪退就需要查一下Windows事件查看器看看错误日志里提示缺少的DLL是哪个。我遇到过的情况是某个DLL被其他软件覆盖重装了mmWave Studio才解决。6.2 串口识别正常但mmWave Studio连接卡死现象设备管理器里所有设备都正常但点击mmWave Studio里的Connect按钮后软件卡死日志区域无任何输出。排查思路极大概率是XDS110 USB驱动版本太旧。TI的这个调试器本质上是FTDI芯片的USB转串口设备新版驱动和旧版固件之间存在兼容性问题。处理步骤打开设备管理器找到XDS110 Class Debugger右键属性查看驱动程序版本。如果驱动日期是几年前去TI官网下载最新的XDS110驱动包解压后手动更新驱动。更新完驱动后拔掉USB线重新插上再打开mmWave Studio连接。另外如果你用的是Windows 11注意自动更新可能会帮你重新安装不兼容的驱动。我建议在设备管理器里禁用XDS110设备的自动更新或者干脆把驱动锁死在某个稳定版本。这个问题在TI的E2E论坛上也常被提到属于驱动级兼容性问题。6.3 DCA1000EVM无法ping通现象DCA1000EVM的电源指示灯亮但电脑ping 192.168.33.30显示超时。排查思路大多是网卡IP没有配置成同一网段或者DCA1000EVM的FPGA没有正常加载固件。处理步骤打开控制面板 - 网络和共享中心 - 更改适配器设置找到连接DCA1000EVM的网卡。右键属性 - Internet协议版本4(TCP/IPv4)设置静态IP为192.168.33.180子网掩码255.255.255.0网关可以不填。点击确定后再在命令行里ping 192.168.33.30。如果还是ping不通用网线直连时检查网卡速率和双工模式。我在实验室用的是一个老交换机连上去怎么都ping不通后来绕开交换机直连电脑就好了。DCA1000EVM对网络环境还是有点挑剔的。6.4 采集到的数据全为0或者内容明显不对现象采集完成后打开bin文件发现数据全是0或者只有前几个字节有值后面全空。排查思路数据全0通常说明雷达没有真正发射chirp或者ADC数据没有被正确写入LVDS输出。常见原因有SPI连接没有成功建立雷达还在用默认配置运行。配置下发后没有点击ARM导致LVDS数据通路没有打开。DCA1000EVM的ARM按钮没有正确执行。在处理这个问题时我习惯在采集完第一帧数据后立即在mmWave Studio里查看ADC数据曲线。如果数据曲线是一条直线说明硬件通路有问题如果是一条上下抖动的曲线说明数据是有效的只是后面的处理出了问题。6.5 点云图出现大量噪点或虚假目标现象点云图上有很多随机散布的点目标点反而不明显。排查思路毫米波雷达受多径、静态杂波等影响产生噪点是正常的。但如果噪点过多需要检查几个方面首先是CFAR的阈值设置。阈值太低导致大量噪声点被当成目标这个最容易调整直接把CFAR阈值往高调几个dB试试。其次是静态杂波抑制。室内墙体反射非常强如果不做静态杂波滤除墙体产生的点云会淹没真正的目标。最简单的做法是在多普勒维把速度接近0的bin清零也就是去掉零速附近的信号这样静态墙体就不会出现在点云里了。% 静态杂波抑制去掉零速度周围几个bin dopplerFFT(:, 60:68, :, :) 0; % 根据fftshift后的索引这个操作在处理室内场景时效果非常明显。我第一次用这个方法后点云图干净了很多真正需要检测的目标一目了然。6.6 多帧采集时数据帧率不稳定现象设置每帧周期为50ms但实际采集到的帧间隔不稳定有的帧来得早有的来得晚。排查思路这主要是PC端以太网接收的速度问题和mmWave Studio的数据处理速度问题。如果电脑性能不够以太网数据包处理不过来会导致丢帧。处理建议关闭电脑上不必要的后台程序尤其是会占用大量CPU的软件。把访问DCA1000EVM的网卡电源管理设置为高性能模式防止网卡休眠。如果问题持续减少每帧的采样点数或chirp数降低数据量。7. 进阶建议从点云图到实际应用跑通第一个点云图只是第一步。基于IWR6843AOPDCA1000EVM这套平台后续可以做的方向很多。如果对原始数据处理流程不熟强烈建议完整跑一遍TI的MATLAB工具箱里的处理脚本把里面每一步都看明白再改成自己的代码。TI官方有几个demo脚本比如DOA估计、CFAR检测、聚类算法可以直接拿来做二次开发。点云数据出来后常见的应用方向有室内人员检测与跟踪、生命体征监测基于相位信息、车辆周围环境感知、点云金属表面缺陷检测利用雷达对金属表面的高反射特性等。在多传感器融合方向毫米波雷达点云和激光雷达点云可以做时间戳对齐和空间坐标变换用于提升感知系统的鲁棒性特别是在雨雾天气激光雷达性能下降的时候。另外提一句如果你后续要做更高速的数据采集比如需要多个雷达同步采集DCA1000EVM也支持级联模式只是配置会更复杂一些需要用到额外的FPGA配置文件和级联固件。等把这篇文章的流程完全吃透之后再去研究级联模式会顺畅很多。我个人在实际操作中的体会是这套环境最大的学习价值不在于跑通流程本身而在于强迫你搞懂每一个参数背后的物理意义。从配置chirp参数、换算距离分辨率到理解二维FFT结果、亲手调CFAR阈值每一步都扎扎实实地作用在真实数据上。比起直接调用黑盒API出结果这种从底层贯通的方式对你理解毫米波雷达的本质会更有帮助。最后再分享一个小技巧每次修改配置后先在mmWave Studio里采集一小段数据比如50帧用MATLAB快速处理看RD图确认信号正常后再进行大量数据采集。这个习惯让我避免了很多无效采集也大幅节省了后续处理的时间。
返回列表