Нежное руководство по созданию полностью автономного дрона

Здесь мы создаем один из первых автономных дронов с роботизированной рукой на верху дрона.

Создание машин и устройств для облегчения человеческих задач и повышения безопасности было приоритетом с незапамятных времен. В частности, дроны исключительно хорошо справились с выполнением таких задач, от самых простых до сверхсложных, безопасным и экономичным способом. Хотя они используются в различных областях, таких как аэрофотосъемка, экспресс-доставка или спасение при стихийных бедствиях, некоторые даже использовали их, чтобы подарить своим кошкам захватывающий опыт полета.

Какими бы причудливыми они ни выглядели, они требуют времени, подходящих компонентов и глубоких исследований, если их нужно создавать с нуля. Итак, здесь я задокументировал создание моего автономного БПЛА (в основном построенного на нем) в попытке облегчить вашу жизнь.

Исходный код:



Дополнительные документы (подробное объяснение с привкусом Drone Science):



Ссылка на опубликованную исследовательскую работу:



Проблемы, рассмотренные в вышеуказанном документе (дополнительная литература):

  • Поддержание стабильности и контроль дрейфа.
  • Сцепление робота-манипулятора и дрона.
  • Оптимизация времени полета.
  • Вычислительная мощность для автономного полета с Raspberry pi.
  • Оптимизированные измерения компонентов дрона.
  • Уменьшение массы дрона.
  • Прогнозирование динамического ЦТ (центра тяжести) дрона для различных длин звеньев.

Найдите вариант использования

Различные варианты использования требуют разных стратегий проектирования и сборки. В этом эксперименте дрон был в основном создан для снижения рисков, связанных с проверкой мобильной вышки, которая традиционно требует, чтобы люди поднимались на большие высоты по ненадежным лестницам и лесам, чтобы добраться до проблемы. Дрон также оснащен камерой и роботизированной рукой для выполнения таких задач, как затяжка винтов и фиксация проводов. Кстати, я думаю, что сейчас самое время показать дрон, который я построил для этого варианта использования.

Принимайте дизайнерские решения

Прежде чем перейти к аспектам электроники и программирования дрона, я хотел бы подчеркнуть важность сосредоточения внимания на основной механической структуре, которая повлияет на выбор других электронных компонентов. Соображения дизайна здесь:

Y-Copter:

  • Лучшая курсовая устойчивость.
  • Не удается стабилизировать манипулятор (дополнительный привод) по оси тангажа и крена.

Квадрокоптер:

  • Лучшая стабильность по всем трем осям.
  • Подходит для любого дополнительного движения привода во всех направлениях.

Гексакоптер:

  • Больше грузоподъемности.
  • Больше по размеру.
  • Больше препятствий для движения робота-манипулятора для выполнения своих действий.

Октокоптер:

  • Больше грузоподъемности.
  • Для увеличения количества двигателей и увеличения веса требуется батарея большей емкости.

Итак, принимая во внимание приведенные выше наблюдения, мы выбрали X-образную раму для нашего приложения с диагональной длиной 400 мм. После того, как мы сузили круг выбора типа фрейма, нам нужно определиться с конфигурацией фрейма.

Кадр H:

  • Больше места сверху для размещения компонентов.
  • Увеличение материала и, следовательно, добавление веса.

X-кадр:

  • Уменьшенная центральная площадь.
  • Это приводит к уменьшению материала и, следовательно, веса.

Плюс кадр:

  • Легкая поломка при ударе.
  • Вызывает проблемы в движении манипулятора.
  • Закрывает поле зрения камеры.

Поэтому мы выбираем X-образную раму, которая обеспечивает хорошее соотношение тяги к весу, более легкое движение манипулятора между пропеллерами, лучшее покрытие дуги камеры. Диаметр 400 мм был выбран с помощью итеративного процесса оптимизации с использованием таких инструментов, как CAD и ANSYS. Параметры оптимизации были разработаны для обеспечения стабильности манипулятора, чтобы избежать помех от струи винтов для эффективной тяги, а также для обеспечения эффективного отношения тяги к массе.

Теперь идет выбор материала для сборки дрона.

В соответствии с таблицей мы выбираем углерод, поскольку он имеет самое высокое соотношение прочности и прочности. Мы выбираем PLA для деталей, не требующих прочности конструкции, и использовались нейлоновые прокладки для опорных конструкций.

Расположение компонентов

Здесь у нас есть

Выбор

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

Выберите компоненты

Любой дрон или квадрокоптер имеет несколько основных компонентов, которые необходимо тщательно выбрать, чтобы убедиться, что они хорошо работают друг с другом и обеспечивают необходимую тягу, чтобы дрон мог летать. Этими компонентами являются двигатели, электронные регуляторы скорости (ESC), пропеллеры, длина рамы, батарея, контроллер полета.

  1. Сначала мы определяем максимальный вес, который хотим поднять. (вес включает аккумулятор, руку и все другие используемые компоненты).
  2. Соответственно, выберите подходящую конфигурацию батареи.
  3. Выбирайте двигатели и ESC в соответствии с максимальным током, потребляемым от батареи, и тягой, необходимой для подъема дрона.
  4. Выберите подходящий размер и шаг пропеллеров в соответствии с мощностью двигателя и тягой, необходимой дрону.

Существуют различные инструменты и программное обеспечение, которые помогают принимать эти решения, одним из таких является eCalc.

В частности, при выборе аккумулятора (поскольку это один из самых важных и дорогих компонентов) выбирайте его с умом, исходя из графика плотность-разряд.

Наглядный пример:

Например, в моем случае двигатели потребляют до 30 А, поэтому батарея должна обеспечивать минимум 35 А, чтобы предотвратить их повреждение, поэтому, согласно следующему графику, мы можем видеть, что 5200 мАч и 6000 мАч являются хорошими вариантами.

Чтобы выбрать один из них, мы оптимизируем их с помощью выбора на основе плотности. Плотность = Емкость/Вес, чем выше плотность, тем лучше батарея (максимальное соотношение веса и мощности).

Здесь мы видим, что 5200 мАч имеет самую высокую плотность среди доступных аккумуляторов. Итак, я выбираю оптимальную батарею, учитывая ее оба метода подбора.

Добавьте датчики и электронику — мозг

Pixhawk 4 — это надежный открытый аппаратный проект, который мы используем для управления дроном. Контроллер полета Pixhawk очень гибкий, что упрощает добавление широкого спектра датчиков и электроники. Наряду с этим он имеет широкий спектр внутренних датчиков в виде компактного пакета, который поставляется с различными функциями телеметрии и регистрации. Это была одна из основных причин выбора Pixhawk в качестве полетного контроллера.

Датчики, которые использовались в этом эксперименте, перечислены ниже:

  1. GPS: чтобы дрон сохранял свое положение и не дрейфовал в воздухе, мы используем модуль GPS. GPS-модуль Neo 8m имеет как GPS, так и встроенный компас, чтобы помочь дрону понять, где он находится, а также куда он хочет лететь. GPS также широко используется в коде, чтобы автономно сообщать дрону, куда идти. контроллер полета pixhawk поставляется со встроенным компасом, который помогает дрону определить, в каком направлении он движется. Модуль GPS вместе с компасом обычно размещается на креплении высоко над двигателями и аккумулятором, чтобы исключить помехи.
  2. LiDAR: Pixhawk использует барометр для определения текущей высоты. Это создает несколько проблем, особенно для нашего приложения. Давление воздуха не сильно меняется на небольшой высоте в 2 метра, что было максимальной высотой, которую мы установили для всех наших демонстраций. В результате нам нужно было добавить точный дальномер, и Benewake TFMini Plus идеально подходил для наших нужд. Этот крошечный датчик использует обнаружение света и определение дальности (LIDAR) для точного измерения высоты дрона. Модуль имеет рабочий диапазон от 10 см до 12 м и имеет более высокую точность в диапазоне от 10 см до 6 м. Со всеми нашими демонстрациями, требующими, чтобы дрон летал ниже 6 метров, у нас были самые точные показания датчика. Он имеет разрешение 0,5 см и поле зрения 3,6°. Модуль связывается с Pixhawk по последовательному каналу связи со скоростью 115 200 бод. Это означает, что по соединению отправляется 115 200 бит данных в секунду.

Роботизированная рука

Рука имеет вылет до 10 см за пропеллер и имеет 4 серводвигателя, которые позволяют руке выдвигаться и втягиваться. Серводвигатели управляются Raspberry Pi с помощью платы PCA9685, которая разделяет один порт I2C на Raspberry Pi на 5 портов для управления каждым из серводвигателей руки. На конце рычага есть захват, который можно открывать и закрывать, чтобы взять необходимые инструменты для фиксации передвижной вышки. В наших демонстрациях мы прикрепили отвертку к концу руки и показали, как она выполняет простое завинчивание. Другие возможные варианты использования этой конструкции включают автоматическую замену ламп в светильниках, расположенных высоко на потолке, а также добавление камеры к концевому исполнительному органу для съемки труднодоступных мест.

Каждый серводвигатель имеет три провода, плюс питания, землю и вход PWM
. Код от Pi отправляет ШИМ-сигнал, который командует каждому сервоприводу
двигаться под определенным углом. Движения руки рассчитаны так, чтобы обеспечить наименьшее нарушение центра тяжести руки и, следовательно, максимально стабильное движение.

Рука должна быть достаточно прочной, чтобы нести серводвигатели и отвертку
, но достаточно легкой, чтобы ее мог нести дрон. Это привело нас к использованию полимолочной кислоты (PLA) для руки. Несколько тестовых полетов привели нас к текущему окончательному дизайну, а также к последовательности движений руки. Если центр тяжести смещался слишком далеко от центра дрона, дрон начинал вибрировать. В результате мы провели больше тестов и использовали записанные данные для разработки лучшей руки с таким же вылетом, но с меньшими нарушениями.

Запрограммируйте мозг дрона

Учитывая обилие информации в Интернете, сразу может возникнуть путаница: «Какую прошивку мне выбрать»?

Я выбираю APM (Ardupilot, APM 3.9.6), так как у них была огромная база разработчиков и поскольку сообщество активно, их форумы очень полезны, а APM совместим с API Dronekit.

Raspberry Pi — отличный многоцелевой одноплатный компьютер (SBC), а его универсальность и небольшой размер сделали его идеальным выбором для нашего дрона. Pi — это мозг дрона и единственный компонент, который делает его автономным. Он имеет один порт UART и один порт I2C. Мы используем порт UART для связи между Pi и Pixhawk, а порт I2C подключен к PCA9685, который управляет 5 серводвигателями манипулятора. Pi работает под управлением Raspbian Stretch, 9-й версии официальной ОС Raspbian. После установки всех требований мы готовы управлять дроном полностью автономно.

MAVLink:протокол связи, используемый полетным контроллером, называется MAVLink. Это очень легкий протокол обмена сообщениями для связи с дронами (и между бортовыми компонентами дронов). MAVLink следует современному гибридному шаблону проектирования публикация-подписка и точка-точка: потоки данных отправляются/опубликовываются как темы, в то время как подпротоколы конфигурации, такие как протокол миссии или протокол параметров, являются двухточечными с повторной передачей.

DroneKit API.DroneKit API позволяет разработчикам создавать приложения Python, которые взаимодействуют с транспортными средствами через MAVLink. Он обеспечивает программный доступ к информации о телеметрии, состоянии и параметрах подключенного транспортного средства, а также позволяет как управлять миссиями, так и напрямую контролировать движение и операции транспортного средства.

Теперь возьмите свой дрон для вращения