从零搭建AGV避障系统:我用激光雷达+树莓派视觉模块踩过的那些坑
去年,我接到了一个朋友工厂的委托,他们想用最低的成本,给几台手动搬运车加上基础的自动避障功能,实现半自动化升级。预算有限,但要求不低:需要在仓库这种堆满货架、偶尔有人员走动的复杂环境里,稳定识别障碍并停下或绕行。听起来像是典型的“既要马儿跑,又要马儿不吃草”的项目。但正是这种挑战,让我这个喜欢折腾硬件的创客兴奋了起来。我决定放弃那些昂贵的工业级方案,从零开始,用树莓派、国产激光雷达和一些开源视觉库,亲手搭建一套AGV避障系统。整个过程,与其说是一次顺利的开发,不如说是一场与各种“坑”斗智斗勇的实战记录。今天,我就把这些亲身经历、踩过的雷和最终的解决方案,毫无保留地分享给同样在中小规模自动化改造中摸索的朋友们。
1. 硬件选型:在“性价比”与“可靠性”之间走钢丝
项目启动的第一步,也是最让人纠结的一步:硬件选型。我的核心思路是,用激光雷达提供精确的距离感知作为主传感器,用树莓派搭配摄像头提供视觉识别作为辅助和语义补充,再用一个廉价的IMU(惯性测量单元) 来感知车身姿态,应对地面不平带来的干扰。听起来很美好,但每个环节都藏着陷阱。
1.1 激光雷达:国产新秀 vs. 进口老将
激光雷达是避障的“眼睛”,其稳定性和精度直接决定系统下限。在电商平台和开源硬件社区逛了一圈,主流选择无非两类:
- 进口品牌(如SICK、Hokuyo):性能稳定,数据干净,文档齐全。但价格动辄数千甚至上万,远超我的整体预算。
- 国产品牌(如思岚、镭神等):价格亲民,几百到一千多就能买到不错的2D雷达,部分还带ROS驱动。这是预算有限情况下的自然选择。
我最终选择了一款售价约800元的国产180°扫描2D激光雷达。它的参数很漂亮:10米测距、0.5°角分辨率。但实际使用中,问题接踵而至:
- 数据跳变与噪声:在空旷环境下数据尚可,但一旦靠近货架(大量规则反射面)或阳光直射的窗户,点云数据会出现明显的“鬼影”和跳变。这直接导致后续的聚类算法产生误判,把不存在的障碍物“识别”出来。
- 安装震动的影响:我将雷达直接固定在AGV车体(一个改装的小车)上。电机启停和地面颠簸带来的震动,会让雷达的扫描平面发生轻微偏转,在点云图上表现为整个环境的“抖动”。这对于需要精确距离信息的避障来说是致命的。
我的解决方案:
- 针对噪声:我放弃了雷达出厂自带的简单滤波,在树莓派上使用
PCL(点云库)的StatisticalOutlierRemoval滤波器进行后处理。这个算法会分析每个点与其邻居的平均距离,剔除那些“不合群”的异常点。虽然增加了计算量,但数据质量提升显著。 - 针对震动:我设计并3D打印了一个带有硅胶减震垫的雷达支架,将雷达与车体进行软连接。同时,在软件中引入了一个简单的“运动补偿”逻辑:当IMU检测到车体在俯仰或横滚方向有持续微小变化时,对当前帧的激光数据做一个反向的坐标变换修正。这大大稳定了“视野”。
提示:不要完全相信激光雷达标称的“抗强光”能力。在实际部署前,务必在你的目


3432

被折叠的 条评论
为什么被折叠?



