Particle Weight update does not seem to work
Hello,
I have implemented a 2D occupancy map and a robot model. The robot will move through the map. It is equipped with a simulated Lidar sensor. If I let the Monte Carlo Localization function of Matlab run, my code works. The particles converge to the robot’s position. However, if I check the particle weights during the process, they are all the same. If I have 2000 particles, all 2000 particles always have the same weights. Does someone know why this is or what the problem might be?
I am assuming that the code works correctly since it does converge. So the weights have to be changing in the background without my knowledge.
The main part of the code is this in a loop for each time step. At the end Vehiclepose will be updated for the next time step.
[ranges,angles] = lidar(Vehiclepose,map);
scan = lidarScan(ranges,angles);
[isUpdated,estimatedPose, estimatedCovariance] = mcl(Vehiclepose, scan);
[particles,weights] = getParticles(mcl);
Thank you.Hello,
I have implemented a 2D occupancy map and a robot model. The robot will move through the map. It is equipped with a simulated Lidar sensor. If I let the Monte Carlo Localization function of Matlab run, my code works. The particles converge to the robot’s position. However, if I check the particle weights during the process, they are all the same. If I have 2000 particles, all 2000 particles always have the same weights. Does someone know why this is or what the problem might be?
I am assuming that the code works correctly since it does converge. So the weights have to be changing in the background without my knowledge.
The main part of the code is this in a loop for each time step. At the end Vehiclepose will be updated for the next time step.
[ranges,angles] = lidar(Vehiclepose,map);
scan = lidarScan(ranges,angles);
[isUpdated,estimatedPose, estimatedCovariance] = mcl(Vehiclepose, scan);
[particles,weights] = getParticles(mcl);
Thank you. Hello,
I have implemented a 2D occupancy map and a robot model. The robot will move through the map. It is equipped with a simulated Lidar sensor. If I let the Monte Carlo Localization function of Matlab run, my code works. The particles converge to the robot’s position. However, if I check the particle weights during the process, they are all the same. If I have 2000 particles, all 2000 particles always have the same weights. Does someone know why this is or what the problem might be?
I am assuming that the code works correctly since it does converge. So the weights have to be changing in the background without my knowledge.
The main part of the code is this in a loop for each time step. At the end Vehiclepose will be updated for the next time step.
[ranges,angles] = lidar(Vehiclepose,map);
scan = lidarScan(ranges,angles);
[isUpdated,estimatedPose, estimatedCovariance] = mcl(Vehiclepose, scan);
[particles,weights] = getParticles(mcl);
Thank you. montecarlolocalization, particlefilter, weights, lidar MATLAB Answers — New Questions