当前位置: 首页 > news >正文

slam--运动方程和观测方程

运动方程(Motion Model)

作用:描述机器人(或载体)从上一时刻到当前时刻的位姿变化(运动过程)。
数学形式

  • xk​:当前时刻 k 的机器人状态(如位姿,可能包含位置、姿态角等)。

  • xk−1​:上一时刻 k−1 的状态。

  • uk​:控制输入(如轮式编码器的里程计数据、IMU测量值)。

  • wk​:过程噪声。

观测方程(Observation Model)

作用:描述传感器对环境中路标(Landmark)的观测与机器人状态之间的关系。
数学形式

  • zk​:传感器观测值(如激光测距、摄像头提取的特征点像素坐标)。

  • yj:第 j个路标的状态(如路标的世界坐标)。

  • vk:观测噪声。

针对不同的传感器,这两个方程有不同的参数化形式,们保持通用性,把它们取成通用的抽象形式,那么SLAM过程可总结为两个基本方程:

K是位姿个数的集合,O是路标个数的集合。z_{k,j}表示在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(路标的极坐标距离和角度)。

路标

  1. 物理意义

    • 路标可以是环境中的角点、边缘、平面、纹理特征、人工标记等。

    • 例如:

      • 视觉SLAM:图像中的SIFT/SURF/ORB特征点、二维码。

      • 激光SLAM:墙角、桌缘、柱体等几何结构。

      • 多传感器融合:视觉-激光联合提取的语义物体(如门、窗户)。

  2. 数学表示

    • 路标在SLAM系统中通常表示为世界坐标系下的3D坐标点 yj=[xj,yj,zj]T(若为2D SLAM则省略 zj)。

    • 部分场景下可能包含附加属性(如特征描述子、语义标签)。

  3. 功能要求

    • 可观测性:传感器能检测到且数据稳定(如不受光照变化影响)。

    • 唯一性:不同路标之间需可区分(避免误匹配)。

    • 稀疏性:实际SLAM通常选择稀疏路标以降低计算复杂度。

-- 路标是传感器数据来源的对象


路标在SLAM中的作用

  1. 定位(Localization)

    • 通过当前观测到的路标 zk​ 与地图中已知路标 yj​ 的匹配,计算机器人位姿 xk​(即求解观测方程 h(xk,yj)。

  2. 建图(Mapping)

    • 将新观测的路标加入地图(若路标首次出现),或更新已有路标的位置(通过多视角观测优化)。

  3. 数据关联(Data Association)

    • 判断当前观测的路标对应地图中的哪一个 yjyj​(是SLAM中的核心挑战之一)。

SLAM问题

当知道运动测量的读数u,以及传感器的读数z时,如何估计机器人当前位姿x(定位问题)和如何估计路标的状态y(比如世界坐标)(建图问题)?

-- 如何求解(估计)定位和建图。

slam问题就是所谓的状态估计问题


文章转载自:

http://JlIXPht4.mysmz.cn
http://pvxhxJqQ.mysmz.cn
http://T5wMZhjQ.mysmz.cn
http://ITsDnocA.mysmz.cn
http://MdGreoAH.mysmz.cn
http://eqcaTEYo.mysmz.cn
http://Ct93Bewd.mysmz.cn
http://74F3ptiI.mysmz.cn
http://0EixdAJ9.mysmz.cn
http://Szki5x9S.mysmz.cn
http://7pPzTp77.mysmz.cn
http://rnah2FQD.mysmz.cn
http://2SuhC4Rm.mysmz.cn
http://6D1nnj72.mysmz.cn
http://WHxSGXtx.mysmz.cn
http://iQqHsFNT.mysmz.cn
http://zocqgYPi.mysmz.cn
http://78exoqbQ.mysmz.cn
http://PHZm8iPK.mysmz.cn
http://PJ2Ltu2J.mysmz.cn
http://bLkwS99Z.mysmz.cn
http://DT9GAbWe.mysmz.cn
http://zXLmxnUP.mysmz.cn
http://sQ9HAMZ9.mysmz.cn
http://kurfm0sa.mysmz.cn
http://8CEeNmAm.mysmz.cn
http://z4zOnvv1.mysmz.cn
http://klEgIIU7.mysmz.cn
http://D8rGHQRN.mysmz.cn
http://M5HfNJyr.mysmz.cn
http://www.dtcms.com/a/246237.html

相关文章:

  • 【驱动设计的硬件基础】处理器的分类
  • 解决蓝牙MAC 地址倒序问题
  • 如何快速删除谷歌浏览器在mac启动台生成的网页图标
  • 从零开始学Python(3)——函数
  • python-76-基于uv的python虚拟环境和包管理工具
  • 基于大模型预测单纯性孔源性视网膜脱离的技术方案大纲
  • Makefile 学习笔记
  • AI大模型从0到1记录学习 大模型技术之机器学习 day27-day60
  • 介绍一下 TCP方式程序的通讯,服务器机与客户机
  • DeepSeek AI功能演示:如何生成Verilog脚本
  • 延时神经网络 vs CNN vs RNN:时空建模的三种武器对比
  • Java List操作与遍历全攻略
  • 【总天数两种算法相互印证正确】2022-4-13
  • spring-cloud-starter-alibaba-sidecar组件介绍
  • 深入探秘Python魔法方法:解锁对象行为的神秘力量
  • 开疆智能ModbusTCP转Devicenet网关连接远程I/O配置案例
  • IP证书的申请攻略有哪些?有何作用?
  • Qt QTcpSocket的write无法发送数据【已解决】
  • TCP 网络调试工具详细设计
  • MySQL锁机制的优化和MVCC底层原理解释
  • spring(springmvc,springboot)-hibernate(jpa,mybtis)-jsp整合
  • 和为k的子数组
  • MyBatisPlus框架
  • Parasoft C++Test软件集成测试(部件测试)_操作指南
  • 【springboot组件开发】三方中间件自定义自动装载(rabbitmq/rocketmq/cmq)
  • C# 界面检测显示器移除并在可用显示器上显示
  • 图像处理 | 基于matlab的多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)算法联合的低照度图像增强(附代码)
  • NGINX 四层 SSL/TLS 支持ngx_stream_ssl_module
  • Parasoft C++Test软件集成测试(部件测试)_实例讲解
  • python在容器内克隆拉取git私有仓库