Main Content

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

obstacleGeometry

Propriétés géométriques des obstacles

Depuis R2020b

Description

[obstacleIDs,geomStruct] = obstacleGeometry(capsuleListObj) renvoie l'identifiant de l'obstacle et les paramètres géométriques de chaque obstacle de la liste des capsules.

exemple

[obstacleIDs,geomStruct] = obstacleGeometry(capsuleListObj,selectObstacleIDs) spécifie pour quel obstacle renvoyer les paramètres d'identification et de géométrie.

[obstacleIDs,geomStruct,status] = obstacleGeometry(capsuleListObj,selectObstacleIDs) renvoie un indicateur indiquant si chaque ID dans selectobstacleIDs existe.

Exemples

réduire tout

Ajoutez des obstacles à un environnement à l'aide de l'objet dynamicCapsuleList . Modifier les propriétés des obstacles. Supprimez un obstacle 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 obstacles

Spécifiez les états des deux obstacles sous forme de chemin linéaire de x = 0 m à x = 100 m. Les deux obstacles sont séparés de 10 m dans des directions opposées sur l'axe y .

obsState = linspace(0,1,numSteps)'.*[100 0 0];
obsState1 = obsState+[0 10 0];
obsState2 = obsState+[0 -10 0];

Générez des poses et des structures géométriques par défaut pour les deux obstacles à l'aide des ID d'obstacle.

[obsIDs,obsPoseStruct] = obstaclePose(capsuleList,[1 2]);
[obsIDs,obsGeomStruct] = obstacleGeometry(capsuleList,obsIDs);

Mettre à jour les obstacles

Attribuez les états aux obstacles.

obsPoseStruct(1).States = obsState1;
obsPoseStruct(2).States = obsState2;

Augmentez le rayon du premier obstacle à 2 m.

obsGeomStruct(1).Geometry.Radius = 2;

mettez à jour les obstacles à l'aide des fonctions objets updateObstaclePose et updateObstacleGeometry .

updateObstaclePose(capsuleList,obsIDs,obsPoseStruct);
updateObstacleGeometry(capsuleList,obsIDs,obsGeomStruct);

Visualisez les obstacles.

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

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

Enlever les obstacles

Supprimez le premier obstacle de la liste des capsules en précisant son ID.

removeObstacle(capsuleList,1);

Visualisez à nouveau les obstacles.

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 d’obstacles, spécifiés comme vecteur d’entiers positifs. La fonction renvoie les ID d'obstacles et les paramètres géométriques uniquement pour les obstacles spécifiés dans ce vecteur.

Arguments de sortie

réduire tout

ID des obstacles, renvoyés sous forme de vecteur d'entiers positifs.

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

Indication de l'existence d'un obstacle, 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 l'obstacle 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 selectObstacleIDs , 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