Main Content

plannerLineSpec.tree

Specifications for plotting forward search tree

Since R2023b

    Description

    spec = plannerLineSpec.tree specifies default color, line, and marker properties for plotting the forward search tree.

    example

    spec = plannerLineSpec.tree(Name=Value) specifies new values for the color, line, and marker properties by using one or more name-value arguments.

    example

    [spec,structData] = plannerLineSpec.tree(___) returns the properties and their values as a structure using any combination of inputs from the previous syntaxes.

    Examples

    collapse all

    Load Occupancy Map

    Load a probability occupancy grid into the MATLAB® workspace.

    load("exampleMaps.mat","simpleMap")

    Create an occupancy map from the input occupancy grid.

    map = occupancyMap(simpleMap);

    Define the lower and upper limits of the state space variables x, y, and theta from the occupancy map.

    x = map.XWorldLimits;
    y =  map.YWorldLimits;
    theta = [-pi pi];

    Specify the start state and the goal state for path planning.

    start = [2 5 0];
    goal = [22 22 0];

    Display the occupancy map.

    figure
    show(map)
    hold on

    Plot Start and Goal States

    Use the plannerLineSpec.start and plannerLineSpec.goal functions to plot the start and goal states, respectively.

    plot(start(1),start(2),plannerLineSpec.start{:})
    plot(goal(1),goal(2),plannerLineSpec.goal{:})

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal.

    Configure Bi-RRT Path Planner and Find Path Between Two States

    Create a state space SE(2) object using the specified state space variables.

    stateSpace = stateSpaceSE2([x; y; theta]);

    Check the validity of the states in the input state space by using a state validator.

    stateValidator = validatorOccupancyMap(stateSpace,Map=map);

    Configure the Bi-RRT path planner.

    planner = plannerBiRRT(stateSpace,stateValidator);

    Compute the path between the start point and the goal point using Bi-RRT path planner.

    [path,info] = plan(planner,start,goal)
    path = 
      navPath with properties:
    
          StateSpace: [1x1 stateSpaceSE2]
              States: [306x3 double]
           NumStates: 306
        MaxNumStates: Inf
    
    
    info = struct with fields:
              IsPathFound: 1
                 ExitFlag: 1
            NumIterations: 294
            StartTreeData: [569x3 double]
             GoalTreeData: [710x3 double]
        StartTreeNumNodes: 189
         GoalTreeNumNodes: 236
    
    

    Plot Search Trees

    Use the plannerLineSpec.tree function to plot the forward search tree.

    startTree = plannerLineSpec.tree;
    plot(info.StartTreeData(:,1),info.StartTreeData(:,2),startTree{:})

    Use the plannerLineSpec.goalTree function to plot the search tree from the goal state to the start state. Set the line color for plotting the search tree from goal to start to cyan.

    goalTree = plannerLineSpec.goalTree(color="cyan");
    plot(info.GoalTreeData(:,1),info.GoalTreeData(:,2),goalTree{:})
    legend

    Plot Computed Path

    Use the plannerLineSpec.path function to plot the derived path.

    plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:})
    legend(Position=[0.8 0.11 0.2 0.2])

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 6 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal, Tree, Goal Tree, Path.

    Load Occupancy Map

    Load a probability occupancy grid into the MATLAB® workspace.

    load("exampleMaps.mat","simpleMap")

    Create an occupancy map from the input occupancy grid.

    map = occupancyMap(simpleMap);

    Define the lower and upper limits of the state space variables x, y, and theta from the occupancy map.

    x = map.XWorldLimits;
    y =  map.YWorldLimits;
    theta = [-pi pi];

    Display the occupancy map.

    figure
    show(map)
    hold on

    Specify the start state and the goal state for path planning.

    start = [2 5 0];
    goal = [22 22 0];

    Plot Start and Goal States

    Use the plannerLineSpec.start and plannerLineSpec.goal functions to plot the start and goal states, respectively.

    plot(start(1),start(2),plannerLineSpec.start{:})

    Set the color for plotting the goal state to red and plot the goal state.

    goalState = plannerLineSpec.goal(MarkerEdgeColor="red",MarkerFaceColor="red");
    plot(goal(1),goal(2),goalState{:})

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal.

    Configure RRT Path Planner

    Create a state space SE(2) object using the specified state space variables.

    stateSpace = stateSpaceSE2([x; y; theta]);

    Check the validity of the states in the input state space by using a state validator.

    stateValidator = validatorOccupancyMap(stateSpace,Map=map);

    Configure the RRT path planner.

    planner = plannerRRT(stateSpace,stateValidator);

    Find Path Between Two States

    Compute the path between the start point and the goal point using the RRT path planner.

    [path,info] = plan(planner,start,goal)
    path = 
      navPath with properties:
    
          StateSpace: [1x1 stateSpaceSE2]
              States: [320x3 double]
           NumStates: 320
        MaxNumStates: Inf
    
    
    info = struct with fields:
          IsPathFound: 1
             ExitFlag: 1
             NumNodes: 1192
        NumIterations: 1331
             TreeData: [3578x3 double]
    
    

    Plot Search Trees

    Use the plannerLineSpec.tree function to plot the forward search tree. Set the color for plotting the search tree to green.

    In addition, set the legend label to "Forward search tree".

    startTree = plannerLineSpec.tree(Color="green",DisplayName="Forward search tree");
    plot(info.TreeData(:,1),info.TreeData(:,2),startTree{:})

    Plot Computed Path

    Use the plannerLineSpec.path function to plot the derived path.

    plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:})
    legend(Position=[0.6 0.11 0.2 0.2])

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 5 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal, Forward search tree, Path.

    Input Arguments

    collapse all

    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.

    Example: plannerLineSpec.tree(Color="Red")

    Line color, specified as one of these values:

    • RGB triplet — Specify the intensities of the red, green, and blue components of the color as a three-element vector in the order [R G B]. Each intensity must be in the range [0, 1]. For example, you can specify a shade of pink as [1 0.5 0.8].

    • Character vector or string scalar — Specify the hexadecimal color code, color name, or short name of the color.

    For more information on the types of color values and how to specify them, see Specify Plot Colors.

    Line style, specified as one of these values:

    • "-" — For a solid line. This is the default.

    • "--" — For a dashed line.

    • ":" — For a dotted line.

    • "-." — For a dash-dotted line.

    • "none" — For no line.

    Line width, specified as a positive numeric scalar.

    Marker symbol, specified as one of the values listed in this table.

    MarkerDescriptionResulting Marker
    "o" Circle

    Sample of circle marker

    "+" Plus sign

    Sample of plus sign marker

    "*" Asterisk

    Sample of asterisk marker

    "." Point

    Sample of point marker

    "x" Cross

    Sample of cross marker

    "_" Horizontal line

    Sample of horizontal line marker

    "|" Vertical line

    Sample of vertical line marker

    "square" Square

    Sample of square marker

    "diamond" Diamond

    Sample of diamond marker

    "^" Upward-pointing triangle

    Sample of upward-pointing triangle marker

    "v" Downward-pointing triangle

    Sample of downward-pointing triangle marker

    ">" Right-pointing triangle

    Sample of right-pointing triangle marker

    "<" Left-pointing triangle

    Sample of left-pointing triangle marker

    "pentagram" Pentagram

    Sample of pentagram marker

    "hexagram" Hexagram

    Sample of hexagram marker

    "none" No markersNot applicable

    Marker size, specified as a positive numeric scalar.

    Marker outline color, specified as one of these values:

    • RGB triplet — Specify the intensities of the red, green, and blue components of the color as a three-element vector in the order [R G B]. Each intensity must be in the range [0, 1]. For example, you can specify a shade of pink as [1 0.5 0.8].

    • Character vector or string scalar — Specify the hexadecimal color code, color name, or short name of the color.

    For more information on the types of color values and how to specify them, see Specify Plot Colors.

    Marker fill color, specified as one of these values:

    • RGB triplet — Specify the intensities of the red, green, and blue components of the color as a three-element vector in the order [R G B]. Each intensity must be in the range [0, 1]. For example, you can specify a shade of pink as [1 0.5 0.8].

    • Character vector or string scalar — Specify the hexadecimal color code, color name, or short name of the color.

    For more information on the types of color values and how to specify them, see Specify Plot Colors.

    Label to include in the legend, specified as a character vector or string scalar.

    Output Arguments

    collapse all

    Color, line, and marker specifications for plotting the forward search tree, returned as a cell array of size 1-by-16.

    Data Types: cell

    Specifications for the plot, returned as a structure with fields Color, LineStyle, LineWidth, Marker, MarkerSize, MarkerEdgecolor, MarkerFaceColor, and DisplayName. Each field contains the value specified to the corresponding name-value argument.

    Data Types: struct

    Version History

    Introduced in R2023b