Сравнение монокулярного пути SLAM с наземной правдой

Я создал набор данных с очень точной наземной правдой в 6 степенях свободы (как положение, так и отношение) и хотел бы использовать его для сравнения точности пути в 6 степенях свободы для различных монокулярных алгоритмов SLAM.

Наземная истина приводит к пути в 6 степенях свободы относительно системы координат наземной истины. Алгоритмы SLAM приводят к пути в 6DoF относительно системы координат SLAM.

Из-за особенностей монокулярных алгоритмов SLAM у меня нет шкалы пути.

Как я могу решить это с моим набором данных? Есть ли доступные скрипты?


person plcbp    schedule 05.05.2015    source источник
comment
Я забыл упомянуть, я размещал это на форумах ROS, однако я подумал, что было бы неплохо опубликовать это здесь. 1. Я думаю, это будет интересно за пределами сообщества ROS 2. ROS — медленный форум   -  person plcbp    schedule 05.05.2015


Ответы (1)


Что вы хотите сделать, так это найти преобразование между локальными и глобальными координатами. В зависимости от вашей точной модели состояния уравнения будут меняться. Но основная идея состоит в том, чтобы начать с известной точки в обоих кадрах. Скажем, в начальный момент времени в нашем глобальном фрейме у нас есть (Pпозиция glocal) Pg=[xg0 yg0 zg0 rg0 pg0 yg0], а координата робота равна Pr =[xr0 yr0 zr0 rr0 pr0 yr0], в этот момент нам нужно создать сопоставление от Pg до Pr. у нас есть это, мы можем представить все данные в одном и том же.

Сопоставление 6dof с другим 6dof очень сложно и очень нелинейно. Обычно это можно представить в два этапа

  1. карту между xyz, чтобы получить ось в той же области.
  2. отображать ориентацию между двумя осями (крен, тангаж, рыскание)

Я не смог найти много источников о выполнении обоих одновременно, но если вы делаете их последовательно, это все равно будет работать (порядок имеет значение, поэтому будьте последовательны) вот хороший пост с преобразованиями xyz https://gamedev.stackexchange.com/questions/79765/how-do-i-convert-from-the-global-coordinate-space-to-a-local-space

отличный сайт (я использовал его для решения задачи 3d SLAM, это было невероятно полезно), и на нем есть информация о преобразованиях тангажа и рысканья. http://planning.cs.uiuc.edu/node104.html, если вы исследуете веб-сайте вы также должны найти преобразования xyz. Иногда бывает полезно сначала начать с 2D-примеров, чтобы понять концепцию, а затем посмотреть 3D-примеры.

Удачи

изменить

Первоначально я разместил неправильную ссылку на веб-сайт планирования, но она исправлена. Вот основное уравнение введите здесь описание изображения

Ваши опорные точки для SLAM являются результатом этого уравнения Global landmark = T * Landmark w/respect Robot, и каждая точка представлена ​​​​как [x,y,z,1], где 1 требуется для сохранения перевода. Крен (альфа), шаг (бета) и рыскание (гамма) получаются из матрицы вращения между глобальными координатами и координатами робота.

person andrew    schedule 05.05.2015