Main Content

collisionBox

Create box collision geometry

Description

Use collisionBox to create a box collision geometry that is axis-aligned with its body-fixed frame and has the origin of the body-fixed frame at the center of the box.

Creation

Description

BOX = collisionBox(X,Y,Z) creates an axis-aligned box collision geometry centered at the origin with X, Y, and Z as its side lengths along the corresponding axes in the geometry-fixed frame. By default, the geometry-fixed frame collocates with the world frame.

example

BOX = collisionBox(___,Pose=pose) sets the Pose property of the box to pose, relative to the world frame.

Properties

expand all

Side length of box geometry along the x-axis, specified as a positive scalar. Units are in meters.

Data Types: double

Side length of box geometry along the y-axis, specified as a positive scalar. Units are in meters.

Data Types: double

Side length of box geometry along the z-axis, specified as a positive scalar. Units are in meters.

Data Types: double

Pose of the collision geometry relative to the world frame, specified as a 4-by-4 homogeneous matrix or an se3 object. You can change the pose after you create the collision geometry.

Note

Note that when the pose is specified as an se3 object, the Pose property stores the pose as a numeric 4-by-4 matrix.

Data Types: single | double

Object Functions

checkCollisionCheck if two geometries are in collision
convertToCollisionMeshConvert collision primitive geometry into collision mesh geometry
fitCollisionCapsuleFit collision capsule around collision geometry
showShow collision geometry

Examples

collapse all

Create a box collision geometry centered at the origin. The side lengths in the x-, y-, and z-directions are 3, 1, and 2 meters, respectively.

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

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

Visualize the box.

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.

Create two homogeneous transformation matrices. The first matrix is a rotation about the z-axis by π/2 radians, and the second matrix is a rotation about the x-axis of π/8 radians.

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

Create a second box collision geometry with the same dimensions as the first. Change its pose to the product of the two matrices. The product corresponds to first rotation about the z-axis followed by rotation about the x-axis. Visualize the result.

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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2019b

expand all