|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_tps_astar_planner at Robotics Stack Exchange
|
mrpt_tps_astar_planner package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
| Version | 2.4.0 |
| License | BSD |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2026-04-18 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
- Shravan S Rai
Authors
- Shravan_S_Rai
- Jose-Luis Blanco-Claraco
mrpt_tps_astar_planner
Overview
This package provides a ROS 2 node that uses the PTG-based A* planner from
mrpt_path_planning to compute collision-free waypoint sequences for a
non-holonomic robot, respecting its real shape, orientation, and kinematic
constraints.
Planning is performed on a SE(2) lattice using Parameterized Trajectory
Generator (PTG) families that encode the robot’s motion primitives. The result
is published as a mrpt_msgs/WaypointSequence (and a nav_msgs/Path for
visualization) and/or returned as the response of a ROS 2 service call.
The node supports concurrent service requests: each executor thread owns a lazily-initialized planner instance, so multiple clients can request plans simultaneously without blocking each other.
How to cite
Configuration
Key configuration files passed as ROS 2 parameters:
| Parameter | Description |
|---|---|
ptg_ini |
INI file describing PTG families (robot kinematics) |
planner_parameters |
YAML file with A* algorithm parameters |
global_costmap_parameters |
YAML file for costmap obstacle-inflation parameters |
prefer_waypoints_parameters |
YAML file for waypoint-preference cost weights |
Demos
See the path-planner-sandbox/ subdirectory for standalone test scripts and
sample maps.
Node: mrpt_tps_astar_planner_node
Working rationale
- Obstacle data are maintained from subscribed gridmaps and/or point-cloud topics (updated asynchronously, protected by a mutex).
- On each planning request (topic goal or service call) the node snapshots the current obstacle data, builds cost evaluators, and runs the A* planner.
- The planned path is interpolated at a fixed time step and converted to a
WaypointSequence.
The A* implementation is an anytime algorithm: it improves the solution while
time allows, then returns the best found. An optional refinement pass
(astar_skip_refine: false) further smooths the result.
ROS 2 parameters
| Parameter | Default | Description |
|---|---|---|
show_gui |
false |
Open an MRPT 3D window showing maps and the planned path |
frame_id_map |
map |
TF frame of the global map |
frame_id_robot |
base_link |
TF frame of the robot |
topic_goal_sub |
tps_astar_nav_goal |
geometry_msgs/PoseStamped goal subscription |
topic_obstacles_gridmap_sub |
(empty) | Comma-separated occupancy-grid topics for obstacles |
topic_obstacles_sub |
(empty) | Comma-separated PointCloud2 topics for obstacles |
topic_static_maps |
/map |
Subset of the above topics to subscribe with transient-local QoS |
topic_wp_seq_pub |
/waypoints |
Topic on which to publish the resulting waypoint sequence |
topic_costmaps_pub |
/costmap |
Prefix for costmap debug publishers |
ptg_ini |
(required) | Path to PTG .ini file |
planner_parameters |
(required) | Path to planner YAML file |
global_costmap_parameters |
(required) | Path to costmap YAML file |
prefer_waypoints_parameters |
(required) | Path to waypoint-preference YAML file |
problem_world_bbox_margin |
2.0 |
Extra margin [m] added around the planning bounding box |
problem_world_bbox_ignore_obstacles |
false |
If true, obstacle extents are excluded from the bounding box |
astar_skip_refine |
false |
If true, skip the post-A* trajectory refinement pass |
mid_waypoints_allowed_distance |
0.5 |
Acceptance radius [m] for intermediate waypoints |
final_waypoint_allowed_distance |
0.4 |
Acceptance radius [m] for the goal waypoint |
mid_waypoints_allow_skip |
true |
Whether intermediate waypoints may be skipped |
final_waypoint_allow_skip |
false |
Whether the final waypoint may be skipped |
mid_waypoints_ignore_heading |
false |
Whether heading is ignored at intermediate waypoints |
final_waypoint_ignore_heading |
false |
Whether heading is ignored at the final waypoint |
Subscribed topics
| Topic | Type | Description |
|---|---|---|
<topic_goal_sub> |
geometry_msgs/PoseStamped |
Goal pose; triggers a plan from current TF robot pose |
<topic_obstacles_gridmap_sub> (one per entry) |
nav_msgs/OccupancyGrid |
Occupancy grid(s) used as static obstacles |
<topic_obstacles_sub> (one per entry) |
sensor_msgs/PointCloud2 |
Point cloud(s) used as dynamic obstacles |
Published topics
| Topic | Type | Description |
|---|---|---|
<topic_wp_seq_pub> (default /waypoints) |
mrpt_msgs/WaypointSequence |
Full waypoint sequence with per-waypoint tolerances and flags |
<topic_wp_seq_pub>_path (default /waypoints_path) |
nav_msgs/Path |
Same path as nav_msgs/Path, mainly for RViz visualization |
<topic_costmaps_pub>_0, _1, … |
nav_msgs/OccupancyGrid |
Inflated costmaps (one per obstacle source), published after each plan |
File truncated at 100 lines see the full file
Changelog for package mrpt_tps_astar_planner_node
2.4.0 (2026-04-19)
-
Merge pull request #158 from mrpt-ros-pkg/feat/parallel-planner Implement parallel A* planner; misc bug and style fixes
-
Fix QoS type usage
-
astar planner: made reentrant for serving multiple service calls in multithread
-
Improve readme
-
fix(tps_astar_planner): fix crashes, null deref, and minor log bugs
- Replace ASSERT_(robot_pose_ok) with graceful error+return in both callback_goal and srv_make_plan_to, so a temporary TF outage does not abort the node or throw inside a service callback.
- Add null guards before using e.grid_obstacles / e.obstacle_points in do_path_plan() and init_3d_debug() — both can be nullptr if the respective topic callback has not fired yet.
- Call init_3d_debug() from do_path_plan() when gui_mrpt_ is true, so the 3D window is actually opened (was dead code).
- Protect pub_costmaps_ resize and lazy publisher creation with pub_costmaps_cs_ mutex.
- Fix copy-paste error: srv_make_plan_from_to catch block logged wrong function name.
- Fix log format string: "topic_wp_seq_pub%s" -> "topic_wp_seq_pub: %s".
- Launch file: lowercase 'false' for problem_world_bbox_ignore_obstacles and astar_skip_refine boolean args (was Python-cased 'False').
-
Contributors: Jose Luis Blanco-Claraco
2.3.1 (2026-04-02)
2.3.0 (2025-10-26)
2.2.4 (2025-07-24)
2.2.3 (2025-07-22)
- FIX: Build against recent tf2 versions
- Contributors: Jose Luis Blanco-Claraco
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #156 from r-aguilera/ros2 mrpt_tps_astar_planner_node: improves on obstacle points update
- astar_planner: limit excessive obstacle points ... logging
- astar_planner: prevent node from shutting down ... on missing tf info
- astar planner node: it will always return the best found path, even if success==false
- Merge pull request #155 from r-aguilera/ros2 Fix MakePlanFromTo srv using robot pose as start
- Fix MakePlanFromTo srv using robot pose as start
- Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera
2.2.1 (2024-10-12)
- Update demo for astar
- Publish costmaps to ROS for visualization too apart of the custom MRPT GUI
- Improve astar navigation demo
- astar planner: add refine() step and parameter to optionally disable it
- astar node: add two more launch args: problem_world_bbox_margin and problem_world_bbox_ignore_obstacles
- astar params: add more comments and tune for speed
- PTGs .ini: Add docs on how to enable backward motions
- Contributors: Jose Luis Blanco-Claraco
2.2.0 (2024-09-25)
- fix missing linters; tune tutorial params
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- Add roslog INFO traces to measure time spent initializing PTGs
- reformat clang-format with 100 column width
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mrpt_navigation |