robot will explode after adding effort_controllers/JointVelocityController in the transmission

asked 2018-12-07 11:32:03 -0500

q8wwe gravatar image

updated 2018-12-07 14:04:46 -0500

Dear Community ,

I'm using ros kinetic with ubuntu 16.04 with Evarobot URDF file available on https://github.com/inomuh/uplat

I tried to update the model adding transmission tags to control the differential drive for the navigation stack, though I'm confused if i should use (EffortJointInterface or VelocityJointEnterface).

After using effort_controllers/JointVelocityController the robot will explode specially the wheel part.

URDF file with transmission tags:-

    <!-- LEFT WHEEL -->
    <link name="left_wheel_link">
        <collision>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <geometry>
                <cylinder length="0.035" radius="0.085"/>
            </geometry>
        </collision>
        <visual>
            <origin rpy="0 0 1.57079632679" xyz="0 0 0"/> 
            <geometry>
                 <mesh filename="package://evarobotmodel_description/meshes/rim.dae" scale="1 1 1"/> 
            </geometry>
            <material name="Grey"/>
        </visual>
        <inertial>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <mass value="0.85"/>
            <inertia
                ixx="0.001" ixy="0" ixz="0"
                iyy="0.001" iyz="0"
                izz="0.001"/>
        </inertial>
    </link>
    <gazebo reference="left_wheel_link">
        <material>Gazebo/Grey</material>
        <mu1>1.0</mu1>
        <mu2>1.0</mu2>
        <kp>1000000.0</kp>
        <kd>100.0</kd>
        <minDepth>0.001</minDepth>
        <maxVel>1.0</maxVel>        
    </gazebo>
    <joint name="left_wheel_joint" type="continuous">
        <axis xyz="0 1 0"/>
        <parent link="base_link"/>
        <child link="left_wheel_link"/>
        <origin rpy="0 0 0" xyz="0 0.16 -0.119"/>
    </joint>
    <link name="left_wheeltire_link">
        <collision>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <geometry>
                <cylinder length="0.001" radius="0.001"/>
            </geometry>
        </collision>
        <visual>
            <origin rpy="0 0 1.57079632679" xyz="0 0 0"/>
            <geometry>
                <mesh filename="package://evarobotmodel_description/meshes/tire.dae"/> 
            </geometry>
        </visual>
        <inertial>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <mass value="0.001"/>
            <inertia
                ixx="0.001" ixy="0" ixz="0"
                iyy="0.001" iyz="0"
                izz="0.001"/>
        </inertial>
    </link>
    <gazebo reference="left_wheeltire_link">
        <material>Gazebo/Black</material>
    </gazebo>   
    <joint name="left_wheeltire_joint" type="fixed">
        <axis xyz="0 1 0"/>
        <parent link="left_wheel_link"/>
        <child link="left_wheeltire_link"/>
        <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
    </joint>     
<!-- RIGHT WHEEL -->
    <link name="right_wheel_link">
        <collision>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <geometry>
                <cylinder length="0.035" radius="0.085"/>
            </geometry>
        </collision>
        <visual>
            <origin rpy="0 0 1.57079632679" xyz="0 0 0"/> 
            <geometry>
                 <mesh filename="package://evarobotmodel_description/meshes/rim.dae" scale="1 1 1"/> 
            </geometry>
            <material name="Grey"/>
        </visual>
        <inertial>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <mass value="0.85"/>
            <inertia
                ixx="0.001" ixy="0" ixz="0"
                iyy="0.001" iyz="0"
                izz="0.001"/>
        </inertial>
    </link>
    <gazebo reference="right_wheel_link">
        <material>Gazebo/Grey</material>
        <mu1>1.0</mu1>
        <mu2>1.0</mu2>
        <kp>1000000.0</kp>
        <kd>100.0</kd>
        <minDepth>0.001</minDepth>
        <maxVel>1.0</maxVel>        
    </gazebo>
    <joint name="right_wheel_joint" type="continuous">
        <axis xyz="0 1 0"/>
        <parent link="base_link"/>
        <child link="right_wheel_link"/>
        <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.16 -0.119"/>
    </joint>
    <link name="right_wheeltire_link">
        <collision>
            <origin rpy="1.57075 0 0" xyz="0 0 0"/>
            <geometry>
                <cylinder length="0.001" radius ...
(more)
edit retag flag offensive close merge delete

Comments

I'm no expert but inertias of 0.001 are really rather small.

gvdhoorn gravatar image gvdhoorn  ( 2018-12-07 15:40:59 -0500 )edit

the robot explode because of the inertias value , how to calculate these values , do you have a link .

q8wwe gravatar image q8wwe  ( 2018-12-08 11:22:50 -0500 )edit

One usually uses this manually or lets some 3D graphics software like SolidWorks do it for them.

aPonza gravatar image aPonza  ( 2018-12-10 05:56:06 -0500 )edit

thank you , but what is really more suitable for transmission hardware interface is it Effort or velocity . also , what controller should be used : effort_controllers/JointVelocityController or effort_controllers/JointEffortController

q8wwe gravatar image q8wwe  ( 2018-12-15 08:27:18 -0500 )edit