Mobile Robot Control 2023 Group 5: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
(7 intermediate revisions by the same user not shown)
Line 11: Line 11:
|Guglielmo Morselli
|Guglielmo Morselli
|1959301
|1959301
|}<br />
|}
 
 
==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==
==Navigation Assignment 1==
Line 22: Line 34:


<br />
<br />
==Navigation Assignment 2==
==Navigation Assignment 2==


Line 47: Line 58:
*'''Observe the Behaviour in Simulation'''
*'''Observe the Behaviour in Simulation'''


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


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.
<br />
 
3. Would you use this approach in the final challenge? Why would you? Why wouldn't you?<br />


*'''Observe the Behaviour in Reality'''
*'''Observe the Behaviour in Reality'''
Line 66: Line 77:


#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 '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.  
#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'''
*'''Initialize the Particle Filter'''
#
*'''Calculate the filter prediction'''
*'''Calculate the filter prediction'''
*'''Propagation of Particles'''
*'''Propagation of Particles'''
*'''Computation of the likelihood of a Particle'''
*'''Computation of the likelihood of a Particle'''
*'''Resampling our Particles'''
*'''Resampling our Particles'''

Revision as of 17:14, 31 May 2023

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
  • Calculate the filter prediction
  • Propagation of Particles
  • Computation of the likelihood of a Particle
  • Resampling our Particles