Mobile Robot Control 2023 Group 4: Difference between revisions
No edit summary |
|||
Line 15: | Line 15: | ||
|} | |} | ||
===Exercise 1 | ===Exercise 1: Don't crash (video link):=== | ||
https://drive.google.com/file/d/1zgMMQwU3ZrADZJuFCLglQiefVecF3_95/view?usp=sharing | https://drive.google.com/file/d/1zgMMQwU3ZrADZJuFCLglQiefVecF3_95/view?usp=sharing | ||
<br /> | <br /> | ||
===Exercise 2:=== | ===Exercise 2: A* algorithm=== | ||
The middle nodes in a straight line without more than | |||
* The code can be found on our gitlab page | |||
* The middle nodes in a straight line without more than two neighbors can be removed. Since the speed of the algorithm is O(n) with n the size of the grid, removing cells from the grid will improve the performance of the algorithm. | |||
=== Exercise 3: Navigation through a corridor === | |||
=== Exercise 4: Localization === | |||
==== Assignment 1: Keep track of the location ==== | |||
The code for assignment 1 can be found on gitlab. This code prints the odometry data and the difference between the previous and the current odometry data. | |||
<br /> | |||
==== Assignment 2: Observe the behaviour in simulation ==== | |||
By driving in a straight line forwards in simulation with the command: io.sendBaseReference(1, 0, 0); without uncertainty in the odometry sensor will result in a predictable increase in x position of the robot and no change in angle or y value of the odometry data. However in real life the data from a sensor always has a certain measurement uncertainty and the wheels can slip, leading to a different coordinate estimation based on the odometry compared to the actual position of the robot. In simulation the distance driven that is estimated by the odometry object. However, the laser scan data can also be used to estimate the distance that is driven. A block is placed in front of the robot and the difference in scan data between the previous and the current time step is added to a memory variable that stores the distance driven. This value can be compared to the one stored in the odometry object. | |||
By driving straight forward '''without''' uncertainty in odometry data the following is observed in simulation: | |||
- The angle and y-value in the odometry data is not changing and remains 0. | |||
- The difference between the driven distance calculated with the scan data and that of the odometry data is quite accurately matching. | |||
By driving straight forward '''with''' uncertainty in odometry data the following is observed in simulation: | |||
- The angle and y-value in the odometry data is changing with small increments and thus does not remain constant. | |||
- The difference between the driven distance calculated with the scan data and that of the odometry data is now bigger. | |||
This proves that only relying on the odometry data for position can lead to uncertainty and errors in pose estimation. So it is recommended to use multiple sensors in the final challenge to make multiple estimations. By combining these estimations the uncertainty and error can be greatly reduced. | |||
<br /> | |||
==== Assignment 3: Observe the behaviour in reality ==== | |||
<br /> | <br /> |
Revision as of 15:00, 23 May 2023
Group members:
Name | student ID |
---|---|
Lowe Blom | 1266020 |
Rainier Heijne | 1227575 |
Tom Minten | 1372300 |
Exercise 1: Don't crash (video link):
https://drive.google.com/file/d/1zgMMQwU3ZrADZJuFCLglQiefVecF3_95/view?usp=sharing
Exercise 2: A* algorithm
- The code can be found on our gitlab page
- The middle nodes in a straight line without more than two neighbors can be removed. Since the speed of the algorithm is O(n) with n the size of the grid, removing cells from the grid will improve the performance of the algorithm.
Exercise 4: Localization
Assignment 1: Keep track of the location
The code for assignment 1 can be found on gitlab. This code prints the odometry data and the difference between the previous and the current odometry data.
Assignment 2: Observe the behaviour in simulation
By driving in a straight line forwards in simulation with the command: io.sendBaseReference(1, 0, 0); without uncertainty in the odometry sensor will result in a predictable increase in x position of the robot and no change in angle or y value of the odometry data. However in real life the data from a sensor always has a certain measurement uncertainty and the wheels can slip, leading to a different coordinate estimation based on the odometry compared to the actual position of the robot. In simulation the distance driven that is estimated by the odometry object. However, the laser scan data can also be used to estimate the distance that is driven. A block is placed in front of the robot and the difference in scan data between the previous and the current time step is added to a memory variable that stores the distance driven. This value can be compared to the one stored in the odometry object.
By driving straight forward without uncertainty in odometry data the following is observed in simulation:
- The angle and y-value in the odometry data is not changing and remains 0.
- The difference between the driven distance calculated with the scan data and that of the odometry data is quite accurately matching.
By driving straight forward with uncertainty in odometry data the following is observed in simulation:
- The angle and y-value in the odometry data is changing with small increments and thus does not remain constant.
- The difference between the driven distance calculated with the scan data and that of the odometry data is now bigger.
This proves that only relying on the odometry data for position can lead to uncertainty and errors in pose estimation. So it is recommended to use multiple sensors in the final challenge to make multiple estimations. By combining these estimations the uncertainty and error can be greatly reduced.
Assignment 3: Observe the behaviour in reality