ArduPilot es una fuente abierta , vehículo no tripulado piloto automático Software Suite, [1] capaz de controlar autónoma:
- Drones multirrotor
- Ala fija y VTOL aviones
- Helicópteros
- Rovers terrestres
- Barcos
- Submarinos
- Rastreadores de antena
Desarrollador (es) | Equipo y comunidad de desarrollo de ArduPilot |
---|---|
Versión inicial | 2009 |
Repositorio | https://github.com/ArduPilot |
Escrito en | C ++, Python |
Sistema operativo | Multiplataforma |
Licencia | GPLv3 |
Sitio web | http://ardupilot.org |
ArduPilot fue desarrollado originalmente por aficionados para controlar modelos de aviones y rovers y se ha convertido en un piloto automático confiable y con todas las funciones utilizado por la industria, [2] organizaciones de investigación [3] y aficionados.
Software y hardware
Paquete de programas
El paquete de software ArduPilot consiste en un software de navegación (normalmente denominado firmware cuando se compila en forma binaria para objetivos de hardware de microcontroladores) que se ejecuta en el vehículo (ya sea Copter , Plane , Rover, AntennaTracker o Sub ), junto con software de control de la estación terrestre incluidos Mission Planner, APM Planner, QGroundControl, MavProxy, Tower y otros.
El código fuente de ArduPilot se almacena y administra en GitHub , con casi 400 contribuyentes en total. [4]
El paquete de software se crea automáticamente todas las noches, con integración continua y pruebas unitarias proporcionadas por Travis CI , y un entorno de compilación y compilación que incluye el compilador multiplataforma GNU y Waf . Los binarios precompilados que se ejecutan en varias plataformas de hardware están disponibles para que el usuario los descargue desde los sub-sitios web de ArduPilot.
Hardware compatible
El software Copter, Plane, Rover, AntennaTracker o Sub se ejecuta en una amplia variedad de hardware integrado (incluidas las computadoras Linux en toda regla ), que generalmente consta de uno o más microcontroladores o microprocesadores conectados a sensores periféricos utilizados para la navegación. Estos sensores incluyen giroscopios MEMS y acelerómetros como mínimo, necesarios para el vuelo multirotor y la estabilización del avión. Los sensores suelen incluir, además, una o más brújula , altímetro (barométrico) y GPS , junto con sensores adicionales opcionales como sensores de flujo óptico , indicadores de velocidad aérea , altímetros o telémetros láser o sonar , cámaras monoculares, estereoscópicas o RGB-D. Los sensores pueden estar en la misma placa electrónica o externos.
El software Ground Station, que se utiliza para programar o monitorear el funcionamiento del vehículo, está disponible para Windows, Linux, macOS, iOS y Android.
ArduPilot se ejecuta en una amplia variedad de plataformas de hardware, incluidas las siguientes, enumeradas en orden alfabético:
- Intel Aero (Linux o STM32 Base)
- APM 2.X (Atmel Mega Microcontroller Arduino base), diseñado por Jordi Munoz en 2010. [5] APM, para A rdu P ilot M ega, solo se ejecuta en versiones anteriores de ArduPilot).
- BeagleBone Blue y PXF Mini (capa BeagleBone Black).
- El Cube , anteriormente llamado Pixhawk 2, (base del microcontrolador ARM Cortex), diseñado por ProfiCNC en 2015.
- Edge , controlador de drones con sistema de transmisión de video, diseñado por Emlid.
- Erle-Brain , (base Linux) diseñado por Erle Robotics.
- Intel Minnowboard (base de Linux). [6]
- Navio2 y Navio + ( basado en Raspberry Pi Linux), diseñados por Emlid.
- Parrot Bebop y Parrot CHUCK, diseñados por Parrot, SA
- Pixhawk , (base del microcontrolador ARM Cortex), diseñado originalmente por Lorenz Meier y ETH Zurich, mejorado y lanzado en 2013 por PX4 , 3DRobotics y el equipo de desarrollo de ArduPilot. [7]
- PixRacer, (base del microcontrolador ARM Cortex) diseñado por AUAV.
- Qualcomm SnapDragon (base de Linux).
- Virtual Robotics VRBrain (base del microcontrolador ARM Cortex).
- Procesador Xilinx SoC Zynq (base Linux, procesador ARM y FPGA ). [8]
Además de las plataformas de navegación base anteriores, ArduPilot admite la integración y la comunicación con computadoras complementarias o auxiliares en el vehículo para una navegación avanzada que requiere un procesamiento más potente. Estos incluyen NVidia TX1 y TX2 ( arquitectura NVidia Jetson ), Intel Edison e Intel Joule, HardKernel Odroid y Raspberry PI .
Características
Común a todos los vehículos
ArduPilot proporciona un gran conjunto de características, incluidas las siguientes en común para todos los vehículos:
- Modos de vuelo totalmente autónomos, semiautónomos y totalmente manuales, misiones programables con waypoints en 3D, geofencing opcional .
- Opciones de estabilización para negar la necesidad de un copiloto externo.
- Simulación con una variedad de simuladores, incluido ArduPilot SITL.
- Se admite una gran cantidad de sensores de navegación, incluidos varios modelos de GPS RTK, GPS L1 tradicionales, barómetros, magnetómetros, telémetros láser y de sonar, flujo óptico, transpondedor ADS-B , infrarrojos, velocidad del aire, sensores y dispositivos de captura de movimiento / visión por computadora.
- Comunicación del sensor a través de SPI , I²C , CAN Bus , Comunicación en serie , SMBus .
- A prueba de fallas por pérdida de contacto por radio, GPS y por incumplimiento de un límite predefinido, nivel mínimo de carga de la batería.
- Soporte para navegación en entornos denegados por GPS, con posicionamiento basado en visión, flujo óptico , SLAM , posicionamiento de banda ultra ancha .
- Soporte para actuadores como paracaídas y pinzas magnéticas.
- Soporte para motores sin escobillas y cepillados .
- Soporte e integración fotográfica y de video cardán.
- Integración y comunicación con potentes ordenadores secundarios o "acompañantes".
- Rica documentación a través de la wiki de ArduPilot.
- Soporte y discusión a través del foro de discusión ArduPilot, canales de chat Gitter, Github, Facebook.
Específico para helicópteros
- Modos de vuelo: Estabilizar, Mantener Alt, Loiter, RTL (Volver al lanzamiento), Automático, Acro, AutoTune, Freno, Círculo, Deriva, Guiado (y Guided_NoGPS), Aterrizar, PosHold, Deporte, Lanzar, Sígueme, Simple , Super simple, evitar_ADSB. [9]
- Sintonización automática
- Se admite una amplia variedad de tipos de marcos, incluidos tricópteros, cuadricópteros, hexacópteros, octocópteros planos y coaxiales y configuraciones de motor personalizadas
- Soporte para helicópteros tradicionales eléctricos y de gas, mono helicópteros, helicópteros tándem.
Avión específico
- Modos Fly By Wire , merodeo, automático, modos acrobáticos.
- Opciones de despegue: lanzamiento manual, bungee, catapulta, transición vertical (para aviones VTOL).
- Opciones de aterrizaje: Pendiente de planeo ajustable, helicoidal, empuje inverso, red, transición vertical (para aviones VTOL).
- Autoajuste, simulación con simuladores JSBSIM, X-Plane y RealFlight .
- Soporte para una gran variedad de arquitecturas VTOL: Quadplanes, Tilt wings, tilt rotors, tail sitters, ornithopters.
- Optimización de aviones de 3 o 4 canales.
Específico para rover
- Modos operativos Manual, Aprendizaje, Automático, Dirección, Retención y Guiado.
- Soporte para arquitecturas sobre ruedas y vías.
Específico para submarinos
- Retención de profundidad: utilizando sensores de profundidad basados en la presión, los submarinos pueden mantener la profundidad en unos pocos centímetros.
- Light Control: Control de la iluminación submarina a través del controlador.
ArduPilot está completamente documentado dentro de su wiki, totalizando el equivalente a unas 700 páginas impresas y dividido en seis secciones superiores: Las subsecciones relacionadas con los vehículos Copter, Plane, Rover y Submarine están destinadas a los usuarios. Una subsección de desarrollador para usos avanzados está dirigida principalmente a ingenieros de software y hardware, y una sección común que reagrupa información común a todos los tipos de vehículos se comparte dentro de las primeras cuatro secciones.
Casos de uso de ArduPilot
Aficionados y aficionados
- Carreras de drones .
- Construcción y operación de modelos de radiocontrol para recreación.
Profesional
- aérea fotogrametría
- Fotografía aérea y realización de películas.
- Sensores remotos
- Búsqueda y rescate
- Aplicaciones robóticas
- Investigación académica
- Entrega de paquetes
Historia
Primeros años, 2007-2012
Las primeras raíces del proyecto ArduPilot se remontan a finales de 2007 [10] cuando Jordi Munoz, quien más tarde cofundó 3DRobotics con Chris Anderson , escribió un programa Arduino (al que llamó "ArduCopter") para estabilizar un helicóptero RC. En 2009, Muñoz y Anderson lanzaron Ardupilot 1.0 [11] (software de controlador de vuelo) junto con una placa de hardware en la que podía ejecutarse. Ese mismo año, Muñoz, que había construido un UAV de helicóptero RC tradicional capaz de volar de forma autónoma, ganó la primera competencia Sparkfun AVC. [12] El proyecto creció aún más gracias a muchos miembros de la comunidad de DIY Drones, incluido Chris Anderson, que defendió el proyecto y fundó la comunidad basada en foros a principios de 2007. [13] [14]
La primera versión de ArduPilot solo admitía aviones de ala fija y se basaba en un sensor de termopila , que se basa en determinar la ubicación del horizonte en relación con el avión midiendo la diferencia de temperatura entre el cielo y el suelo. [15] Posteriormente, se mejoró el sistema para reemplazar las termopilas con una Unidad de Medición Inercial (IMU) usando una combinación de acelerómetros , giroscopios y magnetómetros . El soporte de vehículos se expandió posteriormente a otros tipos de vehículos, lo que llevó a los subproyectos Copter, Plane, Rover y Submarine.
Los años 2011 y 2012 fueron testigos de un crecimiento explosivo en la funcionalidad del piloto automático y el tamaño de la base de código, gracias en gran parte a la nueva participación de Andrew "Tridge" Tridgell y el autor de HAL, Pat Hickey. Las contribuciones de Tridge incluyeron capacidades automáticas de prueba y simulación para Ardupilot, junto con PyMavlink y Mavproxy. Hickey fue fundamental para llevar la biblioteca AP_ HAL a la base del código: HAL (Capa de abstracción de hardware) simplificó y modularizó enormemente la base del código al introducir y confinar los detalles de implementación de hardware de bajo nivel a una biblioteca de hardware separada. El año 2012 también vio a Randy Mackay asumir el papel de mantenedor principal de Copter, después de una solicitud del ex-mantenedor Jason Short, y Tridge asumió el rol de mantenedor principal de Plane, después de Doug Weibel, quien luego obtuvo un Ph.D. en Ingeniería Aeroespacial. Tanto Randy como Tridge son mantenedores de plomo actuales hasta la fecha.
El enfoque de software libre para el desarrollo de código ArduPilot es similar al del sistema operativo Linux y al Proyecto GNU , y al Proyecto PX4 / Pixhawk y Paparazzi , donde el bajo costo y la disponibilidad permitieron a los aficionados construir pequeñas aeronaves autónomas pilotadas remotamente , como micro air. vehículos y UAV en miniatura . De manera similar, la industria de los drones aprovechó progresivamente el código ArduPilot para construir vehículos autónomos profesionales de alta gama.
Madurez, 2013-2016
Si bien las primeras versiones de ArduPilot usaban el controlador de vuelo APM, una CPU AVR que ejecuta el lenguaje de programación de código abierto Arduino (que explica la parte "Ardu" del nombre del proyecto), los años posteriores fueron testigos de una reescritura significativa del código base en C ++ con muchas utilidades de apoyo escritas en Python .
Entre 2013 y 2014, ArduPilot evolucionó para ejecutarse en una variedad de plataformas de hardware y sistema operativo más allá de la arquitectura de microcontrolador original basada en Arduino Atmel , primero con la introducción comercial del controlador de vuelo de hardware Pixhawk, un esfuerzo de colaboración entre PX4, 3DRobotics y el equipo de desarrollo de ArduPilot. , y más tarde al Bebop2 de Parrot y los controladores de vuelo basados en Linux como el NAVIO2 basado en Raspberry Pi y el ErleBrain basado en BeagleBone. Un evento clave dentro de este período de tiempo incluyó el primer vuelo de un avión bajo Linux a mediados de 2014. [16]
A finales de 2014 vio la formación de DroneCode, [17] formado para reunir los principales proyectos de software de UAV de código abierto, y más notablemente para solidificar la relación y colaboración de ArduPilot y los proyectos PX4. La participación de ArduPilot con DroneCode terminó en septiembre de 2016. [18] 2015 también fue un año excepcional para 3DRobotics, un gran patrocinador del desarrollo de ArduPilot, con su introducción del quadcopter Solo, un quadcopter listo para usar que ejecuta ArduPilot. El éxito comercial de Solo, sin embargo, no fue así. [19]
El otoño de 2015 vio nuevamente un evento clave en la historia del piloto automático, con un enjambre de 50 aviones que ejecutan ArduPilot volando simultáneamente en el equipo del Laboratorio de Ingeniería de Sistemas Robóticos Avanzados (ARSENL) en la Escuela de Postgrado Naval .
Dentro de este período de tiempo, la base de código de ArduPilot se refactorizó significativamente , hasta el punto en que dejó de tener similitudes con sus primeros años de Arduino.
Actual, 2018-
La evolución del código de ArduPilot continúa con soporte para la integración y comunicación con poderosas computadoras compañeras para navegación autónoma, soporte de avión para arquitecturas VTOL adicionales, integración con ROS , soporte para planeadores e integración más estricta para submarinos. El proyecto se desarrolla bajo el paraguas de ArduPilot.org, un proyecto dentro de la organización sin fines de lucro Software in the Public Interest (spi-inc.org). ArduPilot está patrocinado en parte por una lista creciente de socios corporativos.
Desafío UAV Outback
En 2012, el Canberra UAV Team obtuvo con éxito el primer lugar en el prestigioso UAV Outback Challenge . El equipo CanberraUAV incluía desarrolladores de ArduPlane y el avión volado estaba controlado por un piloto automático APM 2. En 2014, el equipo CanberraUAV y ArduPilot volvieron a ocupar el primer lugar, al entregar con éxito una botella al excursionista "perdido". En 2016, ArduPilot ocupó el primer lugar en la competencia técnicamente más desafiante, por delante de la fuerte competencia de equipos internacionales.
Comunidad
ArduPilot es administrado conjuntamente por un grupo de voluntarios ubicados en todo el mundo, que utilizan Internet ( foro basado en el discurso , canal gitter ) para comunicarse, planificarlo, desarrollarlo y apoyarlo. El equipo de desarrollo se reúne semanalmente en una reunión de chat, abierta a todos, utilizando Mumble . Además, cientos de usuarios aportan ideas, código y documentación al proyecto. ArduPilot tiene la licencia GPL Versión 3 y se puede descargar y usar de forma gratuita.
Personalización
La flexibilidad de ArduPilot lo hace muy popular en el campo del bricolaje, pero también ha ganado popularidad entre los usuarios profesionales y las empresas. El quadcopter Solo de 3DRobotics, por ejemplo, utiliza ArduPilot, al igual que un gran número de empresas aeroespaciales profesionales como Boeing. [20] La flexibilidad permite admitir una amplia variedad de tipos y tamaños de marcos, diferentes sensores, cardanes de cámara y transmisores RC, según las preferencias del operador.
ArduPilot se ha integrado con éxito en muchos aviones como el Bixler 2.0. La personalización y la facilidad de instalación han permitido que la plataforma ArduPilot se integre para una variedad de misiones. La estación de control terrestre Mission Planner (Windows) permite al usuario configurar, programar, usar o simular fácilmente una placa ArduPilot para propósitos tales como mapeo, búsqueda y rescate y áreas de topografía.
Ver también
- Robótica de código abierto
Otros proyectos de control autónomo de aeronaves:
- Piloto automático PX4
- Proyecto Paparazzi
- Babosas
Otros proyectos para vehículos terrestres y automóviles conducidos:
- OpenPilot
- Piloto automático Tesla
Referencias
- ^ "Comunidad: - documentación de ArduPilot" . ardupilot.org . Consultado el 30 de abril de 2017 .
- ^ "Socios corporativos" . ardupilot.org . Consultado el 14 de enero de 2018 .
- ^ Eure, Kenneth W. (diciembre de 2013). "Una aplicación de estimación de actitud UAV utilizando un sistema de navegación inercial de bajo costo" (PDF) . NTRS.nasa.gov . NASA / TM – 2013-218144.
- ^ "ArduPilot / ardupilot" . GitHub . Consultado el 1 de mayo de 2017 .
- ^ "¡Démosle la bienvenida a ArduPilotMega 2.0!" . diydrones.com . Consultado el 1 de mayo de 2017 .
- ^ "Linux y el futuro de los drones [LWN.net]" . lwn.net . Consultado el 5 de mayo de 2017 .
- ^ Prensa (2013-08-29). "PX4 y 3D Robotics presentan Pixhawk: un piloto automático avanzado y fácil de usar - sUAS News - El negocio de los drones" . sUAS News - El negocio de los drones . Consultado el 1 de mayo de 2017 .
- ^ "Primer vuelo exitoso impulsado por el procesador Zynq - Aerotenna" . Aerotenna . 2015-10-08 . Consultado el 5 de mayo de 2017 .
- ^ "Modos de vuelo - documentación del helicóptero" . ardupilot.org . Consultado el 1 de mayo de 2017 .
- ^ "ArduCopter V1 Beta" . forum.arduino.cc . Consultado el 1 de mayo de 2017 .
- ^ "ArduPilot, un piloto automático de código abierto, ahora disponible ($ 24.95!) - Grupos RC" . www.rcgroups.com . Consultado el 8 de mayo de 2017 .
- ^ "2009 AVC - AVC.SFE" . avc.sparkfun.com . Consultado el 3 de mayo de 2017 .
- ^ Desarrollador | Piloto automático de código abierto APM
- ^ Los fabricantes de drones obtienen ayuda de la multitud de código abierto
- ^ Desarrollador | Piloto automático de código abierto APM
- ^ "Primer vuelo de ArduPilot en Linux" . diydrones.com . Consultado el 3 de mayo de 2017 .
- ^ "Presentación de la Fundación Dronecode" . diydrones.com . Consultado el 3 de mayo de 2017 .
- ^ "ArduPilot y DroneCode se separan" . diydrones.com . Consultado el 3 de mayo de 2017 .
- ^ Mac, Ryan. "Detrás de la caída de la robótica 3D, empresa de drones más prometedora de América del Norte" . Forbes . Consultado el 3 de mayo de 2017 .
- ^ https://www.wired.com/story/boeing-delivery-drone/
enlaces externos
- ArduPilot.org