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Ограничения ребра в графике положения
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