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.

egoGeometry

Propiedades geométricas de los cuerpos del ego.

Desde R2020b

Descripción

[egoIDs,geomStruct] = egoGeometry(capsuleListObj) devuelve el ID del ego y los parámetros de geometría para cada cuerpo del ego en la lista de cápsulas.

ejemplo

[egoIDs,geomStruct] = egoGeometry(capsuleListObj,selectEgoIDs) especifica para qué cuerpos del ego devolver los parámetros de ID y geometría.

[egoIDs,geomStruct,status] = egoGeometry(capsuleListObj,selectEgoIDs) devuelve un indicador de si cada ID en selectEgoIDs existe.

Ejemplos

contraer todo

Agregue cuerpos de ego a un entorno utilizando 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 para los dos cuerpo del ego como una ruta lineal desde x = 0 m hasta x = 100 m. Los dos cuerpo 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;

actualizar los cuerpos del ego usando 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 del cuerpo del ego, especificados como un vector de números enteros positivos. La función devuelve los ID del ego y los parámetros de geometría solo para los cuerpos del ego especificados en este vector.

Argumentos de salida

contraer todo

Identificaciones de cuerpos del ego, devueltas como un vector de números enteros positivos.

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

Indicación de la existencia del cuerpo del ego, devuelta como un vector columna de elemento N de unos, ceros y unos negativos. Cada valor indica si el cuerpo 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 selectEgoIDs , 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