Преобразование позиционных данных в другую систему координат

#transform #orientation #euler-angles #pose

#преобразование #ориентация #эйлер-углы #pose

Вопрос:

У меня есть датчик позы (положение как 3D вектор ориентация как кватернион или RPY), который передает данные относительно известной системы координат. Перемещения и вращения относятся к этим 3 известным пространственным осям, давайте назовем это «миром».

Однако я хотел бы получить относительные перемещения и повороты относительно другой системы координат, в которой начало координат совпадает с мировым, но ось повернута на известные углы. Для перемещений, простая матрица поворота может преобразовать (x, y, z) 3D положение из мировой системы координат в новую, повернутую, зная крен, тангаж и рыскание поворотов.

Но как я мог бы получить повороты относительно моей системы координат? Вращение вокруг одной мировой оси приведет к 2 или 3 пользовательским поворотам координат. Как я могу преобразовать повороты, есть идеи?

Комментарии:

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

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