Tailsitter VTOLs very occasionally gets stuck with zero roll and pitch angle in multicopter mode after a forward transition command is issued. This very rare behavior is triggered by the following events: 1> a forward transition is triggered either in auto or manual mode. 2> in the vtol_att_control main loop, if multicopter and fixed wing attitude setpoints are not updated, transition state is not updated 3> the commander changes the vehicle status to transition mode. 4> multicopter pos controller initiated Transition flight task. This results in zero roll and pitch setpoint due to zero acceleration setpoint 5> now vtol_att_control executes and updates the transition state. Specifically, _q_trans_start and _q_trans_sp are set with zero roll and pitch sp 6> tilt is evaluated to be NaN, despite _q_trans_sp being normalized. This happens for 25% of all yaw angles when using float datatype. This can be verified using the matrix library 7> once tilt is evaluated to be NaN, _q_trans_sp is never updated again and is stuck in this state for ever. This has been fixed by constraining the cos(tilt) within +1 to -1 range Further, _q_trans_start and _q_trans_sp are immedietly initialized after a transition event is triggered.
PX4 Drone Autopilot
This repository holds the PX4 flight control solution for drones, with the main applications located in the src/modules directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
PX4 is highly portable, OS-independent and supports Linux, NuttX and QuRT out of the box.
- Official Website: http://px4.io (License: BSD 3-clause, LICENSE)
- Supported airframes (portfolio):
- Multicopters
- Fixed wing
- VTOL
- Autogyro
- Rover
- many more experimental types (Blimps, Boats, Submarines, Autogyros, etc)
- Releases: Downloads
Building a PX4 based drone, rover, boat or robot
The PX4 User Guide explains how to assemble supported vehicles and fly drones with PX4. See the forum and chat if you need help!
Changing code and contributing
This Developer Guide is for software developers who want to modify the flight stack and middleware (e.g. to add new flight modes), hardware integrators who want to support new flight controller boards and peripherals, and anyone who wants to get PX4 working on a new (unsupported) airframe/vehicle.
Developers should read the Guide for Contributions. See the forum and chat if you need help!
Weekly Dev Call
The PX4 Dev Team syncs up on a weekly dev call.
Note
The dev call is open to all interested developers (not just the core dev team). This is a great opportunity to meet the team and contribute to the ongoing development of the platform. It includes a QA session for newcomers. All regular calls are listed in the Dronecode calendar.
Maintenance Team
- Project: Founder
- Architecture
- Dev Call
- Communication Architecture
- UI in QGroundControl
- Multicopter Flight Control
- Multicopter Software Architecture
- VTOL Flight Control
- Fixed Wing Flight Control
- OS / NuttX
- Driver Architecture
- Commander Architecture
- UAVCAN
- State Estimation
- Vision based navigation and Obstacle Avoidance
- RTPS/ROS2 Interface
See also maintainers list (px4.io) and the contributors list (Github).
Supported Hardware
This repository contains code supporting Pixhawk standard boards (best supported, best tested, recommended choice) and proprietary boards.
Pixhawk Standard Boards
- FMUv6X and FMUv6U (STM32H7, 2021)
- Various vendors will provide FMUv6X and FMUv6U based designs Q3/2021
- FMUv5 and FMUv5X (STM32F7, 2019/20)
- FMUv4 (STM32F4, 2015)
- FMUv3 (STM32F4, 2014)
- FMUv2 (STM32F4, 2013)
Manufacturer and Community supported
- Holybro Durandal
- Hex Cube Orange
- Hex Cube Yellow
- Airmind MindPX V2.8
- Airmind MindRacer V1.2
- Bitcraze Crazyflie 2.0
- Omnibus F4 SD
- Holybro Kakute F7
- Raspberry PI with Navio 2
Additional information about supported hardware can be found in PX4 user Guide > Autopilot Hardware.
Project Roadmap
A high level project roadmap is available here.