zoukankan      html  css  js  c++  java
  • 关于概率运动模型

      在做gmapping当中,有考虑里程计的信息,因此学习了一下里程计相关的运行模型,尤其是概率运动模型。

      相关资料参考自网址:https://www.mrpt.org/tutorials/programming/odometry-and-motion-models/probabilistic_motion_models/

    一、简介

      粒子滤波器中,每一个时间步骤都会使用提议分布进行采样,采用概率与运动模型是提议分布的一种常用方法。

      (我的理解是,重采样的粒子分布情况,依据里程计给出的位置,予以一定的修正进行采样)。

    二、高斯概率运动模型

      现在假设,机器人在2D平面上运动,里程计是增量形式反馈数据,那么里程计每一次增量值如下形式:

      (非原创图)

      这三个变量在坐标图中显示为:

      

      设机器人之前的pose是,现在的地址是,那么增量公式为:

      

      (这里,我自己一直是使用增量之后的角度,进行正弦余弦计算的,似乎有误差!!!)

      那么现在,就是在增量的基础上进行新位置的高斯分布采样,假设前一个坐标是确定的,假设为(0 0 0),则新的坐标为:

      

      这个公式说明,采用前一个坐标的位置和里程计增量计算出高斯的期望值坐标,而协方差需要评估一下三个里程计增量的方差值,我们假设三个值相互独立,高斯值 由非完美的里程计采样和潜在的漂移影响。

      我们指定为由里程计三个变量的协方差矩阵(没看明白),

      建模:

      

      默认参数为:

      

      里程计增量C后的新坐标的协方差由该公式计算为:

      

      J代表Jacobian of H。

    三、Thrun, Fox & Burgard's book particle motion model

      上面的里程计读数为,假设上一个点的坐标是(0 0 0),这意味着我们只需要对增量进行采样,不用对最终坐标采样,新的机器人坐标可以这样进行采样:

      

      如图所示:

      

      这里三个变量,是增加了一个零期望的高斯噪声给实际的码盘读数:

      

      然后标准差(?)是采用下列公式进行近似计算:

      

      

    四、其他分析

      常见的机器人运动模型包括:速度计运动模型,里程计运动模型和惯导运动模型。概率运动模型是对机器人运动的一种概率描述。

      里程计是比较常见的一种类型,里程计是一种传感器测量信息,而不是控制信息。将里程计视为测量信息,贝叶斯滤波需要包含速度作为状态变量,将增加状态空间的维度,因此,为了减少状态空间,通常将里程计数据视为控

      那么定义:t-1时刻的位置xt1=(x,y,θ)T,t时刻位姿态xt=(x,y,θ)Txt=(x′,y′,θ′)T,运动控制信息ut,概率运动模型为P{xt|ut,xt1}

      其中,运动控制信息。。。

      见http://www.cnblogs.com/yhlx125/p/5677135.html

     

  • 相关阅读:
    让flask在出现语法错误时仍然自动重启
    ubuntu配置zsh和oh-my-zsh
    docker运行python3.6+flask小记
    vscode python3 配置生成任务
    从flask视角理解angular(四)Route
    从flask视角理解angular(三)ORM VS Service
    从flask视角理解angular(二)Blueprint VS Component
    从flask视角学习angular(一)整体对比
    Linux高级变量
    linux系统中查看日志及系统信息
  • 原文地址:https://www.cnblogs.com/cwyblogs/p/8205084.html
Copyright © 2011-2022 走看看