АрдуПилот
![]() | |
Разработчик(и) | Команда разработчиков и сообщество ArduPilot |
---|---|
Первоначальный выпуск | 2009 |
Репозиторий | https://github.com/ArduPilot |
Написано в | С++, Питон |
Операционная система | Кросс-платформенный |
Лицензия | Лицензия GPLv 3 |
Веб-сайт | http://ardupilot.org |
ArduPilot — это открытым исходным кодом с пакет программного обеспечения для автопилота беспилотных транспортных средств . [1] способен контролировать:
- Мультироторные дроны
- Самолеты и вертикального взлета и посадки самолеты
- Вертолеты
- ROV
- Наземные вездеходы
- Лодки
- Подводные лодки
- Беспилотные надводные корабли (USV)
- Антенные трекеры
- Дирижабли
ArduPilot изначально был разработан любителями для управления моделями самолетов и вездеходов и превратился в полнофункциональный и надежный автопилот, используемый в промышленности. [2] исследовательские организации [3] и любители.
Программное и аппаратное обеспечение
[ редактировать ]Программный пакет
[ редактировать ]
Программный пакет ArduPilot состоит из навигационного программного обеспечения (обычно называемого прошивкой, когда оно скомпилировано в двоичную форму для аппаратных целей микроконтроллера), работающего на транспортном средстве ( коптер , самолет , вездеход, AntennaTracker или Sub), а также программного обеспечения для управления наземной станцией. включая Mission Planner, APM Planner, QGroundControl, MavProxy, Tower и другие.
Исходный код ArduPilot хранится и управляется на GitHub , а общее количество участников составляет 755 человек. [4]
Пакет программного обеспечения автоматически собирается каждую ночь с непрерывной интеграцией и модульным тестированием, предоставляемыми Travis CI , а также средой сборки и компиляции, включая кросс-платформенный компилятор GNU и Waf . Предварительно скомпилированные двоичные файлы, работающие на различных аппаратных платформах, доступны для загрузки пользователями с веб-сайтов ArduPilot.

Поддерживаемое оборудование
[ редактировать ]Программное обеспечение Copter, Plane, Rover, AntennaTracker или Sub работает на широком спектре встроенного оборудования (включая полнофункциональные компьютеры с Linux ), обычно состоящего из одного или нескольких микроконтроллеров или микропроцессоров, подключенных к периферийным датчикам, используемым для навигации. Эти датчики включают в себя МЭМС- гироскопы и акселерометры как минимум , необходимые для полета мультикоптера и стабилизации самолета. Датчики обычно включают, кроме того, один или несколько компасов , альтиметр (барометрический) и GPS , а также дополнительные дополнительные датчики, такие как оптические датчики потока , указатели воздушной скорости , лазерные или гидролокационные высотомеры или дальномеры, монокулярные, стереоскопические или RGB-D камеры. Датчики могут находиться на одной электронной плате или быть внешними.
Программное обеспечение наземной станции, используемое для программирования или мониторинга работы транспортных средств, доступно для Windows, Linux, macOS, iOS и Android.
ArduPilot работает на самых разных аппаратных платформах, включая следующие, перечисленные в алфавитном порядке:
- Intel Aero (Linux или база STM32)
- APM 2.X (база Arduino для микроконтроллера Atmel Mega), разработанный Хорди Муньосом в 2010 году. [5] APM для Mega ArduPilot работает только на старых версиях ArduPilot.
- BeagleBone Blue и PXF Mini (накидка BeagleBone Black).
- Cube , ранее называвшийся Pixhawk 2, (база микроконтроллера ARM Cortex), разработанный ProfiCNC в 2015 году.
- Edge. Архивировано 3 апреля 2019 г. на Wayback Machine , контроллере дрона с системой потокового видео, разработанном Emlid.
- Erle-Brain. Архивировано 27 мая 2018 г. в Wayback Machine (база Linux), разработанном Erle Robotics.
- Intel Minnowboard (база Linux). [6]
- Контроллер полета Navigator от Blue Robotics
- Navio2 и Navio+ ( на базе Raspberry Pi Linux), разработанные Emlid .
- Parrot Bebop и Parrot CHUCK, разработанные компанией Parrot, SA.
- Pixhawk , (база микроконтроллера ARM Cortex), изначально разработанная Лоренцем Мейером и ETH Zurich, улучшенная и запущенная в 2013 году PX4 , 3DRobotics и командой разработчиков ArduPilot. [7]
- PixRacer (база микроконтроллера ARM Cortex), разработанная AUAV.
- Qualcomm SnapDragon (база Linux).
- Virtual Robotics VRBrain (база микроконтроллера ARM Cortex).
- Процессор Xilinx SoC Zynq (база Linux, процессор ARM и FPGA ). [8]
В дополнение к вышеуказанным базовым навигационным платформам ArduPilot поддерживает интеграцию и связь с бортовым спутником или вспомогательными компьютерами для расширенной навигации, требующей более мощной обработки. К ним относятся компьютеры NVidia TX1 и TX2 ( Nvidia Jetson архитектура ), Intel Edison и Intel Joule, HardKernel ODROID и Raspberry Pi .
Функции
[ редактировать ]Общее для всех автомобилей
[ редактировать ]ArduPilot предоставляет большой набор функций, включая следующие, общие для всех транспортных средств:
- Полностью автономные, полуавтономные и полностью ручные режимы полета, программируемые миссии с 3D-путевыми точками, дополнительное геозонирование .
- Варианты стабилизации, позволяющие исключить необходимость в стороннем втором пилоте.
- Моделирование с помощью различных симуляторов, включая ArduPilot SITL .
- Поддерживается большое количество навигационных датчиков, включая несколько моделей GPS RTK, традиционные GPS L1, барометры, магнитометры, лазерные и гидролокаторы, дальномеры, оптический поток, транспондер ADS-B , инфракрасные датчики, датчики воздушной скорости, датчики и устройства компьютерного зрения/захвата движения.
- Связь с датчиком через SPI , I²C , CAN Bus , последовательная связь , SMBus .
- Предохранители при потере радиосвязи, GPS и нарушении заданной границы, минимальный уровень заряда батареи.
- Поддержка навигации в средах, где отсутствует GPS, с позиционированием на основе зрения, оптическим потоком , SLAM , позиционированием в сверхширокополосном диапазоне .
- Поддержка приводов, таких как парашюты и магнитные захваты.
- Поддержка бесщеточных и коллекторных двигателей.
- Поддержка и интеграция фото- и видеоподвесов.
- Интеграция и связь с мощными вторичными или «компаньонами» компьютерами.
- Богатая документация через вики ArduPilot.
- Поддержка и обсуждение через дискуссионный форум ArduPilot, каналы чата Gitter, GitHub, Facebook.
Специально для вертолета
[ редактировать ]- Режимы полета: Стабилизация, Alt Hold, Loiter, RTL (возврат к запуску), Auto, Acro, AutoTune, Тормоз, Круг, Дрифт, Управляемый (и Guided_NoGPS), Земля, PosHold, Спорт, Бросок, Следуй за мной, Простой , Супер Просто, Избегайте_ADSB. [9]
- Автонастройка
- Поддерживается широкий выбор типов рам, включая трикоптеры, квадрокоптеры, гексакоптеры, плоские и коаксиальные октокоптеры, а также пользовательские конфигурации двигателей.
- Поддержка традиционных электрических и газовых вертолетов, монокоптеров, тандемных вертолетов.
Для конкретного самолета
[ редактировать ]- Режимы полета по проводам , барражирование, авто, акробатические режимы.
- Варианты взлета: ручной запуск, банджи, катапульта, вертикальный переход (для самолетов вертикального взлета и посадки).
- Варианты посадки: Регулируемая глиссада, винтовая, обратная тяга, сетка, вертикальный переход (для самолетов вертикального взлета и посадки).
- Автонастройка, моделирование с помощью симуляторов JSBSIM , X-Plane и RealFlight .
- Поддержка большого количества архитектур вертикального взлета и посадки: квадропланы, наклоняемые крылья, наклонные винты, хвостовые ситтеры, орнитоптеры.
- Оптимизация 3-х или 4-х канальных самолетов.
Специально для ровера
[ редактировать ]- Режимы работы: ручной, обучение, автоматический, рулевое управление, удержание и управляемый.
- Поддержка колесных и гусеничных архитектур.
Для подводных лодок
[ редактировать ]- Удержание глубины: используя датчики глубины, основанные на давлении, подводные лодки могут поддерживать глубину в пределах нескольких сантиметров.
- Управление освещением: управление подводным освещением с помощью контроллера.
ArduPilot полностью документирован в своей вики, что составляет около 700 печатных страниц и разделено на шесть верхних разделов: подразделы, связанные с вертолетом, самолетом, вездеходом и подводной лодкой, предназначены для пользователей. Подраздел «Разработчик» для расширенного использования предназначен в первую очередь для инженеров программного и аппаратного обеспечения, а «общий» раздел, перегруппировывающий информацию, общую для всех типов транспортных средств, используется в первых четырех разделах.
Варианты использования ArduPilot
[ редактировать ]Любители и любители
[ редактировать ]- Гонки на дронах
- Сборка и эксплуатация радиоуправляемых моделей для отдыха.
Профессиональный
[ редактировать ]- Аэрофотограмметрия
- Аэрофотосъемка и кинопроизводство.
- Дистанционное зондирование
- Поиск и спасение
- Робототехнические приложения
- Академические исследования
- Доставка посылок
История
[ редактировать ]Ранние годы, 2007-2012 гг.
[ редактировать ]Первые корни проекта ArduPilot восходят к концу 2007 года. [10] основал 3DRobotics когда Хорди Муньос, который позже вместе с Крисом Андерсоном , написал программу Arduino (которую он назвал «ArduCopter») для стабилизации радиоуправляемого вертолета. В 2009 году Муньос и Андерсон выпустили Ardupilot 1.0. [11] (программное обеспечение полетного контроллера) вместе с аппаратной платой, на которой оно может работать. В том же году Муньос, построивший традиционный радиоуправляемый вертолетный БПЛА, способный летать автономно, выиграл первое соревнование Sparkfun AVC. [12] Проект развивался дальше благодаря многим членам сообщества DIY Drones, в том числе Крису Андерсону, который поддерживал проект и основал сообщество на форуме ранее в 2007 году. [13] [14]
Первая версия ArduPilot поддерживала только самолеты и была основана на датчике термобатареи , который основан на определении положения горизонта относительно самолета путем измерения разницы температур между небом и землей. [13] Позже система была усовершенствована, заменив термобатареи инерционным измерительным блоком (IMU) с использованием комбинации акселерометров , гироскопов и магнитометров . Поддержка транспортных средств позже была расширена на другие типы транспортных средств, что привело к подпроектам «Вертолет», «Самолет», «Ровер» и «Подводная лодка».
В 2011 и 2012 годах произошел взрывной рост функциональности автопилота и размера кодовой базы, во многом благодаря новому участию Эндрю «Триджа» Триджелла и автора HAL Пэта Хики. Вклад Триджа включал возможности автоматического тестирования и моделирования для Ardupilot, а также PyMavlink и Mavproxy. Хикки сыграл важную роль во внедрении библиотеки AP_ HAL в базу кода: HAL (уровень аппаратной абстракции) значительно упростил и модульизировал базу кода, введя и ограничив особенности низкоуровневой аппаратной реализации отдельной аппаратной библиотекой. В 2012 году Рэнди Маккей также взял на себя роль ведущего специалиста по обслуживанию Copter по просьбе бывшего специалиста по обслуживанию Джейсона Шорта, а Тридж взял на себя роль ведущего специалиста по обслуживанию самолетов после Дуга Вейбеля, который впоследствии получил докторскую степень. в аэрокосмической технике. На сегодняшний день и Рэнди, и Тридж являются ведущими специалистами по сопровождению.
Подход бесплатного программного обеспечения к разработке кода ArduPilot аналогичен подходу операционной системы Linux и проекта GNU , а также проекта PX4/Pixhawk и Paparazzi Project , где низкая стоимость и доступность позволили любителям создавать автономные небольшие дистанционно пилотируемые летательные аппараты , такие как микровоздух. транспортные средства и миниатюрные БПЛА . Индустрия дронов также постепенно начала использовать код ArduPilot для создания профессиональных, высококлассных автономных транспортных средств.
Срок погашения, 2013-2016 гг.
[ редактировать ]В то время как ранние версии ArduPilot использовали контроллер полета APM, процессор AVR, работающий на языке программирования с открытым исходным кодом Arduino (что объясняет часть «Ardu» в названии проекта), в последующие годы кодовая база была существенно переписана на C++. со множеством вспомогательных утилит, написанных на Python .
В период с 2013 по 2014 год ArduPilot развивался для работы на ряде аппаратных платформ и операционных систем, выходящих за рамки исходной архитектуры микроконтроллера на базе Arduino Atmel , сначала с коммерческим внедрением аппаратного контроллера полета Pixhawk, совместными усилиями PX4, 3DRobotics и команды разработчиков ArduPilot. , а затем к Bebop2 от Parrot и контроллерам полета на базе Linux, таким как NAVIO2 на базе Raspberry Pi и ErleBrain на базе BeagleBone. Ключевым событием этого периода стал первый полет самолета под Linux в середине 2014 года. [15]
В конце 2014 года была основана компания DroneCode. [16] создан для объединения ведущих проектов программного обеспечения для БПЛА с открытым исходным кодом и, в первую очередь, для укрепления отношений и сотрудничества проектов ArduPilot и PX4. Участие ArduPilot в DroneCode завершилось в сентябре 2016 года. [17] 2015 год также стал знаменательным для компании 3DRobotics, крупного спонсора разработки ArduPilot, с выпуском квадрокоптера Solo, готового к использованию квадрокоптера под управлением ArduPilot. Однако коммерческого успеха Соло не произошло. [18]
Осенью 2015 года снова произошло ключевое событие в истории автопилота: группа из 50 самолетов, работающих под управлением ArduPilot, одновременно управляла командой Лаборатории разработки передовых роботизированных систем (ARSENL) в Военно-морской аспирантуре .
В течение этого периода времени кодовая база ArduPilot была значительно переработана до такой степени, что она перестала иметь какое-либо сходство с ранними версиями Arduino.
Текущий, 2018-
[ редактировать ]Развитие кода ArduPilot продолжается благодаря поддержке интеграции и связи с мощными сопутствующими компьютерами для автономной навигации, поддержке самолетов для дополнительных архитектур вертикального взлета и посадки, интеграции с ROS , поддержке планеров и более тесной интеграции для подводных лодок. Проект развивается под эгидой ArduPilot.org, проекта некоммерческой организации «Программное обеспечение в общественных интересах» (spi-inc.org). ArduPilot частично спонсируется растущим списком корпоративных партнеров.
БПЛА Outback Challenge
[ редактировать ]В 2012 году команда Canberra UAV Team успешно заняла первое место в престижном конкурсе UAV Outback Challenge . В команду CanberraUAV входили разработчики ArduPlane, а управляемый самолет управлялся автопилотом APM 2. В 2014 году команда CanberraUAV и ArduPilot вновь заняли первое место, успешно доставив бутылку «потерявшемуся» туристу. В 2016 году ArduPilot занял первое место в технически более сложном соревновании, опередив сильную конкуренцию со стороны международных команд.
Сообщество
[ редактировать ]ArduPilot совместно управляется группой волонтеров, расположенных по всему миру, которые используют Интернет ( дискурсивный форум, канал Gitter ) для общения, планирования, разработки и поддержки. Команда разработчиков еженедельно встречается в чате, открытом для всех, с использованием Mumble . Кроме того, сотни пользователей вносят в проект идеи, код и документацию. ArduPilot распространяется по лицензии GPL версии 3, его можно загрузить и использовать бесплатно.
Настраиваемость
[ редактировать ]Гибкость ArduPilot делает его очень популярным в сфере DIY, но он также завоевал популярность среди профессиональных пользователей и компаний. Например, квадрокоптер Solo от 3DRobotics использует ArduPilot, как и большое количество профессиональных аэрокосмических компаний, таких как Boeing. [19] Гибкость позволяет поддерживать широкий спектр типов и размеров рамок, различных датчиков, подвесов камер и радиопередатчиков в зависимости от предпочтений оператора.
ArduPilot успешно интегрирован во многие самолеты, такие как Bixler 2.0. Настраиваемость и простота установки позволили интегрировать платформу ArduPilot для решения различных задач. Наземная станция управления Mission Planner (Windows) позволяет пользователю легко настраивать, программировать, использовать или моделировать плату ArduPilot для таких целей, как картирование, поиск и спасение, а также обследование территорий.
См. также
[ редактировать ]Другие проекты автономного управления самолетами:
Другие проекты для наземных транспортных средств и легковых автомобилей:
Ссылки
[ редактировать ]- ^ «Сообщество: — Документация ArduPilot» . ardupilot.org . Проверено 30 апреля 2017 г.
- ^ «Корпоративные партнеры» . ardupilot.org . Проверено 14 января 2018 г.
- ^ Эр, Кеннет В. (декабрь 2013 г.). «Применение оценки ориентации БПЛА с использованием недорогой инерциальной навигационной системы» (PDF) . NTRS.nasa.gov . НАСА/ТМ–2013-218144.
- ^ «АрдуПилот/ардупилот» . Гитхаб . Проверено 1 мая 2017 г.
- ^ «Пожалуйста, поприветствуйте ArduPilotMega 2.0!» . diydrones.com . Декабрь 2011 года . Проверено 1 мая 2017 г.
- ^ «Linux и будущее дронов [LWN.net]» . lwn.net . Проверено 5 мая 2017 г.
- ^ Пресс (29 августа 2013 г.). «PX4 и 3D Robotics представляют Pixhawk: продвинутый и удобный автопилот - Новости sUAS - Бизнес дронов» . Новости sUAS - Бизнес дронов . Проверено 1 мая 2017 г.
- ^ «Первый успешный полет на процессоре Zynq — Aerotenna» . Аэротенна . 08.10.2015. Архивировано из оригинала 21 апреля 2017 г. Проверено 5 мая 2017 г.
- ^ «Режимы полета — Документация коптера» . ardupilot.org . Проверено 1 мая 2017 г.
- ^ «Ардукоптер V1 Бета» . форум.arduino.cc . 7 ноября 2007 года . Проверено 1 мая 2017 г.
- ^ «ArduPilot, автопилот с открытым исходным кодом, теперь доступен (24,95 доллара США!) — RC Groups» . www.rcgroups.com . Проверено 8 мая 2017 г.
- ^ «2009 АВК – АВК.СФЕ» . avc.sparkfun.com . Проверено 3 мая 2017 г.
- ^ Jump up to: а б «АрдуПилот» . ArduPilot.org .
- ^ «Производители дронов получают помощь от сообщества DIY-разработчиков с открытым исходным кодом — Businessweek» . 1 апреля 2013 г. Архивировано из оригинала 1 апреля 2013 г.
- ^ «Первый запуск ArduPilot на Linux» . diydrones.com . 20 августа 2014 года . Проверено 3 мая 2017 г.
- ^ «Представляем Фонд Dronecode» . diydrones.com . 13 октября 2014 г. Проверено 3 мая 2017 г.
- ^ «Пути ArduPilot и DroneCode расходятся» . diydrones.com . 9 сентября 2016 года . Проверено 3 мая 2017 г.
- ^ Мак, Райан. «За крахом 3D-робототехники, самой многообещающей компании по производству дронов в Северной Америке» . Форбс . Проверено 3 мая 2017 г.
- ^ Дэвис, Алекс. «Экспериментальный грузовой дрон Boeing — тяжеловес» . Проводной .
- Беспилотные летательные аппараты
- Беспилотные подводные аппараты
- Роботы
- Беспилотные наземные транспортные средства
- Программное обеспечение, использующее лицензию GPL
- Бесплатное программное обеспечение, написанное на C++.
- Бесплатное программное обеспечение, написанное на Python.
- Кроссплатформенное бесплатное программное обеспечение