Реализовать алгоритм Маджвика под Embedded Linux

100 000 руб. за проект
09 апреля 2024, 12:00 • 2 отклика • 60 просмотров
Добрый день.

Имеется прототип полетного контроллера на базе SoM-модуля с процессором IMX6ULL на борту под управлением ОС Embedded linux (OpenWrt). На борту 3-ех осевой акселерометр + 3-ех осевой гироскоп + 3-ех осевой магнетометр в одном корпусе - MPU-9250 подключенный к процессору по шине I2C.
Исходники под SoM-модуль: wr-sdk и wr-feed.

Имеется open source приложение, реализующее алгоритм Маджвика под Linux на языке Rust с применением данного датчика с коммуникацией по шине I2C.

Задача №1 - необходимо запустить данное приложение на нашем контроллере.
Задача №2 - также необходимо провести интеграцию с одной из существующих GUI-утилит для калибровки ориентации и отслеживания положения контроллера относительно осей координат в режиме реального времени: 1, 2, 3. Либо любой другой утилитой на усмотрение разработчика. По ethernet либо wifi.

Ожидаемый результат:
1. пользовательское приложение, позволяющее отслеживать положение устройства в пространстве.
2. положение устройства в пространстве воспроизводится в десктопной GUI-утилите.
3. создана ветка (flight, например) в репозитории wr-sdk в которой в каталог configs добавлен новый конфиг (flight), сборка которого выдает прошивку полетного контроллера.
4. создана ветка (flight, например) в репозитории wr-feed в которой реализован dts под новый конфиг, пользовательское приложение в виде пакета openwrt. Пример подобного пакета.
5. само приложение нужно будет разместить в отдельном репозитории (доступ будет предоставлен), на который будет ссылаться пакет openwrt.

Возможные подводные камни (помимо собственно реализации алгоритма):
1. возможно, для корректной работы алгоритма потребуется разгонять процессор (до 800 МГц с текущих 392 МГц).
2. возможно, потребуется реализовывать PREEMPT_RT.
Но если удастся обойтись без этого - замечательно.