Embedded Motion Control 2017 Group 1: Difference between revisions
Line 60: | Line 60: | ||
|- | |- | ||
| rowspan="1" | General | | rowspan="1" | General | ||
| | | - Be able to 'solve' any given configuration of walls. | ||
| | - Do not bump into walls: Detect walls, Control to minimum distance. | ||
- Move autonomously: Detect openings, junctions, crossings, dead ends, open spaces etc. and make optimal decision. | |||
- Software easy to set up: As defined on general wiki page. | |||
- Only one executable is allowed. The software will be updated on the robot before the challenge starts. | |||
- Do not stand still too long: Detect time that robot is standing still, initiate movement after set time. | |||
- Stop movement after task is achieved. | |||
| - The maximal translational velocity of PICO is 0.5 m/s. | |||
- The maximal rotation velocity of PICO is 1.2 rad/s. | |||
- Pico should not stay still for more than 30 seconds. | |||
- Complete task within 2 attempts. | |||
- The LRF has a width of about 4 rad (from -2 to 2 rad), with a resolution of about 1000 points. | |||
|- | |- | ||
| rowspan="1" | Corridor | | rowspan="1" | Corridor | ||
| | | - Finish the corridor challenge fast: Detect opening either on left/right, take turn, stop after finish line. | ||
| - Back wheel across finish line within 5 minutes. Terminate afterwards. | |||
| | |||
|- | |- | ||
| rowspan="1" | Maze | | rowspan="1" | Maze | ||
| | | - Finish the maze challenge fast: Navigate maze, find exit, stop after finish line. | ||
| | - Be able to reconstruct maze. | ||
- Determine difference between dead end and door. | |||
- Deal with open spaces. | |||
- Deal with loops. | |||
- Be able to open doors. | |||
| - Back wheel across finish line within 7 minutes. Terminate afterwards. | |||
- Decide where to go when at a T-junction or crossing. | |||
- Ring a bell and wait at a dead end to check for a door. | |||
|} | |||
=== Functions === | === Functions === |
Revision as of 16:43, 9 May 2017
Group Members
Name: | Student id: |
Karel van de Plassche | 0653197 |
Joey Hendriks | 0773023 |
Ioannis-Dionysios Bratis | 0978560 |
Jad Haj Mustafa | 0979428 |
Jip Reinders | 0853301 |
Juliana Langen | 0988532 |
Yanick Douven | Tutor |
Initial Design
Link to file: PDF
Overview
In this article a summary of the embedded software design is presented.This software is used to solve the following problems:
- Corridor challenge: The robot should drive through a corridor and take the first exit.
- Maze challenge: The robot should drive through a maze and find the exit.
Requirements/Specifications
Type | Requirement | Specification |
---|---|---|
General | - Be able to 'solve' any given configuration of walls.
- Do not bump into walls: Detect walls, Control to minimum distance. - Move autonomously: Detect openings, junctions, crossings, dead ends, open spaces etc. and make optimal decision. - Software easy to set up: As defined on general wiki page. - Only one executable is allowed. The software will be updated on the robot before the challenge starts. - Do not stand still too long: Detect time that robot is standing still, initiate movement after set time. - Stop movement after task is achieved. |
- The maximal translational velocity of PICO is 0.5 m/s.
- The maximal rotation velocity of PICO is 1.2 rad/s. - Pico should not stay still for more than 30 seconds. - Complete task within 2 attempts. - The LRF has a width of about 4 rad (from -2 to 2 rad), with a resolution of about 1000 points. |
Corridor | - Finish the corridor challenge fast: Detect opening either on left/right, take turn, stop after finish line. | - Back wheel across finish line within 5 minutes. Terminate afterwards. |
Maze | - Finish the maze challenge fast: Navigate maze, find exit, stop after finish line.
- Be able to reconstruct maze. - Determine difference between dead end and door. - Deal with open spaces. - Deal with loops. - Be able to open doors. |
- Back wheel across finish line within 7 minutes. Terminate afterwards.
- Decide where to go when at a T-junction or crossing. - Ring a bell and wait at a dead end to check for a door. |
Functions
Function | Description | |
---|---|---|
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. | |
Mid-level | detectWall | Detect a wall (~30cm) |
detectCorner | Detect a corner (crossing of two walls) | |
detectDeadEnd | Detect a dead end | |
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 | |
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 |
Components
The PICO robot consists of multiple components which are listed below:
- Sensors:
- Laser Range Finder (LRF): Through the LRF on the PICO one can detect the distance to an object.This is accomplished by sending a laser pulse in a narrow beam towards the object and measuring the time taken by the pulse to be reflected on the target and returned to the sender.
- Wheel encoders (odometry): Through the encoder one can obtain the speed of the wheels which can be used to control PICO based on the provided data.
- Actuators:
- Holonomic base (omni-wheels)
- Pan-tilt unit for head
- Computer
- Ubuntu14.04
- Intel I7