Main Content


Visualize the planned path

Since R2019b



show(planner) plots the Hybrid A* expansion tree and the planned path in the map.

show(planner,Name,Value) specifies additional options using one or more name-value pair arguments.

axHandle = show(planner) outputs the axes handle of the figure used to plot the path.


collapse all

Plan a collision-free path for a vehicle through a parking lot by using the Hybrid A* algorithm.

Create and Assign Map to State Validator

Load the cost values of cells in the vehicle costmap of a parking lot.

load parkingLotCostVal.mat % costVal

Create a binaryOccupancyMap with cost values.

resolution = 3;
map = binaryOccupancyMap(costVal,resolution);

Create a state space.

ss = stateSpaceSE2;

Update state space bounds to be the same as map limits.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits;[-pi pi]];

Create a state validator object for collision checking.

sv = validatorOccupancyMap(ss);

Assign the map to the state validator object.

sv.Map = map;

Plan and Visualize Path

Initialize the plannerHybridAStar object with the state validator object. Specify the MinTurningRadius and MotionPrimitiveLength properties of the planner.

planner = plannerHybridAStar(sv, ...
                             MinTurningRadius=4, ...

Define start and goal poses for the vehicle as [x, y, theta] vectors. x and y specify the position in meters, and theta specifies the orientation angle in radians.

startPose = [4 9 pi/2]; % [meters, meters, radians]
goalPose = [30 19 -pi/2];

Plan a path from the start pose to the goal pose.

refpath = plan(planner,startPose,goalPose,SearchMode='exhaustive');     

Visualize the path using show function.


Input Arguments

collapse all

Hybrid A* path planner, specified as a plannerHybridAStar object.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Positions','none'

Axes used to plot path, specified as the comma-separated pair consisting of 'Parent' and either an axes or uiaxes object. If you do not specify 'Parent', a new figure is created.

Display expansion tree option, specified as the comma-separated pair consisting of 'Tree' and either 'on' or 'off'.

Example: show(planner,'Tree','off')

Data Types: string

Display planned path option, specified as the comma-separated pair consisting of 'Path' and either 'on' or 'off'.

Example: show(planner,'Path','off')

Data Types: string

Display the start and goal points, specified as the comma-separated pair consisting of 'Positions' and one of the following:

  • 'start' — Display the start point.

  • 'goal' — Display the goal point.

  • 'both' — Display the start and goal points.

  • 'none' — Do not display any points.

Example: show(planner,'Positions','start')

Data Types: string

Length of heading, specified as positive numeric scalar. No poses will be visualized when this value is set to 0.

Data Types: single | double

Output Arguments

collapse all

Axes used to plot path, returned as either an axes or uiaxes object.

Version History

Introduced in R2019b