Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hello,

  1. For this method I recommend you to define frame coordinate in SW. Export meshes respecting theses coordinates frames. Then you can define joints by measuring the difference between two coordinate frame (measure tool in SW). I recommend you to write an urdf file and not to use the gazebo model editor because it will be clearer for you to setup your model. This method will work if you have simple meshes (not too much triangles).

  2. I do not recommend you to use the plug-in, mainly because it's no longer maintained. At the end you will simply edit the generated urdf by hand...

  3. A third method (my favorite by now) is to create a simplified model of your robot (It will simplify collisions and speed up the simulation). You still have to create coordinates frames on every part in your SW (for joint setup). You will have to approximate every shapes by basic shapes (box, cylinder) for visual and collisions (inertial matrix will be easier to calculate (https://en.wikipedia.org/wiki/List_of_moments_of_inertia). For example a wheel could be:

    <link name="wheel">
    <inertial>
        <mass value="${casterWheelWeight}" />
        <origin xyz="0 0 0" />
        <inertia  ixx="${INERTIA_XX}" ixy="0.0"  ixz="0.0"  iyy="${INERTIA_YY"  iyz="0.0"  izz="INERTIA_ZZ" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="${PI/2} 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
        <material name="Green"/>
    </visual>
    <collision>
        <origin xyz="0 0 0" rpy="${PI/2} 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
    </collision>
    

    </link>

    This approach take time but this is the best way to have a stable simulation (in my opinion).

Please give me feedback if you tried any of the approach, I am really interested in bringing SW model to gazebo.

Hello,

  1. For this method I recommend you to define frame coordinate in SW. Export meshes respecting theses coordinates frames. Then you can define joints by measuring the difference between two coordinate frame (measure tool in SW). I recommend you to write an urdf file and not to use the gazebo model editor because it will be clearer for you to setup your model. This method will work if you have simple meshes (not too much triangles).

  2. I do not recommend you to use the plug-in, mainly because it's no longer maintained. At the end you will simply edit the generated urdf by hand...

  3. A third method (my favorite by now) is to create a simplified model of your robot (It will simplify collisions and speed up the simulation). You still have to create coordinates frames on every part in your SW (for joint setup). You will have to approximate every shapes by basic shapes (box, cylinder) for visual and collisions (inertial matrix will be easier to calculate (https://en.wikipedia.org/wiki/List_of_moments_of_inertia). For example a wheel could be:

    <link name="wheel">
    <inertial>
        <mass value="${casterWheelWeight}" />
        <origin xyz="0 0 0" />
        <inertia  ixx="${INERTIA_XX}" ixy="0.0"  ixz="0.0"  iyy="${INERTIA_YY"  iyz="0.0"  izz="INERTIA_ZZ" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="${PI/2} rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
        <material name="Green"/>
    </visual>
    <collision>
        <origin xyz="0 0 0" rpy="${PI/2} rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
    </collision>
    

    </link>

    This approach take time but this is the best way to have a stable simulation (in my opinion).

Please give me feedback if you tried any of the approach, I am really interested in bringing SW model to gazebo.

gazebo.

Hello,

  1. For this method I recommend you to define frame coordinate in SW. Export meshes respecting theses coordinates frames. Then you can define joints by measuring the difference between two coordinate frame (measure tool in SW). I recommend you to write an urdf file and not to use the gazebo model editor because it will be clearer for you to setup your model. This method will work if you have simple meshes (not too much triangles).

  2. I do not recommend you to use the plug-in, mainly because it's no longer maintained. At the end you will simply edit the generated urdf by hand...

  3. A third method (my favorite by now) is to create a simplified model of your robot (It will simplify collisions and speed up the simulation). You still have to create coordinates frames on every part in your SW (for joint setup). You will have to approximate every shapes by basic shapes (box, cylinder) for visual and collisions (inertial matrix will be easier to calculate (https://en.wikipedia.org/wiki/List_of_moments_of_inertia). For example a wheel could be:

    <link name="wheel">
    <inertial>
        <mass value="${casterWheelWeight}" />
        <origin xyz="0 0 0" />
        <inertia  ixx="${INERTIA_XX}" ixy="0.0"  ixz="0.0"  iyy="${INERTIA_YY"  iyz="0.0"  izz="INERTIA_ZZ" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
        <material name="Green"/>
    </visual>
    <collision>
        <origin xyz="0 0 0" rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
    </collision>
    </link>
    

    </link>

    This approach take time but this is the best way to have a stable simulation (in my opinion).

Please give me feedback if you tried any of the approach, I am really interested in bringing SW model to gazebo.

Hello,

  1. For this method I recommend you to define frame coordinate in SW. Export meshes respecting theses coordinates frames. Then you can define joints by measuring the difference between two coordinate frame (measure tool in SW). I recommend you to write an urdf file and not to use the gazebo model editor because it will be clearer for you to setup your model. This method will work if you have simple meshes (not too much triangles).

  2. I do not recommend you to use the plug-in, mainly because it's no longer maintained. At the end you will simply edit the generated urdf by hand...

  3. A third method (my favorite by now) is to create a simplified model of your robot (It will simplify collisions and speed up the simulation). You still have to create coordinates frames on every part in your SW (for joint setup). You will have to approximate every shapes by basic shapes (box, cylinder) for visual and collisions (inertial matrix will be easier to calculate (https://en.wikipedia.org/wiki/List_of_moments_of_inertia). For example a wheel could be:

    <link name="wheel">
    <inertial>
        <mass value="${casterWheelWeight}" value="${WheelWeight}" />
        <origin xyz="0 0 0" />
        <inertia  ixx="${INERTIA_XX}" ixy="0.0"  ixz="0.0"  iyy="${INERTIA_YY"  iyz="0.0"  izz="INERTIA_ZZ" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
        <material name="Green"/>
    </visual>
    <collision>
        <origin xyz="0 0 0" rpy="$0 0 0" />
        <geometry>
            <cylinder radius="${WheelRadius}" length="${WheelWidth}" />
        </geometry>
    </collision>
    </link>
    

    This approach take time but this is the best way to have a stable simulation (in my opinion).

Please give me feedback if you tried any of the approach, I am really interested in bringing SW model to gazebo.