ORB-SLAM3 生产落地案例
五、生产落地案例
案例一:仓储 AGV 的视觉定位与地图复用。背景是一个电商仓库,需要在货架通道里让 AGV 自主定位,通道两侧是金属货架,纹理重复度极高,激光雷达方案因货架镜面反射而不稳定。做法是用双目惯性相机装在车头,先用人工遥控走一遍全场建图,把 Atlas 保存成文件;之后每台车启动时加载这张地图,系统进入定位模式,只估计位姿不再扩建地图。关键配置是开启 System.SaveAtlasToFile,把 ORBextractor.nFeatures 提到接近一千,并把 ORBextractor.minThFAST 下调,因为金属货架的纹理实在太弱。效果上,重复纹理通道里回环检测能正确识别货架编号区域,AGV 在长距离运行后没有出现累积漂移导致的错位。踩到的坑有两个:一是货架在下午会有阳光斜射进天窗,同一位置的图像特征在上午和下午差异很大,导致加载上午建的地图在下午重定位成功率下降,最终通过在通道顶部加装均匀补光解决;二是 IMU 装在了车体减震垫上,振动导致陀螺噪声远超标定值,把 IMU 移到底盘刚性位置并重新用 Allan 方差标定后,轨迹抖动明显改善。
案例二:无人机电力巡检的离线建图与在线定位。背景是变电站巡检无人机,需要在没有 GPS 信号的室内配电房飞行。做法是先用背包式采集设备走一遍配电房内部,用单目惯性模式建图并保存 Atlas,再让无人机加载该地图执行固定航线。关键配置是开启 System.LoadAtlasFromFile 与 System.thFarPoints,并把 IMU.InsertKFsWhenLost 打开,因为配电房内大量金属柜体造成特征稀疏,跟踪偶尔会短暂丢失。效果上,无人机能在预设航点附近稳定悬停,不需要每架次重新建图,节省了大量现场准备时间。踩到的坑是:建图用的相机与无人机上装的相机内参不完全一致(同型号不同个体),直接复用同一份 YAML 导致重定位后位姿有系统性偏移,最后改成每台设备单独标定内参、每台设备生成自己的配置文件才解决。这条经验可以直接推广到所有多机部署的视觉 SLAM 项目:配置文件要跟着硬件走,不能跟着型号走。
两个案例共同说明一件事:ORB-SLAM3 在实验室数据集上的表现与在产线上的表现之间,差距主要不在算法本身,而在标定质量、时间同步、光照稳定性和场景纹理这四个工程变量上。把这四件事做好,它就是一个足够可靠的定位模块。

