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.
    <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