Объединение датчика акселерометра и магнитометра для получения гироскопических данных

Я делаю робота Raspberry Pi с камерой FVP (вид от первого лица), установленной на сервоприводе панорамирования/наклона. Я хочу сделать его совместимым с VR, подключив его к своему телефону. Но в моем телефоне нет датчика гироскопа для обнаружения горизонтальных движений, но есть магнитометр и акселерометр. Как я могу объединить данные акселерометра и магнитометра, чтобы создать виртуальный гироскоп, который может двигаться вместе с моей камерой. Я нуб во всем этом.


person Anshul Bansal    schedule 15.01.2017    source источник


Ответы (1)


У вас должен быть датчик вектора вращения, который уже объединяет два. Вы не получите лучших результатов, чем это.

Обратите внимание, что это будет не такое высокое качество, как у обычного гироскопа, и при движении робота будут артефакты.

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

Я думаю, вы хотите использовать это для VR? Не пытайтесь двигать сервоприводы, чтобы напрямую компенсировать движение головы, вы только создадите генератор укачивания. Посмотрите, как работает timewarp — вы двигаете сервоприводы в общем направлении, на которое смотрит человек, и визуализируете видео, перепроецированное на сферу — таким образом у вас почти нулевая задержка.

person Krzysztof Bociurko    schedule 16.01.2017