This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

robotics.DubinsConnection

Dubins path connection type

Description

The DubinsConnection object holds information for computing a DubinsPathSegment path segment to connect between poses. A Dubins path segment connects two poses as a sequence of three motions. The motion options are:

  • Straight

  • Left turn at maximum steer

  • Right turn at maximum steer

A Dubins path segment only allows motion in the forward direction.

Use this connection object to define parameters for a robot motion model, including the minimum turning radius and options for path types. To generate a path segment between poses using this connection type, call the connect function.

Creation

Syntax

dubConnObj = robotics.DubinsConnection
dubConnObj = robotics.DubinsConnection(Name,Value)

Description

example

dubConnObj = robotics.DubinsConnection creates an object using default property values.

dubConnObj = robotics.DubinsConnection(Name,Value) specifies property values using name-value pairs. To set multiple properties, specify multiple name-value pairs.

Properties

expand all

Minimum turning radius for the robot, specified as a positive scalar in meters. The minimum turning radius is for the smallest circle the robot can make with maximum steer in a single direction.

Data Types: double

Dubins path types to disable, specified as a cell array of three-element character vectors or vector of string scalars. The cell array defines three sequences of motions that are prohibited by the robot motion model.

Valid values are:

Motion TypeDescription
"S"Straight
"L"

Left turn at the maximum steering angle of the vehicle

"R"

Right turn at the maximum steering angle of the vehicle

To see all available path types, see the AllPathTypes property.

Example: ["LSL","LSR"]

Data Types: string | cell

This property is read-only.

All possible path types, returned as a cell array of character vectors. This property lists all types. To disable certain types, specify types from this list in DisabledPathTypes.

For Dubins connections, the available path types are: {'LSL'} {'LSR'} {'RSL'} {'RSR'} {'RLR'} {'LRL'}.

Data Types: cell

Object Functions

connectConnect poses for given connection type

Examples

collapse all

Create a DubinsConnection object.

dubConnObj = robotics.DubinsConnection;

Define start and goal poses as [x y theta] vectors.

startPose = [0 0 0];
goalPose = [1 1 pi];

Calculate a valid path segment to connect the poses.

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);

Show the generated path.

show(pathSegObj{1})

Create a DubinsConnection object.

dubConnObj = robotics.DubinsConnection;

Define start and goal poses as [x y theta] vectors.

startPose = [0 0 0];
goalPose = [1 1 pi];

Calculate a valid path segment to connect the poses.

[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);

Show the generated path. Notice the direction of the turns.

show(pathSegObj{1})

pathSegObj{1}.MotionTypes
ans = 1×3 cell array
    {'R'}    {'L'}    {'R'}

Disable this specific motion sequence in a new connection object. Reduce the MinTurningRadius if the robot is more manueverable. Connect the poses again to get a different path.

dubConnObj = robotics.DubinsConnection('DisabledPathTypes',{'RLR'});
dubConnObj.MinTurningRadius = 0.5;

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1×3 cell array
    {'L'}    {'S'}    {'L'}

show(pathSegObj{1})

References

[1] Shkel, Andrei M., and Vladimir Lumelsky. "Classification of the Dubins set." Robotics and Autonomous Systems. Vol. 34, No. 4, 2001, pp. 179–202.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2018b