[ros-users] sbpl as local reactive planner for a car like robot

Mike Phillips miph at seas.upenn.edu
Thu Jan 13 18:53:08 UTC 2011


Hi Stefan,
The sbpl and sbpl_lattice_planner packages are for global planning
only.  In their current form there is not any code that would run it
as a local reactive planner.  It would be possible to code something
computationally feasible that runs of sbpl_lattice_planner in a local
window around the robot in order to generate 1 or 2 motion primitives
to follow a global path but I think it would produce similar behavior
to the BaseLocalPlanner.  Your main issue is that you've given sbpl a
set of motion primitives for a car robot and BaseLocalPlanner uses
different "motion primitives" for its trajectory roll-out.  While the
trajectories that BaseLocalPlanner tries are somewhat customizable,
you can't represent arbitrary motions just by changing the ros params
you give it.  I don't think you can disable turning in place or enable
backing up as a standard roll-out just with ros params.

I think the easiest solution would be to modify the code for
BaseLocalPlanner somewhat in the createTrajectories function in
trajectory_planner.cpp.  It tries a series of forward-and-curve
motions and scores them based on how close they follow the path, how
far they are from obstacles, and how close they get you to the final
goal (with tunable weights on all of the terms).  It then tries turn
in place motions.  It then chooses the motion with the best score.
What you want to do is add the appropriate backward-and-curve motions
to the first part so that they are scored and can be chosen as well.
You want to remove the section that tries turn in place motions.
You essentially want to modify the trajectories it tries to be the
same set (or superset) of the motion primitives you gave to sbpl.
This way the local planner will try to follow the path in the way sbpl
intended.

-Mike-

Date: Wed, 12 Jan 2011 20:55:38 +0100
From: Stefan Stiene <stefan.stiene at dfki.de>
Subject: [ros-users] sbpl as local reactive planner for a car like
       robot
To: ros-users <ros-users at code.ros.org>
Message-ID: <1294862138.2051.83.camel at lenovo>
Content-Type: text/plain; charset="UTF-8"

Hi,
I'm new to ros. I tried the sbpl_Lattice_Planner example which is
totally impressing. I changed the motion primitive file to get a global
plan for a car like robot.


My problem is that the BaseLocalPlanner in the move_base stack is not
suitable for car like robots (turning in place commands are used and no
backward directed velocity commands are computed) and the robot does not
move along the planned path.

Is it possible to use the sbpl lib as local reactive planner for
obstacle avoidance or is this computational infeasible?

What would be the best starting point to see how to realize this
reactive sbpl planner (I already did the basic tutorials)? Is there a
comparable node for example?

Best
Stefan



More information about the ros-users mailing list