Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

collisionBox

Crear una geometría de colisión en forma de cuadro

Desde R2019b

Descripción

Utilice collisionBox para crear una geometría de colisión de caja centrada en el origen.

Creación

Descripción

ejemplo

BOX = collisionBox(X,Y,Z) crea una geometría de colisión de caja alineada con el eje centrada en el origen con X, Y y Z como las longitudes de sus lados a lo largo de los ejes correspondientes en el marco de geometría fija. De forma predeterminada, el marco fijado mediante geometría se conecta con el marco del mundo real.

BOX = collisionBox(___,Pose=pose) establece la propiedad Pose del cuadro en pose, en relación con el marco mundial.

Propiedades

expandir todo

Longitud lateral de la geometría de la caja a lo largo del eje x, especificada como un escalar positivo. Las unidades se establecen en metros.

Tipos de datos: double

Longitud lateral de la geometría de la caja a lo largo del eje y, especificada como un escalar positivo. Las unidades se establecen en metros.

Tipos de datos: double

Longitud lateral de la geometría de la caja a lo largo del eje z, especificada como un escalar positivo. Las unidades se establecen en metros.

Tipos de datos: double

Pose de la geometría de colisión relativa al marco mundial, especificada como una matriz homogénea de 4 por 4 o un objeto se3 . Puede cambiar la pose después de crear la geometría de colisión.

Nota

Tenga en cuenta que cuando la pose se especifica como un objeto se3 , la propiedad Pose almacena la pose como una matriz numérica de 4 por 4.

Tipos de datos: single | double

Funciones del objeto

showMuestre la geometría de colisión
convertToCollisionMeshConvierta la geometría primitiva de colisión en geometría de malla de colisión
fitCollisionCapsuleAjustar la cápsula de colisión alrededor de la geometría de colisión

Ejemplos

contraer todo

Cree una geometría de colisión en forma de cuadro centrada en el origen. Las longitudes de los lados en las direcciones x, y y z son 3, 1 y 2 metros, respectivamente.

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

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

Visualice el cuadro.

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.

Cree dos matrices de transformación homogéneas. La primera matriz es una rotación alrededor del eje z porπ/2radianes, y la segunda matriz es una rotación alrededor del eje x deπ/8radianes.

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

Cree una segunda geometría de colisión en forma de cuadro con las mismas dimensiones que la primera. Cambie su pose por el resultado de la multiplicación de las dos matrices. El producto corresponde a la primera rotación alrededor del eje z seguida de la rotación alrededor del eje x. Visualice el resultado.

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.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b

expandir todo