Main Content

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

collisionBox

Créer une géométrie de collision de boîtes

Depuis R2019b

Description

Utilisez collisionBox pour créer une géométrie de collision de boîte centrée à l'origine.

Création

Description

exemple

BOX = collisionBox(X,Y,Z) crée une géométrie de collision de boîtes alignées sur des axes centrée à l'origine avec X, Y et Z comme longueurs de côté le long des axes correspondants dans le cadre à géométrie fixe. Par défaut, le cadre à géométrie fixe est colocalisé avec le cadre mondial.

BOX = collisionBox(___,Pose=pose) définit la propriété Pose de la boîte sur pose, par rapport au cadre mondial.

Propriétés

développer tout

Longueur du côté de la géométrie de la boîte le long de l'axe x, spécifiée comme un scalaire positif. Les unités sont en mètres.

Types de données : double

Longueur du côté de la géométrie de la boîte le long de l'axe y, spécifiée comme un scalaire positif. Les unités sont en mètres.

Types de données : double

Longueur du côté de la géométrie de la boîte le long de l'axe z, spécifiée comme un scalaire positif. Les unités sont en mètres.

Types de données : double

Pose de la géométrie de collision par rapport au référentiel mondial, spécifiée comme une matrice homogène 4 x 4 ou un objet se3 . Vous pouvez modifier la pose après avoir créé la géométrie de collision.

Remarque

Notez que lorsque la pose est spécifiée en tant qu'objet se3 , la propriété Pose stocke la pose sous forme de matrice numérique 4 x 4.

Types de données : single | double

Fonctions d'objet

showAfficher la géométrie des collisions
convertToCollisionMeshConvertir la géométrie primitive de collision en géométrie de maillage de collision
fitCollisionCapsuleAjuster la capsule de collision autour de la géométrie de collision

Exemples

réduire tout

Créez une géométrie de collision de boîte centrée à l'origine. Les longueurs des côtés dans les directions x, y et z sont respectivement de 3, 1 et 2 mètres.

box = collisionBox(3,1,2)
box = 
  collisionBox with properties:

       X: 3
       Y: 1
       Z: 2
    Pose: [4x4 double]

Visualisez la boîte.

show(box)
title("Box")

Figure contains an axes object. The axes object with title Box, xlabel X, ylabel Y contains an object of type patch.

Créez deux matrices de transformation homogènes. La première matrice est une rotation autour de l'axe z deπ/2radians, et la deuxième matrice est une rotation autour de l'axe  x  deπ/8 radians.

matZ = axang2tform([0 0 1 pi/2]);
matX = axang2tform([1 0 0 pi/8]);

Créez une deuxième géométrie de collision de boîtes avec les mêmes dimensions que la première. Changez sa pose en produit des deux matrices. Le produit correspond à une première rotation autour de l'axe z suivie d'une rotation autour de l'axe x. Visualisez le résultat.

box2 = collisionBox(3,1,2);
box2.Pose = matZ*matX;
show(box2)
title("Box2")

Figure contains an axes object. The axes object with title Box2, xlabel X, ylabel Y contains an object of type patch.

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 R2019b

développer tout