Я работаю над распознаванием трехмерных объектов с помощью Kinect v2 и библиотеки облаков точек на основе локальных дескрипторов.
Когда объект находится в исходной позиции (x = 0, y = 0, z = 0 без примененных поворотов), программа вычисляет эту позицию правильно.
Когда я просто переводю объект на сцене, все тожекажется правильным (я перемещаю объект на 0,10 м вдоль оси X, программа вычисляет ~ 0,10 м вдоль оси x).
Но, когда я применяю вращение только для cca.~ 15 °, например, ранее установленное положение (x = 0,10 м), положение смещения для скачков координат X с 0,10 м до ~ 0,35 м, более 20 см!
Это не кажется мне реальным,но я не могу заметить, где ошибки.Только перевод работает хорошо, но вращение мешает что-то.
Все единицы должны быть в метрах, Kinect также должен быть предварительно откалиброван.
Я опубликую несколько картинок, чтобы прояснить существующую проблему, коробка является объектомдля распознавания.
Исходное положение, без перевода и без вращения, программное обеспечение все рассчитывает хорошо!
Я применил перевод без вращения вдоль оси X, программное обеспечение вычисляет всескважина с переводом 0,10 м или 10 см вдоль X.
Приложенное вращение и в этом случае X перепрыгивает с 0 до 25 см
Матрица послепримененное вращение
Кроме того, я попробовал регистрацию ICP с этим набором данных в формате .pcd, программа просмотра показывает, что с матрицей все в порядке: S.
Я никогда раньше такого не видел, надеюсь на помощь.
Ура!