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.

obstacleGeometry

Propiedades geométricas de los obstáculos.

Desde R2020b

Descripción

[obstacleIDs,geomStruct] = obstacleGeometry(capsuleListObj) devuelve el ID del obstáculo y los parámetros de geometría para cada obstáculo en la lista de cápsulas.

ejemplo

[obstacleIDs,geomStruct] = obstacleGeometry(capsuleListObj,selectObstacleIDs) especifica para qué obstáculo devolver los parámetros de ID y geometría.

[obstacleIDs,geomStruct,status] = obstacleGeometry(capsuleListObj,selectObstacleIDs) devuelve un indicador de si cada ID en selectobstacleIDs existe.

Ejemplos

contraer todo

Agregue obstáculos a un entorno usando el objeto dynamicCapsuleList . Modifica las propiedades de los obstáculos. Eliminar un obstáculo del entorno. Visualice los estados de todos los objetos del entorno en diferentes marcas de tiempo.

Cree el objeto dynamicCapsuleList . Extraiga el número máximo de pasos para utilizar como número de marcas de tiempo para las rutas de los objetos.

capsuleList = dynamicCapsuleList;
numSteps = capsuleList.MaxNumSteps;

Agregar obstáculos

Especifique los estados de los dos obstáculos como una trayectoria lineal desde x = 0 m hasta x = 100 m. Los dos obstáculos están separados por 10 m en direcciones opuestas en el eje y.

obsState = linspace(0,1,numSteps)'.*[100 0 0];
obsState1 = obsState+[0 10 0];
obsState2 = obsState+[0 -10 0];

Genere poses predeterminadas y estructuras geométricas para los dos obstáculos utilizando ID de obstáculos.

[obsIDs,obsPoseStruct] = obstaclePose(capsuleList,[1 2]);
[obsIDs,obsGeomStruct] = obstacleGeometry(capsuleList,obsIDs);

Actualizar obstáculos

Asigna los estados a los obstáculos.

obsPoseStruct(1).States = obsState1;
obsPoseStruct(2).States = obsState2;

Aumente el radio del primer obstáculo a 2 m.

obsGeomStruct(1).Geometry.Radius = 2;

actualice los obstáculos usando las funciones de objeto updateObstaclePose y updateObstacleGeometry .

updateObstaclePose(capsuleList,obsIDs,obsPoseStruct);
updateObstacleGeometry(capsuleList,obsIDs,obsGeomStruct);

Visualiza los obstáculos.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains 2 objects of type patch.

Eliminar obstáculos

Elimine el primer obstáculo de la lista de cápsulas especificando su ID.

removeObstacle(capsuleList,1);

Visualiza los obstáculos nuevamente.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains an object of type patch.

Argumentos de entrada

contraer todo

Lista de cápsulas dinámicas, especificada como un objeto dynamicCapsuleList o dynamicCapsuleList3D .

ID de obstáculos, especificados como un vector de números enteros positivos. La función devuelve los ID de los obstáculos y los parámetros de geometría solo para los obstáculos especificados en este vector.

Argumentos de salida

contraer todo

ID de obstáculos, devueltos como un vector de números enteros positivos.

Parámetros de geometría para obstáculos, devueltos como una estructura o arreglo de estructuras donde cada estructura contiene los campos de la estructura en el campo Geometry del obstáculo asociado. Los campos de esta estructura dependen de si estás utilizando un objeto dynamicCapsuleList o dynamicCapsuleList3D .

Indicación de existencia de obstáculo, devuelta como un vector columna de elemento N de unos, ceros y unos negativos. Cada valor indica si el obstáculo asociado existe (1), actualizado (0) o un duplicado (-1). Si especifica el mismo ID del cuerpo del ego más de una vez en el argumento selectObstacleIDs , entonces la función marca todas las instancias de ese ID después de la primera como duplicadas y las ignora.

Capacidades ampliadas

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

Historial de versiones

Introducido en R2020b