工作里接触激光雷达的同行估计都听过PandarView这个工具。它是禾赛官方推出的点云可视化软件专门用来查看Pandar系列雷达的实时点云、录制采集数据包也能回放离线的pcap文件。很多做自动驾驶、机器人、测绘的朋友第一步验证雷达有没有正常出点用的就是它。这篇博文我就从实际使用的角度把PandarView从安装到实时数据采集的完整流程拆开讲讲包括我踩过的坑和一些经验性的建议希望对刚接触点云这块的读者有所帮助。无论你是刚拿到一台雷达想快速看效果还是准备出门采集数据做算法开发这套流程都能直接参考。我把整个过程分成五个阶段先搞清楚这个工具到底能干什么再完成安装部署接着熟悉界面操作然后进入实时采集和pcap录制的正题最后整理一些常见问题和排查思路。按这个顺序走下来基本就能掌握PandarView的核心用法了。1. PandarView是什么为什么点云可视化和实时采集都绕不开它1.1 点云可视化这件事到底难在哪先说点云是什么。激光雷达发射激光束打到物体表面反射回来根据光的飞行时间就能算出目标点的距离再结合扫描角度得到这个点的三维坐标。成千上万个这样的点集合在一起就形成了点云。点云里的每个点都带着xyz坐标有的还带反射强度、时间戳等信息。可视化就是把这些散乱的点渲染到屏幕上让工程师能直观看到雷达视野里的场景。听起来不复杂但真正想在电脑上看实时点云有三个绕不开的门槛。第一是协议解析。激光雷达通过UDP把数据包发到主机每个数据包里包含一帧扫描的部分点、时间戳、转速信息等。要把它解析出来需要完全了解雷达的通信协议。Pandar系列雷达的UDP数据包结构里包含多少个block、每个block有多少个channel、数据是几字节对齐这些细节直接决定了解析的正确性。自己写协议解析不是不行但开发和调试周期很长。第二是渲染显示。几万到上百万个点要在界面上流畅旋转、缩放这对渲染引擎是有要求的。自己做比较费时间而且效果不一定好。第三是数据采集。实时数据流看着好好的怎么录下来录下来的数据怎么回放回放时怎么逐帧分析突发状况这些功能自己开发一套工作量不小。PandarView解决的就是这三件事。它把协议解析、点云渲染、数据采集回放都封装好了拿到雷达打开软件就能看到实时点云点一下录制就能存pcap数据包配合Wireshark还能做底层网络分析。1.2 PandarView的核心能力边界我实际用下来的感受是PandarView这工具的设计目标很明确就是快速验证雷达状态数据采集它不是一个用来做算法开发调试的平台。它的核心能力集中在下面几个方面一是雷达型号覆盖比较全。Pandar128、Pandar64、Pandar40P等主流型号都能自动识别你选好型号连上IP它就能以正确协议解析数据不需要手动配置包格式。二是实时显示与状态监控。界面上的3D视图能流畅显示百万级点云同时能看到雷达的转速、温度、点云帧率这些状态信息。这几点对判断雷达是否正常工作很有用比如温度异常升高就要留意散热了。三是一键录制pcap。采集数据是它的强项。点一下Capture它就把UDP数据包原样存成pcap文件。这个pcap是后续离线调试的原材料配合回放功能可以反复分析。四是pcap回放。采集完成后可以随时加载pcap文件回放当时的场景。回放时能看到时间戳、帧信息也可以暂停、单帧步进方便仔细看某个瞬间的点云。不过也要说清楚PandarView在点云后处理方面比较弱。像滤波、去噪、地面分割、目标聚类这些算法层面的操作它不是拿来干这个的。它的定位更像是雷达的取景器和录像机拿它确认数据质量、采集数据一级棒拿它做点云数据处理那就超出它的能力范围了。1.3 谁适合看这篇文章如果你是以下人群这篇文章对你会有直接的帮助刚拿到Pandar系列激光雷达想快速确认雷达能不能正常出点、点云效果如何的工程师准备外场采集数据需要用PandarView录制pcap文件作为数据集素材的算法或者测试工程师开始做激光雷达相关项目想系统了解点云数据是怎么从硬件到电脑再到画面的开发人员使用CloudCompare、Halcon等工具做点云后处理但不太清楚数据源头怎么采集和导出的朋友我下面讲的每一步都是基于我在实际项目中反复操作、踩过不少坑之后总结出来的。你照着做可以少走很多弯路。2. 安装部署从下载到跑起来需要注意的几个关键点2.1 环境准备Windows和Linux各有各的坑PandarView支持Windows和Linux两个平台。官网下载页会根据你的系统给出对应版本。Windows的安装包里包含了运行所需的大部分依赖库Ubuntu下则需要自己装一些依赖。Windows比较简单基本是双击安装包一路下一步就装好了。不过安装路径尽量不要选带空格的目录原因后面会说某些脚本和第三方工具对带空格的路径处理有概率出问题。Linux推荐使用Ubuntu 18.04或者20.04这两个版本对激光雷达生态的兼容性比较好。官网一般提供的是.tar.gz压缩包解压后运行里面的可执行文件即可。依赖上需要注意PandarView依赖OpenGL、Qt和GLUT这些图形库。特别是GLUT库点云渲染的时候要用到。Ubuntu下没有GLUT的话启动会报错找不到符号。2.2 安装步骤与验证我这里以Ubuntu系统为例说一下典型的安装流程。第一步确保基础依赖已安装sudo apt-get update sudo apt-get install -y build-essential cmake libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libqt5core5a libqt5gui5 libqt5widgets5 libpcap-devbuild-essential不用多解释编译工具链。libgl和libglu是OpenGL的基础库。freeglut3-dev是OpenGL的实用工具库没有它渲染窗口起不来。libpcap-dev是pcap读写相关的库录制和回放都依赖它。这些一键装好之后基本就解决依赖问题了。第二步解压PandarView软件包tar -zxvf PandarView.tar.gz cd PandarView chmod x PandarView第三步运行./PandarView如果一切正常会弹出PandarView主窗口。在左侧选择雷达型号填上雷达IP就能看到点云了。如果打不开先检查GLUT相关报错信息。Windows安装结束后桌面上会有快捷方式。启动后如果提示缺少DLL文件通常是VC运行库没装去装一下对应的Visual C Redistributable即可。2.3 关于网络配置的一个建议因为PandarView是通过UDP接收雷达数据的所以电脑和雷达之间必须网络可达。Pandar系列雷达默认IP一般是192.168.1.201主机需要设置成同一网段的静态IP比如192.168.1.102。这里有一个常见的误区很多人直接把电脑IP设为自动获取DHCP然后连不上雷达就开始怀疑雷达坏了。实际上雷达出厂默认是静态IP电脑必须手动设置成同网段的IP才能和它通信。我的建议是用网线直连雷达和电脑把电脑的有线网卡IP设置为192.168.1.x子网掩码255.255.255.0网关不用填然后先用ping测试一下通不通ping 192.168.1.201如果ping通了说明物理链路和数据链路都正常接下来PandarView的连接就不太可能碰到网络问题了。这一步建议一定做能够把问题范围缩小很多。提示如果用的是笔记本记得在系统设置里检查网卡防火墙。Windows和有些Linux发行版默认打开防火墙UDP数据包容易被拦截导致PandarView收不到数据。建议把防火墙对UDP端口雷达数据端口大范围放行或者直接关闭防火墙进行测试。3. 界面与核心功能拆解不光会看图还要懂数据状态的含义3.1 主界面布局四个区域看一眼就能上手PandarView打开之后界面比较简洁主要分为四个区域。顶部是菜单栏包含File、View、Tools等菜单项。一些不常用的高级功能比如打开适配器配置、切换一些显示选项都在这里面。左侧是控制面板用来选择雷达型号、填入雷达IP、点击连接/断开同时下方还有一些显示模式相关的参数。通过它你可以配置一些显示相关的选项比如显示点云的着色模式、是否显示网格等。中间最大的一块是3D视图区实时渲染的点云就在这里显示鼠标左键拖拽可以旋转视角右键拖拽可以平移滚轮负责缩放。底部是状态栏显示当前连接状态、点云点数、帧率、时间戳等实时信息。这四个区域的配合逻辑非常直观左边管连接中间管显示底部管状态顶部的菜单在做回放和高级设置时会用到。整体学习成本很低半小时就能上手。3.2 3D视图区的操作习惯建议先练熟3D视图区的鼠标操作看起来简单但实际外场采集时如果你没提前熟悉很容易在关键时刻手忙脚乱。左键拖拽旋转视角。雷达点云默认是360度环绕的你站在某个角度看会有一半的点云在视野之外。旋转视角时注意观察不同方向的点云稠密程度这能快速发现雷达是否有遮挡或盲区。右键拖拽平移视图。当你要仔细看某个局部区域的点云细节时先用右键把视角挪到目标位置再配合缩放。滚轮缩放。滚轮缩放到最小可以看到雷达周围的完整点云轮廓缩放到最大可以看清楚几米外物体的点云细节。还有一个细节值得注意按F键可以重置视角到默认位置。这个快捷键在操作过程中非常实用有时候视角转乱了按一下F就回到初始视角比手动转回来快得多。不少人在外场采集时视角转乱了又不记得这个快捷键只能退出重进软件浪费时间。3.3 底部状态栏的数据含义底部状态栏不是摆设它告诉你雷达正在以什么状态工作。连接状态显示当前是Connected已连接还是Disconnected未连接。点云点数实时显示当前帧包含多少个点。不同型号的雷达点数差异很大Pandar128有128线一帧几百万点40线的就少很多。如果你发现点数突然骤降大概率是目标遮挡或者雷达受到干扰。帧率雷达的扫描帧率通常在10Hz左右取决于你设置的转速。Pandar系列支持300到1200转每分钟对应5Hz到20Hz的帧率。帧率异常低说明网络传输有拥塞或丢包需要检查链路质量。时间戳显示当前帧的时间戳。时间戳对于同步非常重要尤其是在做多传感器融合时每个点云帧的时间戳要和相机图像、其他传感器的数据对齐。建议在采集之前先对着静态场景观察几分钟熟悉正常状态下点数和帧率的波动范围。这样采集过程中一旦出现异常你能第一时间察觉。3.4 着色模式的选择与观察技巧PandarView提供几种着色模式默认一般是按距离着色点云颜色从近到远呈现从蓝到红的变化。这对判断场景深度很直观近处的点偏暖色远处的点偏冷色。另一种常用的是按反射强度着色。反射强度能反映物体的材质特性路面、树木、金属护栏、行人服装的强度值差异很大。调成强度着色后用鼠标点击某个点状态栏会显示这个点的强度值。这个功能在数据分析阶段很有用比如你想探测路面标线的反射特征用强度着色看会非常清楚。实际使用中我建议观察点云时按距离着色分析目标物特征时按强度着色两种模式切换着看能获取的信息比单一模式多很多。3.5 双回波模式的理解Pandar系列雷达支持单回波和双回波模式。在控制面板上可以选择模式双回波模式下每个激光脉冲会返回两个距离值。这个特性怎么理解呢一束激光打到玻璃上一部分光被玻璃表面反射另一部分穿透玻璃打到后面的物体上最后会有两个回波。双回波模式就能同时记录这两个距离值对应的就是两个点的不同坐标。实际工程中处理雨雾天或者玻璃幕墙场景双回波模式能有效区分真假目标。PandarView里切换双回波后点云数量会明显增加这对验证雷达的抗干扰能力很有帮助。需要注意的是双回波模式下数据量翻倍对网络带宽和存储空间的需求也更大采集时要注意磁盘空间。4. 实时数据采集实战从连接雷达跑到拿到完整的pcap文件4.1 连接雷达按下连接键之前先确认这几个参数连接雷达看起来是点一下按钮的事但我在实际项目中碰到过很多连接不上的情况大部分都是因为参数没提前确认好。在按下Connect按钮前我建议你按顺序确认以下内容。第一步确认雷达型号。在控制面板的下拉菜单里选择对应的雷达型号。选错了协议就不对即使网络通了也会报错或者显示乱点。如果你用的是Pandar128却在软件里选了Pandar40P那能解析出点云才是见了鬼。第二步确认雷达IP。默认是192.168.1.201。如果你在之前的项目中改过雷达的静态IP要确保填对。这个IP信息可以通过雷达的控制软件或者配置文件去查询不要想当然。第三步确认主机IP在同一网段。这个问题前面提过这里再强调一次。雷达IP是192.168.1.201电脑IP必须是192.168.1.x子网掩码255.255.255.0。有时候你会遇到很奇怪的组合比如雷达IP是10.0.0.1那就需要把电脑IP改成10.0.0.x。第四步确认没有其他程序占用UDP端口。PandarView默认监听雷达数据端口。如果你同时开了多个点云工具或者上次运行的程序没有正常退出端口被占用会导致PandarView收不到数据现象就是连上去了但看不到点云。这些参数都确认无误后点击Connect。正常情况下一两秒内底部状态栏就会变成Connected3D视图区开始刷出点云。4.2 实时点云出现以后先做这四件事连接成功后先别急着录数据。我建议按下面的顺序做一轮快速检查。第一检查点云帧率和点数是否正常。看底部状态栏正常情况下帧率应该稳定在雷达设置的目标值比如10Hz。点数应该饱满没有大片空洞。第二检查盲区范围。站在雷达旁边或者拿一块遮挡物靠近雷达观察点云是否能正确形成物体的轮廓。这个动作能验证雷达的测距精度和最小探测距离是否正常。第三检查不同距离的点云清晰度。找个固定的结构物或者墙看看不同距离点的密集程度是否合理有没有跳变或者重影。跳变通常是指某个点在相邻帧之间距离变化异常可能是物体在动也可能是测距噪声。第四检查设备温度。PandarView能显示雷达的工作温度。温度过高时激光器容易出问题点云就会有异常。正常状态下雷达温度会随着工作时间的增加逐渐升高然后稳定在一个范围内。如果温度持续上升且异常高建议立即停止测试检查散热。这套动作看起来简单但坚持做的人不多。很多人在外场录了一堆数据回来回放时才发现点云质量不行浪费了大量时间。实时阶段花五分钟做检查比回来花一整天清理数据要划算得多。4.3 录制pcap包外场采集的重要操作确认实时点云正常后就可以开始录制了。在PandarView的菜单里找到Capture或者Record选项选择一个保存路径点击录制按钮程序就会把当前收到的UDP数据包原样写入pcap文件。录制时有几个经验值得分享。第一录制时长按需控制。Pandar128的数据量很大录制的pcap文件增长速度非常快。以一个完整的10Hz扫描来说每分钟的数据量能达到数百MB甚至上GB。所以在开始录制前先看一眼磁盘剩余空间预估一下最多能录多久。第二pcap文件建议用短时长分段保存比如每5分钟或者每10分钟存一个新文件。这样做有两个好处一是单文件小了后续打开和分析更快二是如果某个时段的数据有问题不用整体重新采集只丢掉那一段就行。现场的调试效率能提升不少。第三录制时保持场景丰富度符合采集目标。如果你要训练目标检测算法录的场景就要包含不同距离、不同角度的目标物如果你要测试定位算法场景里应该有一些稳定的高反射特征物比如路灯杆、交通标志。录制内容的质量直接决定后续算法的效果。第四录制时要记录现场日志。我会随手记一下时间点、场景描述、雷达参数、天气状况如果是外场。比如14:35-14:45十字路口Pandar12810Hz晴待后续数据分析时这些日志就是重要的参考依据能省很多排查时间。养成这个习惯后整理数据集会轻松很多。注意有些情况下雷达数据是加密的或者采用了私有协议格式录制的pcap文件在别的软件里无法直接解析。这是正常的PandarView的回放功能可以在本软件里打开pcap但如果要拿到别的平台用需要关注数据的格式和权限问题。4.4 pcap回放采集回来之后怎么做离线分析录制完数据在外场就可以直接打开pcap回放。把pcap文件拖进PandarView或者从回放菜单加载就能看到当时的点云场景。回放界面上有几个常用控制播放/暂停、上一帧/下一帧、播放速度调节。播放速度非常实用正常情况下用原始速度播放观察目标运动想仔细看某个瞬间减速到0.5倍想快速浏览整个场景加速到2倍或4倍都可以。还有一个很有用的功能是单帧步进。暂停之后逐帧前进能看到目标物每一帧的位置变化。这对分析运动物体的轨迹或者查看某一瞬间的点云畸变都很有价值。我在做雷达和相机时间戳同步的时候经常用单帧步进的方式逐帧检查时间戳和点云形状的关系这比盲调代码效率高得多。回放过程中界面右侧或者菜单里可以看到当前帧的详细信息包括时间戳、点数、帧ID等。帧ID是雷达每一帧扫描的序号如果发现两帧之间的序号不连续说明中间有丢包对应的点云数据缺失会比较严重在分析时要注意。4.5 从pcap到其他工具的数据桥梁PandarView录制的pcap文件最直接的用途就是在PandarView里回放。不过在实际项目中pcap文件还需要提供给更多工具使用。比如把点云数据导入CloudCompare做配准、测量或者把深度数据转换成点云格式做进一步处理都需要先把pcap解析成pcd、ply、las等通用点云格式。禾赛的SDK如HesaiLidar_GeneralSDK里就提供了从pcap解析点云的示例程序可以用它把点云导出成pcd文件。这块内容超出了PandarView本身的功能范围但和点云数据采集链路是一体的。我的建议是用PandarView完成采集和初检用SDK做格式转换然后用CloudCompare、PCL等工具做深入分析。这条链路是我目前用下来最顺的。5. 常见问题与排查技巧实录5.1 常见问题速查表下面这个表格是根据实际使用中遇到的高频问题整理的可以直接作为排查手册使用。现象可能原因排查方法连接不上雷达状态一直是Disconnected主机IP和雷达IP不在同一网段ping雷达IP不通则改主机IP连接成功但看不到点云防火墙拦截UDP数据包关闭防火墙或放行雷达数据端口点云中间有条明显的缝隙雷达局部死角或者遮挡检查雷达安装位置和周围环境点云闪烁或跳动剧烈网络丢包严重或UDP缓存溢出检查网线、网卡速率必要时使用千兆网卡录音pcap时文件增长极快雷点云数据量大属正常现象规划好硬盘空间分段录制回放时卡顿点云数量大电脑性能不足降低显示分辨率或用低速播放软件启动即崩溃缺少图形库依赖Linux下常见安装libgl、libglu、freeglut等依赖5.2 排查思路的三板斧遇到问题先别慌我的经验就是按三步走。第一步确认网络通不通。ping雷达IP通或者不通问题范围立刻缩小一半。不通就查网线、IP配置、网卡状态通了就进入第二步。第二步确认端口通不通。雷达数据是UDP协议如果防火墙拦截会出现ping通但PandarView连接不上的现象。在电脑上抓包看一下或者临时关闭防火墙测试能很快确认是否是拦截问题。第三步确认软件配置和雷达型号。检查PandarView里选的型号和实际雷达型号是否一致数据端口是否匹配。型号选错会导致解析错误表现出来就是连接上了但点云乱飞甚至完全空白。这个排查逻辑简单直接90%的PandarView连接问题能通过这三步定位出来。剩下的10%多半是硬件故障或者线缆问题那就需要联系设备供应商了。5.3 外场采集中容易忽视的几个细节外场采集和室内测试比不可控因素多很多。我吃过亏所以给几个建议。一是散热问题。外场太阳直射下雷达长时间工作温度会快速上升。温度和点云质量强相关温度过高时测距精度会下降。条件允许的话给雷达准备一个遮阳伞或者通风支架。二是网线问题。外场经常需要长距离连线普通的五类线在长距离或者高带宽下容易丢包。建议使用质量好的屏蔽六类网线而且外场环境有电磁干扰屏蔽层的存在很有作用。我经历过一次点云突然变成雪花状的问题排查了半天最后发现是网线接头处接触不良。三是供电稳定性。雷达和外场采集电脑尽量使用同一个电源排插避免电压不稳。电压波动会引起雷达工作状态异常同时雷暴天气下外场设备要提前做好防雷措施。四是车架振动。如果雷达装在车顶支架上行驶过程中的振动会直接影响点云质量。点云的畸变和振动有着直接的关系。采集之前务必紧固好支架螺丝。5.4 pcap数据分析的一个实用技巧用Wireshark辅助检查除了在PandarView里看现象我还会用Wireshark辅助做一点底层分析。方法也比较简单采集时同时打开Wireshark抓包统计一下UDP数据包的顺序、间隔和数量。正常工作时雷达以固定频率向外发送UDP包间隔时间非常均匀。如果发现包到达间隔忽大忽小或者某些包的序号出现跳变就说明网络链路中发生了拥塞或者丢包这时候PandarView里的点云大概率表现异常。用Wireshark抓包是个常规操作不要搞得像是在做底层逆向一样它只是把链路问题从现象层面提升到了理论层面。很多时候在外场视觉上看起来正常的点云回放时才发现丢包严重就是因为没有做链路层面的检查。这个步骤加上之后出问题时的定位速度能提升好几倍。5.5 关于PandarView的版本更新工具在使用过程中版本更新也是一个值得留意的事情。新版本常常会在显示性能、协议稳定性、对新型号雷达的支持上有改进。遇到连接不上的问题如果上面的排查步骤都试过了还是不行可以试试升级到最新版本。不过升级之前要确认一点你手头激光雷达的型号在新版本里是否还支持。某些雷达的老型号在新版本里属于兼容模式个别功能可能不正常。稳妥的做法是生产用的电脑和测试用的电脑各装一个稳定版确认新版本没问题再在生产环境切换。写在最后PandarView这类工具看起来简单真正用好还是需要花点时间的。我在实际使用中最深的体会就是连接雷达之前的网络参数检查绝对不能跳过录数据前对点云质量做一轮快速检查也绝不能省。这两步做好了后面能省掉大量的返工。最后再分享一个小技巧录制pcap的时候同时用手机拍一段现场视频记录当时的场景布局、目标物位置、天气光照等信息。后面分析点云数据的时候把视频和点云回放对照着看能发现很多单独看点云难以发现的规律和问题。这个习惯我从一开始采集数据就坚持后来做算法迭代这些现场记录成了非常宝贵的参考资料。希望这篇基于实际操作的分享能帮你在PandarView和点云数据采集这条路上少踩些坑。如果有用到过程中碰到其他有意思的问题也欢迎交流说不定下次我还能再写一篇实战记录。