Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cl_px4_mr at Robotics Stack Exchange
Package Summary
| Version | 3.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Brett Aldrich
Authors
PX4 Multirotor Client (cl_px4_mr)
SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS.
Architecture
The cl_px4_mr follows a pure component-based architecture where the client orchestrates seven specialized components:
ClPx4Mr (Client - Orchestrator)
├── CpVehicleCommand - Sends vehicle commands (arm, disarm, mode, land, takeoff)
├── CpVehicleStatus - Monitors arming state, landing, and nav mode
├── CpVehicleLocalPosition - Tracks vehicle position in NED frame
├── CpTrajectorySetpoint - Publishes position setpoints for offboard control
├── CpOffboardKeepAlive - Maintains offboard mode via periodic heartbeat
├── CpVehicleCommandAck - Monitors command acknowledgement responses
└── CpGoalChecker - Detects when vehicle reaches target position
Components
CpVehicleCommand
Responsibility: Sends PX4 vehicle commands via /fmu/in/vehicle_command
-
arm()/forceArm()/disarm()- Vehicle arming control -
setOffboardMode()- Switch to offboard control mode -
takeoff(altitude)/land()- Flight commands -
sendCommand(...)- Generic 7-parameter command interface
Signals: None
CpVehicleStatus
Responsibility: Monitors vehicle state from /fmu/out/vehicle_status_v1
- Tracks arming state and navigation mode transitions
- Detects armed/disarmed and landed state changes
Signals: onArmed_, onDisarmed_, onModeChanged_, onLanded_
CpVehicleLocalPosition
Responsibility: Tracks position from /fmu/out/vehicle_local_position
- Provides NED position (x, y, z) and heading
- Thread-safe accessors with validity checking
Signals: onPositionReceived_
CpTrajectorySetpoint
Responsibility: Publishes position commands to /fmu/in/trajectory_setpoint
-
setPositionNED(x, y, z, yaw)- Set target position -
hold()- Hold current position -
republishLast()- Re-send last setpoint - Thread-safe with cached last setpoint
Signals: None
CpOffboardKeepAlive
Responsibility: Publishes offboard control mode heartbeat to /fmu/in/offboard_control_mode
- Inherits from
ISmaccUpdatablefor periodic ~20Hz updates -
enable()/disable()- Toggle heartbeat publishing - PX4 requires continuous offboard heartbeat to stay in offboard mode
Signals: None
CpVehicleCommandAck
Responsibility: Monitors command responses from /fmu/out/vehicle_command_ack
- Tracks last command ID and result code
Signals: onAckReceived_
CpGoalChecker
Responsibility: Monitors position and fires when goal is reached
- Inherits from
ISmaccUpdatablefor periodic distance checking -
setGoal(x, y, z, xy_tolerance, z_tolerance)- Set target with tolerances -
clearGoal()- Deactivate goal checking - Default tolerances: 0.5m XY, 0.3m Z
Signals: onGoalReached_
CpTfBroadcaster (opt-in)
Responsibility: Publishes PX4’s state estimate as a ROS TF tree so sensors on the airframe can be
placed in RViz: map -> base_link (translation from CpVehicleLocalPosition, rotation from
/fmu/out/vehicle_attitude, converted NED/FRD -> ENU/FLU), a translation-only map -> base_link_follow
(an RViz orbit target that does not spin with yaw) and a static base_link -> lidar_link from
TfBroadcasterParams. Not created by ClPx4Mr; an orthogonal adds it with
createClient<ClPx4Mr>()->createComponent<CpTfBroadcaster>(params). map is the FMU’s local NED
origin expressed ENU (x east, y north, z up).
Signals: None
CpForwardObstacleGuard
Responsibility: Watches a sensor_msgs/PointCloud2 (from a CpTopicSubscriber<PointCloud2> on the
same client, e.g. cl_generic_sensor::ClGenericSensor<PointCloud2>) for returns inside a forward cone
about the sensor +x axis and raises / clears an obstacle flag with hysteresis
(ForwardObstacleGuardParams: half angle, trigger / clear ranges, hit count, cloud debounce).
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 | |
| px4_msgs | |
| rclcpp | |
| sensor_msgs | |
| geometry_msgs | |
| nav_msgs | |
| tf2 | |
| tf2_ros | |
| tinyxml2_vendor |
System Dependencies
| Name |
|---|
| boost |