PX4-Autopilot/docs/en/ros2/px4_ros2_interface_lib.md
Hamish Willee 88d623bedb
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree

* Update existing workflows so they dont trigger on changes in the docs path

* Add nojekyll, package.json, LICENCE etc

* Add crowdin docs upload/download scripts

* Add docs flaw checker workflows

* Used docs prefix for docs workflows

* Crowdin obvious fixes

* ci: docs move to self hosted runner

runs on a beefy server for faster builds

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: don't run build action for docs or ci changes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: update runners

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Add docs/en

* Add docs assets and scripts

* Fix up editlinks to point to PX4 sources

* Download just the translations that are supported

* Add translation sources for zh, uk, ko

* Update latest tranlsation and uorb graphs

* update vitepress to latest

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-03-13 16:08:27 +11:00

2.1 KiB

PX4 ROS 2 Interface Library

:::warning Experimental At the time of writing, parts of the PX4 ROS 2 Interface Library are experimental, and hence subject to change. :::

The PX4 ROS 2 Interface Library is a C++ library that simplifies controlling and interacting with PX4 from ROS 2.

The library provides two high-level interfaces for developers:

  1. The Control Interface allows developers to create and dynamically register modes written using ROS 2. It provides classes for sending different types of setpoints, ranging from high-level navigation tasks all the way down to direct actuator controls.
  2. The Navigation Interface enables sending vehicle position estimates to PX4 from ROS 2 applications, such as a VIO system.

Installation in a ROS 2 Workspace

To get started using the library within an existing ROS 2 workspace:

  1. Make sure you have a working ROS 2 setup, with px4_msgs in the ROS 2 workspace.

  2. Clone the repository into the workspace:

    cd $ros_workspace/src
    git clone --recursive https://github.com/Auterion/px4-ros2-interface-lib
    

    ::: info To ensure compatibility, use the latest main branches for PX4, px4_msgs and the library. See also here. :::

  3. Build the workspace:

    cd ..
    colcon build
    source install/setup.bash
    

CI: Integration Tests

When opening a pull request to PX4, CI runs the library integration tests. These test that mode registration, failsafes, and mode replacement, work as expected.

The tests can also be run locally from PX4:

./test/ros_test_runner.py

And to run only a single case:

./test/ros_test_runner.py --verbose --case <case>

You can list the available test cases with:

./test/ros_test_runner.py --list-cases