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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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
Messages
Services
Plugins
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
Maintainers
- Andrew Jong
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_airbornefor 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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| rclcpp_action | |
| std_msgs | |
| nav_msgs | |
| airstack_msgs | |
| airstack_common | |
| trajectory_library | |
| mavros_msgs | |
| std_srvs | |
| task_msgs |
System Dependencies
Dependant Packages
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]
-
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