Main Content

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

removeObstacle

Supprimer les obstacles de la liste des capsules

Depuis R2020b

Description

exemple

removeObstacle(capsuleListObj,obstacleIDs) supprime les obstacles avec les ID spécifiés de la liste des capsules dynamiques.

status = removeObstacle(capsuleListObj,obstacleIDs) renvoie en outre un indicateur indiquant si un obstacle est supprimé, introuvable ou s'il s'agit d'un doublon.

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 des obstacles à supprimer, spécifiés comme vecteur d'entiers positifs.

Arguments de sortie

réduire tout

Résultat de la suppression des obstacles, spécifié comme N- élément vecteur colonne de uns, de zéros et de uns négatifs. N est le nombre d'obstacles spécifié dans l'argument obstacleIDs . Chaque valeur indique si l'obstacle est supprimé (1), introuvable (0) ou un doublon (-1). Si vous spécifiez le même ID d'obstacle plusieurs fois dans l'argument d'entrée obstacleIDs , 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