Embedded Motion Control 2019 Group 8
Group Members
Name | Student ID | |
---|---|---|
Stan (C.M.) den Hartog | 0953184 | c.m.d.hartog@student.tue.nl |
Elise (E.D.T.) Verhees | 0950109 | e.d.t.verhees@student.tue.nl |
Rob (R.J.G.) Dorussen | 0968849 | r.j.g.dorussen@student.tue.nl |
Gosse (G.) Bijlenga | 0950642 | g.bijlenga@student.tue.nl |
Max (M.J.) van Haren | 0953564 | m.j.v.haren@student.tue.nl |
Introduction
In the course Embedded Motion Control (EMC) the software design of an autonomous robot is given as an objective. The implementation of the software skills to fulfill real-life robotic tasks in real-time situations, takes into account both planning and basic programming. For this assignment, two challenges are given.
The first challenge is the Escape Room Challenge, in which the robot is placed in a room with a single exit with a random orientation. Upon placement, the robot should autonomously find the exit, move towards the exit and exit the room without touching the surroundings. The second challenge is the Hospital Challenge, in which the robot should autonomously function within a hospital, based on a specific map. The goal for the robot is to go from cabinet to cabinet, while on the way encountering random disturbances as deemed normal in a hospital.
This wiki page will give an overview of the designs for both the Escape Room and Hospital challenges.
Escape Room Challenge
Design Document
Requirements
- Autonomously complete the 'Escape Room'.
- Must not bump into the wall.
- Must not tip over.
- Make sensible movements/progress each 30 seconds.
- Software must be easy to set up.
- Robot must function robustly.
Specifications
- Rear wheel must cross the finish line.
- The robot should finish within 5 minutes.
- The robot should finish within 2 trials.
- Distance between the wall and the robot must be 0,05 meter.
- The maximum translational speed is 0,5 meter per second.
- The maximum rotational speed is 1.2 radians per second.
- The robot must have a maximum speed/stop before changing direction.
- The maximum inclination angle is around 5 degrees.
- The software must have 1 command to update.
- The software should be able to compile (cmake/make).
- The software should start by calling upon one executable.
- The status must be reported at least each 30 seconds.
- The functions must be scalable.
- Definition of data ownership must be explicit.
- Switch states only to advance the strategy plan.
Functions
- Detect if the robot is over the finish line
- Drive forward (keeping the speed specifications in mind)
- Rotate
- Collision detection
- (Update World Model)
- Print status
- Scan environment for exit
- State function/ Life Cycle State Machine (LCSM)
- Wall hugging
Components
- Room
- Walls
- Finish line
- Exit tunnel
- (Obstacles)
- Robot
- Actuators
- Sensors
- Body
- Hardware
- Software
- World Model
- Interfaces
- Plan
- Actuator control
- Monitoring
- Preception
- Mediation
- Life Cycle State Machine (LCSM)
Escape Room Execution
Wall Following
For the escape room challenge, all the functions and components described above are programmed using C++. Since the most robust solution is to follow a wall, this is chosen to be implemented first. The decision has been made to make the robot always keep the wall on its left side. For the Hospital challenge this will have to be expanded to also being able to follow a wall on the right side. Good results are achieved in the 2 random maps that are shown below.
Scanning for an exit
Next, the robot is made a bit 'smarter'; It will first scan the room for an exit. If an exit is found, it will stop rotating, rotate a bit back, to make sure it will head for the left wall, start heading for the exit, and then continue with the wall following procedure to further exit the corridor. The results for this can be seen below.
Escape Room Resullt
Hospital Challenge
Hospital Challenge Brainstorm Session
To prepare for the hospital session, a brainstorm session is done and several new requirements, specifications, functions and components are thought of.
The following diagram is the result of this brainstorm session.