Embedded Motion Control 2019 Group 9
Group members
Nicole Huizing | 0859610
Janick Janssen | 0756364
Merijn Veerbeek | 0865670
Design Documents
The Initial Design document can be found here: File:Initial Design Group9.pdf
The powerpoint presentation about the design is in this file: File:Presentation initial design.pdf
The powerpoint presentation about the final design can be found here: File:Presentation final design group9.pdf
Logbook
The composition of group 9 has changed twice. At first, George Maleas decided to quit the course at the 13th of May, two days before the escape room competition. His motive was that he lacked the c++ programming skills to meaningfully contribute to the project. Participating in the course would take a too large investment of his time.
At second, Merijn Floren also quit the course on the 3rd of June. <<MOTIVES>>
The code for the final challenge was written by Janick Janssen, Merijn Veerbeek and Nicole Huizing.
Initial design
<<Mostly based on hospital challenge. Some remarks for escape room challenge can be made.>>
Requirements
Functions
Components
Specifications
Interfaces
Escape room challenge
Code architecture:
World Model
Detection
Controller
State manager
Wall follower
explanation & movie of simulation & movie of real challenge & discussion on approach
Exitfinder
explanation & movie of simulation (do we have something useful?) & discussion on approach
Hospital challenge
World model
Perception
Janicks part. Also simulation movie of updating map possible?
Localization
Merijn
Path planning
To plan Pico's path, use is made of an A* pathplanning algorithm. This method was chosen over Dijkstra's method because it is faster. We will choose a heuristic function that is admissible, so it will be guarenteed that A* will give the shortest path from start to end.
All grid points on the map come with a boolean "accessible". Points that are close to a wall or an object receive the value 'false'. Mapping new objects is also based on this principle: whenever a new static object is detected, the gridpoints it covers will become unaccessible.
After the A* function is called with a certain start-gridpoint and end-gridpoint, it first goes through some checks. These checks assess whether the startposition and endposition are accessible and whether the startposition is the destination itself. If the startposition is unaccessible, the gridpoint itself and the points directly around it are temporarily made accessible (this is needed when Pico accidentally got too close to a wall or object).
Next, the heuristic function (direct distance) from every gridpoint to the destination is calculated.