3i-2D雷达功能探索与待解决问题汇总

本次项目基于Jetson开发板搭配3i-2D雷达开展,雷达采用TCP通信方式,对应IP为192.168.10.160:2105,软件环境选用ROS Noetic。核心开发目标是实现3i-2D雷达270°平面点云的采集、解析、拼接与边缘检测,精准识别桌腿、圆弧墙、直线墙等物体轮廓,并过滤无遮挡区域的无效点云。为逐步推进目标实现,开发了test1至test6共六个测试节点,经过系列调试,已完成部分基础功能的探索验证,同时仍存在多个核心问题待解决。

一、已成功探索实现的功能
目前已成功探索实现的功能的包括:一是雷达TCP通信链路搭建,通过test1节点完成验证,能够稳定建立Jetson开发板与3i-2D雷达的TCP连接,日志输出显示连接成功(sockfd=10),且已解决此前日志中出现的大量“???”乱码问题,通过清理代码中非ASCII字符、删除编译缓存重新编译、配置终端UTF-8编码等操作,确保日志输出清晰可辨;二是雷达指令发送与原始数据接收,test2节点可成功向雷达发送startStreaming启动指令,并接收到包含block、timestamp、layers等字段的laserScan JSON原始数据流,数据流包含ranges和intensities的Base64编码数据,验证了雷达与开发板之间的基础数据传输能力;三是JSON解析与Base64解码功能,经过对test3节点的多次优化(解决JSON帧分割不完整、节点类型验证缺失、枚举类型格式化错误等问题),当前可稳定解析雷达返回的JSON数据,准确提取Block ID、Base64编码长度、解码后字节数及单Block点云数量(192点/Block),且程序运行稳定无崩溃,核心已转储问题彻底解决;四是单Block与多Block点云拼接发布,test4节点可成功发布单Block点云,角度覆盖范围符合预期(-101.2°~101.2°),test5节点实现8个Block的缓存拼接,输出270°完整扇形点云,总点数稳定在1536(偶有1681),并能通过ROS节点正常发布;五是基础点云可视化配置,已完成static_transform_publisher坐标系转换配置(base_link→laser_link),在RViz中可成功接收并显示test4-test6节点发布的点云数据,完成点云大小调整、Show NaN Points关闭等基础配置。

二、待解决的关键问题

尽管基础功能已初步实现,但核心目标尚未达成,仍存在多个关键问题待解决:其一,无效点云泛滥问题,当前test5、test6节点输出的270°扇形点云中,无遮挡的空旷区域仍被大量点云完全覆盖,有效点数与总点数完全一致,未实现任何无效点云过滤,违背“无遮挡区域无点云”的雷达核心功能逻辑,此前尝试的量程过滤(0.1~14米)、噪声过滤(相邻点距离差<0.05m)等逻辑未生效;其二,边缘检测完全失效,仅在7cm极近距离内可显示物体的直线边缘,1米以上距离的桌腿、圆弧墙、直线墙等目标物体均无法呈现清晰边缘,仅能看到模糊的扇形点云区域,无法识别物体轮廓;其三,test6节点过滤算法未生效,该节点新增的边缘增强(相邻点距离差>0.1m)、噪声过滤、降采样(每2个点保留1个)等优化逻辑,未对输出点云产生任何实质性影响,有效点数无任何减少,过滤效果未达预期;其四,雷达参数配置可能存在缺失,结合此前参考的5份雷达相关文档,尚未明确是否遗漏了扫描频率、测距精度、噪声阈值等关键硬件参数的配置,这可能是导致点云无差别输出的重要原因;其五,点云数据有效性验证不足,尚未明确解析后的点云距离数据是否存在单位转换异常(如mm与m混淆),无法确定过滤逻辑参数(0.05m、0.1m)是否适配3i-2D雷达的实际数据特性。

三、后续核心解决方向

后续核心解决方向为:优先验证点云距离数据的有效性,通过打印原始距离数据确认单位及数值合理性;优化并验证过滤算法逻辑,排查当前过滤代码未生效的原因,尝试聚类、ROI区域滤波等其他算法,探索更适配的过滤参数;深入研究3i-2D雷达硬件参数手册及参考文档,补充必要的雷达参数配置;针对远距边缘模糊问题,探究是否为雷达角分辨率(33.75°/192点≈0.175°/点)的物理限制,尝试通过插值、轮廓提取等算法提升远距物体边缘清晰度。

(左边直线为墙体,但问题还是大部分点云的位置,按代码逻辑应是墙体走向的轮廓而不是扇形点云或射线形点云,有待解决)

3 个赞