URDF集成Gazebo相关设置

collision碰撞属性相关参数

如果机器人link是标准的几何体形状,和link的 visual 属性设置一致即可。

inertial惯性矩阵相关参数

惯性矩阵的设置需要结合link的质量与外形参数动态生成,标准的球体、圆柱与立方体的惯性矩阵公式如下(已经封装为 xacro 实现):

球体惯性矩阵

<!-- Macro for inertia matrix -->
<xacro:macro name="sphere_inertial_matrix" params="m r">
    <inertial>
        <mass value="${m}" />
        <inertia ixx="${2*m*r*r/5}" ixy="0" ixz="0"
            iyy="${2*m*r*r/5}" iyz="0" 
            izz="${2*m*r*r/5}" />
    </inertial>
</xacro:macro>

圆柱惯性矩阵

<!-- Macro for inertia matrix -->
<xacro:macro name="cylinder_inertial_matrix" params="m r h">
    <inertial>
        <mass value="${m}" />
        <inertia ixx="${m*(3*r*r+h*h)/12}" ixy = "0" ixz = "0"
            iyy="${m*(3*r*r+h*h)/12}" iyz = "0"
            izz="${m*r*r/2}" /> 
    </inertial>
</xacro:macro>

立方体惯性矩阵

<!-- Macro for inertia matrix -->
<xacro:macro name="Box_inertial_matrix" params="m l w h">
   <inertial>
       <mass value="${m}" />
       <inertia ixx="${m*(h*h + l*l)/12}" ixy = "0" ixz = "0"
           iyy="${m*(w*w + l*l)/12}" iyz= "0"
           izz="${m*(w*w + h*h)/12}" />
   </inertial>
</xacro:macro>

除了 base_footprint 外,机器人的每个刚体部分都需要设置惯性矩阵,且惯性矩阵必须经计算得出,如果随意定义刚体部分的惯性矩阵,那么可能会导致机器人在 Gazebo 中出现抖动,移动等现象。

颜色属性

在gazebo中显示物体颜色属性,需要用到颜色标签:

<gazebo reference="你的link节点名称">
     <material>Gazebo/Blue</material>
     <!--这里的颜色数值分大小写-->
</gazebo>
posted @ 2023-11-05 15:59  不想要名字  阅读(79)  评论(0)    收藏  举报