Embedded Motion Control 2018 Group 7
Group Members
TU/e Number | Name | |
---|---|---|
0833049 | Sam Roovers | s dot roovers at student dot tue dot nl |
0886654 | Siebrand Keja | s dot c dot keja at student dot tue dot nl |
1022624 | Milan Haverlag | m dot a dot haverlag at student dot tue dot nl |
1279637 | Piyush George Alexander | p dot g dot alexander at student dot tue dot nl
|
Initial Design
The Initial Design document can be found here : File:Emc-designrequirements.pdf
Escape room competition
To escape the room, PICO will first scan its surroundings. By the use of a corner detection program the exit is determined from two laser sets (from the front and back). PICO aligns with the angle at which the exit is detected and will drive forward. A potential field must make sure that PICO does not hit any walls.
Simulation for the Escape room challenge is shown below.
Potential field method
In order to prevent PICO from crashing into the walls, obstacle avoidance is needed. For this it is chosen to implement potential field method. The potential field method works by combining a attractive force towards a desired set-point with repulsive forces generated from obstacles.
The Attractive force is calculated from the distance between the robot and the set-point. [math]\displaystyle{ r_{att} = \sqrt{(x_{set}-x_{PICO})^2+(y_{set}-y_{PICO})^2} }[/math] and the angle: [math]\displaystyle{ \alpha_{att} = tan(\frac{x_{set}-x_{PICO}}{y_{set}-y_{PICO}}) }[/math]
The attractive force is calculated using a proportional controller:
[math]\displaystyle{ F_{att} = r_{att}*K_{att} }[/math]
The repulsive forces are calculated by taking the inverse of the distance to the wall measured with the laser range finder with the following formula: [math]\displaystyle{ r_{rep}(i) = \sqrt{(x_{wall}(i)-x_{PICO})^2+(y_{wall}(i)-y_{PICO})^2} }[/math] [math]\displaystyle{ F_{rep}(i) = \frac{K_{rep}}{r_{rep}(i)^3} }[/math]
The attractive and repulsive forces are then split in their x and y parts. Their respective x an y parts are then added together:
[math]\displaystyle{ F_{tot}(x) = F_{att}(x) + \sum{F_{rep}(i)(x)} }[/math] [math]\displaystyle{ F_{tot}(y) = F_{att}(y) + \sum{F_{rep}(i)(y)} }[/math]
These Forces are then used to determine where PICO should drive to.
Shortcommings
Due to time constraints the following features are not implemented which would have made the escape room routine a lot better.
- the positioning of a waypoint in front of the exit with enough clearing from the walls to drive to.
- alignment with the corridor after the waypoint has been reached.
Localization
The odometry localization present on PICO is only accurate for a short time due to the wheels slipping. In order to improve the accuracy of the localization, laser rangefinder data is combined with the odometry data.
When the robot starts, it scans its surroundings using the laser rangefinder and stores the found wall positions to a world map with its initial position being the center point. At the start of the main loop, the localization algorithm uses the odometry data to determine its approximate position. it the scans its surroundings using the rangefinder. in an area around the approximated position, the algorithm searches for a position where the wall locations found with the laser rangefinder can be best fitted on the world map. The fitting is done by comparing the wall locations with the world map for multiple locations. A Gaussian filter with a 5x5 kernel is used to create a smoother world map to compare to. The location where the best fit can be made is taken as the current position of the robot. The fitted laser rangefinder data is then added to the world model to expand the map.