Main Content

randomConfiguration

ロボットのランダムなコンフィギュレーションを生成

説明

configuration = randomConfiguration(robot) は、指定したロボットのランダムなコンフィギュレーションを返します。このコンフィギュレーション内の各ジョイント位置では、ロボット モデル内の対応する rigidBodyJoint オブジェクトの PositionLimits プロパティで設定されたジョイント制限が考慮されます。

すべて折りたたむ

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

Robotics System Toolbox™ loadrobotから FANUC LR Mate 200ib を読み込みます。rigidBodyTree オブジェクトとして返されます。

robot = loadrobot("fanucLRMate200ib");
showdetails(robot)
--------------------
Robot: (9 bodies)

 Idx     Body Name            Joint Name            Joint Type     Parent Name(Idx)   Children Name(s)
 ---     ---------            ----------            ----------     ----------------   ----------------
   1          base        base_link-base                 fixed         base_link(0)   
   2        link_1               joint_1              revolute         base_link(0)   link_2(3)  
   3        link_2               joint_2              revolute            link_1(2)   link_3(4)  
   4        link_3               joint_3              revolute            link_2(3)   link_4(5)  
   5        link_4               joint_4              revolute            link_3(4)   link_5(6)  
   6        link_5               joint_5              revolute            link_4(5)   link_6(7)  
   7        link_6               joint_6              revolute            link_5(6)   flange(8)  tool0(9)  
   8        flange        joint_6-flange                 fixed            link_6(7)   
   9         tool0          link_6-tool0                 fixed            link_6(7)   
--------------------

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

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

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

show(robot);

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 26 objects of type patch, line. These objects represent base_link, base, link_1, link_2, link_3, link_4, link_5, link_6, flange, tool0, link_1_mesh, link_2_mesh, link_3_mesh, link_4_mesh, link_5_mesh, link_6_mesh, base_link_mesh.

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

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

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 26 objects of type patch, line. These objects represent base_link, base, link_1, link_2, link_3, link_4, link_5, link_6, flange, tool0, link_1_mesh, link_2_mesh, link_3_mesh, link_4_mesh, link_5_mesh, link_6_mesh, base_link_mesh.

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

show(robot,randomConfiguration(robot));

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 26 objects of type patch, line. These objects represent base_link, base, link_1, link_2, link_3, link_4, link_5, link_6, flange, tool0, link_1_mesh, link_2_mesh, link_3_mesh, link_4_mesh, link_5_mesh, link_6_mesh, base_link_mesh.

入力引数

すべて折りたたむ

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

出力引数

すべて折りたたむ

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

拡張機能

バージョン履歴

R2016b で導入

すべて展開する