Проблема ориентации от инерциального модуля LSM9DS1 Arduino - PullRequest
1 голос
/ 07 августа 2020

Я работаю над проектом, в котором мне нужно определить положение и вращение объекта IoT с помощью акселерометра, гироскопа и магнитометра. Цель - показать этот объект в виртуальном мире Unity3D.

Для этого у меня есть Arduino Nano 33 BLE, который включает LSM9DS1 в качестве инерциального модуля. Итак, я начал определять вращение моего объекта. Эта ссылка была очень полезной: http://gilles.thebault.free.fr/spip.php?article32

Это строка для получения оси Y: угол = 0,98 * (угол + поплавок (gy) 0,01 / 131) + 0,02 atan2 ((double) ax, (double) az) * 180 / PI;

С этим я могу получить углы X, Y и Z. Когда я пытаюсь ориентироваться по одной оси, все оси вращения в порядке. Проблема в том, что я использую 2 оси или более одновременно. Например, я использую только оси X и Y. Когда я поворачиваю только ось X на 90 °, ось Y также поворачивается на 90 °. Это видео объяснит более точно, чем слова: https://www.youtube.com/watch?v=IeuIuEcjUBc&feature=youtu.be

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

...