Embedded Motion Control 2015 Group 4: Difference between revisions
Line 44: | Line 44: | ||
*The trust area is defined as a bounded square around the robot which is aligned with the robot frame. Only the samples in this square are used for the compass function calculations. As is shown in the figure below. | *The trust area is defined as a bounded square around the robot which is aligned with the robot frame. Only the samples in this square are used for the compass function calculations. As is shown in the figure below. | ||
[[File:Emc15 04 lv compass 001.png]] | [[File:Emc15 04 lv compass 001.png]] | ||
===Approach=== |
Revision as of 14:06, 13 May 2015
Authors: T. Cornelissen, T van Bommel, J. H. de Kleuver, M. Oligschläger, B. Hendrikx, P. Rooijakkers, T. Albers
Requirements and function specifications
Problem statement
The software design process starts with a statement of the problem. Although all the details of the assignment are not yet knwon at this point, we can best summarize the statement with the following sentence:
- Design the software in C/C++ for the (existing) Pico/Jazz robot that enables to find the exit of an unknown and dynamically changing maze in minimal time.
Requirements
A (draft) list of the requirements contains the following points:
- Exiting the maze in minimal time.
- Avoiding damage of the robot and the environment.
- Robustness of pathfinding algorithm with respect to maze layout.
- Design software using modular approach.
- Implement algorithm using only available hardware and software API's.
- Manage code development with multiple developers.
Existing hardware interfaces
- The Pico/Jazz robot with customized inner workings and a robot operating system with C++ API's.
- A (still unknown) wheelbase layout of which the possible DoF/turning radius is a design constraint.
- A lasersensor and acoustic sensor of which the range-of-visibility is a design constraint.
Unknown design constraints
- Simulation environment for code testing?
- Location of sensors and wheels relative to robot fixed frame?
- What data can we extract form the sensors?
- What does the maze look like? How do the doors operate?
Main focus point in the first two weeks
- Learn basics of C/C++ and software development.
- Determine the layout of the robot and the possibilities of the sensors and wheel structure.
- Become familiar with the integrated development environment.
- Explore the possibilities of th API's (how much postprocessing of the aquired sensor data is necessary and what techniques must be learned?).
Software design strategy
The figure below shows the overview of a posible software layout. The skill functions can be assigned to different programmers that are also responsible for exploring the API's and gathering details about the hardware. The maze solving strategy can be handled separately and the supervisory controller is the brain of the robot combining all the information. File:Maze example.pdf
Laser vision
Robot compass function
This function measures the angular misalignment of the robot with it's environment. The compass function gives a valid estimate of the angular misalignment under the following assumptions.
- The world consists of mainly straight lines.
- All the lines cross each-other approximately with an angle which is a multiple of the world angle (when for example all the angles are perpendicular then the is 90 degrees)
- The current misalignment of the robot with it's environment is small: [math]\displaystyle{ \theta_{robot}\lt \lt 0.5\cdot\theta_{world\,angle} }[/math]. This implies that the compass function is unreliable during large rotations.
- There are enough sample points (preferably in front of the robot) to ensure that lines can be detected in the so called trust area.
- The trust area is defined as a bounded square around the robot which is aligned with the robot frame. Only the samples in this square are used for the compass function calculations. As is shown in the figure below.