Можно ли вычислить углы Эйлера / ориентации по изменению положения с течением времени?

Если у меня есть две трехмерные (XYZ) позиции в момент времени t и момент времени t + 1, возможно ли вычислить углы Эйлера / ориентации 2-й позиции (t + 1) относительно t?

Я могу довольно легко получить рыскание / Z. Замена y на x или atan2 (dx, dy). Шаг / Y, я думаю, будет изменением Z с увеличением пройденного расстояния. И нет, я понятия не имею о roll / X.

Какая еще информация требуется для этого? Больше очков? Начальная ориентация?

Я пытаюсь сгенерировать / смоделировать данные о положении, скорости и ориентации, где все, что у меня есть, - это серия точек / путевых точек и время между путевыми точками. API похож на этот набор инструментов Matlab, где пользователь может вводить путевые точки и время между путевыми точками, а также генерировать скорость и ориентацию между путевыми точками. https://www.mathworks.com/help/nav/ref/waypointtrajectory-system-object.html


person user2840470    schedule 10.10.2020    source источник


Ответы (1)


вы всегда можете построить 3 базовых вектора и систему координат, определяющую начало координат, всего лишь из 2 последовательных точек на вашей траектории, используя перекрестное произведение.

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

Чтобы получить углы Эйлера из этого, вы можете использовать Есть ли способ рассчитать трехмерное вращение по осям X и Y из матрицы 4x4 .

person Spektre    schedule 11.10.2020