ArduPilot é um projeto de código aberto, para utilização de um conjunto de software destinado ao piloto automático em veículos não-tripulados, permitindo controlar remotamente:

Drones Multirotor Asa fixa e aeronaves VTOL. Helicópteros Carros Embarcações Submarinos Antenas de rastreamento

O ArduPilot foi originalmente desenvolvido por hobistas para controlar modelos de aeronaves e veículos pesados e evoluiu para um piloto automático completo e confiável, utilizado pela indústria, organizações de pesquisas e amadores.

Software e Hardware

Conjunto de software O conjunto de software ArduPilot consiste em software de navegação (normalmente chamado de firmware quando compilado em forma binária para de hardware de porte como os microcontroladores por exemplo) rodando em veículos (Helicóptero, Aeronaves, Carros, Antena de rastreamento e Submarino), juntamente com o software de controle da estação terrestre, incluindo o Mission Planner, APM Planner, QGroundControl, MavProxy, Tower e outros.

O código fonte do ArduPilot se encontra no GitHub, com em média um total de 400 contribuidores.

O conjunto de software é construído automaticamente na versão de testes, através da integração contínua e testes unitários fornecidos pela Travis CI, e um ambiente de construção e compilação incluindo o compilador de plataforma cruzada GNU e Waf.  Possui binários pré-compilados rodando em várias plataformas de hardware estão disponíveis para download do usuário nos sub-sites do ArduPilot. miniaturadaimagem|Um octocóptero utilizando Ardupilot

Hardware Suportados O software utilizado no Helicóptero, Aeronave, Carro, ou no Submarino é executado em uma ampla variedade de hardware incorporado (incluindo computadores Linux totalmente soprados), normalmente consistindo de um ou mais microcontroladores ou microprocessadores conectados a sensores periféricos usados para navegação. Estes sensores incluem giroscópios MEMS e acelerômetros a um mínimo, necessários para o voo multirotor e estabilização de aviões. Os sensores geralmente incluem, além disso, uma ou mais bússolas, altímetros (barométricos) e GPS, juntamente com sensores adicionais opcionais, tais como sensores de fluxo óptico, indicadores de velocidade, altímetros laser ou sonar ou telêmetros, câmeras monoculares, estereoscópicas ou RGB-D. Os sensores podem estar na mesma placa eletrônica, ou externos.

O software Ground Station, utilizado para programação ou monitoramento da operação de veículos, está disponível para Windows, Linux, MacOS, iOS e Android.

O ArduPilot funciona em uma grande variedade de plataformas de hardware, incluindo as seguintes, listadas em ordem alfabética:

Intel Aero (Linux ou baseado no STM32) APM 2.X (Atmel Mega baseado no Microcontrolador Arduino), desenvolvido por Jordi Munoz em 2010. APM, para ArduPilotMega, funciona somente nas antigas versões do ArduPilot). BeagleBone Blue e PXF Mini (BeagleBone Black cape). The Cube, formalmente chamado de Pixhawk 2, (ARM Cortex), desenvolvido por ProfiCNC em 2015. Edge, controlador de drone com sistema de streaming de vídeo, projetado pela Emlid. Erle-Brain, (baseado no Linux) desenvolvido por Erle Robotics. Intel Minnowboard (baseado no Linux). Navio2 and Navio+ (Raspberry Pi Linux based), designed by Emlid. Parrot Bebop, and Parrot C.H.U.C.K., designed by Parrot, S.A. Pixhawk, (base do microcontrolador ARM Cortex), originalmente projetado por Lorenz Meier e ETH Zurich, melhorado e lançado em 2013 por PX4, 3DRobotics, e a equipe de desenvolvimento do ArduPilot. PixRacer, (baseado no ARM Cortex) desenvolvido por AUAV. Qualcomm SnapDragon (Linux). Virtual Robotics VRBrain (ARM Cortex). Xilinx Processador SoC Zynq (baseado no Linux, utilizando um processador ARM e FPGA).

Além das plataformas de navegação básica acima, o ArduPilot suporta integração e comunicação com o acompanhante no veículo, ou computadores auxiliares para navegação avançada que requerem processamento mais poderoso. Estes incluem computadores NVidia TX1 e TX2 (arquitetura NVidia Jetson, Intel Edison e Intel Joule, HardKernel Odroid, e Raspberry PI.

Recursos

Comum a todos os veículos O ArduPilot oferece um grande conjunto de características, incluindo as seguintes comuns a todos os veículos:

Modo de voo totalmente autônomo, semi-autônomo e totalmente manual, tarefas programáveis com mapeamento geográfico em 3D, opcional. Opções de estabilização para negar a necessidade de um co-piloto de terceiros. Simulação com uma variedade de simuladores, incluindo ArduPilot SITL. Grande número de sensores de navegação suportados, incluindo vários modelos de GPS RTK, GPS tradicionais L1, barômetros, magnetômetros, telêmetros a laser e sonar, fluxo óptico, transponder ADS-B, infravermelho, velocidade do ar, sensores e dispositivos de captura de visão/moção por computador. Sensor de comunicação via SPI, I²C, CAN Bus, Comunicação Serial, SMBus. Inspeções de falhas por perda de contato de rádio, GPS e violação de um limite pré-definido, nível mínimo de energia da bateria. Suporte para navegação em ambientes que não possuem GPS, com posicionamento baseado em visão, fluxo óptico, SLAM, posicionamento Ultra Wide Band. Suporte para atuadores tais como paraquedas e garras magnéticas. Suporte para motores brushless e brushed. Suporte a fotografia e gravação de vídeo com integração de gimbal. Integração e comunicação com computadores secundários poderosos, ou " companheiros". Rica documentação através do ArduPilot wiki. Assistência e discussão através do fórum ArduPilot Discourse, canais de bate-papo Gitter, Slack, Discord e Facebook.

Específico para Helicóptero

Modos de voo: Estabilizar, alternar, manter, soltar, RTL (retorno ao lançamento), automático, aceleração, sintonia automática, freio, círculo, derivação, guiado, (e guiado_NoGPS), aterrissar, sustentação, esporte, arremessar, seguir-me, simples, super simples, evitar_ADSB. Sintonia automática Grande variedade de tipos de estruturas suportadas, incluindo tricópteros, quadricópteros, hexacópteros, octocopiadoras planas e co-axiais, e configurações personalizadas de motores Suporte para helicópteros elétricos e a gás tradicionais, helicópteros mono, helicópteros trandem.

Específico para Aeronaves

Fly By Wire modes, loiter, auto, modos acrobáticos. Opções de decolagem:  Lançamento manual, bungee, catapulta, transição vertical (para aeronaves VTOL). Opções de pouso: Inclinação ajustável de deslizamento, helicoidal, impulso inverso, rede, transição vertical (para aeronaves VTOL). Calibração automática, simulações com simuladores JSBSIM, X-Plane e RealFlight. Suporte para uma grande variedade de arquiteturas VTOL: Quadplanos, asas de inclinação, rotores de inclinação, assentos de cauda, ornithopters. Otimização de aeronaves de 3 ou 4 canais.

Específico para Carros

Manual, Aprendizagem, Automático, Direção, Retenção e modos operacionais guiados. Suporte para arquiteturas de rodas e esteiras.

Específico para Submarino

Elevação de profundidade: Usando sensores de profundidade baseados em pressão, os submarinos podem manter a profundidade dentro de poucos centímetros. Controle de luz: Controle da iluminação submarina através do controlador.

O ArduPilot está totalmente documentado dentro de seu wiki, totalizando o equivalente a cerca de 700 páginas impressas e dividido em seis seções superiores: As subseções relacionadas a aviões, helicópteros, carros e submarinos são direcionadas aos usuários. Uma subseção de desenvolvedores para usos avançados é destinada principalmente a engenheiros de software e hardware, e uma seção comum que reagrupa informações comuns a todos os tipos de veículos é compartilhada dentro das primeiras quatro seções.

Casos de uso do ArduPilot

Hobistas e amadores

Corrida de drones. Construção e operação de modelos de controle de rádio para entretenimento.

Profissional

Aéreo fotogrametria Fotografia aérea e produção de filmes. Sensor remoto Buscas e resgates Aplicações para Robótica Pesquisas acadêmicas Entrega de pacotes

História

Primeiros anos, 2007-2012 O projeto ArduPilot surgiu no final de 2007 quando Jordi Munoz, que depois se tornou co-fundador 3DRobotics juntamente com Chris Anderson, escreveu um programa para o Arduino (no qual chamou de "ArduCopter") para estabilizar um RC Helicopter. Em 2009 Munoz e Anderson lançou o Ardupilot 1.0 (software controlador de voo) junto com uma placa de hardware em que poderia funcionar. Nesse mesmo ano, a Munoz, que tinha construído um helicóptero RC tradicional UAV capaz de voar autonomamente, venceu a primeira competição da Sparkfun AVC. O projeto cresceu ainda mais graças a muitos membros da comunidade de DIY Drones, incluindo Chris Anderson que defendeu o projeto e tinha fundado a comunidade baseada no fórum no início de 2007.Developer | APM open source autopilotDrones Makers Get Help From the Open Source Crowd

A primeira versão do ArduPilot suportava apenas aeronaves de asa fixa e era baseada em um sensor thermopile, que depende da determinada localização do horizonte em relação à aeronave, medindo a diferença de temperatura entre o céu e o solo. Mais tarde, o sistema foi melhorado para substituir as termopiles por um Inertial Measurement Unit (IMU) usando a combinação de acelerômetros, giroscópios e magnetômetros. O suporte de veículos foi posteriormente expandido para outros tipos de veículos que levaram aos subprojetos como Helicopteros, Aviões, Carros pesados e Submarinos.

Os anos de 2011 e 2012 testemunharam um crescimento explosivo da funcionalidade do piloto automático e do tamanho da base de código, graças em grande parte à nova participação de Andrew "Tridge" Tridgell e Pat Hickey autor do HAL (Hardware Abstraction Layer). As contribuições do Tridge incluíram testes automáticos e capacidades de simulação para Ardupilot, juntamente com PyMavlink e Mavproxy. Hickey foi fundamental para trazer a biblioteca AP_ HAL para a base de códigos: HAL (Hardware Abstraction Layer) simplificou e modularizou muito a base de código, introduzindo e confinando implementações específicas de hardware de baixo nível a uma biblioteca de hardware separada. O ano 2012 também viu Randy Mackay assumir o papel de principal mantenedor da Copter, após um pedido do antigo mantenedor Jason Short, e Tridge assumir o papel de principal mantenedor do Avião, após Doug Weibel, que passou a ganhar um Ph.D. em Engenharia Aeroespacial. Tanto Randy como Tridge são os atuais responsáveis pela manutenção da direção até o momento.

O software-livre A abordagem ao desenvolvimento do código ArduPilot é similar à do Linux. O sistema operacional e o Projeto GNU, e o PX4/Pixhawk e Paparazzi Project, onde o baixo custo e a disponibilidade permitiram aos hobbistas construir pequenos aeronaves pilotadas remotamente, como micro air vehicles e miniature UAVs. A indústria de drones, da mesma forma, alavancou progressivamente o código ArduPilot para construir veículos profissionais autônomos de alto nível.

Maturidade, 2013-2016 Enquanto as primeiras versões do ArduPilot usavam o controlador de voo APM, uma CPU AVR rodando o Arduino, uma linguagem de programação de código aberto (que explica a parte "Ardu" do nome do projeto), anos posteriores testemunharam uma reescrita significativa da base de código em C++ com muitos utilitários de apoio escritos em Python.

Entre 2013 e 2014 o ArduPilot evoluiu para rodar em uma gama de plataformas de hardware e sistema operacional além do Arduino original. Atmel baseado na arquitetura do microcontrolador, primeiro com a introdução comercial do controlador de voo de hardware Pixhawk, um esforço colaborativo entre PX4, 3DRobotics e a equipe de desenvolvimento do ArduPilot, e depois para o Bebop2 da Parrot e os controladores de voo baseados em Linux como o NAVIO2 da Raspberry Pi e o ErleBrain da BeagleBone. Um evento chave dentro deste período de tempo incluiu o primeiro voo de um avião sob Linux em meados de 2014.