Mobile Robot Control 2020 Group 2: Difference between revisions
(→Logs) |
(→Logs) |
||
Line 83: | Line 83: | ||
= Logs = | = Logs = | ||
{| class="wikitable" | |||
{| class="wikitable" style="text-align: left; width: 1200px; height: 200px;" | |||
|- | |- | ||
! | ! | ||
! Date and Location | |||
! Agenda | |||
! Meeting notes | |||
! | |||
! | |||
! | |||
|- | |- | ||
! Meeting 1 | |||
| | | | ||
Date: 28-04-20 | Date: 28-04-20 | ||
Time: 10:00 | Time: 10:00 | ||
Platform: MS Teams | |||
Platform: MS Teams | || | ||
*Introduction meeting with the tutor | *Introduction meeting with the tutor | ||
*Discuss assignments to be completed | *Discuss assignments to be completed | ||
*Discuss preliminary design and algorithm | *Discuss preliminary design and algorithm | ||
|| | |||
*The tutor's role is to guide and answer questions. The tutor is present at the weekly meetings. | *The tutor's role is to guide and answer questions. The tutor is present at the weekly meetings. | ||
*Robot description: the unit of the laserdata distance is [m] and the angle is in radians; the robot is about 40*20cm. | *Robot description: the unit of the laserdata distance is [m] and the angle is in radians; the robot is about 40*20cm. | ||
Line 168: | Line 108: | ||
*Design document is the document that describes how the software will look like, which includes requirements, functions, components, specifications and interfaces. | *Design document is the document that describes how the software will look like, which includes requirements, functions, components, specifications and interfaces. | ||
*Requirements: robot's speed constraints and etc. | *Requirements: robot's speed constraints and etc. | ||
|- | |||
!Meeting 2 | |||
| | |||
Date: 01-05-20 | Date: 01-05-20 | ||
Time: 14:00 | Time: 14:00 | ||
Platform: MS Teams | |||
Platform: MS Teams | || | ||
*Discuss the progress | *Discuss the progress | ||
*Discuss the design document | *Discuss the design document | ||
|| | |||
*"Specifications and Requirments" section of the document design was discussed | *"Specifications and Requirments" section of the document design was discussed | ||
*Finite State Machine was reviewed | *Finite State Machine was reviewed | ||
*Action: meet on Monday (4th of May) to proof-read the report | *Action: meet on Monday (4th of May) to proof-read the report | ||
|- | |||
! Meeting 3 | |||
| | |||
Date: 05-05-20 | Date: 05-05-20 | ||
Time: 10:00 | Time: 10:00 | ||
Platform: MS Teams | Platform: MS Teams | ||
|| | |||
*Questions about odometry data | *Questions about odometry data | ||
*Question on identifying exit | *Question on identifying exit | ||
*Questions on GitHub | *Questions on GitHub | ||
*Discuss work to be done | *Discuss work to be done | ||
|| | |||
*The robot overshoots on rotating to the right. This is much worse than when rotating to the left. | *The robot overshoots on rotating to the right. This is much worse than when rotating to the left. | ||
*The tutor is going to look into the simulator since it might be a bug in there. He will let us know as soon as possible. | *The tutor is going to look into the simulator since it might be a bug in there. He will let us know as soon as possible. | ||
Line 214: | Line 140: | ||
*Slip is not enabled by default. It has to be enabled in the config file when needed in simulation. | *Slip is not enabled by default. It has to be enabled in the config file when needed in simulation. | ||
Work division | Work division | ||
*Wall following algorithm -> Bjorn and Marzhan | *Wall following algorithm -> Bjorn and Marzhan | ||
*Wall finding and exit scanning -> Spyros and Arjun | *Wall finding and exit scanning -> Spyros and Arjun | ||
*Wall alignment and exit corridor movement -> Bart and Joey | *Wall alignment and exit corridor movement -> Bart and Joey | ||
|- | |||
! Meeting 4 | |||
| | |||
Date: 11-05-20 | Date: 11-05-20 | ||
Time: 11:00 | Time: 11:00 | ||
Platform: MS Teams | Platform: MS Teams | ||
|| | |||
*Discuss problems of code. | *Discuss problems of code. | ||
*Question on exit width. | *Question on exit width. | ||
|| | |||
* good progress has been made on the initial scanning | * good progress has been made on the initial scanning | ||
* Joey and Bart had the same section of code. | * Joey and Bart had the same section of code. | ||
* The alligning at the exit can be improved | * The alligning at the exit can be improved | ||
Work division | Work division | ||
*Exit allignment -> Bjorn and Marzhan and Bart | *Exit allignment -> Bjorn and Marzhan and Bart | ||
*Wall finding and exit scanning -> Spyros and Arjun and Joey | *Wall finding and exit scanning -> Spyros and Arjun and Joey | ||
|- | |||
! Meeting 5 | |||
| | |||
Date: 18-05-20 | Date: 18-05-20 | ||
Time: 11:00 | Time: 11:00 | ||
Platform: MS Teams | Platform: MS Teams | ||
|| | |||
*Discuss what went wrong in the Escape room competition. | *Discuss what went wrong in the Escape room competition. | ||
*Discuss Hospital | *Discuss Hospital Challenge. | ||
|| | |||
* Code is corrected and escape room is succeeded | * Code is corrected and escape room is succeeded | ||
* Brainstorm on hospital challenge | * Brainstorm on hospital challenge | ||
* Outlining main parts of the hospital challenge | * Outlining main parts of the hospital challenge | ||
Work division | Work division | ||
*Localization -> Bjorn and Joey and Marzhan | *Localization -> Bjorn and Joey and Marzhan | ||
*Path Planning-> Spyros and Arjun and Bart | *Path Planning-> Spyros and Arjun and Bart | ||
|- | |||
! Meeting 6 | |||
| | |||
Date: 22-05-20 | Date: 22-05-20 | ||
Time: 14:00 | Time: 14:00 | ||
Platform: MS Teams | Platform: MS Teams | ||
|| | |||
*Discuss algorithm proposed by each subgroup. | *Discuss algorithm proposed by each subgroup. | ||
*Discuss possible | *Discuss possible extension to object detection. | ||
|| | |||
* For path planning: A* | * For path planning: A* | ||
* For localization: particle filter | * For localization: particle filter | ||
* Structure of the algorithm is constructed: main parts such as localization, path planning and object detection communicate through WorldModel and path planning also sends data to driveControl | * Structure of the algorithm is constructed: main parts such as localization, path planning and object detection communicate through WorldModel and path planning also sends data to driveControl | ||
Work division is the same | Work division is the same | ||
*Localization -> Bjorn and Joey and Marzhan | *Localization -> Bjorn and Joey and Marzhan | ||
*Path Planning-> Spyros and Arjun and Bart | *Path Planning-> Spyros and Arjun and Bart | ||
|- | |||
! Meeting 7 | |||
| | |||
Date: 26-05-20 | Date: 26-05-20 | ||
Time: 11:30 | Time: 11:30 | ||
Platform: MS Teams | Platform: MS Teams | ||
|| | |||
*Discuss progress in path planning and localization. | *Discuss progress in path planning and localization. | ||
|| | |||
* For path planning, A* algorithm: advantage of diagonal over Euclidian heuristic or vice versa. | |||
* For path planning, A* algorithm: advantage of diagonal over | |||
* For localization: split and merge implementation for features extraction. | * For localization: split and merge implementation for features extraction. | ||
* Run localization all the time | * Run localization all the time | ||
Work division is the same | Work division is the same | ||
*Localization -> Bjorn and Joey and Marzhan | *Localization -> Bjorn and Joey and Marzhan | ||
*Path Planning-> Spyros and Arjun and Bart | *Path Planning-> Spyros and Arjun and Bart | ||
- | |- | ||
! Meeting 8 | |||
| 5 || 10 || 15 | |||
|} |
Revision as of 15:49, 29 May 2020
Group members
Marzhan Baubekova - 1426311
Spyros Chatzizacharias - 1467751
Arjun Menaria - 1419684
Joey Verdonschot - 0893516
Bjorn Walk - 0964797
Bart Wingelaar - 0948655
Design Document
Design document for the escape room challenge can be found here:
File:Mobile Robot Control Design Document Group2.pdf
Escape Room Challenge
Hospital Challenge
Path Planning
The algorithm that is chosen for the path planning is an A* algorithm. Before proceeding to algorithm, it is essential to transform map to a binary grid map. This step is done in Matlab and later translated to C++. There are two heuristic functions which are tested, namely diagonal and euclidian. Pathplanning with 2 heuristics.
For the selection of the algorithm used for pathplanning a table of pros and cons has been formulated, which includes the computer performance index. A* is given an index number of 100. The walls and Dijkstra compute indices are an educated guess. The others are based on the amount of nodes used in a study
Algorithm | Compute index |
---|---|
A* | 100 |
Rapidly-exploring random tree | 100 |
Potential field algorithm | 40 |
Dijkstra | 100 or higher |
Wall following | 100000 |
Wave propagation | 100 or higher |
In addition, several algorithms are compared with respect to the convergence speed, the robustness of the method, the smoothness of the resulted path, the difficulty of the implementation and the sufficiency for the hospital challenge. The results are demonstrated in the table .........
Localization
For the successful navigation it is important that the robot is aware of its current location. After considering known algorithms such as Markov localization, Kalman filter and partilce filters, it has been chosen to implement the line segment based localization. (Why?? restricted in time, experience, identification of landmarkes is problematic and etc.)
First, the algorithm requires features extraction and the most important features in the robot's environment are the straight lines. These features are used to build a local map from laser data. The line detection problem consists of two subproblems, namely segmentation, which deals with the number of lines and correspondence of data points to lines, and line extraction, which answers how to estimate line parameters, given which points belong to which lines. To solve the line extraction problem, we applied least squares solution. For the segmentation, the split and merge algorithm is used, which is a recursive procedure of fitting and splitting.
Split and Merge Algorithm: |
---|
Initialize set S to contain all points. |
Split |
* Fit a line to points in current set S. |
* Find the most distant point to the line. |
* If distance > threshold, then split and repeat with left and right point sets. |
Merge |
* If two consecutive segments are close/collinear enough, obtain the common line and find the most distant point. |
* If distance <= threshold, merge both segments. |
Logs
Date and Location | Agenda | Meeting notes | |
---|---|---|---|
Meeting 1 |
Date: 28-04-20 Time: 10:00 Platform: MS Teams |
|
|
Meeting 2 |
Date: 01-05-20 Time: 14:00 Platform: MS Teams |
|
|
Meeting 3 |
Date: 05-05-20 Time: 10:00 Platform: MS Teams |
|
Work division
|
Meeting 4 |
Date: 11-05-20 Time: 11:00 Platform: MS Teams |
|
Work division
|
Meeting 5 |
Date: 18-05-20 Time: 11:00 Platform: MS Teams |
|
Work division
|
Meeting 6 |
Date: 22-05-20 Time: 14:00 Platform: MS Teams |
|
Work division is the same
|
Meeting 7 |
Date: 26-05-20 Time: 11:30 Platform: MS Teams |
|
Work division is the same
|
Meeting 8 | 5 | 10 | 15 |