Skip to content

Simple Smoother Aborts Navigation with "No Segments Smoothed" Error When Approaching End of Path #4710

@rayferric

Description

@rayferric

Bug report

Required Info:

  • Operating System:
    • Ubuntu 24.04.1 LTS
  • ROS2 Version:
    • Jazzy
  • Version or commit hash:
    • Jazzy Binaries from 6 Oct 2024 with this PR
  • DDS implementation:
    • Cyclone DDS

Steps to reproduce issue

  1. Use the following nav2 parameters:

    smoother_server:
    ros__parameters:
      costmap_topic: global_costmap/costmap_raw
      footprint_topic: global_costmap/published_footprint
      robot_base_frame: base_footprint
      transform_timeout: 0.1
      smoother_plugins: ["simple_smoother"]
      simple_smoother:
        max_its: 1000
        do_refinement: True
        w_smooth: 0.3
        w_data: 0.2
        tolerance: 1e-10
  2. Set up the behavior tree as follows:

    <Sequence name="ComputeAndSmoothPath">
      <ComputePathToPose goal="{goal}" path="{path}" planner_id="GridBased"/>
      <SmoothPath unsmoothed_path="{path}" smoothed_path="{smooth_path}"/>
    </Sequence>
  3. Execute navigation. The robot will traverse the path and then start approaching the end of it.

Expected behavior

The robot smoothly navigates the entire path without aborting, and SmoothPath completes as expected.

Actual behavior

When the robot approaches the end of the path, the simple_smoother aborts the navigation with the following error:

if (segments_smoothed == 0) {
  throw nav2_core::FailedToSmoothPath("No segments were smoothed");
}

Additional information

Logs:

[smoother_server]: Received a path to smooth.
[smoother_server]: No segments were smoothed
[smoother_server]: [smooth_path] [ActionServer] Aborting handle.
[global_costmap.global_costmap]: Received request to clear entirely the global_costmap
[local_costmap.local_costmap]: Received request to clear entirely the local_costmap

...repeating endlessly

The exception is thrown even though the smoother could simply return a jagged path. The above exception leads to the whole navigation process being aborted. On the internet, there doesn't seem to be available much information on how to properly setup the SmoothPath node or handle BehaviorTree errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions