概率机器人2_C2 状态估计-贝叶斯滤波器

2023-12-21 19:20

本文主要是介绍概率机器人2_C2 状态估计-贝叶斯滤波器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Abbr:

 TBD

牢记

重点

  • 后验:posterior , 先验:prior
  • 概率密度函数: PDF
  • 一维正态分布表示:
  • 离散时间: 本书中的时间将是离散的, t1,t2,t3,... tn
  • 状态用 x 表示,尽管 x 所包含的具体变量取决于上下文。时间 t的状态表示为 xt 。
  • 在时间 t 的测量数据表示为 zt
  • 控制数据用 ut表示
     
  • pose : 6自由度表示 : (x,y,z)坐标和对应的 三个旋转角 (roll,pitch,yaw)--一阶就是得到速度变化率,只在平面上运动的话,就缩减为(x,y,0),(0,0,yaw=heading angle) 3个自由度。
  • 系统状态等于某一个绝对值(真值)的概率。用bel (xt)表示
  • 运动学状态 =(kinematic state)
  • 地标:环境物体的位置都是静态的。本书将物体假设为地标 (landmarks) 形式
  • 状态 xt,是随机地,由状态 xt-1 产生的。因此,指定生成 xt的概率分布是有意义的 。表示为:  。如果状态 x 是完整的,那么它是所有以前时刻发生的所有状态的充分总结

本节是全书的理论基石


Recursive State Estimation 递归状态估计

核心:就是由传感器数据来进行“状态估计”

状态方程中的状态变量 通常不能被传感器准确,直接测得。---无法只通过一次测量确定位姿 (同一个场景中,如果有相同的门,没法确定是哪一个!)。必须长时间整合数据以确定它的位姿 。 而且还混杂了噪声。因此用概率置信度来估计状态变量。比如定位问题,机器人自己在哪儿?--98%的概率处于坐标(x,y)处。

 

1. 基本概念:

随机变量:传感器测量、控制、机器人的状态及其环境

概率推理: 由其他随机变量和所观测数据推导随机变量的相关定律 的过程
Probability Density Function PDF : p(x)

概率密度函数:的积分总为1,

一维正态分布PDF:

多维正态分布的PDF:

协方差矩阵:

本书假设:连续空间,随机变量的取值连续, 都存在概率密度函数

 联合分布-joint distribution , 独立的事件(随机变量取值为x,y --传感器测量值为z1,z2 ...)的联合分布就是p(z1,z2...)=p(z1)p(z2)...

条件概率:p(zt| zt-1,zt-2,...) 传感器历史测量值zt-1,zt-2 .. 发生的条件下,测量值为zt的概率。Zt 是真值。

一般表达式--p(x,y)/p(y)= p(x|y) ,如果x,y 独立,则,p(x).p(y)/ p(y)= p(x) = p (x|y)

Y 不会有任何关于 X 值的信息。如果对 X 感兴趣则知道 Y 值没有任何帮助
 

全概率公式

事件Y在y 取值空间内,能得到事件(结果)X=x值得可能性,先验过程

贝叶斯公式:表达了条件概率和 "逆"条件概率的关系

 条件y=全概率-对应结果,x某一个原因, x' 表示所有的原因

 

已知:全概率,已知条件概率,求出逆条件概率,就直接运用公式。

x--对应原因(推测的状态变量值),y--结果(表示传感器的测量值zt-1,zt-2,...),已知结果,求原因,后验估计

注:下图中,分子上的x,或等式坐标的x的取值是某一个值,分母下面x'表示x的全部可能取值。这样才能利用全概率公式,求出p(y)

概率 p(ylx) 经常被称为生成模型 (generative model) , 因为在一定的抽象层面上,它表示状态变量 X 如何引起了检测数据

归一化的贝叶斯公式:
 

 

注: Vx-- 某一个任意x值, 下面 求和公式,x-x全部可能取值,为了得到全概率。 

 

因此: 贝叶斯,就是对应,一个条件下的xx事件的概率,比上 全部条件下 的xx事件的概率(全概率)== xx事件下,这一个条件发生的概率。


 

中文page 36

条件独立

咋一看,状态 x, 的出现可能是以所有过去的状态xt-1、测量zt和控制ut为条件的 。表示成: xt-1 和ut 可以表示xt的完整状态空间,和zt无关 和历史的控制量,状态量也无关,所以利用条件独立,得到

同理对于测量来说:只和当前的状态有关。

由上面的定义获得 2个概率定义--

测量概率 xt 表示当前状态,zt是测量值。  测量的结果由环境状态x产生。测量不准确有噪声,所以用概率的形式表示测到这个zt的真值的概率。这就是测量概率法则

状态转移概率state transition probability:

马尔可夫链 (Markov chain) :未来xt+1...可以是随机的,但是没有先于xt, 的历史状态变化可以影响未来状态的随机变化,除非这种依赖通过状态 xt, 起作用。满足这些条件的暂态过程通常称为马尔可夫链 (Markov chain) 。历史状态:xt-1,xt-2,xt-3....  当前状态xt, 未来的状态xt+1,xt+2...  (结合了上面2个概率-构成马尔科夫)

状态转移概率和测量概率一起描述机器人及其环境组成的动态随机系统。时刻t 的状态随机地依赖 t -1 时刻的状态和控制 ut, 。测量 zt, 随机地依赖时刻 t 的状态。

隐马尔可夫模型=动态贝叶斯网络下图时间生成模型也称为隐马尔可夫模型 (Hidden Markov Model , HMM) 或者动态贝叶斯网络 (Dynamic Bayes Network, DBN)

 


置信分布 ≈ 条件概率

我们无法直接测量系统的状态(位姿 -6自由度)。传感器的测量也不能直接测量获得位姿,同时含有噪声干扰的。

我们只能从历史测量数据中推断出 系统的状态(可能概率--置信度)。

因此有必要通过置信度来表达,系统状态等于某一个绝对值(真值)的概率。bel (xt)表示。

已知历史测量值(条件下),后验概率(条件概率)表示为:

考虑了, t 时的测量值Zt, 所有的历史测量和历史控制。

(注意比较前面的公式,想一想,如果xn 不能准确获得,只能通过测量和控制量来预测,就能理解了。  这里和下面贝叶斯滤波器,冲突,感觉公式改成 bel(xt)=p(xt| xt-1,ut) 更make sense.)

概率滤波器-框架

如果只是用t-1之前的测量和,历史控制,获得的bet(xt)为预测阶段:(xt还未发生,还未测量),表示

, (注意算法时间的话,应该用积分(算法求和)来表示1:t的所有历史信息)测得zt之后,,结合预测的, 进行修正,来更新预测( 测量更新阶段):

注:priro --就是贝叶斯公式中右边,条件的 每一个取值的概率。)分布情况,只有已知了。


贝叶斯滤波器:(中文page 38)

利用上面的公式预测和更新公式。

预测:,bel(xt-1),表示t-1时刻的置信度,前面的是状态转移概率。相乘表示同时发生的可能性。积分,表示历史信息的叠加.1到 t-1 时刻

更新;,p(xt|zt)=  ?利用贝叶斯公式, 获得。

初始化:,bel(x0) =xxx(x0,所有取值空间对应的概率,-先验), u0...t  (转移概率分布)已知, z0...t (测量概率分布)已知

这样可以预测下个时刻的bel(xt). 后验估计。(注意积分项,算法中实现就是一个累加的过程。)

这样系统就迭代循环起来了。 推导过程参考:<中文page41>

注: 注意xt-1 的下标。


算法:

TBC:  如何初始化定义这三个概率分布。chapter 5--转移概率, chapter 6-测量概率, 先验概率 bel(x0)  chapter 3&4


举例:

已知:

机器人可以测量(z1...zn, 取值空间为:开,关,对应测量概率分布p(zt|xt)--传感器概率模型),动作:(u1...ut,取值空间为:开门、关门, 对结果的影响,对应状态转移概率,p(xt|xt-1,ut),  系统x状态:开、关,对应的先验概率分布情况

这样可以估计任意时刻的置信度: bel(xt| zt,ut) = ??


总结

  • 假设世界是马尔可夫的,也就是状态是完整的,贝叶斯滤波算法以到时间 t 的测量和控制数据为条件来计算状态 x。是一种后验估计。
  • 2个概率法则:状态转移概率,测量概率 ; 贝叶斯估计(置信度bel(x))依赖有关测量、状态转移概率和初始置信度bel(x0)的假定,概率模型建模的过程肯定需要数学近似。近似过程(概率建模过程)需要考虑 :时间复杂度/效率, 精度,算法实现容易程度。
  • 贝叶斯滤波不是一个实际的算法,不能用数字计算机实现。 基于贝叶斯滤波框架有很多经典的算法,比如卡尔曼滤波、粒子滤波 etc...


 

 

 

 

这篇关于概率机器人2_C2 状态估计-贝叶斯滤波器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/521185

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

状态模式state

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/state 在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 在状态模式中,player.getState()获取的是player的当前状态,通常是一个实现了状态接口的对象。 onPlay()是状态模式中定义的一个方法,不同状态下(例如“正在播放”、“暂停

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是: