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 MacOS 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, High altitude balloons, etc)
- Releases: Downloads
This repository is a fork of the main PX4-Autopilot branch release/1.14
. This release is the last stable release of PX4, and the version that Caleuche Team uses in it's UAV. The main reason for this fork is to keep track of custom changes made on top of release/1.14
made by Caleuche Team.
A x500 quadcopter with a downward facing camera was added to the PX4 Gazebo enviroment. The model is similar to the Team's UAV and is used for testing and simulation purposes. The camera added to the model has similar characteristics to the one used in the real UAV. To launch the simulation with this model, run the following command:
make px4_sitl gz_x500_mono_cam
Also if you want to expose the camera gazebo topic to ROS2 you can use the following command in a new terminal:
ros2 run ros_gz_bridge parameter_bridge /oak_1_w/rgb/image_raw@sensor_msgs/msg/[email protected]
Some of the objects used in the RobotX Challenge were added to the PX4 Gazebo enviroment. These objects are used for testing and simulation purposes. Currently the following objects are available:
Landing Pad
Red Can
Green Can
Blue Can
April Tag WAM-V Array
These objects can be added to a running simulation using the Resource Spawner availabe in the Gazebo GUI or by making a custom world file.
World files for Task 7 and Task 8 of the RobotX Challenge were added to the PX4 Gazebo enviroment. These world files are used for testing and simulation purposes. To launch the simulation with these world files, run the following command:
To run the world file for Task 7, first uncomment the 5th line in the x500_mono_cam model.sdf file located in Tools/simulation/gz/models/x500_mono_cam/model.sdf
. Then run the following command:
PX4_GZ_WORLD=custom_uav_replenishment make px4_sitl gz_x500_mono_cam
Some changes were made to the uXRCE-DDS Client, to expose some uORB topics to the ROS2 enviroment. This is achieved by modifying the dds_topics.yaml
file src/modules/uxrce_dds_client
. The extra topics exposed are:
irlock_report
The PX4 User Guide explains how to assemble supported vehicles and fly drones with PX4. See the forum and chat if you need help!
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!
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.
Note: This is the source of truth for the active maintainers of PX4 ecosystem.
Sector | Maintainer |
---|---|
Founder | Lorenz Meier |
Architecture | Daniel Agar / Beat Küng |
State Estimation | Mathieu Bresciani / Paul Riseborough |
OS/NuttX | David Sidrane |
Drivers | Daniel Agar |
Simulation | Jaeyoung Lim |
ROS2 | Beniamino Pozzan |
Community QnA Call | Ramon Roche |
Documentation | Hamish Willee |
Vehicle Type | Maintainer |
---|---|
Multirotor | Matthias Grob |
Fixed Wing | Thomas Stastny |
Hybrid VTOL | Silvan Fuhrer |
Boat | x |
Rover | x |
See also maintainers list (px4.io) and the contributors list (Github). However it may be not up to date.
Pixhawk standard boards and proprietary boards are shown below (discontinued boards aren't listed).
For the most up to date information, please visit PX4 user Guide > Autopilot Hardware.
These boards fully comply with Pixhawk Standard, and are maintained by the PX4-Autopilot maintainers and Dronecode team
- FMUv6X and FMUv6C
- FMUv5 and FMUv5X (STM32F7, 2019/20)
- FMUv4 (STM32F4, 2015)
- FMUv3 (STM32F4, 2014)
- FMUv2 (STM32F4, 2013)
These boards are maintained to be compatible with PX4-Autopilot by the Manufacturers.
- ARK Electronics ARKV6X
- CubePilot Cube Orange+
- CubePilot Cube Orange
- CubePilot Cube Yellow
- Holybro Durandal
- Airmind MindPX V2.8
- Airmind MindRacer V1.2
- Holybro Kakute F7
These boards don't fully comply industry standards, and thus is solely maintained by the PX4 publc community members.
These boards are nor maintained by PX4 team nor Manufacturer, and is not guaranteed to be compatible with up to date PX4 releases.
Note: Outdated
A high level project roadmap is available here.
The PX4 Autopilot project including all of its trademarks is hosted under Dronecode, part of the Linux Foundation.