Пример работы трекера:
Статические библиотеки:
- Converter - шаблонные функции серелизации\десереализации;
- DataProvider - интерфейс поставщика данных и вариант его реализации - получение данных по сети (UDP);
- AHRS - содержит статик класс получения угла поворота по данным акселерометра и гироскопа. Для расчета используется фильтр Махоуни;
- DataTransmitter - простая реализация udp сокета для отправки данных по сети;
- SensorsDataGetter - класс для опроса гироскопа\акселерометра на Raspberry.
Динамические библиотеки:
- UnityHeadTracker - инициирует работу поставщика данных (сервера UDP) в отдельном потоке и предоставляет интерфейс(набор методов) для получения угла поворота трекера
Тестовые приложения:
- Transmitter - тест передачи кватерниона по сети;
- Receiver - тест приема кватерниона по сети;
- TestUnityHeadTrackerLib - тест работы динамической библиотеки UnityHeadTracker;
- SensehatSensorsGrabber - тест опроса гироскопа и акселерометра на Raspberry с последующей отправкой угла поворота по сети на приложение-приемник.
Hardware:
- Raspberry Pi 3 (Raspberry Pi Zero W)
- Raspberry Pi Sense HAT (MPU 9150, MPU 6050)
- Raspi UPS HAT
Software:
- Qt 5;
- RTIMULib2 (включена в проект);
- Unity 5 (опционально. Библиотеку UnityHeadTracker может использовать любое приложение имеющее возможность использовать библиотеки C++ ).