mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Docs: Rover API (#25499)
* docs: add RoverSetpointTypes * docs: add rover api * docs: remove rover offboard mavlink support * docs: fix broken links * Apply suggestion from @hamishwillee --------- Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
This commit is contained in:
parent
5023174715
commit
66b07d8219
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 24 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 111 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 724 KiB |
@ -416,6 +416,7 @@
|
||||
- [Attitude Tuning](config_rover/attitude_tuning.md)
|
||||
- [Velocity Tuning](config_rover/velocity_tuning.md)
|
||||
- [Position Tuning](config_rover/position_tuning.md)
|
||||
- [Apps & API](flight_modes_rover/api.md)
|
||||
- [Complete Vehicles](complete_vehicles_rover/index.md)
|
||||
- [Aion Robotics R1](complete_vehicles_rover/aion_r1.md)
|
||||
- [Submarines (experimental)](frames_sub/index.md)
|
||||
|
||||
@ -44,7 +44,7 @@ The following ROS 2 messages and their particular fields and field values are al
|
||||
In addition to providing heartbeat functionality, `OffboardControlMode` has two other main purposes:
|
||||
|
||||
1. Controls the level of the [PX4 control architecture](../flight_stack/controller_diagrams.md) at which offboard setpoints must be injected, and disables the bypassed controllers.
|
||||
1. Determines which valid estimates (position or velocity) are required, and also which setpoint messages should be used.
|
||||
2. Determines which valid estimates (position or velocity) are required, and also which setpoint messages should be used.
|
||||
|
||||
The `OffboardControlMode` message is defined as shown.
|
||||
|
||||
@ -62,6 +62,11 @@ bool thrust_and_torque
|
||||
bool direct_actuator
|
||||
```
|
||||
|
||||
::: warning
|
||||
The following list shows the `OffboardControlMode` options for copter, fixed-wing, and VTOL.
|
||||
For rovers see the [rover section](#rover).
|
||||
:::
|
||||
|
||||
The fields are ordered in terms of priority such that `position` takes precedence over `velocity` and later fields, `velocity` takes precedence over `acceleration`, and so on.
|
||||
The first field that has a non-zero value (from top to bottom) defines what valid estimate is required in order to use offboard mode, and the setpoint message(s) that can be used.
|
||||
For example, if the `acceleration` field is the first non-zero value, then PX4 requires a valid `velocity estimate`, and the setpoint must be specified using the `TrajectorySetpoint` message.
|
||||
@ -90,20 +95,93 @@ Before using offboard mode with ROS 2, please spend a few minutes understanding
|
||||
- Velocity setpoint (`velocity` different from `NaN` and `position` set to `NaN`). Non-`NaN` values acceleration are used as feedforward terms for the inner loop controllers.
|
||||
- Acceleration setpoint (`acceleration` different from `NaN` and `position` and `velocity` set to `NaN`)
|
||||
|
||||
- All values are interpreted in NED (Nord, East, Down) coordinate system and the units are \[m\], \[m/s\] and \[m/s^2\] for position, velocity and acceleration, respectively.
|
||||
- All values are interpreted in NED (Nord, East, Down) coordinate system and the units are `[m]`, `[m/s]` and `[m/s^2]` for position, velocity and acceleration, respectively.
|
||||
|
||||
- [px4_msgs::msg::VehicleAttitudeSetpoint](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleAttitudeSetpoint.msg)
|
||||
- The following input combination is supported:
|
||||
- quaternion `q_d` + thrust setpoint `thrust_body`.
|
||||
Non-`NaN` values of `yaw_sp_move_rate` are used as feedforward terms expressed in Earth frame and in \[rad/s\].
|
||||
Non-`NaN` values of `yaw_sp_move_rate` are used as feedforward terms expressed in Earth frame and in `[rad/s]`.
|
||||
|
||||
- The quaternion represents the rotation between the drone body FRD (front, right, down) frame and the NED frame. The thrust is in the drone body FRD frame and expressed in normalized \[-1, 1\] values.
|
||||
- The quaternion represents the rotation between the drone body FRD (front, right, down) frame and the NED frame.
|
||||
The thrust is in the drone body FRD frame and expressed in normalized \[-1, 1\] values.
|
||||
|
||||
- [px4_msgs::msg::VehicleRatesSetpoint](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleRatesSetpoint.msg)
|
||||
- The following input combination is supported:
|
||||
- `roll`, `pitch`, `yaw` and `thrust_body`.
|
||||
|
||||
- All the values are in the drone body FRD frame. The rates are in \[rad/s\] while thrust_body is normalized in \[-1, 1\].
|
||||
- All the values are in the drone body FRD frame.
|
||||
The rates are in `[rad/s]` while thrust_body is normalized in `[-1, 1]`.
|
||||
|
||||
### Rover
|
||||
|
||||
Rover modules must set the control mode using `OffboardControlMode` and use the appropriate messages to configure the corresponding setpoints.
|
||||
The approach is similar to other vehicle types, but the allowed control mode combinations and setpoints are different:
|
||||
|
||||
| Category | Usage | Setpoints |
|
||||
| ------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| (Recommended) [Rover Setpoints](#rover-setpoints) | General rover control | [RoverPositionSetpoint](../msg_docs/RoverPositionSetpoint.md), [RoverSpeedSetpoint](../msg_docs/RoverSpeedSetpoint.md), [RoverAttitudeSetpoint](../msg_docs/RoverAttitudeSetpoint.md), [RoverRateSetpoint](../msg_docs/RoverRateSetpoint.md), [RoverThrottleSetpoint](../msg_docs/RoverThrottleSetpoint.md), [RoverSteeringSetpoint](../msg_docs/RoverSteeringSetpoint.md) |
|
||||
| [Actuator Setpoints](#actuator-setpoints) | Direct actuator control | [ActuatorMotors](../msg_docs/ActuatorMotors.md), [ActuatorServos](../msg_docs/ActuatorServos.md) |
|
||||
| (Deprecated) [Trajectory Setpoint](#deprecated-trajectory-setpoint) | General vehicle control | [TrajectorySetpoint](../msg_docs/TrajectorySetpoint.md) |
|
||||
|
||||
#### Rover Setpoints
|
||||
|
||||
The rover modules use a hierarchical structure to propagate setpoints:
|
||||
|
||||

|
||||
|
||||
The "highest" setpoint that is provided will be used within the PX4 rover modules to generate the setpoints that are below it (overriding them!).
|
||||
With this hierarchy there are clear rules for providing a valid control input:
|
||||
|
||||
- Provide a position setpoint **or**
|
||||
- One of the setpoints on the "left" (speed **or** throttle) **and** one of the setpoints on the "right" (attitude, rate **or** steering).
|
||||
All combinations of "left" and "right" setpoints are valid.
|
||||
|
||||
The following are all valid setpoint combinations and their respective control flags that must be set through [OffboardControlMode](../msg_docs/OffboardControlMode.md) (set all others to _false_).
|
||||
Additionally, for some combinations we require certain setpoints to be published with `NAN` values so that the setpoints of interest are not overridden by the rover module (due to the hierarchy above).
|
||||
✓ are the relevant setpoints we publish, and ✗ are the setpoint that need to be published with `NAN` values.
|
||||
|
||||
| Setpoint Combination | Control Flag | [RoverPositionSetpoint](../msg_docs/RoverPositionSetpoint.md) | [RoverSpeedSetpoint](../msg_docs/RoverSpeedSetpoint.md) | [RoverThrottleSetpoint](../msg_docs/RoverThrottleSetpoint.md) | [RoverAttitudeSetpoint](../msg_docs/RoverAttitudeSetpoint.md) | [RoverRateSetpoint](../msg_docs/RoverRateSetpoint.md) | [RoverSteeringSetpoint](../msg_docs/RoverSteeringSetpoint.md) |
|
||||
| -------------------- | ----------------- | ------------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------- |
|
||||
| Position | position | ✓ | | | | | |
|
||||
| Speed + Attitude | velocity | | ✓ | | ✓ | | |
|
||||
| Speed + Rate | velocity | | ✓ | | ✗ | ✓ | |
|
||||
| Speed + Steering | velocity | | ✓ | | ✗ | ✗ | ✓ |
|
||||
| Throttle + Attitude | attitude | | | ✓ | ✓ | | |
|
||||
| Throttle + Rate | body_rate | | | ✓ | | ✓ | |
|
||||
| Throttle + Steering | thrust_and_torque | | | ✓ | | | ✓ |
|
||||
|
||||
::: info
|
||||
If you intend to use the rover setpoints, we recommend using the [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md) instead since it simplifies the publishing of these setpoints.
|
||||
:::
|
||||
|
||||
#### Actuator Setpoints
|
||||
|
||||
Instead of controlling the vehicle using position, speed, rate and other setpoints, you can directly control the motors and actuators using [ActuatorMotors](../msg_docs/ActuatorMotors.md) and [ActuatorServos](../msg_docs/ActuatorServos.md).
|
||||
In [OffboardControlMode](../msg_docs/OffboardControlMode.md) set `direct_actuator` to _true_ and all other flags to _false_.
|
||||
|
||||
::: info
|
||||
This bypasses the rover modules including any limits on steering rates or accelerations and the inverse kinematics step.
|
||||
We recommend using [RoverSteeringSetpoint](../msg_docs/RoverSteeringSetpoint.md) and [RoverThrottleSetpoint](../msg_docs/RoverThrottleSetpoint.md) instead for low level control (see [Rover Setpoints](#rover-setpoints)).
|
||||
:::
|
||||
|
||||
#### (Deprecated) Trajectory Setpoint
|
||||
|
||||
::: warning
|
||||
The [Rover Setpoints](#rover-setpoints) are a replacement for the [TrajectorySetpoint](../msg_docs/TrajectorySetpoint.md) and we highly recommend using those instead as they have a well defined behaviour and offer more flexibility.
|
||||
:::
|
||||
|
||||
The rover modules support the _position_, _velocity_ and _yaw_ fields of the [TrajectorySetpoint](../msg_docs/TrajectorySetpoint.md).
|
||||
However, only one of the fields is active at a time and is defined by the flags of [OffboardControlMode](../msg_docs/OffboardControlMode.md):
|
||||
|
||||
| Control Mode Flag | Active Trajectory Setpoint Field |
|
||||
| ----------------- | -------------------------------- |
|
||||
| position | position |
|
||||
| velocity | velocity |
|
||||
| attitude | yaw |
|
||||
|
||||
::: info
|
||||
Ackermann rovers do not support the yaw setpoint.
|
||||
:::
|
||||
|
||||
### Generic Vehicle
|
||||
|
||||
@ -116,8 +194,10 @@ The following offboard control modes bypass all internal PX4 control loops and s
|
||||
|
||||
- [px4_msgs::msg::ActuatorMotors](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ActuatorMotors.msg) + [px4_msgs::msg::ActuatorServos](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ActuatorServos.msg)
|
||||
- You directly control the motor outputs and/or servo outputs.
|
||||
- Currently works at lower level than then `control_allocator` module. Do not publish these messages when not in offboard mode.
|
||||
- All the values normalized in \[-1, 1\]. For outputs that do not support negative values, negative entries map to `NaN`.
|
||||
- Currently works at lower level than then `control_allocator` module.
|
||||
Do not publish these messages when not in offboard mode.
|
||||
- All the values normalized in `[-1, 1]`.
|
||||
For outputs that do not support negative values, negative entries map to `NaN`.
|
||||
- `NaN` maps to disarmed.
|
||||
|
||||
## MAVLink Messages
|
||||
@ -200,38 +280,7 @@ The following MAVLink messages and their particular fields and field values are
|
||||
|
||||
### Rover
|
||||
|
||||
- [SET_POSITION_TARGET_LOCAL_NED](https://mavlink.io/en/messages/common.html#SET_POSITION_TARGET_LOCAL_NED)
|
||||
- The following input combinations are supported (in `type_mask`): <!-- https://github.com/PX4/PX4-Autopilot/blob/main/src/lib/FlightTasks/tasks/Offboard/FlightTaskOffboard.cpp#L166-L170 -->
|
||||
- Position setpoint (only `x`, `y`, `z`)
|
||||
- Specify the _type_ of the setpoint in `type_mask`:
|
||||
|
||||
::: info
|
||||
The _setpoint type_ values below are not part of the MAVLink standard for the `type_mask` field.
|
||||
::
|
||||
|
||||
The values are:
|
||||
- 12288: Loiter setpoint (vehicle stops when close enough to setpoint).
|
||||
|
||||
- Velocity setpoint (only `vx`, `vy`, `vz`)
|
||||
|
||||
- PX4 supports the coordinate frames (`coordinate_frame` field): [MAV_FRAME_LOCAL_NED](https://mavlink.io/en/messages/common.html#MAV_FRAME_LOCAL_NED) and [MAV_FRAME_BODY_NED](https://mavlink.io/en/messages/common.html#MAV_FRAME_BODY_NED).
|
||||
|
||||
- [SET_POSITION_TARGET_GLOBAL_INT](https://mavlink.io/en/messages/common.html#SET_POSITION_TARGET_GLOBAL_INT)
|
||||
- The following input combinations are supported (in `type_mask`): <!-- https://github.com/PX4/PX4-Autopilot/blob/main/src/lib/FlightTasks/tasks/Offboard/FlightTaskOffboard.cpp#L166-L170 -->
|
||||
- Position setpoint (only `lat_int`, `lon_int`, `alt`)
|
||||
- Specify the _type_ of the setpoint in `type_mask` (not part of the MAVLink standard).
|
||||
The values are:
|
||||
- Following bits not set then normal behaviour.
|
||||
- 12288: Loiter setpoint (vehicle stops when close enough to setpoint).
|
||||
|
||||
- PX4 supports the coordinate frames (`coordinate_frame` field): [MAV_FRAME_GLOBAL](https://mavlink.io/en/messages/common.html#MAV_FRAME_GLOBAL).
|
||||
|
||||
- [SET_ATTITUDE_TARGET](https://mavlink.io/en/messages/common.html#SET_ATTITUDE_TARGET)
|
||||
- The following input combinations are supported:
|
||||
- Attitude/orientation (`SET_ATTITUDE_TARGET.q`) with thrust setpoint (`SET_ATTITUDE_TARGET.thrust`).
|
||||
::: info
|
||||
Only the yaw setting is actually used/extracted.
|
||||
:::
|
||||
Rover does not support a MAVLink offboard API (ROS2 is supported).
|
||||
|
||||
## Offboard Parameters
|
||||
|
||||
|
||||
29
docs/en/flight_modes_rover/api.md
Normal file
29
docs/en/flight_modes_rover/api.md
Normal file
@ -0,0 +1,29 @@
|
||||
# Apps & API
|
||||
|
||||
The rover modules have been tested and integrated with a subset of the available [Apps & API](../middleware/index.md) methods.
|
||||
We specifically provide guides for using [ROS 2](../ros2/index.md) to interface a companion computer with PX4 via [uXRCE-DDS](../middleware/uxrce_dds.md).
|
||||
|
||||
| Method | Description |
|
||||
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [PX4 ROS 2 Interface](#px4-ros-2-interface) (Recommended) | Register a custom mode and publish [RoverSetpointTypes](../ros2/px4_ros2_control_interface.md#rover-setpoints). |
|
||||
| [ROS 2 Offboard Control](#ros-2-offboard-control) | Use the PX4 internal [Offboard Mode](../flight_modes/offboard.md) and publish messages defined in [dds_topics.yaml](../middleware/dds_topics.md). |
|
||||
|
||||
## PX4 ROS 2 Interface
|
||||
|
||||
We recommend the use of the [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md) which allows you to register a custom drive mode and exposes [RoverSetpointTypes](../ros2/px4_ros2_control_interface.md#rover-setpoints).
|
||||
|
||||
By using these setpoints (instead of the PX4 internal rover setpoints), you are guaranteed to send valid control inputs to your vehicle and the control flags for the setpoints you are using are automatically set for you.
|
||||
Registering a custom drive mode instead of using [ROS 2 Offboard Control](#ros-2-offboard-control) additionally provides the advantages listed [here](../concept/flight_modes.md#internal-vs-external-modes).
|
||||
|
||||
To get familiar with this method, read through the guide for the [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md) where we also provide an example app for rover.
|
||||
|
||||
## ROS 2 Offboard Control
|
||||
|
||||
[ROS 2 Offboard Control](../ros2/offboard_control.md) uses the PX4 internal [Offboard Mode](../flight_modes/offboard.md).
|
||||
|
||||
While you can subscribe/publish to all topics specified in [dds_topics.yaml](../middleware/dds_topics.md), not all rover modules support all of these topics (see [Supported Setpoints](../flight_modes/offboard.md#rover)).
|
||||
Unlike the [RoverSetpointTypes](../ros2/px4_ros2_control_interface.md#rover-setpoints) exposed through the [PX4 ROS 2 Interface](#px4-ros-2-interface), there is no guarantee that the published setpoints lead to a valid control input.
|
||||
|
||||
In addition, the correct control mode flags must be set through [OffboardControlMode](../msg_docs/OffboardControlMode.md).
|
||||
This requires a deeper understanding of PX4 and the structure of the rover modules.
|
||||
For general information on setting up offboard mode read through [Offboard Mode](../flight_modes/offboard.md) and then consult [Supported Setpoints](../flight_modes/offboard.md#rover).
|
||||
@ -57,8 +57,9 @@ Each wheel is driven by its own motor, and by controlling the speed and directio
|
||||
|
||||
## See Also
|
||||
|
||||
- [Drive Modes](../flight_modes_rover/index.md).
|
||||
- [Drive Modes](../flight_modes_rover/index.md)
|
||||
- [Configuration/Tuning](../config_rover/index.md)
|
||||
- [Apps & API](../flight_modes_rover/api.md)
|
||||
- [Complete Vehicles](../complete_vehicles_rover/index.md)
|
||||
|
||||
## Simulation
|
||||
|
||||
@ -90,6 +90,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
### Rover
|
||||
|
||||
- Removed deprecated rover module ([PX4-Autopilot#25054](https://github.com/PX4/PX4-Autopilot/pull/25054)).
|
||||
- Add support for [Apps & API](../flight_modes_rover/api.md) ([PX4-Autopilot#25074](https://github.com/PX4/PX4-Autopilot/pull/25074), [PX4-ROS2-Interface-Lib#140](https://github.com/Auterion/px4-ros2-interface-lib/pull/140)).
|
||||
|
||||
### ROS 2
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# ROS 2 Offboard Control Example
|
||||
|
||||
The following C++ example shows how to do position control in [offboard mode](../flight_modes/offboard.md) from a ROS 2 node.
|
||||
The following C++ example shows how to do multicopter position control in [offboard mode](../flight_modes/offboard.md) from a ROS 2 node.
|
||||
|
||||
The example starts sending setpoints, enters offboard mode, arms, ascends to 5 metres, and waits.
|
||||
While simple, it shows the main principles of how to use offboard control and how to send vehicle commands.
|
||||
@ -22,7 +22,7 @@ To subscribe to data coming from nodes that publish in a different frame (for ex
|
||||
|
||||
## Trying it out
|
||||
|
||||
Follow the instructions in [ROS 2 User Guide](../ros2/user_guide.md) to install PX and run the simulator, install ROS 2, and start the XRCE-DDS Agent.
|
||||
Follow the instructions in [ROS 2 User Guide](../ros2/user_guide.md) to install PX and run the multicopter simulator, install ROS 2, and start the XRCE-DDS Agent.
|
||||
|
||||
After that we can follow a similar set of steps to those in [ROS 2 User Guide > Build ROS 2 Workspace](../ros2/user_guide.md#build-ros-2-workspace) to run the example.
|
||||
|
||||
|
||||
@ -343,6 +343,7 @@ The following sections provide a list of supported setpoint types:
|
||||
- [MulticopterGotoSetpointType](#go-to-setpoint-multicoptergotosetpointtype): <Badge type="warning" text="MC only" /> Smooth position and (optionally) heading control
|
||||
- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): <Badge type="warning" text="FW only" /> <Badge type="tip" text="main (planned for: PX4 v1.17)" /> Direct control of lateral and longitudinal fixed wing dynamics
|
||||
- [DirectActuatorsSetpointType](#direct-actuator-control-setpoint-directactuatorssetpointtype): Direct control of motors and flight surface servo setpoints
|
||||
- [Rover Setpoints](#rover-setpoints): <Badge type="tip" text="main (planned for: PX4 v1.17)" /> Direct access to rover control setpoints (Position, Speed, Attitude, Rate, Throttle and Steering).
|
||||
|
||||
:::tip
|
||||
The other setpoint types are currently experimental, and can be found in: [px4_ros2/control/setpoint_types/experimental](https://github.com/Auterion/px4-ros2-interface-lib/tree/main/px4_ros2_cpp/include/px4_ros2/control/setpoint_types/experimental).
|
||||
@ -354,6 +355,8 @@ You can add your own setpoint types by adding a class that inherits from `px4_ro
|
||||
|
||||
<Badge type="warning" text="MC only" />
|
||||
|
||||
<Badge type="warning" text="Multicopter only" />
|
||||
|
||||
::: info
|
||||
This setpoint type is currently only supported for multicopters.
|
||||
:::
|
||||
@ -547,6 +550,40 @@ For example to control a quadrotor, you need to set the first 4 motors according
|
||||
If you want to control an actuator that does not control the vehicle's motion, but for example a payload servo, see [below](#controlling-an-independent-actuator-servo).
|
||||
:::
|
||||
|
||||
#### Rover Setpoints
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
The rover modules use a hierarchical structure to propagate setpoints:
|
||||
|
||||

|
||||
|
||||
::: info
|
||||
The "highest" setpoint that is provided will be used within the PX4 rover modules to generate the setpoints that are below it (Overriding them!).
|
||||
With this hierarchy there are clear rules for providing a valid control input:
|
||||
|
||||
- Provide a position setpoint, **or**
|
||||
- One of the setpoints on the "left" (speed **or** throttle) **and** one of the setpoints on the "right" (attitude, rate **or** steering). All combinations of "left" and "right" setpoints are valid.
|
||||
|
||||
For ease of use we expose these valid combinations as new SetpointTypes.
|
||||
:::
|
||||
|
||||
The RoverSetpointTypes exposed through the control interface are combinations of these setpoints that lead to a valid control input:
|
||||
|
||||
| SetpointType | Position | Speed | Throttle | Attitude | Rate | Steering | Control Flags |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- | --------- | --------- | --------- | --------- | ------------------------------------------------------ |
|
||||
| [RoverPosition](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverPositionSetpointType.html#details) | ✓ | (✓) | (✓) | (✓) | (✓) | (✓) | Position, Velocity, Attitude, Rate, Control Allocation |
|
||||
| [RoverSpeedAttitude](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverSpeedAttitudeSetpointType.html) | | ✓ | (✓) | ✓ | (✓) | (✓) | Velocity, Attitude, Rate, Control Allocation |
|
||||
| [RoverSpeedRate](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverSpeedRateSetpointType.html) | | ✓ | (✓) | | ✓ | (✓) | Velocity, Rate, Control Allocation |
|
||||
| [RoverSpeedSteering](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverSpeedSteeringSetpointType.html) | | ✓ | (✓) | | | ✓ | Velocity, Control Allocation |
|
||||
| [RoverThrottleAttitude](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverThrottleAttitudeSetpointType.html) | | | ✓ | ✓ | (✓) | (✓) | Attitude, Rate, Control Allocation |
|
||||
| [RoverThrottleRate](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverThrottleRateSetpointType.html) | | | ✓ | | ✓ | (✓) | Rate, Control Allocation |
|
||||
| [RoverThrottleSteering](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverThrottleSteeringSetpointType.html) | | | ✓ | | | ✓ | Control Allocation |
|
||||
|
||||
✓ are the setpoints we publish, and (✓) are generated internally by the PX4 rover modules according to the hierarchy above.
|
||||
|
||||
An example for a rover specific drive mode using the `RoverSpeedAttitudeSetpointType` is provided [here](https://github.com/Auterion/px4-ros2-interface-lib/tree/main/examples/cpp/modes/rover_velocity).
|
||||
|
||||
### Controlling a VTOL
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user