Main Content

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

updateEgoGeometry

Mettre à jour les propriétés géométriques des corps du moi

Depuis R2020b

Description

exemple

updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) met à jour les paramètres géométriques pour les corps de l'ego spécifiés dans la liste des capsules. Si un identifiant d'ego spécifié n'existe pas déjà, la fonction ajoute un nouveau corps d'ego avec cet identifiant à la liste.

status = updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) renvoie en outre un indicateur indiquant si un corps d'ego est ajouté, mis à jour ou un doublon.

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 dynamiques, spécifiée comme objet dynamicCapsuleList ou dynamicCapsuleList3D .

ID des corps du moi à mettre à jour, spécifiés comme vecteur d'entiers positifs.

Paramètres géométriques pour les corps du moi, spécifié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 à mettre à jour. Les champs de cette structure dépendent si vous utilisez un objet dynamicCapsuleList ou dynamicCapsuleList3D .

Types de données : struct

Arguments de sortie

réduire tout

Résultat de la mise à jour des corps de l'ego, spécifiés comme N- élément vecteur colonne de uns, de zéros et de uns négatifs. N est le nombre de corps du moi spécifié dans l'argument egoIDs . Chaque valeur indique si le corps est supprimé (1), introuvable (0) ou un doublon (-1). Si vous spécifiez le même identifiant d'ego plusieurs fois dans l'argument d'entrée egoIDs , alors toutes les entrées sauf la dernière sont marquées comme doublons.

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