poseGraph3D

Создайте 3-D график положения

Описание

poseGraph3D объект сохраняет информацию для 3-D представления графика положения. График положения содержит nodes соединенный edges, с ограничениями ребра, которые задают относительное положение между узлами и неопределенностью на том измерении. optimizePoseGraph функция изменяет узлы с учетом неопределенности, и улучшите полный график.

Для 2D графиков положения смотрите poseGraph.

Чтобы создать график положения итеративно, использовать addRelativePose добавить положения и соединить их с существующим графиком. Укажите, что неопределенность сопоставила использование информационной матрицы. Укажите, что закрытия цикла добавляют дополнительные ограничения ребра между существующими узлами.

Создание

Описание

пример

poseGraph = poseGraph3D создает 3-D объект графика положения. Добавьте использование положений addRelativePose создать график положения итеративно.

poseGraph = poseGraph3D('MaxNumEdges',maxEdges,'MaxNumNodes',maxNodes) задает верхнюю границу на количестве ребер и узлов, позволенных в графике положения при генерации кода. Этот предел только требуется при генерации кода.

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество узлов в графике положения в виде положительного целого числа. Каждый узел представляет положение в графике положения как [x y z qw qx qy qz] вектор с позиционным xyz и ориентация кватерниона, [qw qx qy qz]. Чтобы задать относительные положения между узлами, использовать addRelativePose. Чтобы получить список всех узлов, использовать nodes.

Примечание

Порядок кватерниона [qw qx qy qz] использует стандартное соглашение. Некоторые системы координат транспортного средства вместо этого задают порядок как [qx qy qz qw]. Проверяйте источник своих данных о графике положения перед добавляющими узлами к вашему poseGraph3D объект.

Это свойство доступно только для чтения.

Количество ребер в графике положения в виде неотрицательного целого числа. Каждое ребро соединяет два узла в графике положения. Ребра закрытия цикла включены.

Это свойство доступно только для чтения.

Количество закрытий цикла в графике положения в виде неотрицательного целого числа. Чтобы получить идентификаторы ребра закрытий цикла, используйте LoopClosureEdgeIDs свойство.

Это свойство доступно только для чтения.

Идентификаторы ребер закрытия цикла в виде вектора из идентификаторов ребра.

Функции объекта

addRelativePoseДобавьте относительное положение в график положения
edgesРебра в графике положения
edgeConstraintsОграничения ребра в графике положения
edgeResidualErrorsВычислите остаточные ошибки ребра графика положения
findEdgeIDНайдите ID ребра ребра
nodesПоложения узлов в графике положения
optimizePoseGraphОптимизируйте узлы в графике положения
removeEdgesУдалите ребра закрытия цикла из графика
showПостройте график положения

Примеры

свернуть все

Оптимизируйте график положения на основе ограничений ребра и узлов. График положения, используемый в этом примере, взят из Набора данных MIT и был сгенерирован с помощью информации, извлеченной из гаража.

Загрузите график положения от набора данных MIT. Смотрите poseGraph3D возразите, чтобы просмотреть количество закрытий цикла и узлов.

load parking-garage-posegraph.mat pg
disp(pg);
  poseGraph3D with properties:

               NumNodes: 1661
               NumEdges: 6275
    NumLoopClosureEdges: 4615
     LoopClosureEdgeIDs: [1x4615 double]

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

title('Original Pose Graph')
show(pg,'IDs','off');
view(-30,45)

Оптимизируйте график положения. Узлы настроены на основе ограничений ребра и закрытий цикла. Постройте оптимизированный график положения, чтобы видеть корректировку узлов с закрытиями цикла.

updatedPG = optimizePoseGraph(pg);
figure
title('Updated Pose Graph')
show(updatedPG,'IDs','off');
view(-30,45)

Ссылки

[1] Carlone, Лука, Роберто Трон, Костас Даниилидис и Франк Деллэерт. "Методы инициализации для 3D SLAM: Обзор Оценки Вращения и ее Использования в Оптимизации Графика положения". 2 015 Международных конференций IEEE по вопросам Робототехники и Автоматизации (ICRA). 2015, стр 4597–4604.

Расширенные возможности

Смотрите также

Функции

Объекты

Введенный в R2019b