Skip to content

Start/Goal frame is ignored in planner server #2186

@PGotzmann

Description

@PGotzmann

Bug report

I recently found that while nav2_planner PlannerServer accepts goals in frames other than its global frame, this information is subsequently ignored in planners such as navfn_planneror smac_planner. This leads to strange errors as goal and start frame are silently treated as if they were in the same frame.

I personally would not expect such a behavior for a service taking a PoseStamped as an argument. Is there an obvious reason for this limitation that I am missing?

Required Info:

  • Operating System:
    • Ubuntu 20.04
  • ROS2 Version:
    • Foxy binaries
  • Version or commit hash:
    • navigation2 main sources (d3fc28a)
  • DDS implementation:
    • CycloneDDS

Steps to reproduce issue

  • ensure a valid tf tree exists e.g. world->map->base_link
  • initialize navigation2 with global_frame set to map
  • call compute_path_to_pose action with a pose in world frame and navfn_planner

Expected behavior

Generally, if a PoseStamped is used in ROS, one silently assumes that the frame_id is handled by the underlying function and transformed to the required frame implicitly as long as the frame is part of a valid tf tree. At least I would expect an error message saying that the frame does not match the expected one as for example it is done in the planner plugin tutorial from nav2 docs.

Actual behavior

Both navfn_planner and smac_planner assume that the goal frame matches the global_frame and blindly ignore the frame_id.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions