Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

robot slips after upgrade to kinetic

Dear all, After upgrading from Ubuntu 14.04 to 16.04 and from Indigo to Kinetic I'm experiencing a weird behavior from Gazebo and the HyQ robot model.

The complete robot model can be found here.

I made the minimal set of modifications to make it compatible with the new xacro standard (see corresponding branch)

Even after setting unrealistically high friction coefficients in the corresponding tag (see here), the robot can't walk and slips badly.

With the same description on Gazebo 2/ROS Indigo the robot always was fine.

Is there a new way to define friction between feet and ground? Am I missing a tag or something?

I saw that in Gazebo 7 there is a torsional friction, but I can't find from URDF documentation how to add it.

Also, there are many SDF-related tags which don't map well to URDF, like contact slip factor.

UPDATE: I've narrowed down the issue to this portion of the URDF:

        <!-- Foot link -->
        <link name="${name}_foot">
            <inertial>
                <origin xyz="0 0 0"/>
                <mass value="0.0"/>
                <inertia ixx="0.0" iyy="0.0" izz="0.0" ixy="0.0" ixz="0.0" iyz="0.0"/>
            </inertial>
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
                <material name="black"/>
            </visual>
            <collision>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
            </collision>

        </link>

Apparently, a collision set as a perfect sphere is handled in a different way from Gazebo 2 to 7.

If I remove the collision field, the tip of the leg (which is not spherical) is taken for the collision, and the robot works fine.

My suspect goes to the torsional friction feature, which has been introduced in new versions of Gazebo (see this related question).

robot slips after upgrade to kinetic

Dear all, After upgrading from Ubuntu 14.04 to 16.04 and from Indigo to Kinetic I'm experiencing a weird behavior from Gazebo and the HyQ robot model.

The complete robot model can be found here.

I made the minimal set of modifications to make it compatible with the new xacro standard (see corresponding branch)

Even after setting unrealistically high friction coefficients in the corresponding tag (see here), the robot can't walk and slips badly.

With the same description on Gazebo 2/ROS Indigo the robot always was fine.

Is there a new way to define friction between feet and ground? Am I missing a tag or something?

I saw that in Gazebo 7 there is a torsional friction, but I can't find from URDF documentation how to add it.

Also, there are many SDF-related tags which don't map well to URDF, like contact slip factor.

UPDATE: I've narrowed down the issue to this portion of the URDF:

        <!-- Foot link -->
        <link name="${name}_foot">
            <inertial>
                <origin xyz="0 0 0"/>
                <mass value="0.0"/>
                <inertia ixx="0.0" iyy="0.0" izz="0.0" ixy="0.0" ixz="0.0" iyz="0.0"/>
            </inertial>
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
                <material name="black"/>
            </visual>
            <collision>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
            </collision>

        </link>

Apparently, a collision set as a perfect sphere is handled in a different way from Gazebo 2 to 7.

If I remove the collision field, the tip of the leg (which is not spherical) is taken for the collision, and the robot works fine.

My suspect goes to the torsional friction feature, which has been introduced in new versions of Gazebo (see this related question).

robot slips after upgrade to kinetic

Dear all, After upgrading from Ubuntu 14.04 to 16.04 and from Indigo to Kinetic I'm experiencing a weird behavior from Gazebo and the HyQ robot model.

The complete robot model can be found here.

I made the minimal set of modifications to make it compatible with the new xacro standard (see corresponding branch)

Even after setting unrealistically high friction coefficients in the corresponding tag (see here), the robot can't walk and slips badly.

With the same description on Gazebo 2/ROS Indigo the robot always was fine.

I've narrowed down the issue to this portion of the URDF:

        <!-- Foot link -->
        <link name="${name}_foot">
            <inertial>
                <origin xyz="0 0 0"/>
                <mass value="0.0"/>
                <inertia ixx="0.0" iyy="0.0" izz="0.0" ixy="0.0" ixz="0.0" iyz="0.0"/>
            </inertial>
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
                <material name="black"/>
            </visual>
            <collision>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
            </collision>

        </link>

Apparently, a collision set as a perfect sphere is handled in a different way from Gazebo 2 to 7.

If I remove the collision field, the tip of the leg (which is not spherical) is taken for the collision, and the robot works fine.

My suspect goes to the torsional friction feature, which has been introduced in new versions of Gazebo (see this related question).

UPDATE

I've reduced (yet not solved) the problem by setting the fdir1 tag to a reasonable value (it was 0 0 0). Here's how the link looks like now:

``` <link name="${name}_foot"> <inertial> <origin xyz="0 0 0"/> <mass value="0.07"/> <inertia ixx="0.0000112" iyy="0.0000112" izz="0.0000112" ixy="0.0" ixz="0.0" iyz="0.0"/> </inertial> <collision> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <sphere radius="0.02175"/> </geometry> </collision> </link> <gazebo reference="${name}_foot"> <mu1>1</mu1> <mu2>1</mu2> <fdir1>1 0 0</fdir1> <maxcontacts>1</maxcontacts> <collision name="${name}_lowerleg_fixed_joint_lump__${name}_foot_collision_1"> <geometry> <sphere> <radius>0.02175</radius> </sphere> </geometry>

                <surface>
                    <friction>
                        <torsional>
                            <coefficient>10</coefficient>
                            <use_patch_radius>true</use_patch_radius>
                            <surface_radius>0.05</surface_radius>
                            <patch_radius>0.01</patch_radius>
                    </torsional>
                </friction>
            <contact>
                <poissons_ratio>0.5</poissons_ratio>
                <elastic_modulus>1e8</elastic_modulus>
            </contact>
            </surface>
        </collision>

            <material>Gazebo/Black</material>
        </gazebo>

```

However, I still see slipping behavior (and switching contacts) when I try to move: https://youtu.be/NMUSZn1pm5U

robot slips after upgrade to kinetic

Dear all, After upgrading from Ubuntu 14.04 to 16.04 and from Indigo to Kinetic I'm experiencing a weird behavior from Gazebo and the HyQ robot model.

The complete robot model can be found here.

I made the minimal set of modifications to make it compatible with the new xacro standard (see corresponding branch)

Even after setting unrealistically high friction coefficients in the corresponding tag (see here), the robot can't walk and slips badly.

With the same description on Gazebo 2/ROS Indigo the robot always was fine.

I've narrowed down the issue to this portion of the URDF:

        <!-- Foot link -->
        <link name="${name}_foot">
            <inertial>
                <origin xyz="0 0 0"/>
                <mass value="0.0"/>
                <inertia ixx="0.0" iyy="0.0" izz="0.0" ixy="0.0" ixz="0.0" iyz="0.0"/>
            </inertial>
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
                <material name="black"/>
            </visual>
            <collision>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <sphere radius="0.02175"/>
                </geometry>
            </collision>

        </link>

Apparently, a collision set as a perfect sphere is handled in a different way from Gazebo 2 to 7.

If I remove the collision field, the tip of the leg (which is not spherical) is taken for the collision, and the robot works fine.

My suspect goes to the torsional friction feature, which has been introduced in new versions of Gazebo (see this related question).

UPDATE

I've reduced (yet not solved) the problem by setting the fdir1 tag to a reasonable value (it was 0 0 0). Here's how the link looks like now:

```

    <link name="${name}_foot">
         <inertial>
             <origin xyz="0 0 0"/>
             <mass value="0.07"/>
             <inertia ixx="0.0000112" iyy="0.0000112" izz="0.0000112" ixy="0.0" ixz="0.0" iyz="0.0"/>
         </inertial>
         <collision>
             <origin xyz="0 0 0" rpy="0 0 0"/>
             <geometry>
                 <sphere radius="0.02175"/>
             </geometry>
         </collision>
     </link>
     <gazebo reference="${name}_foot">
             <mu1>1</mu1>
         <mu2>1</mu2>
         <fdir1>1 0 0</fdir1>
            <maxcontacts>1</maxcontacts>
        <maxContacts>1</maxContacts>
            <collision name="${name}_lowerleg_fixed_joint_lump__${name}_foot_collision_1">
                 <geometry>
                     <sphere>
                     <radius>0.02175</radius>
                 </sphere>
                        </geometry>

 </geometry>

            <surface>
                 <friction>
                     <torsional>
                            <coefficient>10</coefficient>
                            <use_patch_radius>true</use_patch_radius>
                            <surface_radius>0.05</surface_radius>
                            <patch_radius>0.01</patch_radius>
                    </torsional>
             </friction>
            <contact>
                <poissons_ratio>0.5</poissons_ratio>
                <elastic_modulus>1e8</elastic_modulus>
            </contact>
         </surface>
     </collision>

         <material>Gazebo/Black</material>
     </gazebo>

```

However, I still see slipping behavior (and switching contacts) when I try to move: https://youtu.be/NMUSZn1pm5U