Embedded Motion Control 2015 Group 9: Difference between revisions
Line 79: | Line 79: | ||
==== Path Storage ==== | ==== Path Storage ==== | ||
Path information storage – (co-ordinate system and graphical DP) | |||
[[File:path_information.jpg]] | [[File:path_information.jpg]] | ||
# In order to store the path information a co-ordinate system can be used which helps in the recognition of loops existing in the system. Moreover distance travelled and location of doors can be easily stored with this. However standardization of unit distance as per the movement of the robot (taking into consideration the error in its distance measuring system) is necessary. | # In order to store the path information a co-ordinate system can be used which helps in the recognition of loops existing in the system. Moreover distance travelled and location of doors can be easily stored with this. However standardization of unit distance as per the movement of the robot (taking into consideration the error in its distance measuring system) is necessary. | ||
# A list of information to be stored needs to be discussed and agreed upon. This requires further study. | # A list of information to be stored needs to be discussed and agreed upon. This requires further study. |
Revision as of 22:43, 27 May 2015
Group Members
Name | Student nr | |
---|---|---|
Prasanth Muralidharan | 0926106 | p.muralidharan@student.tue.nl |
Arkadiusz Kamrowski | 0921901 | a.l.kamrowski@student.tue.nl |
Marcin Turemka | 0921893 | m.turemka@student.tue.nl |
Kartik Mundaragi Shivakumar | 0926061 | k.mundaragi.shivakumar@student.tue.nl |
Manikandan Manjaparai Sundaram | 0926898 | m.manjaparai.sundaram@student.tue.nl |
Anurodh Mishra | 0927142 | a.mishra@student.tue.nl |
Dennie Craane | 0834726 | d.w.h.craane@student.tue.nl |
Sujit Sharan | 0924962 | s.sharan@student.tue.nl |
Anshuman Singh | 0927466 | a.singh@student.tue.nl |
Initial Design
As seen in the figure above, the main objective of the robot is to get safely out of the maze as quickly as possible in order to win the contest. To reach this objective, the robot will have to fulfill a set of functions or tasks, for which it will need certain skill sets. In order to judge whether the found solution fulfills the functions, a set of requirements and necessary components are needed to meet the specifications. The functions and underlying skills can be portrayed in graphical overview resulting from brainstorming as shown in the above figure.
For each function, requirements can be set along with additional information about the required components and specifications. The resulting skill sets and robot lower layer abilities that a re needed are derived from the combination of the functions and components.
Function: Memory Handling
This function is mainly involved in handling the onboard memory modules for all the computations and logical decisions required to be made by the robot.
Requirements and specifications
- It should be able to read and manipulate required flags in the robot architecture.
- It should have a priority scheduling architecture for making decisions in real time within specific time constraints.
- Should handle the memory safely without corruption of data.
Components
The components required to perform this function effectively, are a read only code memory, and a RAM(Random Access Memory).
Function: Route mapping
The function route mapping has the following subcomponents:
Path Planning
- Open corridors first (saving doors encountered in memory): The first step is to scan all the open paths/corridors keeping track of the doors encountered. The doors act as the nodes for the subsequent stage.
- Basic decision algorithm (like left-front-right-down, longest distance, etc.) A basic decision algorithm is required to make the exploration of corridors with branching possible. The base decision algorithm can be a rule of thumb or a more reasoned approach.
- Returning to last saved junction. Encountering a dead end or a loop the robot should return to the last saved checkpoint/junction and continue on the basis of the decision algorithm selected.
- Graphical dynamic programming algorithm - The best possible algorithm with the shortest time is found to be the graphical dynamic algorithm and this would be used to solve the problem for optimal path for the maze.
Path Storage
Path information storage – (co-ordinate system and graphical DP)
- In order to store the path information a co-ordinate system can be used which helps in the recognition of loops existing in the system. Moreover distance travelled and location of doors can be easily stored with this. However standardization of unit distance as per the movement of the robot (taking into consideration the error in its distance measuring system) is necessary.
- A list of information to be stored needs to be discussed and agreed upon. This requires further study.
Requirement
In order to successfully accomplish the above mentioned function, certain requirements (qualitative in nature for now), needs to be fulfilled. These are:
- Differentiation between open branches and doors in a corridor is required for exploration in an organized manner.
- A nomenclature for the storage of information needs to be agreed upon for ease of understanding and traceability.
Components
- Memory
- Elements (not clearly defined at this level) for conversion of information from robot skill set to suitable parameters like distance travelled, orientation and location w.r.t. a reference.
- C++ code
- An algorithm for path planning
Function: Maneuvering
Sub-functions
- Use information from the algorithm and environment to adequately move the robot into the desired position using the abilities from the ROS.
- Maintain a safe velocity and position in respect to the obstacle in the environment, this is to ensure the safety of the robot.
- Optimize movements to reduce time needed.
Requirements
- It must maintain a safe distance with the wall whenever it moves.
- It should move at a constant speed, with which it’s still capable of detecting the door opening.
- The robot mustreverse in the case a wall has been hit.
- If it reaches a dead end it should turn around and return to the last decision location and send a command to the algorithm to recalculate the path.
- If the robot is unable to find a path it might move in backward direction along the same path, so that it has better chance of detecting the doors.
Components
- The robot lower level abilities
- Wheels
- Motors
- Memory
Function: Environment awareness
The high level function environment awareness consists of tasks:
- Wall following
- Opening interpretation
- Position detection
The first task, wall following, consists of using skills related to detection of the obstacles in the robot’s surroundings. The skills and related robot abilities needed to perform this task can be described as:
- Wall detection
- Get distance to obstacle from laser sensor for all degrees
- Decide for what degrees an obstacle is present and where not (opening)
- Save obtained information into memory
- Opening interpretation
- Get opening locations from the memory
- Use previous information from the memory to detect ‘new’ openings
- Decide if opening is an exit, door or another branch
- Save information into the memory
- Position detection
- Get distance to obstacle from laser sensor for all degrees
- Get old position from memory
- Compare new distance to old distance and determine distance traveled
- Determine new position relative to starting point
- Save position into memory
Requirements and specifications
This function should fulfill a set of requirements in order to test if the function is performed correctly. Part of the requirements will be quantitative, however, due to the early stage in the project most requirements are kept qualitative for now.
- The function must differentiate between solid obstacles (wall) and an opening (door).
- Obtained information must be stored in a memory unit accessible by other tasks.
- The memory should be polled with a suitable frequency in order to prevent flooding.
- Detection of obstacles should have a relatively high frequency, due changes in the path (doors)
- Determining global positioning should have a relatively low frequency, due to slow movement speed.
- Upon detection of a door, other tasks should be notified.
Components
Components that are used by this function are the memory and laser position sensor.
Some cool links
Info on git - https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf, http://git-scm.com/ A Micromouse competition video - https://www.youtube.com/watch?v=bproY7G2t4o