Embedded Motion Control 2017 Group 4

From Control Systems Technology Group

(Difference between revisions)
Jump to: navigation, search
(Headline text)
(Requirements and specifications)
Line 6: Line 6:
robot behaviour. This will also be implemented in C++.
robot behaviour. This will also be implemented in C++.
=== Requirements and specifications ===
=== Requirements and specifications ===
-
PICO is required to autonomously navigate through a maze and find the exit without bumping
+
PICO is required to autonomously navigate through a maze and find the exit without bumping into any of the walls. A door will be present in the maze, and must be opened by "ringing the bell" in a suitable location whilst standing still. Open spaces might be present, and the walls are approximately axis aligned. The maze might also feature loops. Therefore PICO is required to do the following:
-
into any of the walls. A door will be present in the maze, and must be opened by "ringing
+
* Recognize walls and corridors in a robust manner. The walls are axis aligned, however not perfectly. PICO should allow for an alignment error. It also has to stay away from the walls with a sufficient margin (e.g. 10 cm between robot and wall). Bumping into a wall will count as a failed attempt.
-
the bell" in a suitable location whilst standing still. Open spaces might be present, and the
+
* Identify possible "door areas" in a robust manner. "The door will be situated at a dead end, a dead end being defined as a piece of wall with minimum length 0.5 meter and maximum length 1.5 meter with side-walls of at least 0.3 meter length". Alignment errors again need to be taken into account.
-
walls are approximately axis aligned. The maze might also feature loops. Therefore PICO is
+
* Map the maze to determine whether the area has been visited and to build a world model. Odometry and Laser Range Finder (LRF) are used to build a world map and determine the location in the world. The odometry and LRF data should be synchronized to avoid drift in world location and mapping (SLAM).
-
required to do the following:
+
* Recognize corners as nodes in order to build an abstract and simplified maze representation consisting of nodes and lines.
-
* Recognize walls and corridors in a robust manner. The walls are axis aligned, however
+
* Cary out a maze solving strategy based on its world model and solve and execute corresponding routing. The solving routine and the routing should be able to handle loops and open spaces and are based on the simplified maze representation. This enables more general strategy composition and faster computation.
-
not perfectly. PICO should allow for an alignment error. It also has to stay away from
+
* Open doors by ringing a bell in the door area. No part of PICO should be located outside the 1.3 meter range of the door and PICO should be standing still whilst ringing the bell. The door opens completely within 5 seconds after PICOs request. Once the door is completely open, PICO needs to pass the open doorway to find the exit of the maze.
-
the walls with a sufficient margin (e.g. 10 cm between robot and wall). Bumping into
+
* The software should be easy to set up and deploy, i.e. using git pull and with a single executable.
-
a wall will count as a failed attempt.
+
* Clear the maze as soon as possible, with a total available time of seven minutes for two attempts. A maximum speed of 0.5 m/s translational and 1.2 rad/s rotational is given.
-
* Identify possible "door areas" in a robust manner. "The door will be situated at a dead
+
-
end, a dead end being defined as a piece of wall with minimum length 0.5 meter and
+
-
maximum length 1.5 meter with side-walls of at least 0.3 meter length". Alignment
+
-
errors again need to be taken into account.
+
-
* Map the maze to determine whether the area has been visited and to build a world
+
-
model. Odometry and Laser Range Finder (LRF) are used to build a world map and
+
-
determine the location in the world. The odometry and LRF data should be synchronized
+
-
to avoid drift in world location and mapping (SLAM).
+
-
* Recognize corners as nodes in order to build an abstract and simplified maze representation
+
-
consisting of nodes and lines.
+
-
* Cary out a maze solving strategy based on its world model and solve and execute
+
-
corresponding routing. The solving routine and the routing should be able to handle
+
-
loops and open spaces and are based on the simplified maze representation. This enables
+
-
more general strategy composition and faster computation.
+
-
* Open doors by ringing a bell in the door area. No part of PICO should be located outside
+
-
the 1.3 meter range of the door and PICO should be standing still whilst ringing the
+
-
bell. The door opens completely within 5 seconds after PICOs request. Once the door
+
-
is completely open, PICO needs to pass the open doorway to find the exit of the maze.
+
-
* The software should be easy to set up and deploy, i.e. using git pull and with a single
+
-
executable.
+
-
* Clear the maze as soon as possible, with a total available time of seven minutes for two
+
-
attempts. A maximum speed of 0.5 m/s translational and 1.2 rad/s rotational is given.
+
* Do not stand still for more than thirty seconds when inside the maze.
* Do not stand still for more than thirty seconds when inside the maze.
 +
=== Components ===
=== Components ===
=== Functions ===
=== Functions ===
=== Interfaces ===
=== Interfaces ===

Revision as of 14:04, 9 May 2017

Contents

Initial design

Introduction

In this design chapter, the initial design of a maze solving robot is specified in terms of requirements, specifications, components, functions and interfaces. It is implemented on the PICO hardware platform. A task-skill-motion framework is used in order to describe the robot behaviour. This will also be implemented in C++.

Requirements and specifications

PICO is required to autonomously navigate through a maze and find the exit without bumping into any of the walls. A door will be present in the maze, and must be opened by "ringing the bell" in a suitable location whilst standing still. Open spaces might be present, and the walls are approximately axis aligned. The maze might also feature loops. Therefore PICO is required to do the following:

  • Recognize walls and corridors in a robust manner. The walls are axis aligned, however not perfectly. PICO should allow for an alignment error. It also has to stay away from the walls with a sufficient margin (e.g. 10 cm between robot and wall). Bumping into a wall will count as a failed attempt.
  • Identify possible "door areas" in a robust manner. "The door will be situated at a dead end, a dead end being defined as a piece of wall with minimum length 0.5 meter and maximum length 1.5 meter with side-walls of at least 0.3 meter length". Alignment errors again need to be taken into account.
  • Map the maze to determine whether the area has been visited and to build a world model. Odometry and Laser Range Finder (LRF) are used to build a world map and determine the location in the world. The odometry and LRF data should be synchronized to avoid drift in world location and mapping (SLAM).
  • Recognize corners as nodes in order to build an abstract and simplified maze representation consisting of nodes and lines.
  • Cary out a maze solving strategy based on its world model and solve and execute corresponding routing. The solving routine and the routing should be able to handle loops and open spaces and are based on the simplified maze representation. This enables more general strategy composition and faster computation.
  • Open doors by ringing a bell in the door area. No part of PICO should be located outside the 1.3 meter range of the door and PICO should be standing still whilst ringing the bell. The door opens completely within 5 seconds after PICOs request. Once the door is completely open, PICO needs to pass the open doorway to find the exit of the maze.
  • The software should be easy to set up and deploy, i.e. using git pull and with a single executable.
  • Clear the maze as soon as possible, with a total available time of seven minutes for two attempts. A maximum speed of 0.5 m/s translational and 1.2 rad/s rotational is given.
  • Do not stand still for more than thirty seconds when inside the maze.

Components

Functions

Interfaces

Personal tools