One of UAV development: Pixhawk briefly with Arduino

1. Pixhawk development history

  • Development: APM -> PX4FMU / IO -> Pixhawk:

    1.1. Arduino Introduction


    Arduino is the main microcontroller development board with AVR microcontroller as the core controller (of course there are, but not the official version of the STM32, as well as other core intel Galileo, for example), or to learn what the board, the Arduino developers simple function, there are many applications library, so do not go directly to the operation of the register so that staff do not have good microcontroller-based Arduino can be used to make what you want. Arduino developers also developed a simple IDE (Integrated Development Environment) is to write code, compile, debug, download the PC software.

    Arduino just an open source development platform that can support a variety of MCU, including atmel's AtmelTiny series, avr8, ARM Cortex M0, ARM Cortex M3, ST's ARM Cortex M3 processor, TI's energia platform also uses Arduino the platform structure can be used to develop MSP430, C2000 and so on.

    In principle, Arduino MCU platform is not limited, but currently only support a limited MCU. Currently it has supported famous ESP8266, ESP32 and other ARM core board development. But most of the core board Arduino AVR microcontroller is used as the core. Arduino has a hardware abstraction layer, realizes the separation layer is hardware-independent and hardware-related layers. Arduino using C and C ++ mixed programming, using mature open source gnu compiled. Arduino libraries have a lot of support, from simple to complex a large number of application examples, a user can quickly and examples of applications based library implementation. But if you want to understand the underlying implementation, you can also see the source code underlying implementation. Arduino control-oriented environment mainly for the front end, the front end robot control, four front control of the aircraft, 3D front of the printer control. For simple control system, you can only use the Arduino development.

1.2. APM Profile

PX4FMU / IO and Pixhawk official website address:

APM (ArduPilotMega) was launched in 2007 by the DIY UAV community (DIY Drones) flight control products, is the most mature open source hardware projects. APM based Arduino open source platform, made of many hardware improvements, including accelerometers, gyroscopes and magnetometers of inertial measurement unit (IMU). Since the data is good APM customizable, open-source software Mission Planner, developers can configure settings APM, accepts and displays sensor. Currently APM flight control flight control has become a mature open source benchmark that can support multi-rotor, fixed wing, helicopters and unmanned aerial vehicles and other unmanned devices.

APM to Atmega2560 main microprocessor architecture, the hardware comprising: a three-axis gyroscope, a three-axis accelerometer, the height of the air pressure sensor, a voltage sensor 10Hz GPS module monitors the battery state, 4Mb-board data storage memory (job data automatically recorded, and can be exported to KML format), built-in hardware processor failures (runaway can be returned at the starting point), (optional) triaxial magnetometer, (optional) airspeed sensor, (optionally) a current sensor. Arduino platform built on the APM board flight control, is equivalent to a Arduino microcontroller, can be developed directly in the Arduino development environment.

Pixhawk the world's most famous open-source flight control hardware vendors 3DR recently introduced the latest generation flight control system. It's past life is the famous APM, APM because the processor is close to full capacity (APM using 8-bit processors), there is no way to meet the more complex arithmetic processing, the hardware manufacturers to use the latest standard 32-bit ARM processor The first generation is PX4 series, it is divided into flight control processor and the input-output interface board PX4FMU PX4IO. PX4 series may be used alone PX4FMU (but very complex wiring), with input and output interfaces may be used PX4IO board, but because there is no unified housing, not fixed, coupled with the use of complex, so basically generation experimental version. Through experience PX4 series, manufacturers finally simplifying the structure, and to integrate PX4FMU PX4IO onto a board, plus a bone-shaped shell, optimization of hardware and wiring, which is the second generation of this product Pixhawk. Pixhawk the following features:

  • Hardware clear:
    what chip used in it, what sensor at a glance, and almost all buses, peripherals will be drawn, it will not only be compatible with other peripherals in the future, but also for users with the ability to develop, very convenient, but this is not The key, the key is assured! Take this Pixhawk, he is a dual-processor, a powerful computing specializes in the 32 bit STM32F427 Cortex M4 core 168 MHz / 256 KB RAM / 2 MB Flash processor, there is a mainly located in the industrial use of coprocessor 32 bit STM32F103 it is characterized by security and stability. So even if the main processor crash, as well as a co-processor to provide security. As for the other sensors gyroscopes, accelerometers, barometers, etc., we all can access the official website http://www.pixhawk.com. FIG PCB with the schematic hardware board on github URL . .sch and .brd files requires the use of Altium Designer viewer to open. Schematics and PCB files because the file read-only access.

  • Complexity:
    This thing is really complicated than commercial flight control system, the software will not speak, it is that these peripheral interface, if you do not have electronics-related knowledge, I am afraid that really confused. For most people, this is indeed an obstacle.
  • Safety and practicality:
    just above when it comes to the safety design of the processor, but the software is also a key factor, so far, this flight control system has two sets of firmware system, a transplant is APM APM Copter, another it is set by the PIXHAWK project of ETH Zurich (ETH Zurich PolyU) computer vision and geometry laboratory, and supported by independent laboratory systems and automatic control laboratories, as well as some outstanding individuals, including APM Copter, 3D Robotics and international 3DR distributors developers. PX4 series developed specifically for the system firmware. Two sets of firmware can be measured by stable flight, early on the ground need to do the appropriate initialization. ArduCopter firmware uses the mission plan ground stations, PX4Firmware using Qgroundcontrol ground station.

. 1.3 APM, PX4FMU / IO, Pixhawk three systems compare:

(1) APM2.5 and 2.6 is the latest (and final) version of the traditional ardupilot flight control;
(2) PX4FMU with PX4IO are the first two versions of the new flight control family: Px4FMU Overview and Px4IO Overview;
(3) is Pixhawk binding PX4FMU / PX4IO improvements developed PX4 flight control of a single circuit board version;
(. 4) the APM. 8-bit CPU deficiencies in storage and CPU power;
(. 5) PX4FMU / PX4IO Swiss panel of a Lorenz Meier where developed school projects;
(. 6) PX4 has a 32-bit processor, more memory, comprising the use of a distributed processing manner and floating point coprocessor;
(7) compared with APM, PX4 / Pixhawk 10 having its more times more CPU performance and other improvements;
(8) Pixhawk by DIYDrones, 3DR and the first Swiss team PX4 joint development;
the focus (9) is developed by Pixkawk, so the PX4 development system may lag behind and some problems may not be solved long time;
(10) APM system has come to its end, PX4FMU / IO system is only transitional Pixhawk of development.

1.4 Note on some of the concepts in today's GitHub:

Pixhawk hardware platform, PX4 is pixhawk native firmware, developed specifically for pixhawk. GitHub code for the PX4 , PX4 hardware information

APM (Ardupilot Mega) is the hardware, Ardupilot is APM firmware, so called ArduPilot firmware also called APM. APM's GitHub Code

Ardupilot developed by a group of enthusiasts maintained, from the earliest APM1, APM2, then continue with large software code, the original hardware APM2 the latest code can not do, and then later the developers put Ardupilot the code transferred to the Pixhawk platform, compatible with Pixhawh hardware platform, so there are reasons led to two sets of flight control code on pixhawk, so the PX4 pixhawk hardware platform can run firmware (native firmware), you can also run APM firmware.

APM firmware chaotic, fragmented. Defenders more code style is not uniform, but this is a single-chip caller, not started. But the mature and stable, hardware support and more. PX4 firmware, running on nuttx embedded real-time operating system. Multitasking, modular design. Getting started is relatively easy, relatively unified code style. But less support for hardware, firmware less stable compared to APM.

1.5 major historical events:

  • Development history
    in May 2007 - when Chris Anderson Lego mindstorm build unmanned aerial vehicles, established DIYDrones.com.
    September 2008 - Jordi made a traditional helicopter UAVs can fly automatically and won the first Sparkfun AVC contest.
    2009 - Chris Anderson and Jordi Munoz established Robotics 3D (3DR)
    2009 5 Yue - Jordi / 3DRobotics released the first Ardupilot board (using infrared temperature sensor)
    November 2009 - Jordi created ardupilot code repository
    November 2009 - Jordi, Doug Weibel, Jose Julio wrote the first edition of William Premerlani algorithm using DCM of ArduIMU
    November 2009 Zhi 2010 Nian 2 Yue - Jason rewritten from scratch (v2.5), including the use of interrupt-driven remote control signal input, the remote throttle protection, return, hover, circling, vertical route correction, better stability, fly-digital, system events, four-channel output of the RC, the communication line 2 data transmission (Post).
    2009 Nian 12 Yue - Doug introduced an improved Ardupilot v2.4, supports IMU first aircraft flight mission
    in 2010 - 3d Robotics launched APM1
    2010 Early - Doug and Jason released Ardupilot 2.6, improved throttle control, support ArduIMU
    2010 summer - APM Code Development:
    Jason - Task Script, airplane mode, navigation
    Jose - code base, DCM, and hardware sensors support
    Doug - advanced flight control, flight logging, DCM
    Mikes - parameters, CLI, high-speed serial interface, advanced hardware optimized
    May 2010 - Ardupilot merged AeroQuad (including Jani Hirvinen), start work in ArduCopterNG (pirate).
    June 2010 - APM 1 on SW achieve the independent task scripts flight
    in June 2010 - APM1 make fixed-wing aircraft for the first time realized the autonomous flight
    June 2010 - Jason can be developed to run on Xplane based on semi kind of Perl simulation to test the new APM task script commands (later integrated into the Mavlink)
    2010 Nian 8 Yue - Jani / jDrones received a standard as the original four-axis aircraft rack DIY kit
    October 2010 - ArduCopterNG (AeroQuad / ArduCopter Code combined) project was Ardupilot team gave up and handed over to the ArduPirates team to get a more long-term development. Jason using another control logic overrides ArduCopter on the basis of ArduPlane make it more autonomy. Increase the hover mode, cruising mode, return, scripting tasks, Failsafe, takeoff, landing, and so on.
    August 2010 - Michael Oborne released the Mission Planner
    August 2010 - Randy adds support for TradHeli of
    2010 December - has been expanded from the initial ArduCopterNG MegaPirates codes became the first successful branch ardupilot
    April 2011 - Jason realized the first fully autonomous flight Arducopter task in the AVC Sparkfun
    2011 Nian - 3D Robotics has released APM2
    2011 Nian 11 Yue - Tridge created AutoTester
    2012 Nian - 3D Robotics has released APM2.5 / 2.6
    February 2012 - Jason let Randy to take over and become the Arducopter lead developer, Doug left the team to get his doctorate and Tridge took over ArduPlane
    February 2012 - Marco Robustini join and lead ArduCopter testers
    2012 July - Zurich Federal Institute of Technology (Lorenz Meier, MikeS) / 3D Robotics has released PX4
    2012 in 8 Yue - Pat Hickey simplifying the hardware abstraction layer (AP_HAL) and adds support for other board
    in October 2012 - Rob Lefebvre achieve TradHeli the first autonomous flight tasks
    October 2012 - Tridge and CanberraUAV use APM2 & Pandaboard won the UAV Outback challenge
    in November 2012 - the first version APM2.5 cottage appeared in
    December 2012 - Randy and Leonard joined the automatic height control based on the INS in ArduCopter (AC2.9), thanks to Jonathan Challinger successfully design a 3-order complementary filter Prototype's
    January 2013 - ardupilot code from googel code moved to github
    January 2013 / February - Android version of the earth station (DroidPlanner Arthur's, Kevin Hester of AndroPilot)
    2013 Nian 4 Yue - Paul Riseborough, Brandon Jones, Tridge prepared ArduPlane L1 controller-based waypoint flight
    2013 May - Leonard and Randy was enroute ArduCopter joined the inertial navigation support (AC3.0)
    2013 Year 7 Yue - Paul Riseborough, Tridge to ArduPlane integrated into the speed and altitude control
    in September 2013 - Mike McCauley, Tridge Added support for Flymaple board
    in November 2013 - ETH (Lorenz Meier, MikeS) / 3D Robotics has released Pixhawk
    2014 Nian 1 Yue - Paul Riseborough, Tridge increase the extended Kalman filter (EKF), the flight control can get more reliable attitude and position information
    in May 2014 - Emile Castelnuovo and Tridge adds support for VRBrain board
    in August 2014 - the first time the ArduPlane Linux-based flight control board (PixhawkFire)
    2014 Nian 9 Yue - Tridge & Canberra no human use based fixed-wing UAV arduplane won the Outback challenge (Tridge's Debrief).
    2014 Nian 10 Month - open source project UAV drone Code Start
    October 2014 - The first reports about ArduPlane of: being successfully used in search and rescue in Florida, including the search for a missing light aircraft

Guess you like

Origin www.cnblogs.com/hellocxz/p/12104923.html