Embedded Motion Control 2019 Group 8

From Control Systems Technology Group
Jump to navigation Jump to search

Group Members

Names: Student id:
Stan den Hartog 0953184
Elise Verhees 0950109
Rob Dorussen 0968849
Gosse Bijlenga 0950642
Max van Haren 0953564

Design

Design Document

File:Design document.pdf

Requirements

  1. Autonomously complete the 'Escape Room'.
  2. Must not bump into the wall.
  3. Must not tip over.
  4. Make sensible movements/progress each 30 seconds.
  5. Software must be easy to set up.
  6. 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

  1. Room
    1. Walls
    2. Finish line
    3. Exit tunnel
    4. (Obstacles)
  2. Robot
    1. Actuators
    2. Sensors
    3. Body
    4. Hardware
  3. Software
    1. World Model
    2. Interfaces
    3. Plan
    4. Actuator control
    5. Monitoring
    6. Preception
    7. Mediation
    8. 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.

EscapeRoom1.gif EscapeRoom2.gif

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.

Scan1.gifFile:Scan2.gif

Escape Room Result

File:EscapeRoomResult.gif

Hospital Challenge Brainstorm Session

To prepare for the hospital session, a brainstorm is done and several new requirements, specifications, functions and components are thought of. The following diagram is made out of this brainstorm session. Diagram.png