Mobile Robot Control 2024 Ultron:Solution 4: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Tag: 2017 source edit
Line 16: Line 16:
'''3.How are the ParticleFilter and Particle class related to eachother?'''
'''3.How are the ParticleFilter and Particle class related to eachother?'''


*The <code>ParticleFilter</code> class manages multiple <code>Particle</code> instances, each representing a possible system state. It initializes these particles and updates their states and weights using methods like <code>propagateSample</code> and <code>computeLikelihood</code>. The <code>ParticleFilter</code> also includes a <code>Resampler</code> to handle resampling based on particle weights. Methods such as <code>getPosition</code> and <code>getWeight</code> from the <code>Particle</code> class are used by the <code>ParticleFilter</code> during updates and resampling. Essentially, the <code>ParticleFilter</code> executes the particle filter algorithm by managing and updating these <code>Particle</code> instances.
*The <code>ParticleFilter</code> class manages and utilizes a set of <code>Particle</code> instances for filtering operations. It inherits from <code>ParticleFilterBase</code> and implements particle propagation, weight calculation, and resampling by invoking methods on <code>Particle</code> objects. <code>ParticleFilter</code> initializes particles, propagates their states based on odometry data, calculates weights from sensor measurements, and resamples according to the configured strategy. The <code>Particle</code> class encapsulates the attributes and behaviors of individual particles, such as state initialization, propagation, and likelihood computation. <code>ParticleFilter</code> coordinates the filtering process, while <code>Particle</code> represents and updates individual states.


'''4.Both the ParticleFilterBase and Particle classes implement a propagation method. What is the difference between the''' '''methods?'''
'''4.Both the ParticleFilterBase and Particle classes implement a propagation method. What is the difference between the''' '''methods?'''

Revision as of 22:05, 4 June 2024

0. Assignment introduction

0.1 Explore the code framework

1.How is the code is structured?

2.What is the difference between the ParticleFilter and ParticleFilterBase classes, and how are they related to each other?

  • Differences:
    • ParticleFilterBase provides the basic functionalities and interfaces of the particle filter, including particle initialization, propagation, weight computation, and setting resampling strategies.
    • ParticleFilter inherits from ParticleFilterBase and implements specific update and resampling strategies. It extends the base class by providing concrete implementations for the update and configureResampler methods.
  • Relationship:
    • ParticleFilter is a subclass of ParticleFilterBase, inheriting all its attributes and methods while overriding or extending some of them to provide additional functionalities.

3.How are the ParticleFilter and Particle class related to eachother?

  • The ParticleFilter class manages and utilizes a set of Particle instances for filtering operations. It inherits from ParticleFilterBase and implements particle propagation, weight calculation, and resampling by invoking methods on Particle objects. ParticleFilter initializes particles, propagates their states based on odometry data, calculates weights from sensor measurements, and resamples according to the configured strategy. The Particle class encapsulates the attributes and behaviors of individual particles, such as state initialization, propagation, and likelihood computation. ParticleFilter coordinates the filtering process, while Particle represents and updates individual states.

4.Both the ParticleFilterBase and Particle classes implement a propagation method. What is the difference between the methods?

  • The propagateSamples method in the ParticleFilterBase class propagates all particles, typically called in the main loop of the particle filter to update the state of all particles. In contrast, the propagateSample method in the Particle class propagates a single particle, usually invoked by the propagateSamples method in ParticleFilterBase, to update the state of a specific particle.

1. Assignments for the first week

1.1 Initialize the Particle Filter

1.2 Calculate the pose estimate

1.3 Propagate the particles with odometry

2. Assignment for the second week

2.1 Correct the particles with LiDAR

2.2 Re-sample the particles

2.3 Test on the physical setup