Import Romeo in V-rep (from URDF)

Typically: "How do I... ", "How can I... " questions
Post Reply
jokla
Posts: 8
Joined: 26 Nov 2013, 17:14

Import Romeo in V-rep (from URDF)

Post by jokla »

Hi,

I would like to import the model URDF of Romeo in V-Rep (https://github.com/laas/romeo/tree/mast ... escription). The package contains the URDF file and the meshes. In order to import the meshes correctly, I had to change all the paths deleting "romeo_description/" :

from

Code: Select all

<mesh filename="package://romeo_description/meshes/Waist.dae"/>
to

Code: Select all

<mesh filename="package://meshes/Waist.dae" />
After using the plugin, the result is :

Code: Select all

URDF import operation started.
ERROR: found an invalid inertia entry for link 'LFinger11Link'
ERROR: found an invalid inertia entry for link 'LFinger12Link'
ERROR: found an invalid inertia entry for link 'LFinger13Link'
ERROR: found an invalid inertia entry for link 'LFinger21Link'
ERROR: found an invalid inertia entry for link 'LFinger22Link'
ERROR: found an invalid inertia entry for link 'LFinger23Link'
ERROR: found an invalid inertia entry for link 'LFinger31Link'
ERROR: found an invalid inertia entry for link 'LFinger32Link'
ERROR: found an invalid inertia entry for link 'LFinger33Link'
ERROR: found an invalid inertia entry for link 'LThumb1Link'
ERROR: found an invalid inertia entry for link 'LThumb2Link'
ERROR: found an invalid inertia entry for link 'LThumb3Link'
ERROR: found an invalid inertia entry for link 'RFinger11Link'
ERROR: found an invalid inertia entry for link 'RFinger12Link'
ERROR: found an invalid inertia entry for link 'RFinger13Link'
ERROR: found an invalid inertia entry for link 'RFinger21Link'
ERROR: found an invalid inertia entry for link 'RFinger22Link'
ERROR: found an invalid inertia entry for link 'RFinger23Link'
ERROR: found an invalid inertia entry for link 'RFinger31Link'
ERROR: found an invalid inertia entry for link 'RFinger32Link'
ERROR: found an invalid inertia entry for link 'RFinger33Link'
ERROR: found an invalid inertia entry for link 'RThumb1Link'
ERROR: found an invalid inertia entry for link 'RThumb2Link'
ERROR: found an invalid inertia entry for link 'RThumb3Link'
There are 69 joints.
ERROR: there is no joint with name ''
There are 70 links.
Creating link 'base_link'...
ERROR: there is no joint with name ''
Creating link 'body'...
Creating link 'torso'...
Creating link 'NeckYawLink'...
Creating link 'NeckPitchLink'...
Creating link 'HeadPitchLink'...
Creating link 'HeadRollLink'...
Creating link 'LShoulderPitchLink'...
Creating link 'LShoulderYawLink'...
Creating link 'LElbowRollLink'...
Creating link 'LElbowYawLink'...
Creating link 'LWristRollLink'...
Creating link 'LWristYawLink'...
Creating link 'l_wrist'...
Creating link 'RShoulderPitchLink'...
Creating link 'RShoulderYawLink'...
Creating link 'RElbowRollLink'...
Creating link 'RElbowYawLink'...
Creating link 'RWristRollLink'...
Creating link 'RWristYawLink'...
Creating link 'r_wrist'...
Creating link 'LHipYawLink'...
Creating link 'LHipRollLink'...
Creating link 'LHipPitchLink'...
Creating link 'LKneePitchLink'...
Creating link 'LAnklePitchLink'...
Creating link 'l_ankle'...
Creating link 'l_sole'...
Creating link 'l_toe'...
Creating link 'RHipYawLink'...
Creating link 'RHipRollLink'...
Creating link 'RHipPitchLink'...
Creating link 'RKneePitchLink'...
Creating link 'RAnklePitchLink'...
Creating link 'r_ankle'...
Creating link 'r_sole'...
Creating link 'r_toe'...
Creating link 'LFinger11Link'...
Creating link 'LFinger12Link'...
Creating link 'LFinger13Link'...
Creating link 'LFinger21Link'...
Creating link 'LFinger22Link'...
Creating link 'LFinger23Link'...
Creating link 'LFinger31Link'...
Creating link 'LFinger32Link'...
Creating link 'LFinger33Link'...
Creating link 'LThumb1Link'...
Creating link 'LThumb2Link'...
Creating link 'LThumb3Link'...
Creating link 'RFinger11Link'...
Creating link 'RFinger12Link'...
Creating link 'RFinger13Link'...
Creating link 'RFinger21Link'...
Creating link 'RFinger22Link'...
Creating link 'RFinger23Link'...
Creating link 'RFinger31Link'...
Creating link 'RFinger32Link'...
Creating link 'RFinger33Link'...
Creating link 'RThumb1Link'...
Creating link 'RThumb2Link'...
Creating link 'RThumb3Link'...
Creating link 'gaze'...
Creating link 'LEyePitch_link'...
Creating link 'CameraLeftEye'...
Creating link 'REyePitch_link'...
Creating link 'CameraRightEye'...
Creating link 'CameraLeft'...
Creating link 'CameraRight'...
Creating link 'l_gripper'...
Creating link 'r_gripper'...
There are 0 sensors.
URDF import operation finished.
There are some part that I don't understand:

1) All the joint with the type = fixed are converted in a force sensor... why?

2) The tree of the robot start with "waist" that is the first joint defined in the URDF file. It is defined as "fixed" in the URDF file, so it becomes a forse sensor. It is not better to have a shape for the first object of the robot? It is normal ?
Image

Moreover I cannot find the link <link name="base_link"/>, the first one defined in the URDF.

3) The inertial parameters of the shape seem different with respect to that ones in the URDF file. For example for the Body:

Code: Select all

 <link name="body">
    <inertial>
      <origin xyz="0.00932 0.0005 -0.2119" rpy="0 0 0"/>
      <mass value="4.16277"/>
      <inertia ixx="0.24187936706" ixy="-6.889635e-05" ixz="0.00282915469" iyy="0.23816771319" iyz="0.00030625215" izz="0.02147385599" />
    </inertial>
  ...
  </link>
Image

They should be the same if I select "relative to the shape frame"?

This is what the official documentation says (http://projetromeo.com/romeo-documentat ... _mass.html):

Code: Select all

The center of mass position and the inertial matrix are described relative to the local coordinate system of the current solid (S) (o, R).
All solids (S) and local coordinate system are described relative to the zero posture: standing with straight legs and arms pointing forwards).

Thank you for the help!

coppelia
Site Admin
Posts: 10375
Joined: 14 Dec 2012, 00:25

Re: Import Romeo in V-rep (from URDF)

Post by coppelia »

Hello,

the URDF fileformat is like any other fileformat: it will only be supported partially, depending on the application, because each application works differently (try to imagine how to specify a volumetric proximity sensor (that V-REP supports) in URDF: that's simply not possible, because the people who wrote that format specifications didn't think about it, or their application didn't support it, etc.). It is the same for many other aspects. And this compatibility issue goes in both directions.

Now a little bit more concretely:
  • what is a fixed joint? What is its function, and why to put it at the base of a dynamic construction? I have no idea! But if the URDF file tells it so, we have to make it more or less logical in V-REP (but the force sensor at the base doesn't make sense, I agree). By the way there is no such thing as a fixed joint in V-REP (the force sensor is what comes closest to it).
  • yes, it is better to have a shape as the base object, but who tells me to convert that fixed joint into a shape?
  • V-REP is converting many things behind-the-hoods for you, such as convex decomposition of complex shapes, etc.
  • the origin of a shape in V-REP is not the same as the origin of a shape in the URDF file: that is automatically adapted. In V-REP, the origin of a shape is always in the center of the shape (half-way between the max. and min. coordinates)
  • it is anyway always recommended to adapt an imported model: very rarely will it be functional directly, because of the constraints mentionned above.
Cheers

Post Reply