slam--运动方程和观测方程
运动方程(Motion Model)
作用:描述机器人(或载体)从上一时刻到当前时刻的位姿变化(运动过程)。
数学形式:
-
xk:当前时刻 k 的机器人状态(如位姿,可能包含位置、姿态角等)。
-
xk−1:上一时刻 k−1 的状态。
-
uk:控制输入(如轮式编码器的里程计数据、IMU测量值)。
-
wk:过程噪声。
观测方程(Observation Model)
作用:描述传感器对环境中路标(Landmark)的观测与机器人状态之间的关系。
数学形式:
-
zk:传感器观测值(如激光测距、摄像头提取的特征点像素坐标)。
-
yj:第 j个路标的状态(如路标的世界坐标)。
-
vk:观测噪声。
针对不同的传感器,这两个方程有不同的参数化形式,们保持通用性,把它们取成通用的抽象形式,那么SLAM过程可总结为两个基本方程:
K是位姿个数的集合,O是路标个数的集合。表示在k位置观察到的第j个路标的数据。
运动方程和观察方程中的uk和zk是不是同一个数据?
运动方程中的 uk
-
含义:控制输入(Control Input),用于测量机器人位姿的传感器(一般是内部传感器,比如IMU,编码器等)输入的数据。
-
数据来源:
-
轮式编码器(Odometry):测量车轮转动的位移或速度。
-
IMU(惯性测量单元):测量角速度和线加速度。
-
其他运动传感器(如舵机指令、速度控制信号)。
-
-
作用:预测机器人从 k−1 时刻到 k时刻的位姿变化(即状态 xk 的演化)。
-
例子:
-
二维机器人:uk=[vk,ωk]T(线速度和角速度)。
-
无人机:uk 可能包含螺旋桨的推力或姿态控制指令。
-
观测方程中的 zk
-
含义:传感器观测值(Measurement),用于测量路标数据的传感器(一般是外部传感器,比如相机,lidar等)的输入数据。
-
数据来源:
-
相机:图像中检测到的特征点像素坐标或深度值。
-
激光雷达:路标的距离或点云数据。
-
雷达:目标的距离和方位角。
-
-
作用:将当前状态 xk 和路标位置 yj 关联起来,用于校正位姿估计或建图。
-
例子:
-
视觉SLAM:zk=[u,v]T(特征点在图像中的像素坐标)。
-
激光SLAM:zk=[r,θ]T(路标的极坐标距离和角度)。
-
路标
-
物理意义:
-
路标可以是环境中的角点、边缘、平面、纹理特征、人工标记等。
-
例如:
-
视觉SLAM:图像中的SIFT/SURF/ORB特征点、二维码。
-
激光SLAM:墙角、桌缘、柱体等几何结构。
-
多传感器融合:视觉-激光联合提取的语义物体(如门、窗户)。
-
-
-
数学表示:
-
路标在SLAM系统中通常表示为世界坐标系下的3D坐标点 yj=[xj,yj,zj]T(若为2D SLAM则省略 zj)。
-
部分场景下可能包含附加属性(如特征描述子、语义标签)。
-
-
功能要求:
-
可观测性:传感器能检测到且数据稳定(如不受光照变化影响)。
-
唯一性:不同路标之间需可区分(避免误匹配)。
-
稀疏性:实际SLAM通常选择稀疏路标以降低计算复杂度。
-
-- 路标是传感器数据来源的对象。
路标在SLAM中的作用
-
定位(Localization):
-
通过当前观测到的路标 zk 与地图中已知路标 yj 的匹配,计算机器人位姿 xk(即求解观测方程 h(xk,yj)。
-
-
建图(Mapping):
-
将新观测的路标加入地图(若路标首次出现),或更新已有路标的位置(通过多视角观测优化)。
-
-
数据关联(Data Association):
-
判断当前观测的路标对应地图中的哪一个 yjyj(是SLAM中的核心挑战之一)。
-
SLAM问题
当知道运动测量的读数u,以及传感器的读数z时,如何估计机器人当前位姿x(定位问题)和如何估计路标的状态y(比如世界坐标)(建图问题)?
-- 如何求解(估计)定位和建图。
slam问题就是所谓的状态估计问题。