Как я могу манипулировать данными сонара в реальном времени с моего Arducopter в Arduino?


8

У меня есть APM 3DR Quad с радиотелеметрическим комплектом 3DR. Я хотел бы отправить данные сонара в реальном времени на мой ноутбук (под управлением Windows 7), чтобы манипулировать ими в дополнительном наброске Arduino.

Датчик гидролокатора подключен к аналоговому входному каналу на моем Arduino. Эти данные обрабатываются для расчета высоты, и я хотел бы отправить эти данные о высоте на какую-либо наземную станцию ​​на моем компьютере с помощью комплекта телеметрии (2 радиомодуля 3DR: 1 на квадрокоптере и 1 на моем компьютере).

Я не совсем уверен, как выполнить эту задачу. Есть ли способ, которым я могу изменить исходный код (GCS.h или GCS_Mavlink.pde) в сочетании с наземной станцией Mission Planner Mav 1.0, чтобы сделать это? Или мне нужно написать модуль Python для этого?


Привет Дэвид, добро пожаловать в робототехнику . Мы, как правило, хорошие и полезные здесь, поэтому я вырезал строку «спасибо» из вашего вопроса - это понятно :). У меня один вопрос: говорите ли вы сонар, когда имеете в виду «радиотелеметрия».
Ян

Нет, у меня есть датчик гидролокатора, который подключен к аналоговому входному каналу на моем Arduino. Эти данные обрабатываются для расчета высоты, и я хотел бы отправить эту высоту на какую-либо наземную станцию ​​на моем компьютере с помощью комплекта телеметрии (2 радиомодуля 3DR: 1 на квадрокоптере и 1 на моем компьютере)
user1702

Здравствуйте, user1702, комментарии предназначены для того, чтобы помочь улучшить вопросы и ответы, поэтому лучше добавлять информацию, запрошенную в комментариях, путем редактирования вашего вопроса, чтобы комментарии можно было убирать (удалять) и больше не отвлекать людей от вопроса.
Марк Бут

Вы хотите обработать данные сонара на своем ноутбуке или отправить их через ноутбук другому arduino?
Джон Уайзман

Джон, я бы хотел обработать данные на моем ноутбуке. Я пытался заставить работать mavproxy, но столкнулся с несколькими проблемами. Надеюсь, я могу интегрировать модуль Python, чтобы помочь с этим.
user1702

Ответы:


2

Настройка программного обеспечения для извлечения новых пользовательских данных датчиков с помощью MAVLink, кажется, сложнее, чем должно быть.

Шаг первый - заставить квадрокоптер отправить данные.

  • Во-первых, вам нужно определить новый тип сообщения MAVLink, используя XML в mavlink / message_definitions. Вы можете просто создать новое неиспользуемое целое число для message_id.
  • Во-вторых, вы генерируете функции упаковки / распаковки сообщений, используя генератор MAVLink.
  • Затем вам нужно добавить код в ArduCopter / GCS_Mavlink.pde в data_stream_send, чтобы создать и отправить ваше сообщение. Здесь нужно быть немного осторожнее, потому что динамика полета начинает ухудшаться, если показания вашего датчика останавливают основной цикл на более чем несколько миллисекунд, особенно для небольшого квадроцикла или полета в помещении (вот что такое бизнес "gcs_out_of_time" ). Я бы добавил новый датчик в триггер STREAM_EXTRA3.
  • Перестройте и загрузите новую полетную прошивку.

Другая половина проекта находится на ПК, где вам нужно изменить программное обеспечение наземной станции, чтобы считывать ваши пакеты MAVLink из потока телеметрии. Я понятия не имею, где вы начали бы делать это с Планировщиком Миссии, который кажется действительно сложным программным обеспечением. Но, к счастью, он сбрасывает необработанную радиотелеметрию в «tlog» , поэтому вы можете создать совершенно отдельную программу, которая ищет ваш новый пакет MAVLink из tlog. (Вы, конечно, не хотите для этого Arduino Sketch, поскольку Sketch работает на Arduino, а не на ПК.)

Если это звучит пугающе для вас, вы не одиноки! Для нашего внутреннего квадроцикла мы в конечном итоге создали собственный протокол радиосвязи и «наземную станцию», поскольку мы не могли использовать GPS или путевые точки или другие функции MAVLink, и работа со сложностью MAVLink нам не стоила этого.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.