ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How SBPL planner generates path that avoids real-time obstacles.

asked 2022-02-08 09:00:54 -0600

R2D2 gravatar image

Hi everyone,

I came up with the SBPL Lattice planner, it's a global planner plugin for ROS navigation stack, the SBPL planner re-generates the path by taking the real-time obstacles into consideration, meaning, the global path generated will consider the real-time obstacles and generates the path that avoids them. I was wondering how it's been done since the global planner plugin doesn't have access to local costmap data. In the global planner plugin, it has 3 functions that move_base uses,

  1. GlobalPlanner(std::string name, Costmap2DROS* costmap_ros) ---------------->(constructor)
  2. initialize(String name, Costmap2DROS* costmap_ros)
  3. makePlan(PoseStamped& start, PoseStamped& goal, vector<posestamped>& plan)

the constructor and initialize functions have costmap2dROS pointer as argument but it is of global costmap. How does the makePlan() function able to generate path that avoids real-time obstacles, does the costmap2DROS pointer has data of local costmap too or is it done in some other way??

Thanks in advance.

here's the link to global planner plugin documentation and this is for SBPL lattice planner.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2022-02-08 12:35:30 -0600

updated 2022-02-08 12:36:35 -0600

The costmap it receives is indeed the global costmap that it uses for global planning, similar to any other planning plugin in the ROS ecosystem :-)

Also, if interested in ROS 2, we have a new shiny state lattice planner in ROS 2 that is significantly faster than SBPL Global Planner

edit flag offensive delete link more

Question Tools


Asked: 2022-02-08 09:00:54 -0600

Seen: 137 times

Last updated: Feb 08 '22