自动驾驶定位算法-递归贝叶斯滤波(Bayes Filter)

自动驾驶定位算法-递归贝叶斯滤波(Bayes Filter)

附赠自动驾驶学习资料和量产经验:链接

贝叶斯滤波器(Bayes Filter)是无人驾驶汽车中高精定位相关的基础技术,同时也是机器人技术中的基础算法。

如上图,开始机器人不知道自己在哪里,跟人在陌生的环境中一样,一脸茫然,觉得四周哪里都一样,对机器人来说就是在任何地方的置信度都相等。

置信度(Belief)是什么

要让机器人理解物理世界,就需要给机器人安装各种传感器,比如摄像头、GPS、轮速记等等,通过传感器让机器人可以对周围环境进行建模,从而理解自己所处的位置和处境。真实的世界是非常复杂、动态变化的,机器人没有能力也不可能把周围环境都刻画出来。比如机器人运动过程中,受风速或者地面湿度影响,它通过轮速计知道自己走了1m,由于地面打滑或者大风影响,导致实际只向前走了0.9m。采用越多越精确的传感器,就能够把环境刻画的越精确,但是刻画的越精确,参数越多,计算就越复杂,甚至不可行。即使我们可以通过传感器刻画出环境的所有维度,由于传感器自身测量存在的误差或者噪声,导致机器人仍然不可能确认自己的位置。

由于环境的不可完全观测性,我们引入一个置信度(Belief)的概念,表示每一个可能的状态(state)的概率。

递归贝叶斯算法:

继续机器人的定位故事:

走到第一个门的时候,通过观察看到一个门,因为机器人通过地图应该有三个门,它就确定自己应该在三个门之一的任何一个位置,于是在三个门处的概率就大大增加。

由于机器人安装了里程计,走到第二个门的时候,根据自己走的距离和两个门的信息已经有绝大部分把握知道自己在哪里了。

相关推荐
Christo37 分钟前
TFS-2026《Fuzzy Multi-Subspace Clustering 》
人工智能·算法·机器学习·数据挖掘
2401_8576835419 分钟前
C++中的原型模式
开发语言·c++·算法
s1hiyu29 分钟前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)30 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
We་ct30 分钟前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
星火开发设计34 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
mit6.8241 小时前
dijk|tire+floyd+dp %
算法
独自破碎E1 小时前
【总和拆分 + 双变量遍历】LCR_012_寻找数组的中心下标
数据结构·算法
WBluuue1 小时前
Codeforces 1076 Div3(ABCDEFG)
c++·算法
u0109272711 小时前
模板编译期排序算法
开发语言·c++·算法