Mobile Robot Control 2024 Ultron:Solution 4: Difference between revisions
Line 25: | Line 25: | ||
==== 1.1 Initialize the Particle Filter ==== | ==== 1.1 Initialize the Particle Filter ==== | ||
'''1. What are the advantages/disadvantages of using the first constructor, what are the advantages/disadvantages of the second one?''' | |||
'''2. In which cases would we use either of them?''' | |||
==== 1.2 Calculate the pose estimate ==== | ==== 1.2 Calculate the pose estimate ==== | ||
'''1. Interpret the resulting filter average. What does it resemble? Is the estimated robot pose correct? Why?''' | |||
'''2. Imagine a case in which the filter average is inadequate for determining the robot position.''' | |||
==== 1.3 Propagate the particles with odometry ==== | ==== 1.3 Propagate the particles with odometry ==== | ||
'''1. Why do we need to inject noise into the propagation when the received odometry infromation already has an unkown noise component?''' | |||
'''2. What happens when we stop here, and do not incorporate a correction step?''' | |||
=== 2. Assignment for the second week === | === 2. Assignment for the second week === | ||
==== 2.1 Correct the particles with LiDAR ==== | ==== 2.1 Correct the particles with LiDAR ==== | ||
'''1. What does each of the component of the measurement model represent, and why is each necessary.''' | |||
'''2. With each particle having N >> 1 rays, and each likelihood being ∈ [0, 1], where could you see an issue given our current implementation of the likelihood computation.''' | |||
==== 2.2 Re-sample the particles ==== | ==== 2.2 Re-sample the particles ==== | ||
'''1. What are the benefits and disadvantages of both the multinomial resampling and the stratified resampling?''' | |||
'''2. With each particle having N >> 1 rays, and each likelihood being ∈ [0, 1], where could you see an issue given our current implementation of the likelihood computation?''' | |||
===== 2.3 Test on the physical setup ===== | ===== 2.3 Test on the physical setup ===== | ||
'''1. How you tuned the parameters.''' | |||
'''2. How accurate your localization is, and whether this will be sufficient for the final challenge.''' | |||
'''3. How your algorithm responds to unmodeled obstacles.''' | |||
'''4. Whether your algorithm is sufficiently fast and accurate for the final challenge.''' |
Revision as of 13:36, 5 June 2024
0. Assignment introduction
0.1 Explore the code framework
1.How is the code is structured?
- The code for this assignment is organized into multiple classes, with each object or component having its own class and functions that allow for modifying its specific aspects.
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 fromParticleFilterBase
and implements specific update and resampling strategies. It extends the base class by providing concrete implementations for theupdate
andconfigureResampler
methods.
- Relationship:
ParticleFilter
is a subclass ofParticleFilterBase
, 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 ofParticle
instances for filtering operations. It inherits fromParticleFilterBase
and implements particle propagation, weight calculation, and resampling by invoking methods onParticle
objects.ParticleFilter
initializes particles, propagates their states based on odometry data, calculates weights from sensor measurements, and resamples according to the configured strategy. TheParticle
class encapsulates the attributes and behaviors of individual particles, such as state initialization, propagation, and likelihood computation.ParticleFilter
coordinates the filtering process, whileParticle
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 theParticleFilterBase
class propagates all particles, typically called in the main loop of the particle filter to update the state of all particles. In contrast, thepropagateSample
method in theParticle
class propagates a single particle, usually invoked by thepropagateSamples
method inParticleFilterBase
, to update the state of a specific particle.
1. Assignments for the first week
1.1 Initialize the Particle Filter
1. What are the advantages/disadvantages of using the first constructor, what are the advantages/disadvantages of the second one?
2. In which cases would we use either of them?
1.2 Calculate the pose estimate
1. Interpret the resulting filter average. What does it resemble? Is the estimated robot pose correct? Why?
2. Imagine a case in which the filter average is inadequate for determining the robot position.
1.3 Propagate the particles with odometry
1. Why do we need to inject noise into the propagation when the received odometry infromation already has an unkown noise component?
2. What happens when we stop here, and do not incorporate a correction step?
2. Assignment for the second week
2.1 Correct the particles with LiDAR
1. What does each of the component of the measurement model represent, and why is each necessary.
2. With each particle having N >> 1 rays, and each likelihood being ∈ [0, 1], where could you see an issue given our current implementation of the likelihood computation.
2.2 Re-sample the particles
1. What are the benefits and disadvantages of both the multinomial resampling and the stratified resampling?
2. With each particle having N >> 1 rays, and each likelihood being ∈ [0, 1], where could you see an issue given our current implementation of the likelihood computation?
2.3 Test on the physical setup
1. How you tuned the parameters.
2. How accurate your localization is, and whether this will be sufficient for the final challenge.
3. How your algorithm responds to unmodeled obstacles.
4. Whether your algorithm is sufficiently fast and accurate for the final challenge.