3D картирование с использованием 2D LiDar со встроенным IMU - PullRequest
1 голос
/ 24 марта 2020

Я работаю на MRS1104 C и пытаюсь сопоставить ортогональное поле. Я использую только 1 из 4 слоев. Я расположил датчик перпендикулярно полу и получаю измерения расстояния, углов и кватернионов от встроенного в датчик IMU. Чтобы полностью отобразить прямоугольник, я поворачиваю датчик на 200 градусов относительно вертикальной оси на полу (вращение 1), а также на несколько градусов относительно горизонтальной оси (вращение 2).

Для преобразования в глобальную систему координат я использую матрицу вращения, полученную из кватерниона (Python).

x = distance * math.cos(phi) * math.cos(theta)
y = distance * math.cos(phi) * math.sin(theta)
z = distance * math.sin(phi)

a11 = 1 - (2 * (qy**2 + (qz**2)))
a12 = 2 * (qx * qy + qw * qz)
a13 = 2 * (-qw * qy + qx * qz)

a21 = 2 * (qx * qy - qw * qz)
a22 = 1 - (2 * (qx**2 + qz**2))
a23 = 2 * (qy * qz + qw * qx)

a31 = 2 * (qx * qz + qw * qy)
a32 = 2 * (-qw * qx + qy * qz)
a33 = 1 - (2 * (qx**2 + qy**2))

x_final = a11 * x + a12 * y + a13 * z 
y_final = a21 * x + a22 * y + a23 * z 
z_final = a31 * x + a32 * y + a33 * z

Данные для матрицы вращения, полученной из кватерниона, получены ИДУ датчика. Таким образом, новые значения от датчика принимаются каждый раз, когда датчик перемещается. Однако после преобразования наблюдается другой наклон на одной и той же стороне рамки для измерений от 0 до 137,5 градусов по сравнению с измерениями от -137,5 до 0 градусов, что видно на прилагаемом рисунке. Рисунок коробки из измерений

Я считаю, что это не должно наблюдаться, потому что каждое новое измерение учитывает новые кватернионы и, следовательно, преобразование для той же точки на той же стороне коробка должна давать почти тот же результат.

1) Не могли бы вы дать мне несколько идей, почему это произошло, а также, не могли бы вы дать мне несколько советов или помочь мне, как я могу решить это?

2) Я что-то упустил?

3) Верна ли приведенная выше методология?

Пожалуйста, см. Рисунки ниже:

Изображение с синий цвет - от -137,5 до 0 градусов, красный - от 0 до 137,5 градусов

Другая точка зрения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...