このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
事前定義されているロボット モデルの読み込み
一般的なロボット モデルに迅速にアクセスするには、関数 loadrobot
を使用します。この関数により、Universal Robots™ UR10 協働ロボット、Boston Dynamics™ Atlas ヒューマノイド、KINOVA™ Gen 3 マニピュレーターなどの市販のロボット モデルが読み込まれます。ジョイント コンフィギュレーションを生成してロボット モデルを操作する方法を探索します。
独自の Universal Robot Description Format (URDF) をインポートする場合は、関数importrobot
を参照してください。
関数loadrobot
に string としてロボット モデル タイプを指定します。Tab キーを使用した補完機能を利用して、入力として示されたモデルのリストから選択します。
ジョイント コンフィギュレーションの列ベクトルを使用するには、データ形式を "column"
として指定します。
ur10 = loadrobot("universalUR10"); atlas = loadrobot("atlas"); gen3 = loadrobot("kinovaGen3","DataFormat","column");
関数 loadrobot
は、各ロボット モデルの運動学的特性およびダイナミクスを表すrigidBodyTree
オブジェクトを返します。一部のモデルでは、ボディのダイナミクスや慣性プロパティが読み込まれない場合があります。Bodies
プロパティまたは関数 getBody
を使用して個別の剛体を検査します。
disp(gen3);
rigidBodyTree with properties: NumBodies: 8 Bodies: {[1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody]} Base: [1x1 rigidBody] BodyNames: {'Shoulder_Link' 'HalfArm1_Link' 'HalfArm2_Link' 'ForeArm_Link' 'Wrist1_Link' 'Wrist2_Link' 'Bracelet_Link' 'EndEffector_Link'} BaseName: 'base_link' Gravity: [0 0 0] DataFormat: 'column'
show
を呼び出して、ホーム コンフィギュレーションでロボット モデルを可視化します。gen3
オブジェクトを他のモデルに置き換えて可視化します。
show(gen3);
show(atlas);
show(ur10);
ジョイント コンフィギュレーションの生成
KINOVA Gen3 ロボットのランダムなコンフィギュレーションを生成します。関数 randomConfiguration
は、モデルの制限内でランダムなジョイント位置を出力します。モデルの動作が期待どおりかを確認するには、一連の 4 つのコンフィギュレーションを可視化します。
for i = 1:4 subplot(2,2,i) config = randomConfiguration(gen3); show(gen3,config); end
ロボット モデルの操作
ロボットを移動して動作を検証するには、対話型剛体ツリー GUI を読み込みます。モデルでは、ターゲット エンドエフェクタ位置を設定し、手動でジョイントを移動し、各種要素を選択できます。
interactiveGUI = interactiveRigidBodyTree(gen3);
センター ディスクをクリックしてドラッグすることで、ターゲット エンドエフェクタ位置を自由に移動できます。この GUI は逆運動学を使用して各ボディのジョイント位置を求めます。線形に移動するには軸を使用し、軸を中心に回転させるには円を使用します。
rigidBody
をクリックすると、固有のパラメーターが表示されます。
右クリックして別のターゲット マーカー ボディを設定します。ターゲット ボディを変更すると、逆運動学ソルバーのエンドエフェクタが更新されます。
ジョイントを手動で制御するには、右クリックしてマーカー制御法を切り替えます。
選択したボディ上の回転ジョイントの回転を制御するには、黄色の円をクリックしてドラッグします。
ジョイント コンフィギュレーションの保存
関数 addConfiguration
を使用して、設定した特定のコンフィギュレーションを保存します。これにより、StoredConfigurations
プロパティに現在のジョイント位置が保存されます。この例では、ランダムなコンフィギュレーションを設定してから保存します。
interactiveGUI.Configuration = randomConfiguration(gen3);
addConfiguration(interactiveGUI) disp(interactiveGUI.StoredConfigurations)
-0.4218 -1.6647 1.3419 -2.0818 1.8179 -0.4140 -1.4517
次のステップ
これで MATLAB® でモデルが作成されたので、さまざまな操作を実行できます。
逆運動学を使用して、目的のエンドエフェクタ位置に基づくジョイント コンフィギュレーションを取得します。モデル パラメーター以外の追加のロボット拘束を指定します。これには照準拘束、直交座標の範囲、姿勢ターゲットなどがあります。
台形速度プロファイル、B スプライン、または多項式軌跡を使用して、ウェイポイントなどのパラメーターに基づき、軌跡の生成を生成します。
ロボット モデルと Rapidly Exploring Random Tree (RRT) パス プランナーを利用してマニピュレーター プランニングを行います。
環境内の障害物との衝突検出をチェックし、ロボットの動作が安全かつ効果的であることを確認します。