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.

updateEgoGeometry

Actualizar las propiedades geométricas de los cuerpos del ego.

Descripción

updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) actualiza los parámetros de geometría para los cuerpos del ego especificados en la lista de cápsulas. Si aún no existe un ID de ego específico, la función agrega un nuevo cuerpo del ego con ese ID a la lista.

ejemplo

status = updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) también devuelve un indicador de si un cuerpo del ego se agregó, se actualizó o es un duplicado.

Ejemplos

contraer todo

Agregue cuerpos de ego a un entorno usando el objeto dynamicCapsuleList. Modificar las propiedades de los cuerpos del ego. Retire un cuerpo del ego 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 cuerpos del ego

Especifique los estados de los dos cuerpos del ego como una ruta lineal desde x = 0 m hasta x = 100 m . Los dos cuerpos del ego están separados por 5 m en direcciones opuestas en el eje y.

egoState = linspace(0,1,numSteps)'.*[100 0 0];
egoState1 = egoState+[0 5 0];
egoState2 = egoState+[0 -5 0];

Genere poses predeterminadas y estructuras geométricas para los dos cuerpos del ego utilizando ID del ego.

[egoIDs,egoPoseStruct] = egoPose(capsuleList,[1 2]);
[egoIDs,egoGeomStruct] = egoGeometry(capsuleList,egoIDs);

Actualizar los cuerpos del ego

Asigna los estados a los cuerpos del ego.

egoPoseStruct(1).States = egoState1;
egoPoseStruct(2).States = egoState2;

Aumenta el radio del primer cuerpo del ego a 2 m.

egoGeomStruct(1).Geometry.Radius = 2;

Actualice los cuerpos del ego utilizando las funciones de objeto updateEgoPose y updateEgoGeometry.

updateEgoPose(capsuleList,egoIDs,egoPoseStruct);
updateEgoGeometry(capsuleList,egoIDs,egoGeomStruct);

Visualiza los cuerpos del ego.

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

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

Eliminar el cuerpo del ego

Elimine el primer cuerpo del ego de la lista de cápsulas especificando su ID.

removeEgo(capsuleList,1);

Visualice los cuerpos del ego 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 cuerpos del ego para actualizar, especificados como un vector de números enteros positivos.

Parámetros de geometría para cuerpos del ego, especificados como una estructura o un arreglo de estructuras, donde cada estructura contiene los campos de la estructura en el campo Geometry del cuerpo del ego que se actualizará. Los campos de esta estructura dependen de si está utilizando un objeto dynamicCapsuleList o dynamicCapsuleList3D.

Tipos de datos: struct

Argumentos de salida

contraer todo

Resultado de la actualización de los cuerpos del ego, especificado como vector columna de elementos N de unos, ceros y unos negativos. N es la cantidad de cuerpos del ego especificada en el argumento egoIDs. Cada valor indica si el cuerpo se eliminó (1), no se encontró (0) o es un duplicado (-1). Si especifica el mismo ID de ego varias veces en el argumento de entrada egoIDs, 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