Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink 3D Animation を使用したマニピュレーターの軌跡追跡の可視化

剛体ツリーのロボット モデルについてジョイント空間の軌跡をシミュレートし、Simulink 3D Animation™ で結果を可視化します。

モデルの概要

次のコマンドを使用してモデルを読み込みます。

open_system("SL3DJointSpaceManipulatorTrajectory")

この例で使用する Kinova Gen3 マニピュレーターは、モデル ワークスペースに保存されています。ただし、ロボットを読み込んで可視化するには次のコマンドを使用します。

gen3 = loadrobot("kinovaGen3","DataFormat","column");
show(gen3);

モデルは 2 つのセクションに分かれています。

  • マニピュレーターの軌跡追従

  • Simulink 3D Animation™ での可視化

マニピュレーターの軌跡追従

Polynomial Trajectory ブロックは、範囲が [-0.375*pi 0.375*pi] のランダムな中間点セットから、各中間点で停止するジョイント空間の連続軌跡を生成します。Joint-Space Motion Model ブロックは、計算されたトルク制御を備えた Kinova Gen3 マニピュレーターについて、これらの軌跡の閉ループ追従をシミュレートします。

Simulink 3D Animation™ での可視化

VR RigidBodyTree ブロックは、関連するワールド ファイル robot_scene.wrl で定義されているシーンにマニピュレーターを挿入します。VR Sink ブロックは、ワールドを可視化します。ブロック パラメーターのうち、VR Sink ブロックが、出力に赤の軸で示される設定点を入力として扱うように変更されています。Get Transform ブロックは、エンドエフェクタの位置を取得するために使用されます。その後、これが同種変換行列から並進ベクトルに変換され、次に MATLAB 座標から VR 座標に変換されます。

モデルのシミュレーション

sim("SL3DJointSpaceManipulatorTrajectory.slx");

モデルのペーシングはアクティブであり、これは [実行] ボタンの下にある時計シンボルにより示されています。

これにより、モデルがほぼリアルタイムの速度まで確実に減速するため、現実的なペースで可視化を更新できます。

軌跡の可視化

既定で、モデルは VR の可視化と、速度および位置の情報を表示するスコープの両方を開きます。ただし、これらが閉じている場合、VR ビューを再び開くには VR Sink ブロックをクリックし、スコープを開くには関連するビューアーのアイコンをダブルクリックします。

スコープには Joint Space Motion Model ブロックの追従結果が表示されます。左下の図に示すように、ロボットの初期コンフィギュレーションは基準軌跡と異なりますが、シミュレーションの実行中は運動の制御によって確実に基準軌跡に到達して追従します。最後のスコープには、ワールド座標系でのエンドエフェクタの X、Y、Z 位置が表示されます。