Main Content

Simulink でのジョイント空間の軌跡の追従

この例では、Simulink で Joint Space Motion Model ブロックを使用して軌跡を追従する方法を説明します。

この例では、Kinova Gen3 マニピュレーター ロボットを使用して軌跡を追従します。loadrobot を使用して Gen3 マニピュレーターを読み込み、RigidBodyTree 出力を gen3 として保存します。Simulink モデルを開きます。

[gen3,metadata] = loadrobot("kinovaGen3");

Simulink モデルを開きます。

open_system("followJointSpaceTrajectoryModel.slx");

軌跡の計画

Polynomial Trajectory ブロックは、ジョイント空間において、[ウェイポイント] パラメーターで指定された一連のウェイポイントから軌跡を生成します。この例では、行ベクトルで指定された 5 つの時間点を使用し、また Kinova Gen3 の自由度は 7 であるため、ウェイポイント行列はサイズが 7 行 5 列の行列でなければなりません。このブロックは、シミュレーションごとに新しいウェイポイントのセットを生成するよう設定されています。

運動モデル

Joint Space Motion Model は RigidBodyTree (gen3) を使用して、Polynomial Trajectory ブロックにより生成されたランダムな軌跡に到達するためのジョイント位置を計算します。他のブロック パラメーターは既定値のままにします。

結果の可視化

ジョイントのターゲット位置と、Joint Space Motion Model から計算されたジョイント値を Scope ブロックに接続します。凡例を使用して、少なめの信号セットを選択することで、比較がより分かりやすくなります。

最初のジョイントの信号は別々に開始され、時間が 1 秒になるとオーバーラップしていることが確認できます。最初のジョイントは初期コンフィギュレーションから、軌跡の追従ができました。