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

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

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

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

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

置信度(Belief)是什么

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

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

递归贝叶斯算法:

继续机器人的定位故事:

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

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

相关推荐
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
Swift社区5 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman6 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
飞滕人生TYF6 小时前
m个数 生成n个数的所有组合 详解
java·递归
IT 青年6 小时前
数据结构 (1)基本概念和术语
数据结构·算法
Dong雨7 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
SoraLuna7 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
liujjjiyun7 小时前
小R的随机播放顺序
数据结构·c++·算法
¥ 多多¥7 小时前
c++中mystring运算符重载
开发语言·c++·算法
trueEve8 小时前
SQL,力扣题目1369,获取最近第二次的活动
算法·leetcode·职场和发展