PX4 Autopilot Software
Go to file
Daniel Williams 0f29b87101 [uorb-graph][squash][refactor] Rework of uorb-graph script -- Greatly expands handled test cases
- Source processing now happens on original source files:
    - processing to line-by-line
    - required overhaul of regex match patterns + processing
    - pros:
        - enable tracing of ambiguous parsing sites -- reports (module, file, line-number, line-contents)
        - simplifies code
        - reduces computational complexity
    - cons:
        - certain declarations are harder to parse: multiline declarations
- refactors:
    - added specific subclasses for each: Publications, Subscriptions, Ambiguities
    - added a "Scope" class to represent either a module ('ModuleScope') or a library ('LibraryScope')
- regexes:
    - added cases for C++-style classes
    - expanded C++-style regex cases to accommodate templates
    - `ORB_ID::` is accepted wherever `ORB_ID(` is accepted
    - adds 'orb_copy' regex to the subscription cases
    - emit ambiguous-line warning for declarations with `ORB_ID` on the same line
    - emit ambiguous-line warning for `ORB_ID` with a declaration on the same line
- changed 'module whitelist' to 'scope-whitelist'
    - whitelist may now apply to libraries
    - libraries are optionally merged with their depending modules (but not by default)
    - may be merged with their depending modules with the `--merge-depends` cli flag
    - eliminates some redundant 'special-case' handling code
- debug output
    - raises exception and aborts if a topic is found outside of a scope
    - debug output is now printed & filtered with the python 'logging' standard module
    - alphabetizes topic output in debug logging
    - fixes debug output if package dependencies are missing
    - now warns on ambiguous matches
    - prints a list of ambiguous source sites (aka warnings) on completion
    - (still) emits a warning if we find ORB_ID outside of a scope
    - adds warnings if any of the source paths are invalid
    - do not emit debug output for modules outside of the module/scope whitelist
- Expand script's CLI parameters
    - added 'none' output options: undocumented debugging option to silence file output while debugging
    - added the `--merge-depends` cli flag -- merges output of modules & their dependee libraries
2021-03-29 09:36:34 +02:00
.ci Add nxp_ucans32k146_canbootloader to CI archive to distribute UCANS32K146 bootloader 2021-03-23 04:43:56 -07:00
.devcontainer UAVCAN v1 GPS demo with MAVCAN autoconfigure 2021-02-07 17:18:45 +01:00
.github github ci: push parameter metadata to s3 2021-03-24 10:08:41 -04:00
.vscode vscode add holybro can-gps-v1 variants 2021-03-28 12:39:22 -04:00
Documentation DriverFramework purge 2020-01-13 14:07:03 -05:00
ROMFS delete unused drivers/lights/blinkm 2021-03-28 19:21:29 -04:00
Tools [uorb-graph][squash][refactor] Rework of uorb-graph script -- Greatly expands handled test cases 2021-03-29 09:36:34 +02:00
boards delete unused drivers/lights/blinkm 2021-03-28 19:21:29 -04:00
cmake ROMFS handle bl_update generically 2021-03-11 00:38:18 +01:00
integrationtests/python_src/px4_it fw_pos_control_l1: add takeoff minimum pitch parameter 2021-02-12 13:57:15 -05:00
launch Fix roslaunch multivehicle regression caused by #16497 2021-01-12 21:19:36 +01:00
mavlink/include/mavlink Update submodule mavlink v2.0 to latest Wed Mar 24 12:38:18 UTC 2021 2021-03-24 11:25:00 -04:00
msg rotate accel/gyro FIFO before publish and fix angular velocity filter resets 2021-03-22 12:01:12 -04:00
platforms cmake: fix jlink_flash_uavcan_bin helper 2021-03-28 12:39:22 -04:00
posix-configs posix-configs: rpi multi-EKF defaults 2021-03-26 14:24:34 -04:00
src delete unused drivers/lights/blinkm 2021-03-28 19:21:29 -04:00
test mavsdk_tests: relax MC "Fly straight" speed threshold 2021-02-21 22:51:51 +01:00
test_data ghst: keep the previous values for channels that are not updated 2021-02-20 11:29:57 +01:00
validation param: limit short description lenght to 150 for existing, 70 for yaml 2021-03-23 12:55:11 -04:00
.ackrc
.clang-tidy clang-tidy: enable readability-braces-around-statements 2019-10-28 10:50:31 -04:00
.gitattributes gitattributes eol=lf for nearly all file types 2020-08-05 11:32:26 -04:00
.github_changelog_generator
.gitignore parameters: merge generated files ito single static constexpr header 2021-02-12 08:27:47 -05:00
.gitmodules gyro_fft promote to modules and include on all boards 2021-03-05 10:56:54 -05:00
.travis.yml travis: change coverity to run on master 2020-01-16 13:31:41 -05:00
.ycm_extra_conf.py update C++ standard (c++11 -> c++14) 2020-01-21 21:49:10 -05:00
CMakeLists.txt git: ignore git tags starting with 'ext/' when getting the version tag 2021-03-24 10:08:41 -04:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md Update CONTRIBUTING.md 2020-04-29 22:49:30 +01:00
CTestConfig.cmake
Firmware.sublime-project boards new split VENDOR_MODEL naming convention 2018-11-26 14:40:14 -08:00
Jenkinsfile CI: fix colcon build 2021-02-17 15:03:47 +01:00
LICENSE Update current year in LICENSE 2021-02-02 23:05:48 +01:00
Makefile github ci: push parameter metadata to s3 2021-03-24 10:08:41 -04:00
PULL_REQUEST_TEMPLATE.md PULL_REQUEST_TEMPLATE: change order of titles (#13174) 2019-10-14 13:11:44 +02:00
README.md Updated README - general refresh 2021-03-14 14:56:24 +01:00
appveyor.yml appveyor: switch to Cygwin toolchain v0.9 2020-03-24 13:31:41 +00:00
eclipse.cproject boards new split VENDOR_MODEL naming convention 2018-11-26 14:40:14 -08:00
eclipse.project boards new split VENDOR_MODEL naming convention 2018-11-26 14:40:14 -08:00
package.xml Remove eigen leftovers 2019-10-07 12:04:50 +02:00

README.md

PX4 Drone Autopilot

Releases DOI

Nuttx Targets SITL Tests

Slack

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.

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

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

Manufacturer and Community supported

Additional information about supported hardware can be found in PX4 user Guide > Autopilot Hardware.

Project Roadmap

A high level project roadmap is available here.