Embedded Motion Control 2016 Group 4: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
= '''Group Members''' =
= '''Group Members''' =
{| border="1" cellpadding="5" cellspacing="0" align="left"  
 
{| border="1" cellpadding="5" cellspacing="0" align="none"  
|-  
|-  
| 0811028
| 0811028
Line 16: Line 17:
| 0816951
| 0816951
| Joey Reinders   
| Joey Reinders   
| j.m.f.reinders@student.tue.nl  
| j.m.f.reinders@student.tue.nl  
 
|-
|-
|}
|}
= '''Goal''' =
The goal of this project is to let a robot (PICO or TACO) navigate autonomously and as seamlessly as possible through a maze and find the exit. The robot has a computer integrated in it that runs on Linux with ROS (Robot Operating System) running on top. To achieve the goal, a software architecture has to be designed that ... The software has to be written in the C++ programming language. This implementation needs to have certain requirements, functions, components, specifications and interfaces.
= '''Requirements''' =
To achieve the final goal several requirements are determined, which can be seen in the following list.
:* Navigate autonomously to the exit of the maze as fast as possible
:**''cruise as fast as possible while maintaining the different abilities''
:* Avoid obstacles
:**''recognize the different obstacles (e.g. walls) and keep a "safe" distance from them''
:* Avoid getting trapped in a loop of the maze
:**''recognize if the robot is navigating through the same path over and over and exit the loop''
:* Create a map of the maze
:* Recognize door, open it and drive through it
:* Navigate in open spaces
:**''navigate if no obstacle is in sight''
:* Scalable system
:**''the software should be able to work independently of the size and structure of the maze''
= '''Functions''' =
The functions can be divided into two groups: the basic functions and the skill functions. The basic functions are basic actions that the robot will do. The skill functions are a set of actions to accomplish a certain goal.
The basic functions consist of:
:* Actuation of the robot:
:**Provide signals to the actuators of the robot. Realize the desired motion by using a controller and meeting the requirements.
:**Input: location of robot, Output: motion of robot
:* Detect:
:**Characterize different types of corridors based on telemetry provided by the Laser Range Finder (LRF).
:**Input: measured x, y and theta; Output: type of corridor
The skill functions consist of:
:* Mapping:
:**Create and update a map of the explored maze. The robot will recall this map as its future moves will depend on this map.
:**Input: current x, y and theta of the robot; Output: new/updated maze map, new/adjusted objective of the robot.
:* Feedback:
:**Check position of robot with position of the created map. Prevent the robot from collisions with the walls or other obstacles.
:**Input: current x, y, theta, LFR data and objective; Output: motion of the robot.
:* Decision:
:**Check position of robot with position of the created map. Prevent the robot from collisions with the walls or other obstacles.
:**Input: current x, y, theta, LFR data and objective; Output: motion of the robot
:* Monitor:
:**Control the exploration of the maze and prevent the robot from getting stuck in a loop.
:**Input: current x, y and theta of the robot; Output: previously unexplored area
:* Door check:
:**Wait at the potential door location for a predetermined time period while scanning the distance to the potential door to check if it opens.
:**Input: current x, y and theta of the robot; Output: A door that either opens or stays closed, followed by pico's new objective based upon the result.
:* Obstacle check:
:**Measure the preset minimum safe distance from the walls or measure not moving as expected according to the driving action.
:**Input: current and expected x, y and theta of the robot; Output: new motion of the robot based upon the result.
= '''Components''' =

Revision as of 10:11, 29 April 2016

Group Members

0811028 Tim Josten t.j.josten@student.tue.nl
0790737 Tom Leenen t.c.p.f.leenen@student.tue.nl
0832751 Martin Plantinga m.plantinga@student.tue.nl
0816951 Joey Reinders j.m.f.reinders@student.tue.nl

Goal

The goal of this project is to let a robot (PICO or TACO) navigate autonomously and as seamlessly as possible through a maze and find the exit. The robot has a computer integrated in it that runs on Linux with ROS (Robot Operating System) running on top. To achieve the goal, a software architecture has to be designed that ... The software has to be written in the C++ programming language. This implementation needs to have certain requirements, functions, components, specifications and interfaces.

Requirements

To achieve the final goal several requirements are determined, which can be seen in the following list.

  • Navigate autonomously to the exit of the maze as fast as possible
    • cruise as fast as possible while maintaining the different abilities
  • Avoid obstacles
    • recognize the different obstacles (e.g. walls) and keep a "safe" distance from them
  • Avoid getting trapped in a loop of the maze
    • recognize if the robot is navigating through the same path over and over and exit the loop
  • Create a map of the maze
  • Recognize door, open it and drive through it
  • Navigate in open spaces
    • navigate if no obstacle is in sight
  • Scalable system
    • the software should be able to work independently of the size and structure of the maze

Functions

The functions can be divided into two groups: the basic functions and the skill functions. The basic functions are basic actions that the robot will do. The skill functions are a set of actions to accomplish a certain goal.

The basic functions consist of:

  • Actuation of the robot:
    • Provide signals to the actuators of the robot. Realize the desired motion by using a controller and meeting the requirements.
    • Input: location of robot, Output: motion of robot
  • Detect:
    • Characterize different types of corridors based on telemetry provided by the Laser Range Finder (LRF).
    • Input: measured x, y and theta; Output: type of corridor

The skill functions consist of:

  • Mapping:
    • Create and update a map of the explored maze. The robot will recall this map as its future moves will depend on this map.
    • Input: current x, y and theta of the robot; Output: new/updated maze map, new/adjusted objective of the robot.
  • Feedback:
    • Check position of robot with position of the created map. Prevent the robot from collisions with the walls or other obstacles.
    • Input: current x, y, theta, LFR data and objective; Output: motion of the robot.
  • Decision:
    • Check position of robot with position of the created map. Prevent the robot from collisions with the walls or other obstacles.
    • Input: current x, y, theta, LFR data and objective; Output: motion of the robot
  • Monitor:
    • Control the exploration of the maze and prevent the robot from getting stuck in a loop.
    • Input: current x, y and theta of the robot; Output: previously unexplored area
  • Door check:
    • Wait at the potential door location for a predetermined time period while scanning the distance to the potential door to check if it opens.
    • Input: current x, y and theta of the robot; Output: A door that either opens or stays closed, followed by pico's new objective based upon the result.
  • Obstacle check:
    • Measure the preset minimum safe distance from the walls or measure not moving as expected according to the driving action.
    • Input: current and expected x, y and theta of the robot; Output: new motion of the robot based upon the result.

Components