Embedded Motion Control 2019 Group 5: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
Line 29: Line 29:
|}
|}


= Design Document=
 
= Innitial Design of Escape Room Competition =
 
 
== Design Document==


The '''initial design plan''' for the Escape room challenge and Hospital challenge with the PICO robot could be found [[Media:Group_5_Design_Document.pdf | here]].
The '''initial design plan''' for the Escape room challenge and Hospital challenge with the PICO robot could be found [[Media:Group_5_Design_Document.pdf | here]].
Line 37: Line 41:


== Functions ==
== Functions ==
{| border="1" cellpadding="5" cellspacing="0" align="center" style="margin-left: 3em;"
!
! style="font-weight: bold;" | Function
! style="font-weight: bold;" | Description
|-
| rowspan="6" | High-level
| <del>stayBetweenWalls</del>
| <del>Stay in the center of two walls</del>
|-
| <del>createMap</del>
| <del>Build map of surroundings</del>
|-
| <del>trackPath</del>
| <del>track the path through the map</del>
|-
| <del>detectLoop</del>
| <del>Detect a loop in the maze</del>
|-
| <del>detectStack</del>
| <del>Detect if stuck</del>
|-
| <del>optimalDecision</del>
| <del>Decide next move based on given algorithm</del>
|-
| rowspan="11" | 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. <del>According to padding of distance data, I just know partial theorem of it</del>.
|-
| Startup
| Identity the initial angle of PICO in the start position. And then, compute an angle -- &theta;.
|-
| detectFinish
| Detect the finish line
|-
| detectOpenSpace
| Detect an open space
|-
| detectOpenWorld
| Detect if in the open world (like the maxe exit)
|-
| detectTJunction
| Detect a T-junction (where three corridors meet)
|-
| detectCrossing
| Detect a crossing (where the four corridors meet)
|-
| shutDown
| Terminate robot, if required
|-
| checkDoor
| Send a signal and wait x seconds
|-
| chooseCorridor
| Choose which corridor to take
|-
| rowspan="11" | Low-level
| initialize
| Initialize actuators
|-
| readSensors
| Read the odometer and laser data
|-
| turnLeft
| Turn 90° left
|-
| turnRight
| Turn 90° right
|-
| turnAround
| Turn 180°
|-
| stopMovement
| Stop omniwheels
|-
| driveForward
| Accelerate or decelerate
|-
| driveBackward
| Drive backward
|-
| driveLeft
| Move left
|-
| driveRight
| Move right
|-
| ringBell
| Ring the bell of the door.
|}


== Interfaces ==
== Interfaces ==

Revision as of 12:59, 3 June 2019

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

Yi Qin 1328441
Muliang Du 1279874
Winston Mendonca 1369237
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 challenge and Hospital challenge with the PICO robot could be found here.

  • I just write the subtitles that are important I think and ignore the others. -- YI

Requirements

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 -- θ.
detectFinish Detect the finish line
detectOpenSpace Detect an open space
detectOpenWorld Detect if in the open world (like the maxe exit)
detectTJunction Detect a T-junction (where three corridors meet)
detectCrossing Detect a crossing (where the four corridors meet)
shutDown Terminate robot, if required
checkDoor Send a signal and wait x seconds
chooseCorridor Choose which corridor to take
Low-level initialize Initialize actuators
readSensors Read the odometer and laser data
turnLeft Turn 90° left
turnRight Turn 90° right
turnAround Turn 180°
stopMovement Stop omniwheels
driveForward Accelerate or decelerate
driveBackward Drive backward
driveLeft Move left
driveRight Move right
ringBell Ring the bell of the door.

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