Embedded Motion Control 2019 Group 8: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 31: Line 31:


= Introduction =
= 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
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 =
= Escape Room Challenge =

Revision as of 10:24, 27 May 2019

Group Members

Name Student ID E-mail
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

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 Resullt

File:EscapeRoomGroup8.mp4

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.

Diagram.png