Используйте mavlink без qgroundcontrol

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

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

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

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам