VisualLocalization
[A short Description]
People
- Eduardo Perdices (eperdices [at] gsyc [dot] es)
- José María Cañas Plaza (jmplaza [at] gsyc [dot] es)
Development
- JdeRobot Version: jderobot-5.0
- SVN Repository: source code
- Trac. It is the trac already used for JDE development, but all the relevant tickets to this project belongs to the "robotvision" milestone
- Source License: GPLv3
- Document License: Creative Commons Attribution-Share Alike 3.0 Unported License
- Tags: robot, localization, vision
- Technology: c, c++, jderobot suite, openGL
Timeline
2012.02.20. Testing Monte Carlo algorithm with real images
2012.02.10. Testing evolutionary algorithm with real images
2012.01.24. Improving line detection with real images
There were some mistakes when detecting lines with real images, lines between floor and walls were not detected properly. We have changed our line detection algorithm to handle small color changes.
2012.01.10. Using visual memory
We have mixed our algorithm with the visual memory project. This way, we don't need to analyze images, but we receive the current visual memory stored in the visual memory component.
Besides, comparison between real and theoretical images is now performed with 3D objects, comparing distances between lines with the same label.
In the next images we show an example, with visual memory of first image, we have calculated the robot localization inside the environment:
2011.12.20. Localization with real robots
We have tested our algorithm with a real Nao Robot inside a real office building. There are two challenges with this kind of test, detecting lines is more difficult than in simulators because light conditions change depending on robot location and time of day, besides, we can't measure the localization error reliably because we don't have a ground truth algorithm.
Anyway, the robot has been able to localize itself with enough precision. Future tests will be performed to measure the localization error reliably.
2011.11.24. Localization in Gazebo
We have tested our algorithm in a Gazebo simulator with great results. We have located a robot inside an office building simulated environment and once the robot has detected its localization, have moved it around the environment.
The average error in this experiment has been ~12 cm:
2011.10.27. Comparing images
We need to compare lines detected with theoretical lines which would be detected in a concrete position. We have tried to perform this comparison in several ways. At first, we tried to compare lines directly according to its orientation and its distance to image origin (0, 0), but this comparison was not reliable enough.
Instead, we have divided lines into points to compare directly distances from points to lines. So, to obtain points from lines we perform a image grid with lines detected and compare resulting points with the theoretical images:
2011.10.03. Merging lines
Lines detected must be processed to avoid redundancy and false positives. To avoid false positives we are labeling lines according to its color, so that we only save lines with known colors. Besides, we merge lines with the same label and with similar position and orientation.
Next, we show the original detection (left) and the result after processing the image (right):
2011.09.15. Visual Localization with lines
We are improving the evolutionary algorithm designed by this project to be able to use it in more complex environments.
First of all, we can't analyze images looking for concrete objects any more, that is, we can't try to find goals or white lines, which will be only found in the RoboCup environment, but we must try to detect more generic objects, such as lines.
To do it, we have implemented a new algorithm to detect lines in generic environments, an algorithm based on an approach designed by Solis et al.
In the next image we can observe the difference between a Hough lines detection algorithm (left) and our new approach (right):