ROSでXML形式でロボットモデルを記述するURDFファイル
17995 ワード
ROSでXML形式でロボットモデルを記述するURDFファイル1.link 1. 2. 3. 2.joint (1)プロパティ: (2)サブエレメント: 三.URDF
一.linkラベルは、ロボットのリジッドボディ部分の外観および物理的属性を記述するために使用され、寸法(size)、色(color)、形状(shape)、慣性行列(inertial matrix)、衝突パラメータ(collision properties)などを含む.
link構造は一般的に次のようになります.
(1)属性:name:link自身の名前(引用符で囲まなければならない)(2)サブ要素:ロボットlink部分の外観パラメータを記述するラベル;linkの慣性パラメータを記述するラベル;linkの衝突属性を記述するラベル.
3つの要素について詳しく説明します.3つの要素はすべてオプションで、linkラベルの下で有無を指定できます.
1.
2.
属性は必須です
3.
衝突を検出するlink領域は外観可視領域より大きく,これは他の物体がcollision領域と交差する限りlinkが衝突すると考えられることを意味する.
ラベルの内容はラベルの内容とほぼ一致しています.これは、私たちが使用しているモデルは比較的簡単なルールモデルなので、実際のロボットの設計モデルを使用すると、ラベル内に複雑なロボットの外観を表示することができますが、衝突検出時の計算量を減らすために、簡略化されたロボットモデルを使用することがよくあります.例えば、アームの1本のリンクを円柱または直方体に簡略化する.
二.joint
joint要素は、ロボットジョイントの運動学的および動力学的プロパティを記述し、ジョイントの運動の位置および速度制限を含め、ジョイントの安全制限を指定します.
jointの構造は一般的に次のようになります.
(1)属性:
joint要素には2つの属性があります
name(必須):jointの名前(一意)type(必須):jointのタイプを指定します.revolute-ジョイントを回転し、単軸回りに回転できますが、回転の角度限界があります.continuous-ジョイントを回転させ、単軸の周りを無限に回転させることができます.prismatic-スライドジョイントは、最大値と最小値の制限がある軸に沿ってスライドできます.fixed-これは実際の関節ではありません.運動できないため、すべての自由度がロックされています.このタイプのジョイントでは、軸、ダイナミックフィーチャー、スケール、および最大値の最小値の制限を指定する必要はありません.floating-フローティングジョイントで、平行移動、回転運動(6自由度のジョイント)を可能にします.planar-このジョイントは平面内で運動し、垂線は運動軸です.
(2)サブエレメント:
三.URDF
ROSはユーザーにURDF文法を検査するツールを提供した:
我々はこれで簡単なURDFモデルの作成を完了し,ROSは対応するツールを提供してURDFを画像化して表示することができる.
URDF構文チェックツールcheck_urdf,indigoバージョンのROSでは,
URDFビジュアル化ツールurdf_to_graphizは、indigoバージョン額ROSでliburdfdom-toolsパッケージに属するツールで、次のコマンドでインストールできます:
一.linkラベルは、ロボットのリジッドボディ部分の外観および物理的属性を記述するために使用され、寸法(size)、色(color)、形状(shape)、慣性行列(inertial matrix)、衝突パラメータ(collision properties)などを含む.
link構造は一般的に次のようになります.
......
......
......
(1)属性:name:link自身の名前(引用符で囲まなければならない)(2)サブ要素:ロボットlink部分の外観パラメータを記述するラベル;linkの慣性パラメータを記述するラベル;linkの衝突属性を記述するラベル.
3つの要素について詳しく説明します.3つの要素はすべてオプションで、linkラベルの下で有無を指定できます.
1.
<inertial> ( )
<origin xyz="..." rpy="..." /> ( , , , link 。 。 。)
xyz (optional: defaults to zero vector,xyz , , )
rpy (optional: defaults to identity if not specified, x、y、z , )
<mass />
link mass
<inertia />
3x3 , 。 , 6 , ixx、ixy、ixz、iyy、iyz、izz。
</inertial>
2.
属性は必須です
<visual name="..."> ( , ( 、 ) )
( : link visual , link )
name (visual , , link 。 link 。
<origin xyz="..." rpy="..." />
<geometry> ( , link , )
<box> , , .
<cylinder> , , .
<sphere> , , .
<mesh filename="package://pkg_description/meshs/name.dae" /> mesh
</geometry>
<material name="..."> ( , )
name
<color rgba="...." /> ( ,rgb ,a , 0-1)
<texture /> ( , )
</material>
</visual>
3.
衝突を検出するlink領域は外観可視領域より大きく,これは他の物体がcollision領域と交差する限りlinkが衝突すると考えられることを意味する.
<collision name="..."> (link , link collision)
<origin xyz="..." rpy="..." /> ( )
<geometry>
</geometry>
</collision>
ラベルの内容はラベルの内容とほぼ一致しています.これは、私たちが使用しているモデルは比較的簡単なルールモデルなので、実際のロボットの設計モデルを使用すると、ラベル内に複雑なロボットの外観を表示することができますが、衝突検出時の計算量を減らすために、簡略化されたロボットモデルを使用することがよくあります.例えば、アームの1本のリンクを円柱または直方体に簡略化する.
二.joint
joint要素は、ロボットジョイントの運動学的および動力学的プロパティを記述し、ジョイントの運動の位置および速度制限を含め、ジョイントの安全制限を指定します.
jointの構造は一般的に次のようになります.
<joint name="..." type="...">
<parent link="parent_link" />
<child link="child_link" />
<calibration ...... />
<dynamics damping ...... />
<limit effort ...... />
......
</joint>
(1)属性:
joint要素には2つの属性があります
name(必須):jointの名前(一意)type(必須):jointのタイプを指定します.revolute-ジョイントを回転し、単軸回りに回転できますが、回転の角度限界があります.continuous-ジョイントを回転させ、単軸の周りを無限に回転させることができます.prismatic-スライドジョイントは、最大値と最小値の制限がある軸に沿ってスライドできます.fixed-これは実際の関節ではありません.運動できないため、すべての自由度がロックされています.このタイプのジョイントでは、軸、ダイナミックフィーチャー、スケール、および最大値の最小値の制限を指定する必要はありません.floating-フローティングジョイントで、平行移動、回転運動(6自由度のジョイント)を可能にします.planar-このジョイントは平面内で運動し、垂線は運動軸です.
(2)サブエレメント:
<origin xyz="..." rpy="..."> parent link child link ,joint child link , 。
xyz (optional: defaults to zero vector)
x,y,z , 。
rpy (optional: defaults 'to zero vector 'if not specified)
:roll x ,pitch y ,yaw z , 。
<parent link="..." /> ( ,parent link )
link
parent link , link 。
<child link="..." /> ( ,child link )
link
child link , link 。
<axis xyz="..." /> (optional: defaults to (1,0,0))
joint axis joint 。 revolute joint ,prismatic joint , planar joint 。
joint 。fixed floating joint 。
xyz ( , x,y,z , 。)
<calibration /> ( ,joint , joint 。)
rising ( , joint , 。)
falling ( , joint , 。)
<dynamics /> ( , joint 。 joint , 。)
damping (optional, defaults to 0)
joint 。( (N*s)/m , (N*m*s)/rad)
friction (optional, defaults to 0)
joint 。( N, N*m)
<limit> (required only for revolute and prismatic joint)
:
lower (optional, defaults to 0)
joint (revolute joint ,prismatic joint ), joint 。
upper (optional, defaults to 0)
joint (revolute joint ,prismatic joint ), joint 。
effort ( , joint 。)
velocity ( , joint 。)
<mimic> (optional)
joint joint。
joint value = multiplier * other_joint_value + offset.
:
joint ( , joint 。)
multiplier (optional)
。
offset (optional)
。 0(revolute joint ,prismatic joint )。
<safety_controller> (optional)
:
soft_lower_limit (optional, defaults to 0)
joint , joint 。 limit lower 。
soft_upper_limit (optional, defaults to 0)
joint , joint 。 limit upper 。
k_position (optional, defaults to 0, 。)
k_velocity ( , 。
三.URDF
ROSはユーザーにURDF文法を検査するツールを提供した:
$ sudo apt-get install liburdfdom-tools
インストールが完了した後、検査を実行する:check_urdf my_robot.urdf
すべてが正常であれば、以下のように表示される.robot name is: test_robot
———- Successfully Parsed XML —————
root Link: link1 has 2 child(ren)
child(1): link2
child(2): link3
child(1): link4
我々はこれで簡単なURDFモデルの作成を完了し,ROSは対応するツールを提供してURDFを画像化して表示することができる.
$ urdf_to_graphiz my_robot.urdf
URDF構文チェックツールcheck_urdf,indigoバージョンのROSでは,
rosrun urdfdom check_urdf /tmp/pr2.urdf
のコマンドを実行すればよい.URDFビジュアル化ツールurdf_to_graphizは、indigoバージョン額ROSでliburdfdom-toolsパッケージに属するツールで、次のコマンドでインストールできます:
sudo apt-get install liburdfdom-tools
ビジュアル化ツールの使用方法:urdf_to_graphiz pr2.urdf