Collision-checking configuration for costmap based on inflation
The inflationCollisionChecker
function creates an
InflationCollisionChecker
object, which holds the collision-checking configuration of a
vehicle costmap. A vehicle costmap with this configuration inflates the size of obstacles in
the vehicle environment. This inflation is based on the specified InflationCollisionChecker
properties, such as the dimensions of the vehicle and the radius of circles required to
enclose the vehicle. For more details, see Algorithms. Path planning
algorithms, such as pathPlannerRRT
,
use this costmap collision-checking configuration to avoid inflated obstacles and plan
collision-free paths through an environment.
Use the InflationCollisionChecker
object to set the
CollisionChecker
property of your vehicleCostmap
object. This collision-checking configuration affects the return values of the checkFree
and
checkOccupied
functions used by vehicleCostmap
. These values indicate whether a vehicle
pose is free or occupied.
ccConfig = inflationCollisionChecker
creates an
InflationCollisionChecker
object, ccConfig
, that
holds the collision-checking configuration of a vehicle costmap. This object uses one
circle to enclose the vehicle. The dimensions of the vehicle correspond to the values of a
default vehicleDimensions
object.
ccConfig = inflationCollisionChecker(vehicleDims)
specifies the
dimensions of the vehicle, where vehicleDims
is a
vehicleDimensions
object. The vehicleDims
input
sets the VehicleDimensions
property of ccConfig
.
ccConfig = inflationCollisionChecker(
also specifies the number of circles used to enclose the vehicle. The
vehicleDims
,numCircles
)numCircles
input sets the NumCircles
property of ccConfig
.
ccConfig = inflationCollisionChecker(___,
sets the Name,Value
)CenterPlacements
and InflationRadius
properties using name-value pairs and the inputs from any of
the preceding syntaxes. Enclose each property name in quotes.
inflationCollisionChecker('CenterPlacements',[0.2 0.5
0.8],'InflationRadius',1.2)
plot | Plot collision configuration |
To visually verify that the circles completely enclose the vehicle, use the plot
function. If the circles do not completely enclose the vehicle, some of the free poses
returned by checkFree
(or unoccupied poses returned by checkOccupied
) might actually be in collision.
The InflationRadius
property of InflationCollisionChecker
determines the amount,
in world units, by which to inflate obstacles. By default,
InflationRadius
is equal to the radius of the smallest set of
overlapping circles required to completely enclose the vehicle, as determined by the following
properties:
NumCircles
— Number of circles used to enclose the vehicle
CenterPlacements
— Placements of the circle centers along the longitudinal
axis of the vehicle
VehicleDimensions
— Dimensions of the vehicle
For more details about how this collision-checking configuration defines inflated areas in
a costmap, see the Algorithms section of
vehicleCostmap
.
[1] Ziegler, J., and C. Stiller. "Fast Collision Checking for Intelligent Vehicle Motion Planning." IEEE Intelligent Vehicle Symposium. June 21–24, 2010.