Main Content

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

obstaclePose

Poses d'obstacles

Depuis R2020b

Description

[obstacleIDs,poseStruct] = obstaclePose(capsuleListObj) renvoie l'ID d'obstacle et les états pour chaque obstacle dans la liste de capsules spécifiée.

exemple

[obstacleIDs,poseStruct] = obstaclePose(capsuleListObj,selectObstacleIDs) spécifie les obstacles pour lesquels restituer l'ID et les états.

[obstacleIDs,poseStruct,status] = obstaclePose(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 dynamiques, spécifiée comme objet dynamicCapsuleList ou dynamicCapsuleList3D .

ID d’obstacles, spécifiés comme vecteur d’entiers positifs. La fonction renvoie les ID et états des obstacles uniquement pour les obstacles spécifiés dans ce vecteur.

Arguments de sortie

réduire tout

ID des obstacles, spécifiés comme vecteur d'entiers positifs.

États pour les obstacles, renvoyés sous forme de structure ou de tableau de structures. Chaque structure contient une matrice d'états pour chaque obstacle. La taille de la matrice d'état dépend si vous utilisez un objet dynamicCapsuleList ou dynamicCapsuleList3D .

Types de données : struct

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 d'obstacle 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