Сравнение монокулярного пути SLAM с земной правдой
Я создал набор данных с очень точной наземной истинностью в 6DoF (как положение, так и положение) и хотел бы использовать это для сравнения точности пути в 6DoF для различных алгоритмов монокулярного SLAM.
Основная истина приводит к траектории в 6 DoF относительно системы координат наземной истины. Алгоритмы SLAM дают путь в 6DoF относительно системы координат SLAM
Из-за природы монокулярных алгоритмов SLAM у меня нет масштаба пути.
Как я могу решить это с моим набором данных? Есть ли доступные скрипты?
1 ответ
То, что вы хотите сделать, это найти преобразование между локальными и глобальными координатами. В зависимости от вашей точной модели состояния уравнения будут меняться. Но основная идея состоит в том, чтобы начать с известной точки в обоих кадрах. Скажем, в начальный момент времени в нашем Глобальном кадре у нас есть Pg=[xg0 yg0 zg0 rg0 pg0 yg0]
и координаты роботов Pr =[xr0 yr0 zr0 rr0 pr0 yr0]
на этом этапе нам нужно создать отображение из Pg в Pr. Получив это, мы можем представить все данные в одном и том же виде.
Отображение от 6dof до другого 6dof очень сложно и очень нелинейно. Обычно об этом можно думать в два этапа
- Карта между XYZ, чтобы получить ось в той же области.
- отобразить ориентацию между двумя осями (крен, тангаж рыскания)
Я не смог найти много источников о том, чтобы сделать оба одновременно, но если вы сделаете их последовательно, это все равно будет работать (порядок важен, поэтому будьте последовательны), вот хороший пост, в котором есть преобразования xyz https://gamedev.stackexchange.com/questions/ 79765 / как-делать-я конвертирование-из-глобальных координатно-космоса-а-местного пространство
Этот веб-сайт великолепен (я использовал его для решения проблемы 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 необходим для сохранения перевода. Крен (альфа) шаг (бета) и рыскание (гамма) получаются из матрицы вращения между глобальными координатами и координатами робота