Main Content

collisionBox

ボックス型の衝突ジオメトリを作成

R2019b 以降

説明

collisionBox を使用して、原点を中心とするボックス型の衝突ジオメトリを作成します。

作成

説明

BOX = collisionBox(X,Y,Z) は、原点を中心とし、XYZ をジオメトリ固定座標系の対応する軸に沿った辺の長さとする、軸に平行なボックス型衝突ジオメトリを作成します。既定では、ジオメトリ固定座標系はワールド座標系と併置されます。

BOX = collisionBox(___,Pose=pose) は、ワールド座標系を基準にしてボックスの Pose プロパティを pose に設定します。

プロパティ

すべて展開する

ボックス型ジオメトリの x 軸に沿った辺の長さ。正のスカラーとして指定します。単位はメートルです。

データ型: double

ボックス型ジオメトリの y 軸に沿った辺の長さ。正のスカラーとして指定します。単位はメートルです。

データ型: double

ボックス型ジオメトリの z 軸に沿った辺の長さ。正のスカラーとして指定します。単位はメートルです。

データ型: double

ワールド座標系を基準とした衝突ジオメトリの姿勢。4 行 4 列の同次行列または se3 オブジェクトとして指定します。姿勢は、衝突ジオメトリを作成した後に変更できます。

メモ

姿勢を se3 オブジェクトとして指定する場合、Pose プロパティには姿勢が 4 行 4 列の数値行列として格納されることに注意してください。

データ型: single | double

オブジェクト関数

show衝突ジオメトリの表示
convertToCollisionMeshConvert collision primitive geometry into collision mesh geometry
fitCollisionCapsuleFit collision capsule around collision geometry

すべて折りたたむ

原点を中心とするボックス型衝突ジオメトリを作成します。"x""y""z" 方向の辺の長さは、それぞれ 3 メートル、1 メートル、2 メートルです。

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

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

ボックスを可視化します。

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.

同次変換行列を 2 つ作成します。最初の行列は "z" 軸を中心とした π/2 ラジアンの回転、2 番目の行列は "x" 軸を中心とした π/8 ラジアンの回転です。

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

2 番目のボックス型衝突ジオメトリを、最初のものと同じ寸法で作成します。その姿勢を、2 つの行列の積に変更します。この積は、"z" 軸を中心とした最初の回転と、その後の "x" 軸を中心とした回転に対応します。結果を可視化します。

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.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019b で導入

すべて展開する