No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.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-02-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

SMACC2 client library for PX4 multirotor control via ROS 2 XRCE-DDS

Maintainers

  • Brett Aldrich

Authors

No additional 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 ISmaccUpdatable for 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 ISmaccUpdatable for 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_

Signal Flow

PX4 SITL (via XRCE-DDS)
    ↓ (subscriptions)
CpVehicleStatus         → onArmed_ / onDisarmed_ / onLanded_
CpVehicleLocalPosition  → onPositionReceived_
CpVehicleCommandAck     → onAckReceived_
CpGoalChecker (update)  → onGoalReached_
    ↓ (signal connections)
Client Behaviors (CbArmPX4, CbTakeOff, CbLand, etc.)
    ↓ (postSuccessEvent / postFailureEvent)
State Machine Transitions

``` Client Behaviors

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cl_px4_mr at Robotics Stack Exchange