PX4's Posts (26)

Sort by

PX4 Flight Mode Switching / Navigation State Machine

3689499584?profile=original

We purposefully started from scratch for the PX4 native stack flight mode switching and navigation state machine, and looked at APM/ACM, Mikrokopter, Paparazzi, Asctec, many research systems / papers and some more unlisted opn source systems (this is only for the native PX4 software stack and does not apply to monolithic ports, like e.g. the APM/ACM port).
 
The diagram above shows the flight mode state machine and the different main modes the system can be in. As the graph shows it covers simple manual / FPV assisted flight as well as full autonomous flight and ensures sane transitions between the modes.
 
The proposal also covers mode switching as done from switched from the remote control and also covers the safety state machine (arming, error handling).
 
The detailed proposal is here: https://pixhawk.ethz.ch/px4/users/system_modes
 
Design Goals
  • Same flight modes for multi rotors and fixed wing (which is entirely possible, as you will see)
  • Have only few of them to keep it simple, yet to support all known user stories / application examples
  • Be operational with a minimum set of one 3-position switch and one 2-position switch

 

We have right now only implemented a minimal subset of this, essentially the first switch between manual, assisted and auto. This allows us to discuss this proposal with the luxury of still having all degrees of freedom in the design. Please consider the page linked above as ONE way to do it, there may be more and better ways - this post is trying to get a discussion going with all interested parties.
Read more…

PX4 Platform Update

There has been recently news about uses of PX4 (APM/ACM port and James Gopperts post on state estimation control), its time to recap the platform state and to give an overview of the current roadmap. There are a few important hardware highlights:

PX4 as a platform tries to provide more robustness (on the hardware level), more flexibility and a modern software application interface. All this allows to implement new functionality that has been limited so far, most importantly it however decouples the platform (operating system, sensor drivers) from the application software (state estimation filters,  controllers).

We're moving from a monolithic block where everything is closely coupled to a design where you have an operating system and apps that have individual functionality. It allows you to mix different apps from different developers and projects, and as developer it makes it easier to write software for it (a POSIX-style API quite similar to e.g. MacOS or Linux and a middleware API somehow similar to ROS, but more efficient).

Therefore besides from the actual PX4 platform (OS, middleware), there is also a complete autopilot stack (in fact by now already multiple controller / filter choices, plus the APM port).

We have by now test-flown all of the onboard fixed wing controller choices, and went out today to test the newly contributed Kalman filter based attitude and position estimator plus fixedwing controller from James Goppert. All in all the flight went well and smooth in manual and stabilized mode and we'll take the plane out for autonomous flight tests this weekend. Now that the core infrastructure is in place and reliable, expect much more progress on the autonomous flight, both from the APM port and from individual developers contributing new controllers and filters.

Read more…

The next few posts in our tutorial series cover the setup of the PX4 autopilot for flight. The first step is to set up RC and telemetry. Here is a RC calibration video with Mission Planner showing the interoperability (due to MAVLink 1.0) of PX4 and APM.

 

The video is very short and basic and should just illustrate the route PX4 is taking towards maximum interoperability with MAVLink 1.0 and existing platforms and tools. If you have further questions about the platform or if you're unboxing it in the next days, please use PX4 Answers to get solid answers from the core developers and real-life tips from other users. We will reward active contributors to the answers and wikis with a community award and hardware.

Read more…

PX4 Toolchain Introduction Video

To make getting started with PX4 a bit easier, we've compiled an installation video for the Windows installer. The setup instructions for Eclipse are also valid for Mac OS and Linux.

Note that toolchain means a packaged selection of individual standard software required to develop software for a platform. We do not claim to have developed our own Integrated Development Environment (IDE), we just packaged what we needed into one redistributable file. This also implies that this development environment is not just usable for the PX4 platform, but for almost any other ARM-driven micro controllers.

The video runs through all setup steps, starting with the installation of the toolchain, downloading the PX4 Firmware the first time and finishing with Eclipse setup and board flashing. The toolchain can be used to build firmware for PX4FMU, PX4IO, PX4FLOW and any other ARM7, ARM9, ARM Cortex-M3 or ARM Cortex-M4. Functionality-wise it is similar to YAGARTO or CodeSourcery. Of course the credits for this go to MSYS, ARM and all other people porting the GNU toolchain to Windows, we just wrapped everything into an installer.

It contains:

  • ARM GCC (the official ARM GCC build, the only one we tested successfully with enabled M4 FPU)
  • GDB
  • OpenOCD
  • Python
  • GNU / MSYS tools (make, sh, genromfs, xxd, etc)

Developers have the choice to either use the Eclipse IDE and build with double-clicking make targets, or to use plain Makefiles on the console and their preferred text editor. There is a SublimeText 2 project in the Firmware folder, for users preferring SublimeText.

3689471526?profile=original

3689471555?profile=original

 

3689471462?profile=original

 

Read more…

PX4 Flight and Features Video (Introduction post #2)

This platform overview video shows quadrotors in flight, fixed wing hardware in the loop simulation and a novel experimental aircraft. It also introduces all PX4 hardware modules (available from 3D Robotics).

This is the second of a series of PX4 introduction posts. The first is here. We will continue our coverage in the next days with an introduction to first-time setup and calibration and installation of the programming environment (Eclipse or plain shell, arm compiler, USB flashing and/or JTAG debugging).

Read more…

Introducing the PX4 autopilot system

The PX4 team is pleased to announce early availability of the PX4 autopilot platform, with hardware available immediately from 3D Robotics. 

px4fmuv1.6_top.png?width=400

The platform is a low cost, modular, open hardware and software design targeting high-end research, hobby and industrial autopilot applications.

PX4 is an expandable, modular system comprising the PX4FMU Flight Management Unit (autopilot) and a number of optional interface modules.

The PX4FMU autopilot features include:

  • 168Mhz ARM CortexM4F microcontroller with DSP and floating-point hardware acceleration.
  • 1024KiB of flash memory, 192KiB of RAM.
  • MEMS accelerometer and gyro, magnetometer and barometric pressure sensor.
  • Flexible expansion bus and onboard power options.

Expansion modules available at release include:

  • PX4IOAR This module interfaces PX4 to the AR.Drone motor controllers, allowing a complete quadrotor to be assembled using an AR.Drone frame and motors.
  • PX4IO A flexible interface module with support for eight PWM servo outputs, relays, switched power and more.

As an open hardware design, third-party and DIY expansion modules can be easily developed for specific applications, and more PX4 modules are in development.

In addition to the versatile hardware platform, PX4 introduces a sophisticated, modular software environment built on top of a POSIX-like realtime operating system. The modular architecture and operating system support greatly simplify the process of experimenting with specific components of the system, as well as reducing the barriers to entry for new developers.

Adding support for new sensors, peripherals and expansion modules is straightforward due to standardized interface protocols between software components. Onboard microSD storage permits high-rate logging and data storage for custom applications. MAVLink protocol support provides direct integration with existing ground control systems including QGroundControl and the APM Mission Planner.

Pricing of the PX4 components reflects more than a year of careful development and a strong commitment from our manufacturing partner.

This release is targeted at early adopters and developers looking for a more capable platform than existing low-cost autopilots. With more than an order of magnitude more processing power and memory compared to popular 8-bit autopilot platforms, PX4 is exceptional value for money and provides substantial room for future growth.

For more information about the PX4 autopilot platform, visit the project website at http://pixhawk.ethz.ch/px4/

PX4 modules can be purchased from our manufacturing partner, 3DRobotics.

Read more…