7 概率机器人 Probabilistic Robotics 扩展信息滤波算法

1 前言

  • 信息滤波到扩展信息滤波这里会类比从卡尔曼滤波扩展卡尔曼滤波

  • 公式推导也采用和之前一样的类比方法

  • 传统的高斯分布用均值 μ \mu μ和方差 Σ \Sigma Σ表示,而信息滤波的高斯分布用信息向量 ξ \xi ξ和信息矩阵 Ω \Omega Ω表示, 详细介绍见信息滤波
    Ω = Σ − 1 ξ = Σ − 1 μ ⇒ Σ = Ω − 1 μ = Ω − 1 ξ 注:方差信息矩阵 Σ 也叫做不确定度矩阵;信息矩阵 Ω 也叫做精确度矩阵 \begin{aligned} \Omega &= \Sigma^{-1}\\ \xi &= \Sigma^{-1} \mu \end{aligned} \Rightarrow \begin{aligned} \Sigma &= \Omega^{-1}\\ \mu&= \Omega^{-1} \xi \end{aligned}\\ \text{注:方差信息矩阵$\Sigma$也叫做不确定度矩阵;信息矩阵$\Omega$也叫做精确度矩阵} Ωξ=Σ1=Σ1μΣμ=Ω1=Ω1ξ注:方差信息矩阵Σ也叫做不确定度矩阵;信息矩阵Ω也叫做精确度矩阵

  • 扩展信息滤波和扩展卡尔曼滤波一样,都是用在非线性状态转移函数和非线性测量函数中
    x t = g ( u t , x t − 1 ) + ϵ t z t = h ( x t ) + δ t x_t = g(u_t, x_{t-1}) + \epsilon_t\\ z_t = h(x_t) + \delta_t xt=g(ut,xt1)+ϵtzt=h(xt)+δt

2 扩展信息滤波算法

  • 扩展信息滤波算法
    在这里插入图片描述

  • 从算法中可以看出和前面介绍的几种滤波方法类似:均由预测和测量更新组成

3 实例

  • 这里采用扩展卡尔曼滤波的实例:
  • 实例:雷达监测空中抛物轨迹
    • 从空中位置 ( x ( 0 ) = 0 , y ( 0 ) = 500 ) (x(0)=0,y(0)=500) (x(0)=0,y(0)=500)水平抛射出一个物体(初始水平速度为 v x ( 0 ) = 50 v_x(0)=50 vx(0)=50,初始竖直速度为 v y ( 0 ) = 0 v_y(0)=0 vy(0)=0
    • 物体受重力 g = 9.8 g=9.8 g=9.8和阻尼力(与速度的平方成正比)的影响
    • 水平和竖直阻尼系数分别为 k x = 0.01 , k y = 0.05 k_x=0.01,k_y=0.05 kx=0.01,ky=0.05,不确定度为零均值白噪声 δ a x ∼ N ( 0 , 0.09 ) ∼ N ( ξ = 0 , Ω = 1 / 0.09 ) , δ a y ∼ N ( 0 , 0.09 ) ∼ N ( ξ = 0 , Ω = 1 / 0.09 ) \delta a_x \sim N(0, 0.09)\sim N(\xi=0, \Omega = 1/0.09), \delta a_y \sim N(0, 0.09)\sim N(\xi=0, \Omega = 1/0.09) δaxN(0,0.09)N(ξ=0,Ω=1/0.09),δayN(0,0.09)N(ξ=0,Ω=1/0.09)
    • 在坐标原点处有一雷达,可测得距离 r r r,角度 α \alpha α, 不确定度为零均值白噪声 δ r ∼ N ( 0 , 64 ) ∼ N ( ξ = 0 , Ω = 1 / 64 ) , δ α ∼ N ( 0 , 0.01 ) ∼ N ( ξ = 0 , Ω = 1 / 0.01 ) \delta r \sim N(0, 64)\sim N(\xi=0, \Omega = 1/64),\delta \alpha \sim N(0, 0.01)\sim N(\xi=0, \Omega = 1/0.01) δrN(0,64)N(ξ=0,Ω=1/64),δαN(0,0.01)N(ξ=0,Ω=1/0.01)

在这里插入图片描述

  • 状态变量: 物体横向位置 x ( k ) x(k) x(k),物体横向速度 v x ( k ) v_x(k) vx(k),物体纵向位置 y ( k ) y(k) y(k),物体纵向速度 v y ( k ) v_y(k) vy(k)
    X ( k ) = [ x ( k ) , v x ( k ) , y ( k ) , v y ( k ) ] X(k) = [x(k), v_x(k), y(k), v_y(k)] X(k)=[x(k),vx(k),y(k),vy(k)]

  • 状态方程:
    x ( k + 1 ) = x ( k ) + v x ( k ) ⋅ T v x ( k + 1 ) = v x ( k ) − ( k x ⋅ v x 2 ( k ) + δ a x ) ⋅ T y ( k + 1 ) = y ( k ) + v y ( k ) ⋅ T v y ( k + 1 ) = v y ( k ) + ( k y ⋅ v y 2 ( k ) − g + δ a y ) ⋅ T \begin{aligned} x(k+1) &= x(k) + v_x(k) \cdot T\\ v_x(k+1) &= v_x(k) - (k_x \cdot v_x^2(k) + \delta a_x)\cdot T\\ y(k+1) &= y(k) + v_y(k) \cdot T \\ v_y(k+1) &= v_y(k) + (k_y \cdot v_y^2(k) - g + \delta a_y)\cdot T \end{aligned} x(k+1)vx(k+1)y(k+1)vy(k+1)=x(k)+vx(k)T=vx(k)(kxvx2(k)+δax)T=y(k)+vy(k)T=vy(k)+(kyvy2(k)g+δay)T

  • 观测方程:
    r ( k ) = x ( k ) 2 + y ( k ) 2 + δ r α ( k ) = arctan ⁡ x ( k ) y ( k ) + δ α \begin{aligned} r(k) &= \sqrt{x(k)^2 + y(k)^2 } + \delta r\\ \alpha(k) &= \arctan{\frac{x(k)}{y(k)}} + \delta \alpha\\ \end{aligned} r(k)α(k)=x(k)2+y(k)2 +δr=arctany(k)x(k)+δα

  • 雅克比矩阵: G t \text{雅克比矩阵:} G_t 雅克比矩阵:Gt
    G t = [ 1 T 0 0 0 1 − 2 k x v x T 0 0 0 0 1 T 0 0 0 1 + 2 k y v y T ] x t − 1 = μ t − 1 G_t = \begin{bmatrix} 1& T& 0& 0 \\ 0& 1 - 2k_x v_xT& 0& 0\\ 0& 0& 1& T \\ 0& 0& 0& 1 + 2k_y v_yT\\ \end{bmatrix}_{x_{t-1}=\mu_{t-1}} Gt=1000T12kxvxT00001000T1+2kyvyTxt1=μt1

  • 雅克比矩阵: H t \text{雅克比矩阵:} H_t 雅克比矩阵:Ht
    H t = [ x r 0 y r 0 1 / y 1 + ( x / y ) 2 0 − x / y 2 1 + ( x / y ) 2 0 ] x t = μ ˉ t H_t = \begin{bmatrix} \frac{x}{r}& 0& \frac{y}{r}& 0 \\ \frac{1/y}{1+(x/y)^2}& 0& \frac{-x/y^2}{1+(x/y)^2}& 0 \\ \end{bmatrix}_{x_t = \bar{\mu}_{t}} Ht=[rx1+(x/y)21/y00ry1+(x/y)2x/y200]xt=μˉt

  • 仿真时间总为 t = 15 t=15 t=15,采样周期 T = 0.1 T=0.1 T=0.1, 滤波效果如图:

在这里插入图片描述

  • matlab 代码
clear;
close all;
clc
%% 初值设定
x_0 = 0;                    %初始x位置
y_0 = 500;                  %初始y位置
v_x_0 = 50;                 %初始x速度
v_y_0 = 0;                  %初始y速度
g = 9.8;                    % 重力加速度
k_x = 0.01;                 % 阻尼系数
k_y = 0.05;                 % 阻尼系数
omega_a_x = 1 / 0.09;       % 状态转移不确定度方差
omega_a_y = 1 / 0.09;       % 状态转移不确定度方差
omega_r = 1 / 64;           % 测量不确定度方差
omega_alpha = 1 / 0.01;     % 测量不确定度方差
t = 15;                     % 仿真时间
T = 0.1;                    % 采样周期 
len = fix(t/T);             % 仿真步数
%% 真实轨迹
X = zeros(len, 4);
X(1,:) = [x_0, v_x_0, y_0, v_y_0];
for k = 2 : len
    x_k = X(k-1,1);
    v_x_k = X(k
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《概率机器人学PDF》是一本关于概率机器人学的电子书籍。概率机器人学是研究如何用概率方法来建模和解决机器人感知、定位、运动规划和决策等问题的学科。 这本书从理论和实践的角度介绍了概率机器人学的基本概念、算法和应用。它提供了对机器人行为建模的概率框架、感知和定位问题的概率算法、运动规划和路径规划的概率方法、以及机器人决策和控制过程中的概率理论等方面的深入讨论。 《概率机器人学PDF》还提供了大量的实例和案例,帮助读者理解和应用概率机器人学的方法。通过这本书,读者可以了解到如何使用概率方法来处理机器人在未知环境中的感知和定位问题,如何规划机器人的运动路径并做出决策,以及如何使用概率模型来解决机器人与环境和其他机器人之间的交互问题。 概率机器人学在机器人领域具有广泛的应用前景,能够解决现实世界中的复杂问题。《概率机器人学PDF》提供了一个系统而全面的介绍,是机器人领域从事研究和应用的学者、工程师和学生们的重要参考工具。无论是对概率机器人学感兴趣的人,还是希望进一步深入了解该领域的人,这本书都是值得阅读的。 ### 回答2: 《概率机器人》是一本由Sebastian Thrun、Wolfram Burgard和Dieter Fox合著的经典教材,主要介绍了概率机器人领域的理论与方法。该书围绕着概率推理和感知的概念,提供了一种用于解决机器人控制和感知问题的新的思维模式。 该书的重点内容包括机器人感知、动态以及机器人定位与地图构建等关键技术。通过引入概率思想,概率机器人能够处理传感器误差、不确定性以及环境的复杂性等挑战,从而提高机器人系统的自主性和鲁棒性。 此外,《概率机器人》还详细介绍了一些常用的概率算法与模型,例如贝叶斯滤波器、粒子滤波器、马尔可夫决策过程等。这些算法和模型不仅能够提供有效的机器人定位与地图构建的方法,还能够优化路径规划和运动控制等关键问题。 《概率机器人》不仅适合作为机器人学、人工智能等相关专业的教材,也适用于研究人员和工程师作为参考手册。该书提供了大量的实例和算法推导,能够帮助读者理解概率机器人的基本原理和应用方法。 总而言之,通过阅读《概率机器人》,读者能够了解概率机器人在控制和感知方面的相关理论和技术,并了解如何利用概率推理来提高机器人系统的表现和鲁棒性。该书提供了对于概率机器人领域的全面介绍,是相关领域学习和研究的重要参考资料。 ### 回答3: 《概率机器人学》(Probabilistic Robotics)是由Sebastian Thrun, Wolfram Burgard和Dieter Fox等人合著的一本经典著作。该书是机器人学领域的重要参考书籍之一,详尽地介绍了概率机器人学的基本理论和方法。 概率机器人学是一种基于概率及统计的机器人感知、控制和决策的方法。其核心思想是通过建立与问题相关的概率模型来推断机器人的状态、环境和行为,并基于这些预测进行决策和控制。这种基于概率的方法能够更有效地处理传感器噪声、不完全数据和环境的不确定性等问题,使机器人在复杂和不确定的环境中更好地执行任务。 《概率机器人学》这本书系统地介绍了概率机器人学的基本概念、传感器模型、运动模型和滤波器等方法。书中还详细探讨了几种典型的概率机器人算法,包括粒子滤波器、扩展卡尔曼滤波器和蒙特卡洛定位等。此外,该书还介绍了概率地图建模、路径规划和决策制定等高级话题。 《概率机器人学》是一本理论与实践相结合的书籍,通过大量的数学推导和实例展示了概率机器人学的应用。这本书适合机器人学、人工智能和自动化等相关领域的研究人员、教师和学生使用。通过阅读这本书,读者能够深入理解概率机器人学的原理,掌握相关的算法和工具,为机器人的设计、控制和决策提供有力的理论支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值