Closed S-Dafarra closed 4 years ago
Are we maybe discussing about 3 different conventions?
That one @traversaro seems to support is not the so-called "yellow-arrow" but rather that one already implemented in the iCub 2.5 legs. On the other hand, @salvi-mattia, yours is more "traditional".
Did I get this correct?
Did I get this correct?
Exactly. The main difference between "yellow-arrow" and "iCub 2.5 legs" is at which level you try to have link frame all with the same orientation. For "yellow-arrow" it is at the robot level (that given iCub shape leads to peculiar behavior) while "iCub 2.5 legs" is just to keep the same orientation for all the links in a given limb.
X axis on the link main axis [pointing next joint]
Small note: with this convention you still have have a small ambiguity (the same that you have in DH) when assigning frames for a joint whose axis coincide (such as the ankle or hip in iCub).
Humanoid models that follow the convention "all frame have the same orientation in a given configuration):
I agree with @traversaro . Back in time, when I was using the different robots urdf for the retargeting purposes, I had this problem with iCub2.5 urdf model. Instead, other robots were straight forward to do retargeting.
I do not agree with this comment https://github.com/robotology/icub-models/issues/41#issuecomment-694780076 , since the robot motor axis can be different, and we will end up with urdf model that every link has different frame orientations. But instead, putting all the joint to N-pose or T-pose (or zero values for all the motor joint angles) we will have a much cleaner urdf of the robot.
Hi @S-Dafarra @kouroshD , if you could discuss internally with other DIC people and reach a consensus on this it would be great, otherwise the risk is that the discussion become a bit too dispersive.
Hi @S-Dafarra @kouroshD , if you could discuss internally with other DIC people and reach a consensus on this it would be great, otherwise the risk is that the discussion become a bit too dispersive.
Sorry to show up just now. We discussed internally and we agreed on the following. The convention we prefer is defined as follows:
Given the particular design of the shoulders, in the zero position, a frame on an arm link is slightly rotated around the z-axis compared to a frame in the torso.
This convention is basically the one defined as "iCub 2.5 legs" in https://github.com/robotology/icub-models/issues/41#issuecomment-694884201, which corresponds to the blue arrow of https://github.com/robotology/icub-models/issues/41#issuecomment-694738366.
after a meeting with @S-Dafarra @FabioBergonti and @pattacini we agreed on the following:
when it's not applicable (in plain words, we may derive a better formalism later):
I added the frames in the linke and reassembled the mechanism. Everything is pushed in cad-mechanics @Nicogene u can now make your magic-button-stuff
after that it could be useful to check if we are getting what we want, so that we can proceed with the legs in the correct way
@salvi-mattia added and checked the link frames but 4 eyes are better than two 😉
@S-Dafarra could you please double-check if the frames are following the right convention?
In icub3-upperbody.zip you should find all you need for opening the urdf in gazebo. Please let me know if you experience any issue.
@salvi-mattia added and checked the link frames but 4 eyes are better than two
@S-Dafarra could you please double-check if the frames are following the right convention?
In icub3-upperbody.zip you should find all you need for opening the urdf in gazebo. Please let me know if you experience any issue.
Hi @Nicogene, I just tried, but I am not able to load the model. I get the following error
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_root_link_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_torso_1_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_torso_2_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_chest_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_l_shoulder_1_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_l_shoulder_2_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_l_shoulder_3_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_l_upperarm_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_r_shoulder_1_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_r_shoulder_2_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_r_shoulder_3_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [sim_icub3_r_upperarm_prt.stl]
[Err] [Visual.cc:2951] No mesh specified
I just specified the GAZEBO_MODEL_PATH
, should I add something else?
For simplicity run gazebo
in the folder where the stl files are located.
This issue should not occur once CMake will install them in the right location.
For simplicity run
gazebo
in the folder where the stl files are located.This issue should not occur once CMake will install them in the right location.
Thanks, that worked
@S-Dafarra could you please double-check if the frames are following the right convention?
Actually, there seems to be a problem. It seems that the shoulders motor axis are not aligned to any axis
It seems it is not following what was defined in https://github.com/robotology/icub-models/issues/41#issuecomment-697561933 but rather the "yellow arrow" convention of https://github.com/robotology/icub-models/issues/41#issuecomment-694738366
Also, the y axis (green one) is forward, not the x as defined in https://github.com/robotology/icub-models/issues/41#issuecomment-697561933
Sorry probably I used the wrong yaml in the generation 🙏 I am still learning the procedure Stay tuned !
oh, well, my fault too
I named all the frame CSYS_<child_link_name>
. instead of SCSYS_<child_link_name>
.
lets have a check with ths wrong naming convention and then I'll fix it [if we think it's worth it]
Now seems ok to me
Please @S-Dafarra could you check it now?
Looks good to me, thanks a lot!
cc @kouroshD
Plot twist, the feet mounted on iCub3 are the same that in the cad: onf single FTsensor and passvie fingers with spring. I'm aware that exist a new project with different feet [not mounted] Which is the state of this enhancement? @fiorisi @Fabrizio69 @Mick3Lozzo
which kind of feet do we want in the URDF? @S-Dafarra
which kind of feet do we want in the URDF? @S-Dafarra
Preferably the one of the new project, which should be rectangular without the passive toe, holding two FTs.
Which is the state of this enhancement? @fiorisi @Fabrizio69 @Mick3Lozzo
The state is that the new feet are ready to be mounted on the robot (see https://github.com/icub-tech-iit/tickets/issues/224#issuecomment-645229863). There are three possible sizes for each foot plate: 100 mm 110 mm 120 mm The simplified feet replacing kit is cod.14658 - IG_022_A_001. At the moment the kit is not mounted on the iCub3 CAD.
🔔 Just a quick update, we managed to create the urdfs and import in gazebo the left and right legs, the corresponding files are respectively in this and in this commit.
RIGHT LEG | LEFT LEG |
---|---|
In the near future, we will work on the assemble of them to the torso
cc @maggia80 @DanielePucci @pattacini @salvi-mattia @S-Dafarra
The https://github.com/robotology/icub-model-generator/pull/133 has been merged.
The model should be available
This is a first draft of the model, it has some open points/issues that we worked-around but I think it is something usable.
Here it is the iCub 3 - Venere di Milo edition
We added also the frames l_sole
and r_sole
as requested.
You should find it on devel
branch.
I would keep this issue open until we will have the complete model.
cc @S-Dafarra @DanielePucci @maggia80 @salvi-mattia @pattacini @fiorisi @traversaro @FabioBergonti
Thanks a lot @Nicogene @salvi-mattia and every one, this is something from which we can start!
I have tried to change the branch and install all robots. I can see iCubGenova09 in the list of models, but it fails to load it. These are the errors I get
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_root_link_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_torso_1_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_torso_2_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_chest_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_l_shoulder_1_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_l_shoulder_2_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_l_shoulder_3_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_l_upperarm_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_r_shoulder_1_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_r_shoulder_2_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_r_shoulder_3_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [urdf file/urdf file/sim_icub3_r_upperarm_prt.stl]
[Err] [Visual.cc:2953] No mesh specified
I have tried to change the branch and install all robots. I can see iCubGenova09 in the list of models, but it fails to load it.
I guess in the yaml of simmechanics-to-urdf the filenameformatchangeext
used to specify where the meshes are installing is missing, so the mesh elements in the URDF have <mesh filename="sim_icub3_torso_1_prt.stl" scale="0.001 0.001 0.001"/>
instead of the correct path as in the iCub 2 URDFs.
The stl problem should be fixed by https://github.com/robotology/icub-model-generator/pull/145.
(Tested it successfully)
The stl problem should be fixed by robotology/icub-model-generator#145.
(Tested it successfully)
Merged! The deployment time from icub-model-generator to icub-models can be probably be improved by migrating from Travis to GitHub Actions and using caching, but that's another story.
The stl problem should be fixed by robotology/icub-model-generator#145. (Tested it successfully)
Merged! The deployment time from icub-model-generator to icub-models can be probably be improved by migrating from Travis to GitHub Actions and using caching, but that's another story.
Model deployed after ~30 minutes, ~13 minutes of queue and 17 minutes of CI: https://github.com/robotology/icub-models/commit/29f5fddad7f9da4dbebc67e2fac13f9dcb2aaceb .
I am still not able to load the model in gazebo
. iCubV3
loads only the upperbody.
Edit: It loads only the upper-body.
Just to check, does iCubGenova09
works well instead? If you run gazebo --verbose
reveals something?
Note that there still present the regression https://github.com/robotology/icub-models/issues/50 that could create problems.
Just to check, does
iCubGenova09
works well instead? If you rungazebo --verbose
reveals something?
After a couple of reinstallation of the robotology-superbuild
I see this
The same for iCubV3
. Here the output of the terminal
sdafarra@iiticublap104:~$ gazebo -slibgazebo_yarp_clock.so --verbose
Gazebo multi-robot simulator, version 11.2.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
[Msg] Waiting for master.
Gazebo multi-robot simulator, version 11.2.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
[DEBUG] GazeboYarpClock loaded. Clock port will be /clock
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.1.84
[INFO] |yarp.os.Port| Port /clock active at tcp://192.168.1.84:10002/
[INFO] |yarp.os.Port| Port /clock/rpc active at tcp://192.168.1.84:10003/
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.1.84
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/isaac/isaac-wp1/EVAmodelFiles/generatedUrdfs/robots/isaacEvaYarp_all"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/isaac/isaac-wp1/EVAmodelFiles/generatedUrdfs"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/isaac/isaac-wp1/EVAmodelFiles/leo_description"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/gazebo/models/.git"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/iCub/robots/icubGazeboSim"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/BlockFactory"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/ICUBcontrib"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/WBToolbox"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/YCM"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/bash-completion"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/gazebo"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/iCub"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/robotology-superbuild"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/wbc"
[Err] [InsertModelWidget.cc:402] Missing model.config for model "/home/sdafarra/Software/robotology-superbuild/build/install/share/yarp"
[INFO] |yarp.devices.AnalogWrapper| No ROS group found in config file ... skipping ROS initialization.
[INFO] |yarp.os.Port| Port /icubSim/left_arm/analog:o/rpc:i active at tcp://192.168.1.84:10004/
[INFO] |yarp.devices.AnalogWrapper| AnalogServer : no ROS initialization required
[INFO] |yarp.dev.PolyDriver| Created wrapper <analogServer>. See C++ class AnalogWrapper for documentation.
[INFO] |yarp.dev.PolyDriver| Created device <gazebo_forcetorque>. See C++ class GazeboYarpForceTorqueDriver for documentation.
[INFO] |yarp.os.Port| Port /icubSim/left_arm/analog:o active at tcp://192.168.1.84:10005/
[Wrn] [msgs.cc:1842] Conversion of sensor type[force_torque] not supported.
[Wrn] [msgs.cc:1842] Conversion of sensor type[force_torque] not supported.
[INFO] |yarp.devices.AnalogWrapper| No ROS group found in config file ... skipping ROS initialization.
[INFO] |yarp.os.Port| Port /icubSim/right_arm/analog:o/rpc:i active at tcp://192.168.1.84:10006/
[INFO] |yarp.devices.AnalogWrapper| AnalogServer : no ROS initialization required
[INFO] |yarp.dev.PolyDriver| Created wrapper <analogServer>. See C++ class AnalogWrapper for documentation.
[INFO] |yarp.dev.PolyDriver| Created device <gazebo_forcetorque>. See C++ class GazeboYarpForceTorqueDriver for documentation.
[INFO] |yarp.os.Port| Port /icubSim/right_arm/analog:o active at tcp://192.168.1.84:10007/
[Wrn] [msgs.cc:1842] Conversion of sensor type[force_torque] not supported.
[Wrn] [msgs.cc:1842] Conversion of sensor type[force_torque] not supported.
[ERROR] |yarp.devices.ControlBoardWrapper| Parameter networks use deprecated syntax
[INFO] |yarp.devices.ControlBoardWrapper| /icubSim/torso : no ROS initialization required
[INFO] |yarp.devices.ControlBoardWrapper| /icubSim/torso initting YARP initialization
[INFO] |yarp.os.Port| Port /icubSim/torso/rpc:i active at tcp://192.168.1.84:10008/
[INFO] |yarp.os.Port| Port /icubSim/torso/command:i active at tcp://192.168.1.84:10009/
[INFO] |yarp.os.Port| Port /icubSim/torso/state:o active at tcp://192.168.1.84:10010/
[INFO] |yarp.os.Port| Port /icubSim/torso/stateExt:o active at tcp://192.168.1.84:10011/
[INFO] |yarp.dev.PolyDriver| Created wrapper <controlboardwrapper2>. See C++ class ControlBoardWrapper for documentation.
[DEBUG] found: torso_yaw torso_yaw
[DEBUG] found: torso_pitch torso_pitch
[DEBUG] found: torso_roll torso_roll
[DEBUG] done
[WARNING] No positionToleranceLinear value found in ini file, default one will be used!
[WARNING] No positionToleranceRevolute value found in ini file, default one will be used!
[WARNING] No max torques value found in ini file, default one will be used!
[DEBUG] max_torques: [ 2000.000000 2000.000000 2000.000000 ]
[INFO] min_stiffness param found!
[INFO] max_stiffness param found!
[INFO] min_damping param found!
[INFO] max_damping param found!
[DEBUG] min_stiffness: [ 0.000000 0.000000 0.000000 ]
[DEBUG] max_stiffness: [ 1000.000000 1000.000000 1000.000000 ]
[DEBUG] min_damping: [ 0.000000 0.000000 0.000000 ]
[DEBUG] max_damping: [ 100.000000 100.000000 100.000000 ]
[WARNING] VELOCITY_CONTROL: 'velocityControlImplementationType' param missing. Using the default value of 'direct_velocity_pid', but the parameter will be compulsory gazebo-yarp-plugins 4.
[DEBUG] Initializing Trajectory Generator with current values
[INFO] |yarp.dev.PolyDriver| Created device <gazebo_controlboard>. See C++ class GazeboYarpControlBoardDriver for documentation.
[Wrn] [Publisher.cc:136] Queue limit reached for topic /gazebo/default/user_camera/pose, deleting message. This warning is printed only once.
Indeed, by directly inspecting the iCubGazebo9 and iCubV3 models it is possible to see that those models only contain the upper body links, no sign of the lower bodies.
It seems that the iCubV3 and iCubGazebo9 models are both generated from the upperbody models, see the files used in: https://github.com/robotology/icub-model-generator/blob/master/simmechanics/CMakeLists.txt#L285 . Probably we should switch that to use the all body option, using the files provided in https://github.com/robotology/icub-model-generator/tree/master/simmechanics/data/icub3 ?
Sorry, I didn't expect that the deployment gave so many troubles, I couldn't check these issues since I always worked inside icub-model-generators
, I will work with @traversaro in order to fix the model inside icub-models
, in the meanwhile here is the model if you need to try it.
Probably you would need to copy by hand the conf files and meshes in the installation folders.
I can load the iCubV3
model now :tada: :tada:
It seems that the arms are not controlled though
It seems that the arms are not controlled though
Yes because in the asm we have only the shoulders, we thought to create yet another conf file for controlling only the shoulders like right/left_arm_no_forearm.ini
but in practice it may be not so useful since we are going to add the forearms relatively soon.
If this is problematic to you in any manner, then we can add those files ore make the shoulders fixed
Yes because in the asm we have only the shoulders, we thought to create yet another conf file for controlling only the shoulders like
right/left_arm_no_forearm.ini
but in practice it may be not so useful since we are going to add the forearms relatively soon.
Ah ok, I see. I think we are going to use it extensively starting from Wednesday, do you think that adding the forearms may require more time?
We decided to exploit the momentum and we added also the arms 💪
The PR is https://github.com/robotology/icub-model-generator/pull/147
The model changed the name from iCubV3
to iCubGazeboV3
since we had to fake the arms inertias for this issue https://github.com/robotology/icub-models/issues/53.
The model should be soon available on icub-models@devel
.
cc @maggia80 @pattacini @S-Dafarra @DanielePucci @salvi-mattia @traversaro
For the record, @GiulioRomualdi and @S-Dafarra managed to get iCub 3 (preliminarily) walking w/ the latest URDF ✨
Here I drop some issues related to the generation of the model: https://github.com/robotology/icub-models/issues/60 https://github.com/robotology/icub-models/issues/61 https://github.com/robotology/icub-models/issues/57
This PR should(https://github.com/robotology/icub-model-generator/pull/163) reduce the weight of the feet, wrongly exported by the magic button
I think the improvements on the iCub3 model will be constant for the next few years, so what do you think if we close this issue and open separate ones to track the particular improvements?
I think the improvements on the iCub3 model will be constant for the next few years, so what do you think if we close this issue and open separate ones to track the particular improvements?
Ok for me
As agreed, let's close the issue, to check all the issues related to iCub3 it is possible to check out the icub3
label: https://github.com/robotology/icub-models/labels/icub3 .
In order to start performing experiments with the iCub 3 robot, it is fundamental to have its urdf and the possibility of using it in Gazebo.
With this issue, I would like to track the generation and the issues arising when trying to use this model for the first time.
cc @pattacini, @traversaro, @fiorisi