机器人模型其他关节的定义

描述

base_link的定义

base_link是所有的其他关节的基础,也就是基坐标系所在的link。

这里他的几何图形我们直接引用他的dae文件,至于如何用Solidworks绘制模型然后制作成dae文件。

后续找机会专门写一篇博客进行介绍,下面的gazebo句段是为了我们的模型在gazebo环境中仿真用的。

注意,base_link 只是定义了“机械臂的基座” 它本身是不包含 joint 的。

< !-- BASE LINK AND -- >
  < link name="base_link" >
      < visual >
            < !-- < origin xyz="-0.22 -0.15 0.00" rpy="0 0 0" / >  -- >
          < origin xyz="0.1 -0.11 0.13" rpy="0 0 1.570796" / > 
            < geometry >
                < mesh filename="package://rob_description/meshes/body_link_humanoid.dae"/ >
            < /geometry >
              < material name="green" / >
      < /visual >


      < collision >
            < origin xyz="0.0 0.0 0.0" rpy="0 0 0" / > < !--  -- >
            < geometry >
                  < mesh filename="package://rob_description/meshes/body_link_humanoid.dae"/ >
            < /geometry >
    < /collision >
  < /link >


  < gazebo reference="base_link" >
    < material >Gazebo/green< /material >
  < /gazebo >

其他关节的定义

至于其他关节的定义,一个 Link 就对应一个 Joint ,示例如下,这里定义的是 l_shoulder_joint 和 l_shoulder_link。

在Joint 的定义中,有一个limit 的程序段,这里规定的是关节的力限制、速度限制和关节运动范围限制。

速度限制的单位是m/s(移动关节)或rad/s(转动关节),详细的说面看:这里。

代码中间:就是引用上文中我们定义的关于传动参数的宏定义。

如果在xacro 代码中想用数学表达式,使用的格式是:${ 数学表达式 } ,如下面代码中所示。

其余关节的定义详见源代码。

< !-- left shoulder link and joint -- >
  < joint name="l_shoulder_joint" type="revolute" >  
    < parent link="base_link"/ >
    < child link="l_shoulder_link"/ >
    < origin xyz="0 0.11 0.74" rpy="0 0 3.14159" / >
    < axis xyz="0 1 0" / >
    < limit effort="300" velocity="${0.2*0.6981}" lower="-0.43633" upper="3.0543"/ >< !-- (-25  +175)=(-25 175) -- >
    < !-- velocity: m/s for prismatic, rad/s for revolute -- >
    < dynamics damping="50" friction="1"/ >
  < /joint >

 < xacro:transmission_block joint_name="l_shoulder_joint"/ > 


  < link name="l_shoulder_link" >
      < visual >
            < origin xyz="-0.04 0.02 0.04" rpy="1.5708 1.5708 0" / > 
            < geometry >
                < mesh filename="package://rob_description/meshes/l_shoulder_link.dae"/ >
            < /geometry >
              < material name="green" / >
      < /visual >


      < collision >
            < origin xyz="-0.04 0.02 0.04" rpy="1.5708 1.5708 0" / >
            < geometry >
                < mesh filename="package://rob_description/meshes/l_shoulder_link.dae"/ >
            < /geometry >
        < /collision > >
    < xacro:inertial_matrix mass="1"/ >
  < /link >


  < gazebo reference="l_shoulder_link" >
    < material >Gazebo/green< /material >
  < /gazebo >
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分