Mobile Robot Control 2023 Group 5

From Control Systems Technology Group
Jump to navigation Jump to search

Group members:

Caption
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

https://tuenl-my.sharepoint.com/:v:/g/personal/r_li1_student_tue_nl/EQCPnYnKB8tOnGPgaSa9pbsBrzGMamXEKJRJ3B8zLKiMyg?e=fiKc62


Navigation Assignment 1

  • 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)


Navigation Assignment 2

  • 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

https://tuenl-my.sharepoint.com/:v:/g/personal/r_li1_student_tue_nl/EfMXoIxWLJBPpgl8E2LfRTEB9AcTnkAUy7_B2xHfvAhClA?e=ssxpqS


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
  1. The accuracy could be obtained by comparing the odometry data with simulation data.
  2. 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.
  3. 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:

https://tuenl-my.sharepoint.com/:v:/g/personal/r_li1_student_tue_nl/EeYdQ1QRIkxHnmo_7Jb-dPoBBArsPv-tprebJcBOkD627A?e=GsT2wl

(add differences)

Localisation Assignment 2

  • Explore the code-base
  1. 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.
  2. The 'ParticleFilter' relies on the 'Particle' for its operations.
  3. 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
  1. 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.
  2. - 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.
  3. 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