On of the most common question by handling large data sets is “How to represented the data?” and of course the answer is versatile. One of the most used solution is a tree like structure, organized by at least one sorting criteria.
KDTree++ is a c++ library which is supporting this feature. KDTrees are allowing to sort data by ‘k’-Dimensional sorting criteria and the library implements a template based realization. KDTree++ is published under Artistic License 2.0.
Update: I was trying to use KDTree++ in on of our projects on Three-Dimensional perception and Point Clouds analysis. Therefore i was adding roundabout 30.000 Points (x,y,z-coordinates plus some extra informations) into such a tree. The first feeling was quiet positive. It was fast and did not consume that much resources. But by using the search functionality, provided by KDTree++ i was shocked. Every time i was placing a query the memory consumption did rise up dramatically, and even worse, it was staying that high. After investigating the KDTree code i figured out that the library does on each query create a copy of the found items and returns them. Unfortunately those items are never deleted and if i try to deleted them by my self the library produces a segmentation fault. So, summing up i would say that these library is really powerful, but bad documented and seems to have some serious bugs.
As we have already reported is the “Fraunhofer Autonomous Intelligent Robotics Devices” Library now open source and available at the sourceforge project “OpenVolksBot“. In addition we can know report some more details on it.
The FAIRlib is now organized as several Eclipse-Project (fairAlgorithm, fairCore, fairDevices, fairGraphics, fairTestAlgorithm, fairTestCore, fairTestDevices and fairTestGraphics). This allows an easy extending and compiling the projects and minimizes the cross dependencies.
The dependences are listed in the ReadMe and can be auto installed by using the script “apt-get-fair”
A way of easy installing is given by the script “install-fair“
The current version is tested on the Ubuntu 9.10 (64-Bit) , but will also work on other OS (by side of auto solving the dependences)
Everybody who has ever designed and built a robot by him self knows about the difficulty by building special components like sensor holders, adapters or axes bearings . Either you have to pay a huge amount of money to a company that is willing to build small product series on it or , which is more common you build them by your self and spend a lot of time on prototyping and manufacturing tasks, and then build it by hand. For the last option the usage of a 3D-printers can speedup the process.
Generally spoken is a 3D-Printer an industrial robot with several degree of freedoms, that is moving an extruder and injects either plastic or metal in a way that a plastic or metal object (the prototypes) are created. This technology allows therefore to print physical objects. By using this technology, the coast of one object/prototype are dramatically shrinking. More or leas the coast of one object is given by the material coasts and the time which is needed to build a CAD-Design of the object.
The major drawback of 3D-Print is the acquisition costs. Professional printer can easily coast more then 20.000€. But there is hope. The open source project RepRap allows us to build our own 3D-Printer by coast round about 500€. RepRap stands for Replicating Rapid-prototyper and is a hardware open source project. Like the big industrial machines does this project support a easy way do build your first prototypes.
Mendel’s improvements over Darwin from Rep Rap on Vimeo.
Of course there is also darkness. The RepRap-hardware is currently on the state of the industrial machines from 5 years ago. For example does the open source version not support to printing two type of material simultaneously. But this is extremely usefully if you have to build object with huge holes, which would collapse if there is no filling material inside that will be removed later.
But still this technollogy makes prototyping that easy and quick that it is worth to give it a try.
The “Elektrischer-Reporter” (German) has a reportage of the background and the ideas for the close future on 3D-Printing and homemade products. The basic stadement is an upcoming change of production lines. Every customers will be also a small factory and an upcoming market of “digital construction plans” will showup.
Developing and programming robotic systems can sometimes be an unsatisfying task. This feeling is mostly not related to problems that occur during “high level” problem solving. It is mostly appearing if you try to get the system it self up and running. So tools and solutions are needed to help us to overcome these initialization barriers.
The Fraunhofer Institute for Intelligent Analysis and Information Systems or for short Fraunhofer IAIS, does now offer a special computer library that can support the developer to get a width field of sensors and actors up and running. In addition it includes a various number of algorithmic for every day robotic problems like Simultaneous Localization And Mapping (SLAM) or image processing. The so called “Fraunhofer Autonomous Intelligent Robotics Devices Library” or for short FAIR library, is a C/C++ development library which is actively used in the VolksBot® projects and is released as open source project under the GNU-license Creative Commons.
FAIRlib is soon available at the sourceforge project “OpenVolksBot“.
Updated: The initail version is now available (see also here) and is published under the CC-by-sa-nc.