Issue using Skid Steer Plugin, specifically when rotating

asked 2020-07-23 21:29:42 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi, the robot I am trying to simulate is a 4 Wheel Differential drive (skid-steer) robot called the Monsterborg. I have used the Skid Steering Drive plugin from the website http://gazebosim.org/tutorials?tut=ro... and made the modifications to suit the Monsterborg. When sending a Twist message through cmd_vel to drive in a straight line the robot does exactly that and there are no problems. The real problem occurs when I send a Twist message for pure angular rotation around the z-axis. The robot moves extremely slow no matter the value I set (I assume it is in rad/s). What seems to be the issue? I will attach the URDF file in case there might be issues in the frictions values (but I don't think friction is the issue because when I send velocity commands to each of the controllers the robot moves the way its supposed to move). I am considering using the equations the developers have used in the gazebo_ros_skid_steer_drive.cpp to then send individual velocity commands to the joint controllers, however I will lose the odometry information publications but its a sacrifice I am willing to make.

<robot name="monsterborg">

<link name="base_link">
    <visual>
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <geometry>
            <box size="0.16 0.14 0.05"/>
        </geometry>
        <material name="white">
            <color rgba="1 1 1 1"/>
        </material>
    </visual>

    <inertial>
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <mass value="3"/>
        <inertia ixx="0.007025" ixy="0" ixz="0"
                 iyy="0.005525" iyz="0" izz=" 0.0113"/>
    </inertial>

    <collision>
        <origin xyz="0 0 0 " rpy="0 0 0"/>
        <geometry>
            <box size=" 0.16 0.14 0.05"/>
        </geometry>
    </collision>

</link>

<gazebo reference="base_link">
    <kp>100000.0</kp>
    <kd>100000.0</kd>
    <mu1>10.0</mu1>
    <mu2>10.0</mu2>
    <material>Gazebo/White</material>
</gazebo>


<link name="lb_wheel">
    <visual>
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <geometry>
            <cylinder radius="0.0525" length="0.05"/>
        </geometry>
        <material name="black">
            <color rgba="0 0 0 1"/>
        </material>
    </visual>

    <inertial>
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <mass value="0.104"/>
        <inertia ixx="9.332916666666665e-05" ixy="0" ixz="0"
                 iyy="9.332916666666665e-05" iyz="0" izz="0.00014332499999999997"/>
    </inertial>

    <collision>
        <origin xyz="0 0 0" rpy="0 0 0"/>
        <geometry>
            <cylinder radius="0.0525" length="0.05"/>
        </geometry>
    </collision>

</link>

<gazebo reference="lb_wheel">
    <kp>100000.0</kp>
    <kd>100000.0</kd>
    <mu1>1.0</mu1>
    <mu2>1.0</mu2>
    <material>Gazebo/Black</material>
</gazebo>

<!-- If a <gazebo> element is used without a reference="" property, 
it is assumed the <gazebo> element is for the whole robot model. --> 

<gazebo>
    <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
        <robotNamespace>/monsterborg</robotNamespace>
    </plugin>
</gazebo>

<joint name="base_to_lb_wheel" type="continuous">
    <origin xyz="-0.065 0.0935 0" rpy="-1.5708 0 0"/>
    <parent link="base_link"/>
    <child link="lb_wheel"/>
    <axis xyz="0 0 1"/>
    <limit effort="10" velocity="100"/>
    <joint_properties damping="0.0" friction="0.0"/>
</joint>

<transmission name="tran1">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name ...
(more)
edit retag flag offensive close merge delete