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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

No version for distro lyrical showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange

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

Package Summary

Version 0.0.0
License BSD-3-Clause-Clear
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/castacks/airstack.git
VCS Type git
VCS Version develop
Last Updated 2026-09-11
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS 2 action servers for takeoff and landing that generate trajectory overrides to reach target altitude or ground and track completion via position and time thresholds.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Takeoff Landing Planner

Overview

The TakeoffLandingPlanner provides ROS 2 action servers for takeoff and landing maneuvers. It monitors the robot’s state, generates trajectory overrides to reach the target altitude (takeoff) or ground (landing), and tracks completion via position and time thresholds.

Features

  • Trajectory-based takeoff to a configurable target altitude and velocity
  • Trajectory-based landing with on-ground detection, followed by automatic disarm
  • Configurable takeoff trajectory direction (roll/pitch, absolute or body-relative)
  • Precondition checking: rejects goals when state estimate is timed out or a task is already running
  • Publishes is_airborne for downstream consumers (e.g. the RViz Tasks Panel)

Topics

Subscriptions

Topic Type Description
odometry nav_msgs/Odometry Robot pose and velocity
tracking_point airstack_msgs/Odometry Current trajectory tracking point
trajectory_completion_percentage std_msgs/Float32 Trajectory completion (0–100) from trajectory_controller
is_armed std_msgs/Bool Vehicle arm status
has_control std_msgs/Bool Offboard control acquired
state_estimate_timed_out std_msgs/Bool Whether the state estimate has timed out
extended_state mavros_msgs/ExtendedState MAVROS landed state (used to publish is_airborne)

Publications

Topic Type Description
trajectory_override airstack_msgs/TrajectoryXYZVYaw Takeoff/landing trajectory sent to trajectory_controller
is_airborne std_msgs/Bool True when landed_state == LANDED_STATE_IN_AIR

Service Clients

Service Type Description
set_trajectory_mode airstack_msgs/TrajectoryMode Switch trajectory controller mode
robot_command airstack_msgs/RobotCommand Arm, request offboard control, disarm

Action Servers

Action Type Description
~/takeoff_task task_msgs/TakeoffTask Execute a takeoff maneuver
~/land_task task_msgs/LandTask Execute a landing maneuver

TakeoffTask

Goal

Field Type Description
target_altitude_m float32 Target altitude in meters
velocity_m_s float32 Ascent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters
target_altitude_m float32 Target altitude in meters

Result

Field Type Description
success bool Whether takeoff succeeded
message string Outcome description

LandTask

Goal

Field Type Description
velocity_m_s float32 Descent velocity in m/s

Feedback

Field Type Description
status string Human-readable status message
current_altitude_m float32 Current altitude in meters

Result

Field Type Description
success bool Whether landing succeeded
message string Outcome description

Parameters

Parameter Type Default Description
takeoff_velocity float 1.0 Default ascent velocity in m/s

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

  • launch/takeoff_landing_planner.launch.xml
    • takeoff_landing_planner : canonical module launch file (RFC #379 §2/§4). Starts the takeoff/land task action server as the legacy local bringup did: node `takeoff_landing_task` in the `takeoff_landing_planner` namespace. Every topic endpoint is a declared defaulting to the canonical name (today's graph). Wiring deviations are passed as include args by the stack entry file (stacks//launch/) — the single-locus rule: endpoints are declared args, applied locally via ; cross-module REWIRING lives only in stack entry files.
      • takeoff_landing_config [default: $(find-pkg-share takeoff_landing_planner)/config/takeoff_landing_planner.yaml]
      • takeoff_landing_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • takeoff_landing_trajectory_override_topic [default: /$(env ROBOT_NAME)/trajectory_controller/trajectory_override]
      • takeoff_landing_set_trajectory_mode_topic [default: /$(env ROBOT_NAME)/trajectory_controller/set_trajectory_mode]
      • takeoff_landing_tracking_point_topic [default: /$(env ROBOT_NAME)/trajectory_controller/tracking_point]
      • takeoff_landing_is_armed_topic [default: /$(env ROBOT_NAME)/interface/is_armed]
      • takeoff_landing_has_control_topic [default: /$(env ROBOT_NAME)/interface/has_control]
      • takeoff_landing_state_estimate_timed_out_topic [default: /$(env ROBOT_NAME)/behavior/drone_safety_monitor/state_estimate_timed_out]
      • takeoff_landing_extended_state_topic [default: /$(env ROBOT_NAME)/interface/mavros/extended_state]
      • takeoff_landing_robot_command_topic [default: /$(env ROBOT_NAME)/interface/robot_command]
      • takeoff_landing_takeoff_task_action [default: /$(env ROBOT_NAME)/tasks/takeoff]
      • takeoff_landing_land_task_action [default: /$(env ROBOT_NAME)/tasks/land]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged takeoff_landing_planner at Robotics Stack Exchange