У меня есть огромный набор нормализованных векторов положения. Набор векторов регистрируется специальным измерительным устройством, при этом устройство вращается вокруг двух осей. Каждый вектор положения также является комбинацией гравитационных значений для X, Y и Z в определенное время. Моя задача - получить скорость вращения обеих осей.
Система координат измерительного устройства повернута примерно на 45° вокруг оси z по отношению к системе координат машины.
Ось Z измерительного устройства параллельна оси Z станка.
Я попытался преобразовать декартовы координаты в сферические координаты. Для этого я использовал Qt-Framework и MATLAB. В итоге у меня получилось 2 угла и радиус. На мой взгляд радиус не важен. Но 2 угла не подходят для моей задачи, потому что мне нужна скорость вращения машины вокруг оси Z и оси X. В этот момент важно знать, что скорость вращения настолько мала, что вектор гравитации всегда указывает на землю с отклонением 1g. Значения X-, Y- и Z измерительного устройства представляют ориентацию в зависимости от вектора силы тяжести. Например, если ось Z указывает на Землю, значение равно почти 1. А если ось параллельна земле (также ортогональна гравитационному вектору), значение почти равно нулю.
Если машина вращается только вокруг оси Z, я могу очень легко получить период одного оборота. График значений Y и X в зависимости от времени представляет собой синус или косинус. Таким образом, я могу получить период, выполнив поиск нулевой точки, максимума или минимума.
вращение вокруг оси Z
Но это решение подходит только для проблемы с 1 осью. Если машина дополнительно вращается вокруг оси X, измеренные значения X, Y и Z являются комбинацией обоих вращений. Я понятия не имею, как я могу решить свою проблему.
вращение вокруг станков по оси z и оси x: вращение начинается через 55 секунд!
Другая идея - инверсная кинематика, но для этого мне нужны размеры машины и точная точка, где установлено измерительное устройство.
вращение вокруг 1 оси
Вращение набора данных вокруг одной оси
вращение вокруг 2-х осей
Вращение набора данных вокруг двух осей
Как я могу начать или продолжить?
Я попытался визуализировать процесс вращения с помощью этой картинки.