1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 占用栅格地图(occupancy grid map)

占用栅格地图(occupancy grid map)

时间:2020-03-09 16:22:01

相关推荐

占用栅格地图(occupancy grid map)

机器人地图分类

尺度地图(metric map):每一个地点都可以用坐标来表示,比如经纬度。拓扑地图(topological map):每一个地点用一个点来表示,用边来连接相邻的点,即图论中的图。语义地图(semantic map):每一个地点和道路都会用标签的集合来表示。

占用栅格地图(occupancy grid map)

在通常的尺度地图中,对于一个点,要么有障碍物,要么没有障碍物。在占据栅格地图中,对于一个点,用p(s=1)来表示它是free状态的概率,用p(s=0)来表示它是occupied的状态的概率,两者的和为1。

定义

Odd(s)=p(s=1)p(s=0)Odd(s)=\frac{p(s=1)}{p(s=0)} Odd(s)=p(s=0)p(s=1)​

作为点的状态。当获得一个新的测量值(Measurement,z{0,1})(Measurement,z~\{0,1\})(Measurement,z{0,1})时,更新

Odd(s∣z)=p(s=1∣z)p(s=0∣z)Odd(s|z)=\frac{p(s=1|z)}{p(s=0|z)} Odd(s∣z)=p(s=0∣z)p(s=1∣z)​

Odd(s∣z)Odd(s|z)Odd(s∣z)表示在zzz繁盛的条件下sss的状态。

根据贝叶斯公式,我们有:

p(s=1∣z)=p(z∣s=1)p(s=1)p(z)p(s=1|z)=\frac{p(z|s=1)p(s=1)}{p(z)}p(s=1∣z)=p(z)p(z∣s=1)p(s=1)​

p(s=0∣z)=p(z∣s=0)p(s=0)p(z)p(s=0|z)=\frac{p(z|s=0)p(s=0)}{p(z)}p(s=0∣z)=p(z)p(z∣s=0)p(s=0)​

带入之后,得:

Odd(s∣z)=p(s=1∣z)p(s=0∣z)=p(z∣s=1)p(s=1)/p(z)p(z∣s=0)p(s=0)/p(z)=p(z∣s=1)p(z∣s=0)Odd(s)Odd(s|z)=\frac{p(s=1|z)}{p(s=0|z)}=\frac{p(z|s=1)p(s=1)/p(z)}{p(z|s=0)p(s=0)/p(z)}=\frac{p(z|s=1)}{p(z|s=0)}Odd(s)Odd(s∣z)=p(s=0∣z)p(s=1∣z)​=p(z∣s=0)p(s=0)/p(z)p(z∣s=1)p(s=1)/p(z)​=p(z∣s=0)p(z∣s=1)​Odd(s)

两边取对数得:

logOdds(s∣z)=logp(z∣s=1)p(z∣s=1)+logOdds(s)logOdds(s|z)=log\frac{p(z|s=1)}{p(z|s=1)}+logOdds(s)logOdds(s∣z)=logp(z∣s=1)p(z∣s=1)​+logOdds(s)

这样,含有测量值的项就只剩下了logp(z∣s=1)p(z∣s=0)log\frac{p(z|s=1)}{p(z|s=0)}logp(z∣s=0)p(z∣s=1)​,称这个比值为测量值模型(measurementmodel)(measurement\ model)(measurementmodel),标记为lomeaslomeaslomeas。测量值的模型只有两种:

lofree=logp(z=0∣s=1)p(z=0∣s=0)lofree = log\frac{p(z=0|s=1)}{p(z=0|s=0)} lofree=logp(z=0∣s=0)p(z=0∣s=1)​

looccu=logp(z=1∣s=1)p(z=1∣s=0)looccu = log\frac{p(z=1|s=1)}{p(z=1|s=0)} looccu=logp(z=1∣s=0)p(z=1∣s=1)​

两者都是定值,这样,如果我们用logOdd(s)logOdd(s)logOdd(s)来表示位置sss的状态SSS的话,我们的更新规则就进一步简化成了S+=S−+lomeasS^+=S^-+lomeasS+=S−+lomeas其中S+和S−S^+和S^-S+和S−分别表示测量值之后和之前sss的状态。另外,在没有任何测量值的初始状态下,一个点的初始状态

Sinit=logOdd(s)=logp(s=1)p(s=0)=log0.50.5=0S_{init}=logOdd(s)=log\frac{p(s=1)}{p(s=0)}=log\frac{0.5}{0.5}=0 Sinit​=logOdd(s)=logp(s=0)p(s=1)​=log0.50.5​=0

经过这样的建模,更新一个点的状态就只需要做简单的加减法。

假设我们设定looccu=0.9,lofree=−0.7looccu=0.9,lofree=-0.7looccu=0.9,lofree=−0.7。那么,一个点状态的数值越大,就表示越肯定它是OccupiedOccupiedOccupied状态,相反数值越小,就表示越肯定它是freefreefree的状态。上图展示了用两个激光传感器的数据更新地图的过程。在结果中,一个点颜色越深越肯定它是freefreefree的,颜色越浅越肯定它是occupiedoccupiedoccupied的。

转自:/p/21738718/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。