- 似然函数可能不正确地实现所有粒子或返回相同的值。
- 你也可以尝试绘制每个粒子将测量的可能性是否存在任何模式或可能性的计算问题。
- 测量噪声方差设置过低,这可能导致所有粒子有类似的可能性,因此类似的权重值。
- 如果重新取样没有正确执行,这可能会导致所有粒子都有同样的重量。
粒子重量更新似乎并不工作
5 Ansichten(30天)的
Altere Kommentare anzeigen
你好,
我实现了一个2 d入住率地图和一个机器人模型。机器人将会在地图上移动。它配备了一个模拟激光雷达传感器。如果我让Matlab的蒙特卡罗定位功能运行,我的代码工作。粒子收敛于机器人的位置。然而,如果我检查过程中粒子权重,它们都是一样的。如果我有2000个粒子,所有2000个粒子总是有相同的重量。有人知道为什么这是或可能是什么问题?
我假设代码正常工作因为它并收敛。所以重量必须改变在后台没有我的知识。
代码的主要部分是在每个时间步的循环。最后Vehiclepose将被更新为下一个时间步。
(范围、角度)=激光雷达(Vehiclepose,地图);
扫描= lidarScan(范围、角度);
[isUpdated, estimatedPose estimatedCovariance] =制程(Vehiclepose,扫描);
(颗粒、重量)= getParticles(制程);
谢谢你!
0 Kommentare
Antworten (1)
Gokul Nath年代J
我2023年4月19日
Bearbeitet:Gokul Nath年代J
我2023年4月19日
嗨DarZim,
根据我的理解,似乎整个模拟粒子权重是统一的。
如果所有2000个粒子具有相同的重量在蒙特卡洛定位过程中,那么它可能有一个错误在你实现粒子的权重更新步骤。
注意,粒子权重更新的可能性的基础上测量粒子的位置。一些可能的解释为什么下面列出了粒子在相同的权重,
谢谢,
Gokul Nath年代J