OSLL/slam-comparison
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
К статье: Методы сравнения качества 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) получится на выходе <time>_complete_trajectory.gt и <time>_main_trajectory.gt выполнить ./msd-gt-convert <time>_complete_trajectory.gt > <out file name> 2. Построение файла с позициями, построенными согласно алгоритму SLAM Нода, которая в нужном формате генерирует список позиций робота, должна быть запущена вместе с общим алгоритмом. Файл с исходным кодом ноды - pose_logger.py Входные параметры: “target_frame” - имя фрейма робота “base_frame” - имя фрейма карты “output_file” - имя выходного текстового файла 3. Вычисление среднеквадратического отклонения между позициями робота в построенных файлах ./evaluate_ate.py <generated_pose_file> <groundtruth> 4. Файл, который выполняет шаги 3 и 4, но который надо исправить под конкретное расположение файлов на системе - test_viny_slam_bag.sh