Mobile Robot Control 2023 Group 5: Difference between revisions
Line 83: | Line 83: | ||
*'''Initialize the Particle Filter''' | *'''Initialize the Particle Filter''' | ||
# The first constructor constructs a particle with a random pose within the world and the second constructor constructs a particle with a pose sampled from a Gaussian distribution. | |||
# - First constructor: Advantages: It's simple when there's no initial estimate about the robot's pose and doesn't require the mean and standard deviation parameters. Disadvantages: If there's initial estimate of the robot's pose, this constructor could lead to slower convergence to the actual pose. - Second constructor: Advantages: It's simple when there's a initial estimate about the robot's pose and could lead to faster convergence to the actual pose. Disadvantages:It requires the mean and standard deviation parameters, which may not always be available. | |||
# The first constructor is used when the robot's initial pose is unknown, and the second constructor is used when there's an initial estimate of the robot's pose. | |||
# | # |
Revision as of 23:11, 31 May 2023
Group members:
Name | student ID |
---|---|
Yuzhou Nie | 1863428 |
Ronghui Li | 1707183 |
Guglielmo Morselli | 1959301 |
Introduction Assignment 0
- Screen recordings of the simulation results
(add screen recording)
- Video of the robot's performance in real life
- How could finding the shortest path through the maze using the A* algorithm be made more efficient by placing the nodes differently?Sketch the small maze with the proposed nodes and the connections between them.Why would this be more efficient?
By placing nodes at key points(junctions for example) could reduce the total number of nodes and simplify the graph, which lead to a less computational effort.
(add picture)
- Description of the main idea
We choose to implement the Artificial Potential Field (APF) algorithm for obstacle avoidance in robot navigation. It uses laser scanner data to detect obstacles, calculates repulsive forces based on obstacle proximity, converts these forces into velocity commands, and sends these commands to the robot, enabling dynamic navigation.
- Screen recordings of the simulation results
(add screen recording)
- Video of the robot's performance in real life
Localisation Assignment 1
- Keep Track of our location
The program successfully reports the information in the odometry message of current time step and the difference between the previously received odometry message and the current message.
- Observe the Behaviour in Simulation
- The accuracy could be obtained by comparing the odometry data with simulation data.
- The uncertain_odom option could introduces noise and uncertainty into the robot's odometry data, which would make it more challenging to accurately track the robot's position. but it's more closely mirror the real-world conditions than the regular simulation.
- Would you use this approach in the final challenge? Why would you? Why wouldn't you? no we wouldn't choose this method because the frame is rotated.
- Observe the Behaviour in Reality
Here attached the video of coco's performance in real life:
(add differences)
Localisation Assignment 2
- Explore the code-base
- The 'PracticalFilter' class is inheritances from 'PracticalFilterBase'. The 'PracticalFilterBase' provided basic function for a generic particle filter, and 'PracticalFilter' extends the function by implementing additional methods.
- The 'ParticleFilter' relies on the 'Particle' for its operations.
- The 'PracticalFilterBase::propagateSamples' method in the 'PracticalFilter' class is responsible for applying the propagation to all particles, and the 'Practical::propagateSample' method in the 'Practical' class is responsible for the propagation of individual particles.
- Initialize the Particle Filter
- The first constructor constructs a particle with a random pose within the world and the second constructor constructs a particle with a pose sampled from a Gaussian distribution.
- - First constructor: Advantages: It's simple when there's no initial estimate about the robot's pose and doesn't require the mean and standard deviation parameters. Disadvantages: If there's initial estimate of the robot's pose, this constructor could lead to slower convergence to the actual pose. - Second constructor: Advantages: It's simple when there's a initial estimate about the robot's pose and could lead to faster convergence to the actual pose. Disadvantages:It requires the mean and standard deviation parameters, which may not always be available.
- The first constructor is used when the robot's initial pose is unknown, and the second constructor is used when there's an initial estimate of the robot's pose.
- Calculate the filter prediction
- Propagation of Particles
- Computation of the likelihood of a Particle
- Resampling our Particles