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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_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

Random-walk global planner that generates exploratory collision-checked waypoint paths through free space.

Maintainers

  • Andrew Jong

Authors

No additional authors.

Random Walk Global Planner Baseline

The Random Walk Planner serves as a baseline global planner for stress testing system autonomy. Unlike more informed and intelligent planners, the Random Walk Planner generates a series of random trajectories to evaluate system robustness. Using the map published by VDB, the planner will generate and publish multiple linked straight-line trajectories, checking for collisions along these paths.

random walk image The blue line is the global plan generated by the random walk. The yellow line shows the past trajectory followed by the local planner when pursuing the previous random global plans.

Functionality

Upon activation by an ExplorationTask goal, the Random Walk Planner will:

  1. Generate a specified number of straight-line path segments.
  2. Continuously monitor the robot’s progress along the published path.
  3. Once the robot completes the current path, a new set of paths will be generated.

This loop continues, allowing the system to explore various trajectories and stress test the overall autonomy stack.

Parameters

Parameter Description
num_paths_to_generate Number of straight-line paths to concatenate into a complete trajectory.
max_start_to_goal_dist_m Maximum distance (m) from start to goal for each straight-line segment.
checking_point_cnt Number of points along each segment to check for collisions.
max_z_change_m Maximum allowed change in height (z-axis) between start and goal points.
collision_padding_m Extra padding (m) around a voxel when checking for collisions.
path_end_threshold_m Distance threshold (m) for considering the current path completed.
max_yaw_change_degrees Maximum allowed yaw change between consecutive segments.
robot_frame_id Frame name for the robot base, used for transform lookups.

Task Executor

This node is a task executor: it runs as a ROS 2 action server and is activated on demand via an ExplorationTask goal. It does not plan continuously — planning only happens while a goal is active.

Action server: /{robot_name}/tasks/exploration
Type: task_msgs/action/ExplorationTask

Cascade

Random walk delegates navigation to the local planner via a second action:

GCS operator  →  ExplorationTask  →  random_walk_planner
                                         ↓
                                  NavigateTask (/{robot_name}/tasks/navigate)
                                         ↓
                            local planner (mighty_bridge by default)
                                         ↓
                                 trajectory_controller

Goal parameters

| Field | Type | Description | |——-|——|————-| | search_bounds | geometry_msgs/Polygon | Bounding polygon for search (empty = unbounded) | | min_altitude_agl | float32 | Minimum flight altitude above ground (m) | | max_altitude_agl | float32 | Maximum flight altitude above ground (m) | | min_flight_speed | float32 | Minimum flight speed (m/s) | | max_flight_speed | float32 | Maximum flight speed (m/s) | | time_limit_sec | float32 | Maximum task duration in seconds (0 = no limit) |

Feedback (published ~1 Hz)

| Field | Type | Description | |——-|——|————-| | status | string | "planning" or "navigating" | | progress | float32 | Elapsed / time_limit (0 if no time limit) | | current_position | geometry_msgs/Point | Current robot position |

Result

| Field | Type | Description | |——-|——|————-| | success | bool | True if time limit reached normally; false if canceled or error | | message | string | Human-readable completion reason |

CLI test

# Send a 30-second unbounded exploration goal with feedback
ros2 action send_goal /robot_1/tasks/exploration task_msgs/action/ExplorationTask \
  '{min_altitude_agl: 3.0, max_altitude_agl: 8.0, min_flight_speed: 1.0, max_flight_speed: 3.0, time_limit_sec: 30.0}' \
  --feedback

# Ctrl-C cancels the goal; the node returns success=false, message="Task canceled"

Subscriptions

| Topic | Type | Description | |——-|——|————-| | vdb_map_visualization | visualization_msgs/Marker | Occupancy map from VDB mapping | | odometry | nav_msgs/Odometry | Robot state estimate |

Publications

| Topic | Type | Description | |——-|——|————-| | ~/global_plan | nav_msgs/Path | Generated path (also sent as NavigateTask goal) | | ~/goal_point_viz | visualization_msgs/Marker | Goal point visualization | | ~/traj_viz | visualization_msgs/Marker | Trajectory visualization |

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/random_walk_planner.launch.xml
    • random_walk_planner : canonical module launch file (RFC #379 §2/§4). Starts the random-walk global planner exactly as the legacy global bringup did. The C++ constructor names the node "random_walk_node" — do NOT set launch name= or it will rename the node and break the node-name-prefixed remap sources below. No namespace push either: the node lives at the robot root (/$ROBOT_NAME/random_walk_node), as the stack entry is included under the $ROBOT_NAME push in robot.launch.xml. Every topic endpoint is a declared defaulting to the canonical name (today's graph). The set_remap SOURCES stay relative (matching the frozen global bringup) so they resolve against the parent $ROBOT_NAME namespace at runtime; the arg targets are absolute. 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.
      • random_walk_config [default: $(find-pkg-share random_walk_planner)/config/random_walk_config.yaml]
      • random_walk_vdb_map_topic [default: /$(env ROBOT_NAME)/vdb_mapping/vdb_map_visualization]
      • random_walk_odometry_topic [default: /$(env ROBOT_NAME)/odometry_conversion/odometry]
      • random_walk_global_plan_topic [default: /$(env ROBOT_NAME)/global_plan]
      • random_walk_global_plan_toggle_topic [default: /$(env ROBOT_NAME)/behavior/global_plan_toggle]
      • random_walk_exploration_task_topic [default: /$(env ROBOT_NAME)/tasks/exploration]
      • random_walk_navigate_task_topic [default: /$(env ROBOT_NAME)/tasks/navigate]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged random_walk_planner at Robotics Stack Exchange