机器人感知与多传感器融合
感知把光、声、力和惯性等物理信号,转成带坐标、时间和不确定性的环境证据。
传感器测到的是代理量
相机不直接“看到杯子”,它记录传感器像素上的光强或颜色;激光雷达不直接“看到墙”,它记录发射与返回之间的时间或相位;编码器测转轴位置,力矩传感器测结构应变。把原始信号解释为物体、距离、接触和语义,需要成像模型、标定与算法。
机器人常用传感器可以沿被测对象理解。内部感知测机器人自身,包括编码器、电流、温度、IMU;外部感知测环境,包括 RGB/深度相机、激光雷达、毫米波雷达、超声、麦克风;交互感知测接触,包括六维力/力矩、关节力矩、触觉阵列和夹爪开合状态。选型时要同时看量程、分辨率、精度、重复性、采样率、视场、最小/最大测距、环境适应、接口时延和失效模式。
精度表示测量接近真值的程度,重复性表示相同条件下多次测量是否一致,分辨率表示能分开的最小变化。一个传感器可以重复性很好却有固定偏差,经过标定后仍可非常有用;标称分辨率很高也不代表实际噪声很低。
相机几何:三维如何投到二维
针孔模型把相机坐标中的三维点 \((X,Y,Z)\) 投影到像素 \((u,v)\):
\(\mathbf K\) 是相机内参,包含焦距与主点;\(\mathbf R,\mathbf t\) 是世界到相机的外参;\(s\) 与深度有关。单张二维图像把深度压缩掉了,因此单目系统要靠多视角、已知尺寸或学习先验恢复深度。双目相机利用视差 \(d\) 估计深度,理想情况下
\(f\) 是焦距,\(b\) 是左右相机基线。物体越远,视差越小,同样一像素误差造成的深度误差越大。结构光与飞行时间深度相机主动发光,近距离方便,但会受阳光、反射和多径干扰。
视觉感知通常经过图像校正、特征或神经网络推理、几何恢复、跟踪和坐标转换。检测框只说明物体在图像哪个矩形区域;抓取往往需要分割、三维点云、六自由度位姿或可抓区域。模型输出置信度需要经过校准才能当作概率使用,部署前要在目标环境验证阈值。
激光、雷达与接触传感
二维激光雷达给出一个平面内的距离扫描,适合室内定位导航,但桌沿以下、玻璃和黑色吸光材料可能造成缺测。三维激光雷达提供稠密空间几何,成本、功耗和数据量更高。毫米波雷达能直接测径向速度,对雾尘和光照较稳健,角分辨率与语义理解通常弱于相机。
力/力矩传感器让机器人知道“碰到了什么”。末端六维传感器可测三个方向的力与力矩,关节力矩传感器能感知整臂接触,触觉阵列能描述接触位置、压力分布和滑动迹象。接触传感会受零漂、温度、结构耦合和安装预紧影响;高频振动信号若未经滤波直接进入控制,会导致抖振。
融合不只发生在滤波器里
多传感器融合可分为原始数据级、特征级和决策级。相机与激光点云在原始或特征级对齐,可以给几何附上语义;多个检测器在决策级投票,工程简单但丢失细节。融合前必须完成空间外参与时间同步。
一条测量链可以写为
\(S_i\) 是第 \(i\) 个传感器坐标系,\(\mathbf T_{B S_i}\) 是它相对机器人机身的外参,\(t_i\) 是测量时间,\(h_i\) 是传感器模型。若外参或时间戳错了,融合算法会把一致的世界变成互相冲突的数据。
占据栅格是经典融合例子:地图把空间离散为单元,每次测量更新单元被占据的概率。工程实现常使用对数几率
\(l_{t,i}\) 是单元 \(i\) 在时刻 \(t\) 的占据对数几率,\(l_0\) 是先验。加法更新数值稳定,也方便融合多帧。但动态行人不应永久写进静态地图,所以还需时间衰减、动态目标跟踪或分层地图。
标定、同步与在线健康
相机内参描述像素与光线的关系,外参描述传感器之间的刚体关系,时间标定描述各设备时钟与采样时刻的偏差。这三类标定互相影响。机器人移动时,10 毫秒时间差会表现为空间错位;若直接用外参优化吸收,静止数据看似对齐,运动速度改变后误差又会出现。排查顺序应先核对时间,再核对坐标轴和单位,最后估计外参。
标定残差小只说明对标定数据拟合良好。验收应使用另一组姿态与距离,检查视场边缘、远近目标和机器人运动状态。棋盘格集中在画面中央,无法充分约束镜头边缘畸变;相机与雷达只观察远处平面,也很难区分某些旋转和平移误差。安装支架松动、碰撞、温度和镜头重新对焦都可能让外参随时间漂移,因此生产系统需要快速自检基准或定期复核流程。
传感器健康也不能简化成“有数据”。图像可能冻结但时间戳继续变化,激光可能持续输出同一个扫描,深度相机可能在强光下大面积无效,力传感器可能慢慢漂到阈值附近。监控应覆盖新鲜度、变化量、有效像素比例、饱和率、噪声水平和跨传感器一致性。检测到退化时,感知输出要携带质量状态,让规划与控制选择降速、换视角或退出任务。
缺测与“自由空间”具有完全不同的含义。激光没有回波时,物体可能超量程、吸光或透明;深度像素为空也不能证明该方向没有障碍。地图更新要保留未知状态,只有传感器模型支持的自由射线才能清除占据。把未知直接写成空闲,会在玻璃、黑色材料和传感器视场外制造危险通道。
工程例子:户外逆光让“冗余相机”同时失效
机器人配置两台相机,团队据此认为视觉具有冗余。两台相机使用相同传感器、朝向相近,并共享自动曝光策略;低角度太阳光进入镜头时,它们同时过曝,检测与深度一起失效。这属于共同原因故障,设备数量增加没有消除风险。
更可靠的方案从失效机理出发:改变安装方向与遮光结构,融合对强光更稳健的激光或雷达,对曝光饱和面积建立健康指标,并在视觉退化时降低速度。验证矩阵应覆盖顺光、逆光、夜间、雨雾、反光与脏污,记录每种条件下探测距离和误报。传感器互补需要用共同盲区测试来证明。
工程例子:抓取黑色反光零件
RGB 相机能清楚看到轮廓,结构光深度却在黑色反光表面出现大片空洞。若抓取算法把缺深度像素当成“无限远”,会生成穿过物体的抓取姿态。可以更换照明和相机角度,融合双目或激光,引入 CAD 模型配准,或让机械臂主动换视角。
方案取决于节拍和可控环境。固定产线可以改工装与照明,收益通常高于堆叠算法;开放环境需要在线判断测量质量。失败边界应显式写入:有效点比例低于阈值时不执行抓取;位姿协方差过大时重新观察;末端接近后用力或触觉完成最后几毫米闭环。