poseGraph

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

Описание

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

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

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

lidarSLAM (основанная на лидаре одновременная локализация и сопоставляющий), создается вокруг оптимизации 2D графика положения.

Создание

Описание

пример

poseGraph = poseGraph создает 2D объект диаграмм положения. Добавьте положения с помощью addRelativePose создать график положения итеративно.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

load intel-2d-posegraph.mat pg
disp(pg)
  poseGraph with properties:

               NumNodes: 1228
               NumEdges: 1483
    NumLoopClosureEdges: 256
     LoopClosureEdgeIDs: [1x256 double]

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

title('Original Pose Graph')
show(pg,'IDs','off');

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

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

Ссылки

[1] Гризетти, G., Р. Каммерл, К. Стэкнисс и В. Бергард. "Пример на Основанном на графике SLAM". IEEE Интеллектуальный Системный Журнал Транспортировки. Издание 2, № 4, 2010, стр 31–43. doi:10.1109/mits.2010.939925.

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

Введенный в R2019b

Для просмотра документации необходимо авторизоваться на сайте