Mobile Robot Control 2023 Group 5: Difference between revisions
Line 59: | Line 59: | ||
*'''Observe the Behaviour in Simulation''' | *'''Observe the Behaviour in Simulation''' | ||
# | #we detect both the matrix one and real one to compare the accuracy; Inaccurate part: we cannot drive the car back the exact start point. There’s and error from 3-10cm on both x and y axis. | ||
# | #If use uncertain odometry, the odometry frame would be different from the robot frame, which means the output odometry would not as predicted since they are measured in different corordinate. And the uncertain one has much larger error caused by noise that increased by time. | ||
#For the final challenge we need to serve the tables, which means the robot has to move around the ‘room’, cosing relatively long time. With time increasing, so as the distance increasing, the error and noise in the odometry information would be also increasing, Thus, ode info would be more and more unreliable, which lead to the main reason we dont want t use it | |||
*'''Observe the Behaviour in Reality''' | *'''Observe the Behaviour in Reality''' |
Revision as of 17:46, 1 June 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
- 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
- we detect both the matrix one and real one to compare the accuracy; Inaccurate part: we cannot drive the car back the exact start point. There’s and error from 3-10cm on both x and y axis.
- If use uncertain odometry, the odometry frame would be different from the robot frame, which means the output odometry would not as predicted since they are measured in different corordinate. And the uncertain one has much larger error caused by noise that increased by time.
- For the final challenge we need to serve the tables, which means the robot has to move around the ‘room’, cosing relatively long time. With time increasing, so as the distance increasing, the error and noise in the odometry information would be also increasing, Thus, ode info would be more and more unreliable, which lead to the main reason we dont want t use it
- 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
- The resulting filter average is a single pose that is calculated as the expected mean value of all the particle poses. This represents the filter's best guess of the robot's actual pose based on the current state of the particles. It is not guaranteed to be exactly right, because the accuracy also depends on noise, particle diversity and initialisation.
- Propagation of Particles
- Computation of the likelihood of a Particle
- Resampling our Particles