机器人的ROS模型建立

描述

这个系列主要介绍机器人ROS模型的建立方法,ROS系统带来的好处之一就是:

我们无需自己建立复杂的数学模型来描述自己的机器人几何尺寸、运动学和动力学等,只需要用它提供的模型描述方法即可实现快速建模。

ROS系统的模型描述方法主要有两种格式: URDF 和 XACRO。

URDF:用于描述一些简单的机器人模型,参考官网:URDF官方介绍(初学者一定要精读这些文档)。

XACRO:应用更普遍的机器人模型描述文件,参考官网:xacro,它有如下几个特点:

1.语法简练。采用编程话的脚本语言格式,可以定义变量、常量、引入数学表达式等,极易上手。

2.方便复用。它可以进行一系列的宏定义,并且可以包含其他.xacro文件。

下面,开始用xacro文件建立Rob的机器人模型。

1.第一部分是文件的头和一些宏定义

robot name我们可以自己随便定义,然后分别给出了几组颜色和常数的定义,最后给出了关节传动部分的宏定义。

< ?xml version="1.0"? >
< robot name="rob_robot" xmlns:xacro="http://ros.org/wiki/xacro" >


< !-- Include materials -- >
    < material name="Black" >
        < color rgba="0.0 0.0 0.0 1.0"/ >
    < /material >


    < material name="White" >
        < color rgba="1.0 1.0 1.0 1.0"/ >
    < /material >

常量的定义方法如下,在引用这里定义的常量的时候,用**{XX},例如在如果在下面的代码中想引用M_PI,只需要用:**{M_PI} 即可。

< !-- Constants -- >
   < property name="deg_to_rad" value="0.01745329251994329577"/ >
    < property name="M_PI" value="3.14159"/ >

关节的传动参数宏定义方法如下,xacro:macro name 定义了本宏的名称。

这个名称由用户定义,后续引用该宏的时候就是根据名字来的。

具体如何操作参考下文介绍或git上的源代码。

注意,这里宏定义内部的一些具体数值仅为说明而存在,具体的机器人关节应该是不一样的。

< !-- transmission block macro definition -- >
    < xacro:macro name="transmission_block" params="joint_name" >
      < transmission name="tran1" >
        < type >transmission_interface/SimpleTransmission< /type >
        < joint name="${joint_name}" >
          < hardwareInterface >PositionJointInterface< /hardwareInterface >
        < /joint >
        < actuator name="motor1" >
          < hardwareInterface >PositionJointInterface< /hardwareInterface >
          < mechanicalReduction >1< /mechanicalReduction >
        < /actuator >
      < /transmission >
    < /xacro:macro >
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

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

×
20
完善资料,
赚取积分