void Simulation::generateRandomParticles(float range, bool canBeNegative) { int index = 0; while(index < particlesNumber) { Particle p = generateRandomParticle(range, canBeNegative); p.mass = 0.000001f; addParticle(p); index ++; } }
ParticleFilter::ParticleFilter(double map_min_x, double map_max_x, double map_min_y, double map_max_y, ComputeParticleWeightCallback callback) : callback_(callback) , particle_set_size_( (map_max_x-map_min_x)*(map_max_y-map_min_y)*4 ) , motion_guesses_(1) , random_particles_size_(0.05) , motion_model_(0.02, 0.01) , distribution_x_(map_min_x, map_max_x) , distribution_y_(map_min_y, map_max_y) , distribution_theta_(-M_PI, M_PI) { // initialize particle set with number of random particles for (uint i = 0; i < particle_set_size_; i++) { particles_.push_back(generateRandomParticle()); } }