Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add page for PX4 ROS library #2740

Merged
merged 20 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion en/releases/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,7 @@ TBD ...
- TBD

### ROS 2
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md): A new C++ library that simplifies controlling PX4 from ROS 2.

- [Experimental] [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md): A new C++ library that simplifies controlling PX4 from ROS 2.
Supports adding flight modes in ROS 2 that are peers of the PX4 modes running on the flight controller.
Added to PX4 in [PX4-Autopilot#20707](https://github.com/PX4/PX4-Autopilot/pull/20707) (initial support).
Comment on lines +60 to +62
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI the important thing here is to set expectation. So I have put a prefix experimental and added a link to the initial PR.
As you enhance this you can add new PR links.
If you consider significant parts of this stable, we can remove "Experimental".

12 changes: 12 additions & 0 deletions en/ros2/px4_ros2_interface_lib.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# PX4 ROS 2 Interface Library

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

- The architecture and core interfaces for defining modes in ROS 2 modes are largely stable.
The library offers significant benefits over using offboard mode in its current state.
- Only a few setpoint types have settled (the others are still under development).
You may need to use internal PX4 topics which may not remain backwards-compatible over time.
- The API is not fully documented.
- Testing in CI is still limited.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is ok, but just fyi most of the things that are there are tested. Mostly the setpoint types (with their expected behavior) that are not.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then let's say that :-)

hamishwillee marked this conversation as resolved.
Show resolved Hide resolved

:::
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI I added section "Experimental" up the top. What I'm trying to do here is explain that the mode stuff works now and already gives you a benefit over using offboard mode, but that many of the abstractions we provide for working with ROS 2 do not exist yet. So you can use it but likely things will change.

I've done it in bullets so you can extend easily if you want. I'm open to any text which sets the level of expectation appropriately (i.e. this is "for discussion").


The [PX4 ROS 2 Interface Library](https://github.com/Auterion/px4-ros2-interface-lib) is a C++ library that simplifies controlling PX4 from ROS 2.

Developers use the library to create and dynamically register modes written using ROS 2.
Expand Down