использовать mavlink без qgroundcontrol

Я пытаюсь подключить свой датчик PX4Flow к Raspberry Pi. Кажется, что почти все используют qgroundcontrol для доступа и управления им. Но поскольку я хотел бы интегрировать его в какую-то более крупную программу, я хотел бы управлять им с помощью самописного простого кода Python, если это возможно. Моя цель:

  • получить доступ к камере (для измерения скорости - позже)
  • получить значения гирометра

Мне не нужен ультразвуковой датчик.

Я обнаружил, что могу использовать MAVlink для связи между датчиком px4flow и Raspberry Pi. Я клонировал репозиторий git и выполнил шаги на https://github.com/mavlink/mavlink, пока генерация заголовочного файла (python -m mavgenerate). С этим я могу создать новый файл Python. Я не знаю, правильно ли это, и я не знаю, что делать с этим файлом python. Больше файл (файлы заголовков) не копируются и не генерируются. Как мне быть дальше? Как пользоваться библиотекой? Как мне вообще проверить соединение?


person trijinx    schedule 24.08.2017    source источник
comment
Добро пожаловать в Stack Overflow! Я улучшил форматирование вашего вопроса, используя элементы списка и средство форматирования кода. Дополнительные сведения о форматировании см. в справке по редактированию. Я также удалил лишнюю подпись. Удачи!   -  person Cœur    schedule 24.08.2017


Ответы (1)


Если я вас правильно понял, вы хотите сделать модуль для связи с PX4Flow.

У меня есть некоторый опыт создания наземной станции управления с помощью ardupilot. Я думаю, что процедура примерно такая же:

  1. Создайте правильную библиотеку mavlink, что вы сделали, используя mavgenerate. Прочтите некоторые рекомендации по процедуре связи с mavlink.
  2. Прочтите исходный код в коммуникационном модуле PX4Flow https://github.com/PX4/Flow/blob/master/src/modules/flow/communication.c, где показано, какие сообщения были отправлены на сторону клиента (например, ваш коммуникационный модуль)
  3. Начните писать код модуля для связи с PX4Flow. Возможно, вам придется сначала начать с HEARTBEAT msg, чтобы установить соединение между вашим модулем и PX4Flow. Обратите внимание, что вы всегда можете получать сообщения HEARTBEAT от PX4Flow. Вы можете начать с расшифровки этих.
  4. Реализуйте другие свои функции.

Вы можете прочитать исходный код QGourndControl на шагах 3 и 4. Убедитесь, что нашли правильный модуль в его репозитории.

Мой коммуникационный модуль построен с использованием JavaScript https://github.com/kvenux/nodegcs, если это поможет .

person Keven Sun    schedule 14.05.2018