An open API service indexing awesome lists of open source software.

https://github.com/osll/slam-comparison


https://github.com/osll/slam-comparison

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

К статье: Методы сравнения качества 2D-SLAM-алгоритмов (https://izv.etu.ru/assets/files/3_2_p022-030.pdf)

Для вычисления RMSE требуется:
1. Построить файл groundtruth
2. Построить файл с позициями, построенными согласно алгоритму SLAM
3. Вычислить среднеквадратическое отклонение между позициями робота в построенных файлах
4. Повторить шаги 2 и 3 несколько раз, чтобы вычислить математическое ожидание и дисперсию СКО между позициями робота в groundtruth и в результате работы SLAM алгоритма

1. Построение groundtruth
Формат файла groundtruth.txt:
timestamp pos_x pos_y pos_z quaternion_x quaternion_y quaternion_z quaternion_w

Пример части файла groundtruth
1299854903.407471 0.00084487 0.00047773 0.0 0.0 0.0 0 1
1299854903.457468 0.00103012 0.00092851 0.0 0.0 0.0 0 1
1299854903.507465 0.00014174 0.00211835 0.0 0.0 0.0 0 1
1299854903.558479 0.00103012 0.00141523 0.0 0.0 0.0 0 1
1299854903.608475 0.00037612 0.00092852 0.0 0.0 0.0 0 1
1299854903.658472 0.00056137 0.00118085 0.0 0.0 0.0 0 1
1299854903.708469 0.00079574 0.00092852 0.0 0.0 0.0 0 1
1299854903.758466 0.00149887 0.00047772 0.0 0.0 0.0 0 1

Для построение файла groundtruth для датасета MIT можно воспользоваться утилитой gt-match-ros. О её установке написано здесь
https://github.com/art32fil/gt-match-ros_install
Использование
Необходимо заранее скачать с сайта MIT файл с расширением .walls, где описаны координаты всех препятствий
./gt-match-ros -w 2nd_floor.walls -x 0 -y 0 -t 0 -l [path to dataset .bag] -g 150
(в терминале надо будет постоянно нажимать [k]eep)
получится на выходе

2. Построение файла с позициями, построенными согласно алгоритму SLAM
Нода, которая в нужном формате генерирует список позиций робота, должна быть запущена вместе с общим алгоритмом. Файл с исходным кодом ноды - pose_logger.py
Входные параметры:
“target_frame” - имя фрейма робота
“base_frame” - имя фрейма карты
“output_file” - имя выходного текстового файла

3. Вычисление среднеквадратического отклонения между позициями робота в построенных файлах

./evaluate_ate.py

4. Файл, который выполняет шаги 3 и 4, но который надо исправить под конкретное расположение файлов на системе - test_viny_slam_bag.sh