/px4_msgs

ROS/ROS2 messages that match the uORB messages counterparts on the PX4 Firmware

Primary LanguageCMakeBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

px4_msgs

GitHub license Build package

Discord Shield

ROS 2 message definitions for the PX4 Autopilot project.

Building this package generates all the required interfaces to interface ROS 2 nodes with the PX4 internals.

Supported versions and compatibility

Depending on the PX4 and ROS versions you want to use, you need to checkout the appropriate branch of this package:

PX4 ROS 2 Ubuntu branch
v1.13 Foxy Ubuntu 20.04 release/1.13
v1.14 Foxy Ubuntu 20.04 release/1.14
v1.14 Humble Ubuntu 22.04 release/1.14
v1.14 Rolling Ubuntu 22.04 release/1.14
v1.15 Foxy Ubuntu 20.04 release/1.15
v1.15 Humble Ubuntu 22.04 release/1.15
v1.15 Rolling Ubuntu 22.04 release/1.15
main Foxy Ubuntu 22.04 main
main Humble Ubuntu 22.04 main
main Rolling Ubuntu 22.04 main

Messages Sync from PX4

When PX4 message definitions in the main branch of PX4 Autopilot change, a CI/CD pipeline automatically copies and pushes updated ROS message definitions to this repository. This ensures that this repository main branch and the PX4-Autopilot main branch are always up to date. However, if you are using a custom PX4 version and you modified existing messages or created new one, then you have to manually synchronize them in this repository:

Manual Message Sync

  • Checkout the correct branch associated to the PX4 version from which you detached you custom version.
  • Delete all *.msg and *.srv files in msg/ and srv/.
  • Copy all *.msg and *.srv files from PX4-Autopilot/msg/ and PX4-Autopilot/srv/ in msg/ and srv/, respectively. Assuming that this repository and the PX4-Autopilot repository are placed in your home folder, you can run:
    rm -f ~/px4_msgs/msg/*.msg
    rm -f ~/px4_msgs/srv/*.srv
    cp ~/PX4-Autopilot/msg/*.msg ~/px4_msgs/msg/
    cp ~/PX4-Autopilot/srv/*.srv ~/px4_msgs/srv/

Install, build and usage

Check Using colcon to build packages to understand how this can be built inside a workspace. Check the PX4 ROS 2 User Guide section on the PX4 documentation for further details on how this integrates PX4 and how to exchange messages with the autopilot.

Bug tracking and feature requests

Use the Issues section to create a new issue. Report your issue or feature request here.

Questions and troubleshooting

Reach the PX4 development team on the PX4 Discord Server.