Contenido principal

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

removeObstacle

Eliminar obstáculos de la lista de cápsulas

Descripción

removeObstacle(capsuleListObj,obstacleIDs) elimina los obstáculos con los ID especificados de la lista de cápsulas dinámicas.

ejemplo

status = removeObstacle(capsuleListObj,obstacleIDs) también devuelve un indicador de si un obstáculo se eliminó, no se encontró o es un duplicado.

Ejemplos

contraer todo

Añade obstáculos a un entorno utilizando 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 ruta 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 utilizando 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 a eliminar, especificados como un vector de números enteros positivos.

Argumentos de salida

contraer todo

Resultado de la eliminación de obstáculos, especificado como vector columna de elementos N de unos, ceros y negativos. N es la cantidad de obstáculos especificada en el argumento obstacleIDs. Cada valor indica si el obstáculo se eliminó (1), no se encontró (0) o es un duplicado (-1). Si especifica el mismo ID de obstáculo varias veces en el argumento de entrada obstacleIDs, todas las entradas excepto la última se marcarán como duplicadas.

Capacidades ampliadas

expandir todo

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

Historial de versiones

Introducido en R2020b