[Производство и разработка электроники, Разработка робототехники, Робототехника, Транспорт] Использование UAVCAN для модульной электроники БПЛА, или как не спалить дрона, перепутав провода

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
30-Июл-2020 23:30

Привет! Меня зовут Роман Федоренко, я доцент Центра компетенций НТИ по направлению «Технологии компонентов робототехники и мехатроники» на базе Университета Иннополис. Я работаю с командой робототехников, которая специализируется на беспилотных летательных аппаратах. По большей части мы занимаемся «высокоуровневым» управлением БПЛА: планирование движения, обход препятствий, решения для киносъёмки и сканирования местности. Хотя собственные небольшие коптеры тоже собирали и с «железом» работали. В прошлом году мы начали разработку большого самолёта вертикального взлёта и посадки, который включает все уровни — от изготовления носителя до обвески датчиками и интеллектуального управления. И при разработке этого проекта познакомились с UAVCAN.
UAVCAN — это открытый лёгкий протокол для бортовой сети подвижных объектов. Недавно его разработчик и мейнтейнер Павел Кириенко Spym рассказал о протоколе на PX4 Developer Summit, крупной конференции сообщества разработчиков дронов с использованием open-source экосистемы вокруг автопилота PX4, частью которой является UAVCAN. А ещё Павел подготовил подробную статью для русскоязычного сообщества на Хабре по следам своего доклада.
В этом материале я расскажу о практической стороне использования протокола с позиции разработчиков систем автоматического управления для БПЛА: как мы выбрали UAVCAN, что делаем с помощью него и какие возможности видим в будущем.

Гибридные БПЛА
Самолёт вертикального взлёта и посадки (VTOL) — это гибрид коптера и самолёта, который может работать дольше коптера за счёт аэродинамической подъёмной силы крыла и при этом не требует взлётно-посадочной полосы либо пускового устройства и парашюта, как обычные самолётные беспилотники. Сейчас разработка таких устройств — популярное и многообещающее направление. Такой аппарат можно использовать для доставки, картографии, мониторинга и других целей. По тому же принципу конструкции устроены большинство проектов летающего такси, например:
  • полностью электрическое воздушное такси Lilium Jet немецкой компании Lilium;
  • малошумный электросамолёт Heaviside компании Kitty Hawk Себастьяна Труна (которого многие знают по беспилотным автомобилям);
  • проект Vahana от Airbus.


Самолёт вертикального взлёта и посадки Университета Иннополис
Мы разработали три модели небольших беспилотных аппаратов с разным размахом крыла, грузоподъёмностью и источниками питания — полностью электрические и с двигателями внутреннего сгорания. По конструкциям летательных аппаратов сотрудничаем с Казанским авиационным институтом и авиационными предприятиями Казани, а фокус наших работ — электроника, алгоритмы и автоматическое управление.
При чём здесь UAVCAN?
Те, кто занимаются коптерами, знают, что обычная структура системы управления выглядит примерно так:

Типовая схема БПЛА на базе автопилота PX4. Источник
Моторы управляются регуляторами оборотов (ESC), на которые посредством PWM (ШИМ) сигналов подаются уставки от автопилота. Датчики подключаются по куче разных интерфейсов — UART, I2C, SPI. Плюс телеметрия, пульт, питание — и получается такой «паук» из проводов. Но основная проблема не в этом.
Чем длиннее провода, то есть больше аппарат, тем эта схема сильнее подвержена наводкам. Нам об этом пришлось задумываться с самого начала, потому что у наших аппаратов размах крыльев 2 и 4 метра, и это не предел.
Раньше для проекта 40-метрового дирижабля мы работали с CAN (только протокол был на базе CANOpen). И решение использовать UAVCAN для нас было само собой разумеющимся: в PX4 уже есть его поддержка, даже никаких споров в команде по этому поводу не возникало. Изначально мы хотели заменить длинные линии PWM на цифровой интерфейс, чтобы масштабировать наши решения на аппараты с разным размахом крыла.

Оказывается, UAVCAN это не CAN для UAV

SPL
Раньше мы воспринимали UAVCAN как CAN для UAV (БПЛА). Возможно, так изначально и было, но сейчас он позиционируется как Uncomplicated Application-level Vehicular Communication And Networking («Простая коммуникация и сетевое взаимодействие уровня приложений для подвижных объектов») и не привязан ни к UAV, ни к CAN, а используется на целом ряде подвижных объектов и поверх разных интерфейсов. Есть даже предложение об использовании UAVCAN в качестве middleware для ROS (Robot Operating System). Но об этом подробнее в статье от создателя протокола.

Заменив PWM-связи на UAVCAN-связи, мы перестали беспокоиться о проблемах длинных проводов и наводок, а также значительно уменьшили количество подключений к автопилоту.
Было два варианта, как это сделать. Первый — использовать регуляторы моторов и сервоприводы с UAVCAN интерфейсом. Такие есть, например, у Zubax. Второй — сделать адаптеры UAVCAN, которые устанавливаются непосредственно возле ESC. Мы пошли по второму варианту, потому что выбор ESC с UAVCAN интерфейсом невелик. Сначала мы использовали адаптеры проекта UAVCAN for Hobbyists (UC4H), затем решили делать свои устройства со встроенным DC-DC преобразователем, своей схемотехникой, прошивкой и нескучными диодиками.

Наши устройства с интерфейсом UAVCAN
Вошли во вкус
Дальше мы поняли, что можем вместо десятка проводов использовать шину UAVCAN для взаимодействия не только с исполнительными механизмами, но и с большинством внешних устройств. Это ещё и хорошо сказывается на виброизоляции контроллера, установленного на специальной платформе. В итоге мы разработали ряд девайсов для собственного применения, но сейчас видим, что они интересны другим:
  • Преобразователь CAN-PWM до 4 каналов: устройство подключается к шине CAN, принимает и обрабатывает сигналы управления, выдаёт ШИМ. Питать плату можно напрямую с АКБ до 60 В, в её составе включается DC-DC преобразователь, обеспечивающий напряжением 5 В (3 А) плату и потребителя (например, сервомашинку);
  • GPS/Magnetometer/Barometer;
  • Силовая плата, Power Management Unit (PMU): обеспечивает подсоединение нескольких АКБ (параллельно или последовательно при необходимости). Устройство подключается последовательно со всей силовой нагрузкой и обеспечивает её коммутацию. В конструкции — датчики напряжения и тока на АКБ, DC-DC преобразователь для обеспечения питания автопилота. Такая плата рассчитана на большие токи до 1000 А. В разработке устройство CAN в составе платы выдающее информацию о напряжении и токе;
  • Лазерный высотомер;
  • Датчик воздушной скорости;
  • Датчик уровня топлива;

Технически эти устройства реализованы на базе микроконтроллера STM32. Проектируем сами, а изготовление заказываем на pcbway.ru. Прошивка реализуется с использованием libcanard.
По нашим ощущениям для работы с UAVCAN довольно низкий порог входа. Новому сотруднику понадобилось меньше недели, чтобы разобраться и запрограммировать датчик расстояния как со стороны STM32, так и со стороны автопилота PX4.

Новые устройства тестируем на небольшом dark дроне
А затем уже используем на самолёте:
Извините, данный ресурс не поддреживается. :(
Короткое видео тестового полета нашего VTOL-самолета во всех режимах

Организация полётов

SPL
Кстати, в Республике Татарстан есть Ассоциация пилотов, разрешающая регистрировать пилотов беспилотников и получать разрешение на полёты нажатием одной кнопки. Они же помогают нам по дружбе.
Здесь даже реально получить разрешения полетать над Казанским кремлём.

В итоге схема у нас выглядит так:

Схема нашего VTOL-самолёта с использованием UAVCAN датчиков и исполнительных механизмов
Какие преимущества UAVCAN даст нам в будущем
Резервирование
Важнейшая задача при реализации продукта на базе БПЛА — обеспечить надёжность. Мы уже начали работать над этим. Например, несколько наших GPS и датчиков воздушной скорости подключить и использовать параллельно уже получается. Но ещё многое предстоит. Скорее всего, дублирования датчиков и контроллеров с использованием CAN шины будут сделаны проще. К Pixhawk можно подключить две шины, а на шине оставить несколько одинаковых датчиков для резервирования.
Масштабирование
В будущем мы хотим делать большие аппараты взлётной массой больше 30 кг, хотя это и сложно сертифицировать. Масштабируемость архитектуры на базе UAVCAN позволяет строить амбициозные планы.
True HIL-симуляция
Сейчас активно развивается тема работы БПЛА в городской среде — Urban Air Mobility (UAM). Для реализации задач UAM нужно больше опираться на такие сенсоры, как камеры и лидары. Тут возникает необходимость разработки и отладки систем интеллектуального управления, а также повышение их надёжности. Для этих целей другая команда Университета Иннополис разрабатывает симулятор Innopolis Simulator для автономных подвижных объектов на основе Unity 3D для тестирования, отладки и обучения.

оригинал
Innopolis Simulator
Для нашего VTOL-самолета используем Innopolis Simulator в связке с Gazebo для фотореалистичной симуляции, тестирования управления и обработки сенсорных данных — лидаров и камер.
Сейчас работаем над своим модулем симуляции динамики вместо Gazebo с более точной аэродинамикой, а также над другой фишкой — true HIL симуляцией (от hardware in the loop, или программно-аппаратное моделирование, ПАМ).
В нашем решении все данные поступают от датчиков, а управления на моторы и сервы отправляются по шине UAVCAN. Почему бы не сделать модуль симуляции этих датчиков на уровне той же шины? Просто вместо устройств к контроллеру мы подключаем компьютер с симулятором.
Сейчас HIL-симуляция в PX4 делается посредством специальных HIL_* сообщений MAVLINK (протокол телеметрии, работает по последовательному порту либо UDP/TCP), которые имитируют датчики и исполнительные механизмы.

Диаграмма работы PX4 в режиме HITL. Источник
Симуляция, как она реализована сейчас в PX4, — это отдельный режим работы полётного контроллера, отличающийся от «боевой» полётной конфигурации. Мы имитируем непосредственно UAVCAN сообщения, в идеале автопилот может даже не знать, что работает в симулируемом окружении. Но нужно сказать, что пока концептуально не решена проблема симуляции IMU, которые находятся внутри автопилота и подключены не по CAN.

Предлагаемая схема работы PX4 в режиме HITL с использованием UAVCAN
Такое решение повышает достоверность результатов отладки на симуляторе, поэтому можно смелее переходить к лётным тестам.

Авиационный HIL симулятор. Источник
Подобный подход, когда устройства имитируются на уровне интерфейсов, используется и в большой авиации, но с UAVCAN мы делаем это доступнее и проще.
Вывод
Очень здорово, что над вопросами лёгкости, надёжности и «риалтаймовости» протокола UAVCAN уже подумали за нас, как и то, что есть PX4, ROS и Linux, в конце концов. Нам было бы очень сложно делать наши коптеры, самолёты, системы управления и планировщики, если бы всего этого не было.
Стандартизация протоколов и программных средств даёт возможность разработчикам говорить на одном языке. Вместе с тем, важна не только стандартизация, но и доступность, что в высокой степени обеспечивает open-source подход. Это позволяет, стоя на плечах гигантов, быстрее переходить к своим задачам, а не строить сначала долго «инфраструктуру» для работы, что, надеюсь, мы показали на нашем примере в данной статье. 

Пьём колд брю после успешных полётов
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_proizvodstvo_i_razrabotka_elektroniki (Производство и разработка электроники), #_razrabotka_robototehniki (Разработка робототехники), #_robototehnika (Робототехника), #_transport (Транспорт), #_drony (дроны), #_dron (дрон), #_uavcan, #_px4, #_can, #_uav, #_vtol, #_bpla (БПЛА), #_aviatsija (авиация), #_konvertoplan (конвертоплан), #_roboty (роботы), #_robototehnika (робототехника), #_shemotehnika (схемотехника), #_blog_kompanii_gorod_innopolis (
Блог компании Город Иннополис
)
, #_proizvodstvo_i_razrabotka_elektroniki (
Производство и разработка электроники
)
, #_razrabotka_robototehniki (
Разработка робототехники
)
, #_robototehnika (
Робототехника
)
, #_transport (
Транспорт
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 14-Май 22:07
Часовой пояс: UTC + 5