Embedded Motion Control 2017 Group 6: Difference between revisions
Line 28: | Line 28: | ||
=='''Software design'''== | =='''Software design'''== | ||
The ever-changing environment in reality requires the design of a robust software architecture. It is prefered to design this software architecture before actually programming, because it gives a clear understanding/agreement of the different functions from the start. The first step in creating the software architecture is to mention the [[#Requirements|requirements]] that have to be met in order to complete the 'A-MAZE-ING PICO' challenge. Pico should be able to finish this challenge succesfully by using most of its [[#Components|components]]. Secondly, a list of [[#Specifications|specifications]] will be given to accuratly describe the robot and maze. With these requirements, components and specifications it is then possible to define [[#Functions|functions]] for the software architecture. The software architecture is completed | The ever-changing environment in reality requires the design of a robust software architecture. It is prefered to design this software architecture before actually programming, because it gives a clear understanding/agreement of the different functions from the start. The first step in creating the software architecture is to mention the [[#Requirements|requirements]] that have to be met in order to complete the 'A-MAZE-ING PICO' challenge. Pico should be able to finish this challenge succesfully by using most of its [[#Components|components]]. Secondly, a list of [[#Specifications|specifications]] will be given to accuratly describe the robot and maze. With these requirements, components and specifications it is then possible to define [[#Functions|functions]] for the software architecture. The software architecture is completed by specifying the [[#Interfaces|interface]] between these different functions. {{Break}} | ||
===Requirements=== | ===Requirements=== | ||
To complete the maze challenge Pico has to meet the following requirements: | To complete the maze challenge Pico has to meet the following requirements: | ||
* | * Move through a maze that complies with the specifications | ||
* Escape the maze within the set time limit | * Escape the maze within the set time limit | ||
* Operate fully autonomously | * Operate fully autonomously | ||
* Avoid collisions with walls | * Avoid collisions with walls | ||
* Recognize and open doors | * Recognize and open doors | ||
* Robust against disturbances and hardware imperfections | |||
* Ring the bell at a potential door location | * Ring the bell at a potential door location | ||
* Stand idle for a certain period of time | * Stand idle for a certain period of time |
Revision as of 08:29, 24 May 2017
About the group
Name | Student ID | |
---|---|---|
Ties Hoenselaar | 0857112 | t.a.h.hoenselaar@student.tue.nl |
Hasan Ilisu | 0852221 | h.h.ilisu@student.tue.nl |
Laura de Jong | 0743679 | l.s.d.jong@student.tue.nl |
Lars Moormann | 0861223 | l.moormann@student.tue.nl |
Bas Straatman | 0777325 | s.r.t.straatman@student.tue.nl |
Jeroen van der Velden | 0744957 | j.r.v.d.velden@student.tue.nl |
Wouter Houtman | Tutor | w.houtman@tue.nl |
Introduction
The most memorable part of the course Embedded Motion Control is the 'A-MAZE-ING PICO' challenge, in which software is designed for and implemented into autonomous robots. These autonomous robots, called Pico and Taco, should then be to able to solve a maze with the software in a real-life environment. A maze can contain loops, dead ends and doors that automatically open and close.
Pico will be provided with a basic software layer to carry out primary functions, such as communication and movement. However, to succesfully complete the 'A-MAZE-ING PICO' challenge it is required to design robust software for the changing environment. Several software subsystems will be put to the test in an intermediate challenge. During this challenge, called the corridor competition, Pico must drive through a corridor and take the first exit. With the results of the corridor competition and all its software subsystems Pico should be able to finish the maze challenge. The course Embedded Motion Control is concluded with an overall conclusion.
Software design
The ever-changing environment in reality requires the design of a robust software architecture. It is prefered to design this software architecture before actually programming, because it gives a clear understanding/agreement of the different functions from the start. The first step in creating the software architecture is to mention the requirements that have to be met in order to complete the 'A-MAZE-ING PICO' challenge. Pico should be able to finish this challenge succesfully by using most of its components. Secondly, a list of specifications will be given to accuratly describe the robot and maze. With these requirements, components and specifications it is then possible to define functions for the software architecture. The software architecture is completed by specifying the interface between these different functions.
Requirements
To complete the maze challenge Pico has to meet the following requirements:
- Move through a maze that complies with the specifications
- Escape the maze within the set time limit
- Operate fully autonomously
- Avoid collisions with walls
- Recognize and open doors
- Robust against disturbances and hardware imperfections
- Ring the bell at a potential door location
- Stand idle for a certain period of time
- Start and stop with a single command
Components
The following components will be used to reach the goal:
Sensors
- Laser range finder which uses a laser beam to determine the distance to an object
- Wheel encoders (odometry) to estimate the position of the robot relative to a starting location
Actuators
- Holonomic base with omni-wheels
- Bell to open the door
- Pan-tilt unit for head (which will not be used)
Computer
- Intel I7
- Ubuntu 14.04
Specifications
The goal and the requirements will be achieved with the following specifications:
Robot
- The maximum transnational speed of the robot is 0.5 m/s
- The maximum rotational speed equals 1.2 rad/s
- The corridor challenge has to be solved in 5 minutes
- The maze challenge has to be solved in 7 minutes
- Both challenges have a maximum of two trials
- The laser range finder (LRF) has a range of 270 degrees
- The wheel encoders have an unknown accuracy
- The robot must not be idle for more than 30 seconds
Maze
- The corners will be approximately 90 degrees
- The wall distance is 0.5-1.5 meter
- There is only 1 door in the maze
- The door starts opening in 2 seconds
- The door opens if the robot is within 1.3 meter of the door
- The door is open in 5 seconds
- The number of rings must not be larger than the number of potential doors
- The maze may contain loops
- The maze can contain dead ends
Functions
The software must have the following functions in order to meet the requirements and fulfill the goal:
Function: | Description |
---|---|
Drive forward | The robot must drive forward unless something, for
example a wall or a corner, is detected |
Drive backward | The robot must drive a little bit backward if it is unable to rotate |
Turn left | Make a 90degree left turn |
Turn right | Make a 90degree right turn |
Ring bell | The bell must be rang in order to open the door |
Localize | The robot has to localize itself in the world model, because the
odometry data isn't that accurate |
Wait | The robot must wait at a dead end in order to check if it is a
door |
Interfaces
The main relations between the interfaces are colored red and can be described as follows:
World model -> Task:The world model can give information about taken paths to the Task
World model -> Skill:The stored observations in the world model are used for movement skills
World model -> Motion:The world model can give data to the actuators
World model -> User interface: The user interface needs the data from the world model to visualize the world model to the human
Task -> World model:The task needs to store information about paths in world model
Skill -> World model :The world model is build from observations
Motion -> World model :The motion can give sensor data about the position to the world model
File:Initial design plan EMC group 6.pdf