Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

reedsSheppConnection

Tipo de conexión de ruta Reeds-Shepp

Desde R2019b

Descripción

El objeto reedSheppConnection contiene información para calcular un objeto reedsSheppPathSegment para conectarse entre poses. Un segmento de la ruta de Reeds-Shepp conecta dos poses como una secuencia de cinco movimientos. Las opciones de movimiento son:

  • Derecho

  • Giro a la izquierda con dirección máxima

  • Giro a la derecha con dirección máxima

  • Sin movimiento

Un segmento de trayectoria de Reeds-Shepp admite tanto el movimiento hacia adelante como hacia atrás.

Utilice este objeto de conexión para definir parámetros para un modelo de movimiento de vehículo, incluido el radio de giro mínimo y opciones para tipos de ruta. Para generar un segmento de ruta entre poses usando este tipo de conexión, llame a la función connect .

Creación

Descripción

ejemplo

reedsConnObj = reedsSheppConnection crea un objeto usando valores de propiedad predeterminados.

ejemplo

reedsConnObj = reedsSheppConnection(Name,Value) especifica valores de propiedad utilizando pares nombre-valor. Para establecer varias propiedades, especifique varios pares de nombre-valor.

Propiedades

expandir todo

Radio de giro mínimo del vehículo, especificado como escalar positivo en metros. El radio de giro mínimo es para el círculo más pequeño que el vehículo puede hacer con la dirección máxima en una sola dirección.

Tipos de datos: double

Tipos de ruta para deshabilitar, especificados como un vector de escalares de cadena o un arreglo de celdas de vectores de caracteres.

Tipo de movimientoDescripción
"Sp", "Sn"Directo (p = hacia adelante, n = hacia atrás)
"Lp", "Ln"

Giro a la izquierda en el ángulo máximo de dirección del vehículo (p = adelante, n = marcha atrás)

"Rp", "Rn"

Giro a la derecha en el ángulo máximo de dirección del vehículo (p = adelante, n = marcha atrás)

"N"Sin movimiento

Si un segmento de ruta tiene menos de cinco tipos de movimiento, los elementos restantes son "N" (sin movimiento).

Para ver todos los tipos de rutas disponibles, consulte la propiedad AllPathTypes .

Ejemplo: ["LpSnLp","LnSnRpSn","LnSnRpSnLp"]

Tipos de datos: cell

Esta propiedad o parámetro es de solo lectura.

Todos los tipos de ruta posibles, especificados como un arreglo de celdas de vectores de caracteres. Esta propiedad enumera todos los tipos. Para deshabilitar ciertos tipos, especifique los tipos de esta lista en DisabledPathTypes.

Para las conexiones Reeds-Shepp, existen 44 combinaciones posibles de tipos de movimiento.

Tipos de datos: cell

Múltiplo del coste para viajar hacia adelante, especificado como un escalar numérico positivo. Aumente esta propiedad para penalizar el movimiento hacia adelante.

Tipos de datos: double

Coste múltiplo para viajar en sentido inverso, especificado como un escalar numérico positivo. Aumente esta propiedad para penalizar el movimiento inverso.

Tipos de datos: double

Funciones del objeto

connectConectar poses para un tipo de conexión determinado

Ejemplos

contraer todo

Cree un objeto reedsSheppConnection .

reedsConnObj = reedsSheppConnection;

Defina las poses de inicio y objetivo como vectores [x y theta] .

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

Calcula un segmento de ruta válido para conectar las poses.

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

Muestra la ruta generada.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

Cree un objeto reedsSheppConnection .

reedsConnObj = reedsSheppConnection;

Defina las poses de inicio y objetivo como vectores [x y theta] .

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

Calcula un segmento de ruta válido para conectar las poses.

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

Muestra la ruta generada. Observe la dirección de los giros.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

Deshabilite esta secuencia de movimiento específica en un nuevo objeto de conexión. Reducir el MinTurningRadius si el robot es más maniobrable. Aumente el coste inverso para reducir la probabilidad de que se utilicen direcciones inversas. Conecta las poses nuevamente para obtener una ruta diferente.

reedsConnObj = reedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

show(pathSegObj{1})
xlim([0 1.5])
ylim([0 1.5])

Figure contains an axes object. The axes object contains 10 objects of type line, scatter. These objects represent Forward Path, Heading, Start Position, Goal Position.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b