Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

egoGeometry

Propriétés géométriques des corps du moi

Depuis R2020b

Description

[egoIDs,geomStruct] = egoGeometry(capsuleListObj) renvoie l'ID de l'ego et les paramètres géométriques de chaque corps de l'ego dans la liste des capsules.

exemple

[egoIDs,geomStruct] = egoGeometry(capsuleListObj,selectEgoIDs) spécifie pour quels corps d'ego renvoyer l'ID et les paramètres géométriques.

[egoIDs,geomStruct,status] = egoGeometry(capsuleListObj,selectEgoIDs) renvoie un indicateur indiquant si chaque ID dans selectEgoIDs existe.

Exemples

réduire tout

Ajoutez des corps d'ego à un environnement à l'aide de l'objet dynamicCapsuleList . Modifier les propriétés des corps du moi. Retirez un corps de l’ego de l’environnement. Visualisez les états de tous les objets de l'environnement à différents horodatages.

Créez l'objet dynamicCapsuleList . Extrayez le nombre maximum d'étapes à utiliser comme nombre d'horodatages pour les chemins d'objet.

capsuleList = dynamicCapsuleList;
numSteps = capsuleList.MaxNumSteps;

Ajouter des corps d’ego

Spécifiez les états des deux corps du moi sous la forme d'un chemin linéaire allant de x = 0 m à x = 100 m. Les deux corps du moi sont séparés de 5 m dans des directions opposées sur l'axe y .

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

Générez des poses et des structures géométriques par défaut pour les deux corps de l'ego à l'aide des identifiants de l'ego.

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

Mettre à jour les corps de l’ego

Attribuez les états aux corps de l’ego.

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

Augmentez le rayon du premier corps de l’ego à 2 m.

egoGeomStruct(1).Geometry.Radius = 2;

mettre à jour les corps de l'ego en utilisant les fonctions d'objet updateEgoPose et updateEgoGeometry .

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

Visualisez les corps de l’ego.

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

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

Supprimer le corps de l'ego

Supprimez le premier corps de l'ego de la liste des capsules en spécifiant son ID.

removeEgo(capsuleList,1);

Visualisez à nouveau les corps de l’ego.

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

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

Arguments d'entrée

réduire tout

Liste de capsules dynamique, spécifiée comme objet dynamicCapsuleList ou dynamicCapsuleList3D .

ID du corps de l'ego, spécifiés comme vecteur d'entiers positifs. La fonction renvoie les identifiants de l'ego et les paramètres géométriques uniquement pour les corps de l'ego spécifiés dans ce vecteur.

Arguments de sortie

réduire tout

ID des corps du moi, renvoyés sous forme de vecteur d'entiers positifs.

Paramètres géométriques pour les corps du moi, renvoyés sous forme de structure ou de tableau de structures où chaque structure contient les champs de la structure dans le champ Geometry du corps du moi associé. Les champs de cette structure dépendent si vous utilisez un objet dynamicCapsuleList ou dynamicCapsuleList3D .

Indication de l'existence du corps de l'ego, renvoyée sous la forme d'un vecteur colonne d'éléments N composé de uns, de zéros et de uns négatifs. Chaque valeur indique si le corps associé existe (1), mis à jour (0) ou un doublon (-1). Si vous spécifiez le même ID de corps d'ego plus d'une fois dans l'argument selectEgoIDs , alors la fonction marque toutes les instances de cet ID après la première comme des doublons et les ignore.

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2020b