Embedded Motion Control 2019 Group 5

From Control Systems Technology Group
Jump to navigation Jump to search

Welcome to the Wiki Page for Group 5 in the Embedded Motion Control Course (4SC020) 2019. This page contains the design plans and other details of our work in this course.

Team Members

Name TU/e Number
Winston Mendonca 1369237
Muliang Du 1279874
Yi Qin 1328441
Shubham Ghatge 1316982
Robert Rompelberg 0905720
Mayukh Samanta 1327720

Innitial Design of Escape Room Competition

Design Document

The Initial Design Plan for the Escape Room Competition and the Hospital Competition with PICO could be found here.

Requirements

The following performance requirements are expected to be met for the Escape Room Competition:

  1. PICO should leave the room from any initial position.
  2. PICO should successfully leave the room when all of its rear wheels are across the finish line at the end of the exit corridor.
  3. PICO should not hit the wall of the room and the corridor under any condition.
  4. PICO should complete the task within 5 minutes and must not remain idle for more than 30 seconds.

To fulfill the above, and keeping the basic aim of the Hospital Competition as stated in the introduction, the following functional requirements have been identified for the given challenges:

  1. For the given start area, PICO could determine the cabinet in each room and face towards all the cabinets in the right region marked previously.
  2. When PICO visits a cabinet, it should give a clear sound of which cabinet it is visiting (i.e.,“I have visited the cabinet zero”).
  3. PICO should reach all the cabinets with a correct order.
  4. PICO could detect the obstacles in this competition not only static objects but also dynamic ones (Such as the walking actor in the hallway).
  5. PICO could not hit any walls and objects except for slightly touching.
  6. PICO should try to detect the static and dynamic objects and present them in its own world model.
  7. PICO should complete the task within 10 minutes and must not remain idle for more than 30 seconds.

Functions

Function Description
High-level stayBetweenWalls Stay in the center of two walls
createMap Build map of surroundings
trackPath track the path through the map
detectLoop Detect a loop in the maze
detectStack Detect if stuck
optimalDecision Decide next move based on given algorithm
Mid-level Detect Wall Set a safe distance between wall and PICO. If there are too closer with each other, PICO would execute corresponding movements.
Detect Corner Detect the number of corners of the room. According to padding of distance data, I just know partial theorem of it.
Startup Identity the initial angle of PICO in the start position. And then, compute an angle -- θ.
Scan for Exit Rotate PICO to detect all the distances between wall and robot in order to find the exact position of the corridor.
Move to Max If PICO do not detect enough walls in the room, it will move to the direction of the maximal distance and detect walls again.
Face Exit Let PICO face to the exit corridor straightly but not perfectly. PICO would not rotate itself in a defined error range.
Drive to Exit ***
Enter Exit Corridor ***
Follow Corridor ***
Low-level Initialize Initialize actuators
Read Data of Sensors Read the odometer and laser data
Turn Left Turn 90° left
Turn Right Turn 90° right
Turn Around ***
Stop Movement Stop omniwheels
Drive Forward Accelerate or decelerate
Drive Backward Drive backward
Drive Left Move left
Drive Right Move right

Interfaces

Escape Room Challenge Execution

  • Introductions about functions of code. Explain each mode more or less in order to let readers know what happened in our PICO. Just like what Winston did in Tuesday evening. -- YI

Startup

This mode involves computing the required angle for PICO to complete a full 360 degree view if needed. Once the angle has been determined the state switches to SCAN_FOR_EXIT.

Scan for exit

This mode searches for an exit in its available field of view which is around 230 degrees. If it does not manage to find an exit in this field of view, it uses the angle computed in the STARTUP to complete to rotate until it manages to find the exit. If it happens to be the case that it still did not manage to find any exit it switches to a state MOVE_TO_MAX. This scenario is generally encountered if PICO is initially put in a corner adjacent to the exit wall.

Move to max

Face exit

Exit undetectable

Orient to exit wall

Drive to exit

Enter exit corridor

Exit corridor follow

Stop

Hospital Competition

The main objective for PICO is to "deliver" the medicines from one cabinet to another which will be defined by the judges just before the challenge starts. The PICO will be operating under an environment amidst static and dynamic obstacles.

here

Task Division - Week 21

  • Status Logging Function - Muliang
  • Path Planning and Environment Mapping - Mayukh
  • Interpretation of Provided Environment Map - Shubham
  • Capturing LRF Data into a Snapshot - Robert
  • Corner/Exit detection Algorithm update - Winston
  • Modularise World Model - Yi and Winston