Mobile Robot Control 2020 Group 4: Difference between revisions
Line 69: | Line 69: | ||
[[File:Dijkstra.png|Dijkstra's Algorithm|Dijkstra's Algorithm]] | [[File:Dijkstra.png|Dijkstra's Algorithm|Dijkstra's Algorithm]] | ||
[[File:A_Star.png|A* Algorithm|A* Algorithm]] | [[File:A_Star.png|A* Algorithm|A* Algorithm]] | ||
<br /> | |||
Figure 1: Difference between Dijkstra's algorithm (left figure) and A* (right figure). | Figure 1: Difference between Dijkstra's algorithm (left figure) and A* (right figure). | ||
Revision as of 12:56, 29 May 2020
Group Members
Name | Student Number | |
---|---|---|
M. Katzmann | 1396846 | m.katzmann@student.tue.nl |
B. Kool | 1387391 | b.kool2@student.tue.nl |
R.O.B. Stiemsma | 0852884 | r.o.b.stiemsma@student.tue.nl |
A.S.H. Vinjarapu | 1502859 | a.s.h.vinjarapu@student.tue.nl |
D. van Boven | 0780958 | d.v.boven@student.tue.nl |
R. Konings | 1394819 | r.konings@student.tue.nl |
Escape Room Challenge
As algorithm a wall-follower is chosen. If done successfully, PICO will follow the wall and reaches the finish. This algorithm is being chosen because by researching Escape Room project of previous years, this algorithm scored well, based on time and whether the PICO finished at all.
This algorithm consists of the following parts:
Step 1
- The PICO moves forward until it reaches a wall.
Step 2
- The PICO aligns to the wall.
Step 3
- Then the PICO follows the wall until it reaches a corner.
Step 4
- If this corner is convex, align to the wall which is perpendicular to the previous wall and repeat Step 3.
- If this corner is concave, drive a little further until the PICO is aligned to the exit, then go straight.
In the meantime the PICO is also being checked whether it is not too close to the wall and well alligned.
With this wall follower algorithm, the PICO achieved second place, and reached the exit in 27 seconds.
Hospital Challenge
[Under construction]
For the Hospital Challenge, the design of the algorithm is divided into four parts: interaction, supervisory, mapping and navigation. Each part has its own functionality and needs to work with the other parts. This functionality is explained below:
Interaction
These are all low-level interactions consisting mostly of calls to the IO API (which represents communication with PICO).
Supervisory
This section covers the governing control logic of the proposed system. The idea is that the supervisor makes choices, tunes parameters, and controls flow-of-command within remaining code depending on its mode, and changes modes dynamically.
Mapping
This section covers the system functionalities responsible for (intelligent) navigation. All functions here have read access to the world model’s internal map and LRF envelope. The navigation can be split into two parts: pathfinding and path movement.
Path Finding
For pathfinding, A* is chosen. A* is a pathfinding algorithm based and built on Dijkstra's Algorithm. Dijkstra's Algorithm looks at every available cell all around the start point, until it reaches the goal. A* is smarter, and attaches more value to the cells towards the goal. Because of this, A* needs fewer iterations and is faster.
Figure 1: Difference between Dijkstra's algorithm (left figure) and A* (right figure).
Path Movement
List of Meetings
Date/Time | Roles | |
---|---|---|
Meeting 1 | 01-05-2020
11:00 |
Chairman: Bas
|
Meeting 2 | 04-05-2020
11:00 |
- |
Meeting 3 | 08-05-2020
11:00 |
Chairman: Max
|
Meeting 4 | 11-05-2020
10:00 |
- |
Meeting 5 | 12-05-2020
10:00 |
- |
Meeting 6 | 15-05-2020
11:00 |
Chairman: Dominic
|
Meeting 7 | 18-05-2020
11:00 |
- |
Meeting 8 | 22-05-2020
11:00 |
Chairman: Roel
|
Meeting 9 | 27-05-2020
15:00 |
- |
Meeting 10 | 29-05-2020
11:00 |
Chairman: Rob
|
Meeting 11 | 02-06-2020
11:00 |
- |
Meeting 12 | 04-06-2020
11:00 |
Chairman: Ananth
|
Links
These will probably be invite-based but a backup link could be useful.
Gitlab: https://gitlab.tue.nl/MRC2020/group4
Overleaf design document: https://www.overleaf.com/project/5eabeda72b3e4100010f8b40