Mobile Robot Localization Algorithm in C++ Categories C++, probabilistic algorithms, robotics Description Seeking a scientific programmer with strong mathematical and statistical background to implement a Monte Carlo localization algorithm. Localization is the problem of having a mobile robot determine its position within a map based on sensor data of its local surroundings. The programmer will have to read descriptions of the algorithm in robotics text books and published scientific articles and implement the algorithm according to those descriptions. References to the specific articles and book chapters that are relevant are provided below. We will also have available someone familiar with robotics to answer questions on the algorithm and some implementation details. However, the bulk of the work to read and understand the reference materials and implement the algorithm will be on the programmer. The following areas of experience will be helpful in implementing the algorithm * A strong background in data structures and algorithms implementation and design * A familiarity with robotics concepts * A strong background with probability and statistics, particularly Bayesian probability * Experience implementing probabilistic algorithms, such as Monte Carlo algorithms * Experience creating readable, maintainable code that passes peer review Relevant references for Monte Carlo localization are listed below. Copies of these will be made available to potential bidders for work estimation. Ch 8 - Mobile Robot Localization: Grid and Monte Carlo. Sebastian Thrun, Wolfram Burgard, Dieter Fox. Probabilistic Robotics. MIT Press, 2005. Monte carlo localization: Efficient position estimation for mobile robots. D. Fox, W. Burgard, F. Dellaert, and S. Thrun. AAAI-99. Particle filters for mobile robot localization. D. Fox, W. Burgard, F. Dellaert, and S. Thrun. Sequential Monte Carlo Methods in Practice. Springer Verlag, New York, 2000.
## Deliverables
1. Code library. Code shall be written in C++ and well documented with references to appropriate sections of reference materials (text books or published scientific articles). Good judgment shall be used in coding style (naming, use of white space, logical structure, etc.). Code shall include unit tests for significant functions and should be instrumented for logging and debugging output. Example test data will be provided. 2. Test harness. Test harness program that demonstrates functionality of all API functions. Program shall be accompanied by all project files so that harness is ready to compile and run on either Windows or Linux platforms. 3. Interface documentation for all API functions. All deliverables will be considered “work made for hire?? under U.S. and international Copyright laws. Buyer will receive exclusive and complete copyrights to all work purchased. No 3rd party software (including, but not limited to, opensource source software) unless AGREED TO in writing by the buyer.
## Platform
C++, Linux or Windows