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 ++;
    }
}
Example #2
0
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());
  }
}