Range-only SLAM with indistinguishable marks a constraint programming approach
Published in the journal Constraints
The micro-site is associated to the paper : L. Jaulin (2016). Pure range-only SLAM with indistinguishable marks. Constraints. , 21(4), 557-576. pdf.


Videos

A Video with some explanations to help the reader to understand the paper.



A video to introduce a scenario where range-only localisation is used.






Codes

This microsite provides the C++ code associated to the paper.
Download all files (QT C++ code and exe) associated with the two SLAM test-cases (to download QT, see e.g. qt.html).
A simulator is also given. It makes it possible to generate your own data for your own test-case.


Test-case 1

Unzip into a folder.
Go into the exe (windows only) folder to run the simulator (simu.exe) and the solver (mslam.exe).
The simulator simu.exe generates the data file: data.txt.
The solver mslam.exe solves the SLAM problem the data of which are stored inside data.txt.
Note the solver draws the results at the end, but generated image files that can be visualized during the resolution.
If you don't want to use the simulator, you can take the data file associated with the figure of Test-case 1 (see the paper). This file is named file data_testcase1.txt. You should first rename it into data.txt: the solver only recognize the file data.txt.
The code for the simulator which generates the data are in the folder simu4testcase1.



Test-case 2

The data associated with test-case 2 are in the zip file (mslam.zip), and is named data_testcase2.txt of the exe folder. Again, you should rename it as data.txt. Note that solving SLAM with this test-case takes time (more than one hour).

Remark . Note that the generated data.txt contains some data such as the trajectory of the robot, the position of the marks that should not be allowed for SLAM. These forbidden data are here to compare the results of SLAM with the truth. They are not used by the SLAM algorithm. You can modify these forbidden data as you want, this will not change the estimation.


Propagation with tubes

Download the QT-C++ code associated with the tube contraction, where a contractor associated with the periodic constraint x(t)=x(t+1) is provided.