Рассчитать матрицу преобразования между 4 точками в трехмерном пространстве - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть 2 набора из 4 вершин одного и того же объекта, рассчитанные по разным позициям в трехмерном пространстве.Например:

Relative to position 1:
    p0 = [10.9651660037735,  -1732.84852242907, -2077.46947601362]
    p1 = [-28.2892402763447, -1731.04816455574, -2273.71719218789]
    p2 = [168.546146377346,  -1737.13196368097, -2312.30780650516]
    p3 = [206.483925998667,  -1738.21953548907, -2116.14490306792]

Relative to position 2:
    p0 = [-322.364164317381, -1161.90839935893, -2013.94533203480]
    p1 = [-240.373482014670, -1177.43805826682, -1832.26745097626]
    p2 = [-422.125535145367, -1172.37193516593, -1749.48740754854]
    p3 = [-504.665226201976, -1158.25483667854, -1931.16712127311]

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

1 Ответ

0 голосов
/ 14 декабря 2018

Если его «рассматривать» с другой позиции и перспективы, то форма и размер могут отличаться.Так вы уверены, что у вас нет перспективы?Многие датчики дальности действительно включают перспективу, такую ​​как LIDAR , RADAR и т. Д., И некоторые противостоят ей, обрабатывая, а другие нет.Так что, если объект находится дальше от датчика, он все еще того же размера или нет?

  1. Нет перспективы

    см. Проблема наложенияи выравнивание трехмерных треугольников

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

  2. Перспектива

    Это намного сложнее.Либо используйте примерку (slooooow), либо используйте некоторые предварительные знания о датчике (упростите настройку).В любом случае, если у вас есть определенные геометрические объекты в «представлении», тогда вы можете избежать подгонки, см .:

    тот использует тот факт, что вы знаете любые 2 перпендикулярные плоскости с точками, выбранными на одной высоте ... Вы можете использовать такие же свойства ваших данных, как известный размер объекта, или включить маркеры в "сцену".

    После этого вы просто распаковываете все, что вам нужно, а затем переходите к # 1

...