最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

show

ロボット モデルを Figure に表示

説明

show(robot) は、事前定義されたホーム コンフィギュレーションで、ロボット モデルのボディ座標系を Figure にプロットします。FramesVisuals の両方が自動的に表示されます。

show(robot,configuration) は、configuration で指定されているジョイント位置を使用して、ロボットのボディ座標系を表示します。

show(___,Name,Value) は、1 つ以上の Name,Value 引数のペアによって指定された追加オプションを提供します。

ax = show(___) は、ロボットがプロットされる座標軸ハンドルを返します。

すべて折りたたむ

ロボットのビジュアル ジオメトリを記述するために、Unified Robot Description format (URDF) ファイルと関連付けられた .stl ファイルをもつロボットをインポートできます。各剛体には、個別のビジュアル ジオメトリが指定されています。関数 importrobot は、URDF ファイルを解析してロボット モデルとビジュアル ジオメトリを取得します。関数 show を使用して、Figure 内でロボット モデルを可視化します。その後、コンポーネントをクリックして検査したり、右クリックして表示状態を切り替えたりして、モデルを操作できます。

ロボット モデルを URDF ファイルとしてインポートします。.stl ファイルの場所が、この URDF 内で正しく指定されていなければなりません。他の .stl ファイルを個別の剛体に追加する方法の詳細については、addVisualを参照してください。

robot = importrobot('iiwa14.urdf');

関連付けられたビジュアル モデルを使用してロボットを可視化します。ボディまたは座標系を検査するには、それらをクリックします。各ビジュアル ジオメトリの表示状態を切り替えるには、ボディを右クリックします。

show(robot);

RigidBodyTree モデルを使用して作成されたロボットのさまざまなコンフィギュレーションを表示します。関数 homeConfiguration または関数 randomConfiguation を使用して、すべてのジョイント位置を定義する構造体を生成します。

ロボットの例を RigidBodyTree オブジェクトとして読み込みます。

load exampleRobots.mat

Puma ロボットのホーム コンフィギュレーションの構造体を作成します。構造体は、ロボット モデル上の各ボディのジョイント名およびジョイント位置をもちます。

config = homeConfiguration(puma1)
config=1×6 struct array with fields:
    JointName
    JointPosition

show を使用してホーム コンフィギュレーションを表示します。コンフィギュレーション入力を指定する必要はありません。

show(puma1);

コンフィギュレーションを変更して、2 つ目のジョイント位置を pi/2 に設定します。結果として生じるロボット コンフィギュレーションの変化を表示します。

config(2).JointPosition = pi/2;
show(puma1,config);

ランダムなコンフィギュレーションを作成して表示します。

show(puma1,randomConfiguration(puma1));

Puma560® ロボットの Denavit-Hartenberg (DH) パラメーターを使用して、ロボットを構築します。各剛体は 1 つずつ追加され、子から親への変換がジョイント オブジェクトによって指定されます。

DH パラメーターは、各剛体がどのように親に接続されているかを基準として、ロボットのジオメトリを定義します。わかりやすくするために、Puma560 ロボットのパラメーターを行列で設定します。Puma ロボットは連続チェーンのマニピュレーターです。DH パラメーターは、前のジョイント接続に対応する行列内の前の行との相対値です。

dhparams = [0   	pi/2	0   	0;
            0.4318	0       0       0
            0.0203	-pi/2	0.15005	0;
            0   	pi/2	0.4318	0;
            0       -pi/2	0   	0;
            0       0       0       0];

剛体ツリー オブジェクトを作成して、ロボットを構築します。

robot = rigidBodyTree;

最初の剛体を作成し、ロボットに追加します。剛体を追加するには次を行います。

  1. rigidBody オブジェクトを作成し、一意の名前を付けます。

  2. rigidBodyJoint オブジェクトを作成し、一意の名前を付けます。

  3. setFixedTransform を使用して、ボディからボディへの変換を DH パラメーターを使用して指定します。DH パラメーターの最後の要素である theta は無視されます。これは、角度がジョイント位置に依存するためです。

  4. addBody を呼び出して、最初のボディのジョイントをロボットの base 座標系に接続します。

body1 = rigidBody('body1');
jnt1 = rigidBodyJoint('jnt1','revolute');

setFixedTransform(jnt1,dhparams(1,:),'dh');
body1.Joint = jnt1;

addBody(robot,body1,'base')

その他の剛体を作成し、ロボットに追加します。addBody を呼び出して接続するときには、前述のボディ名を指定します。各固定変換は、前のジョイント座標系と相対的です。

body2 = rigidBody('body2');
jnt2 = rigidBodyJoint('jnt2','revolute');
body3 = rigidBody('body3');
jnt3 = rigidBodyJoint('jnt3','revolute');
body4 = rigidBody('body4');
jnt4 = rigidBodyJoint('jnt4','revolute');
body5 = rigidBody('body5');
jnt5 = rigidBodyJoint('jnt5','revolute');
body6 = rigidBody('body6');
jnt6 = rigidBodyJoint('jnt6','revolute');

setFixedTransform(jnt2,dhparams(2,:),'dh');
setFixedTransform(jnt3,dhparams(3,:),'dh');
setFixedTransform(jnt4,dhparams(4,:),'dh');
setFixedTransform(jnt5,dhparams(5,:),'dh');
setFixedTransform(jnt6,dhparams(6,:),'dh');

body2.Joint = jnt2;
body3.Joint = jnt3;
body4.Joint = jnt4;
body5.Joint = jnt5;
body6.Joint = jnt6;

addBody(robot,body2,'body1')
addBody(robot,body3,'body2')
addBody(robot,body4,'body3')
addBody(robot,body5,'body4')
addBody(robot,body6,'body5')

関数 showdetails または関数 show を使用して、ロボットが正しく構築されていることを確認します。showdetails は、すべてのボディを MATLAB® コマンド ウィンドウにリストします。show は、指定されたコンフィギュレーション (既定はホーム) でロボットを表示します。axis の呼び出しは、軸の範囲を変更し、軸ラベルを非表示にします。

showdetails(robot)
--------------------
Robot: (6 bodies)

 Idx    Body Name   Joint Name   Joint Type    Parent Name(Idx)   Children Name(s)
 ---    ---------   ----------   ----------    ----------------   ----------------
   1        body1         jnt1     revolute             base(0)   body2(2)  
   2        body2         jnt2     revolute            body1(1)   body3(3)  
   3        body3         jnt3     revolute            body2(2)   body4(4)  
   4        body4         jnt4     revolute            body3(3)   body5(5)  
   5        body5         jnt5     revolute            body4(4)   body6(6)  
   6        body6         jnt6     revolute            body5(5)   
--------------------
show(robot);
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5])
axis off

入力引数

すべて折りたたむ

ロボット モデル。rigidBodyTree オブジェクトとして指定します。

ロボット コンフィギュレーション。ジョイント位置のベクトル、またはロボット モデル内のすべてのボディのジョイント名およびジョイント位置を含む構造体として指定します。コンフィギュレーションは、homeConfiguration(robot)randomConfiguration(robot) を使用するか、構造体内で独自のジョイント位置を指定することによって生成できます。configuration のベクトル形式を使用するには、robotDataFormat プロパティを "row" または "column" に設定します。

名前と値のペアの引数

オプションのコンマで区切られた Name,Value 引数のペアを指定します。ここで、Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'Frames','off'

座標軸の親。ロボットの描画に使用する、ParentAxes オブジェクトからなるコンマ区切りのペアとして指定します。既定では、ロボットはアクティブな座標軸にプロットされます。

ロボットのプロットを保持するオプション。"PreservePlot"true または false からなるコンマ区切りのペアとして指定します。このプロパティを true に設定すると、show を呼び出すことによって表示された以前のプロットは上書きされません。この設定は、標準の MATLAB® Figure 用に hold on を呼び出す場合と同様に機能しますが、ロボットのボディ座標系に限定されています。このプロパティを false に設定すると、ロボットの以前のプロットは上書きされます。

ボディ座標系を表示します。"on" または "off" として指定します。これらの座標系は、剛体ツリー上の個々のボディの座標系です。

ビジュアル ジオメトリを表示します。"on" または "off" として指定します。Figure 内で右クリックすることにより、個々のビジュアル ジオメトリをオフにすることもできます。

個々のビジュアル ジオメトリを指定するには、addVisual を使用するか、importrobot を使用し、.stl ファイルを指定してロボット モデルをインポートします。

出力引数

すべて折りたたむ

座標軸グラフィックス ハンドル。Axes オブジェクトとして返されます。このオブジェクトには、ロボットのプロット先の Figure のプロパティが含まれます。

ヒント

ロボット モデルにはビジュアル コンポーネントが関連付けられています。各 rigidBody オブジェクトには、ボディ座標系として表示される座標系が含まれています。各ボディにビジュアル メッシュを関連付けることもできます。既定では、これらのコンポーネントはいずれも自動的に表示されます。剛体ツリー表示のビジュアル コンポーネントは検査や変更が可能です。ボディ座標系またはビジュアル メッシュをクリックして黄色で強調表示すると、関連付けられているボディ名、インデックス、ジョイント タイプを確認できます。右クリックして、個々のコンポーネントの表示を切り替えます。

  • ボディ座標系: 個々のボディ座標系は、3 軸の座標系として表示されます。固定の座標系はピンクの座標系です。可動ジョイント タイプは RGB 座標軸として表示されます。ボディ座標系をクリックすると、運動軸を確認できます。直進ジョイントでは運動軸の方向に黄色の矢印が表示され、回転ジョイントでは回転軸の周囲に円形の矢印が表示されます。

  • ビジュアル メッシュ: 個々のビジュアル ジオメトリを指定するには、addVisual を使用するか、または importrobot を使用し、.stl ファイルを指定してロボット モデルをインポートします。Figure 内で個々のボディを右クリックすることにより、メッシュをオフにしたり、Visuals の名前と値のペアを指定してすべてのビジュアル ジオメトリを非表示にすることができます。

R2016b で導入