Rhoban / onshape-to-robot

Converting OnShape assembly to robot definition (SDF or URDF) through OnShape API
MIT License
237 stars 55 forks source link

WARNING: part X has no dynamics (maybe it is a surface) #48

Closed kschyschtov closed 3 years ago

kschyschtov commented 3 years ago

Hello, Last year in December I generated correctly the urdf from my onshape model which contained faulty topology (although it looks good visually). The newest version of onshape-to-robot that I tried a few days ago shows a problem: WARNING: part X has no dynamics (maybe it is a surface). It creates the urdf file but without linking to an stl model. I generated again a correct urdf with v.0.3.4 so definitely something changed between the newest and that version. I am not sure if this behaviour was desired but at least it prevents me from using the newest version because I cannot change the imported model in onshape and I cannot find what causes the faulty topology.

Gregwar commented 3 years ago

Hello, Is it possible for you to share your model with me so that I can investigate ? With the new version, is it only the visualisation which is faulty or the dynamics as well ?

kschyschtov commented 3 years ago

Thanks for the prompt response. Not to share the link publicly, I sent it to your email.

The correctly generated link in urdf looks like this:

<link name="blmarm_-_wagon">
<visual>
<origin xyz="-0.464 0 -9.4168e-12" rpy="0 -0 0" />
<geometry>
<mesh filename="package://blmarm_-_wagon.stl"/>
</geometry>
<material name="blmarm_-_wagon_material">
<color rgba="0.498039 0.498039 0.498039 1.0"/>
</material>
</visual>
<collision>
<origin xyz="-0.464 0 -9.4168e-12" rpy="0 -0 0" />
<geometry>
<mesh filename="package://blmarm_-_wagon.stl"/>
</geometry>
<material name="blmarm_-_wagon_material">
<color rgba="0.498039 0.498039 0.498039 1.0"/>
</material>
</collision>
<inertial>
<origin xyz="-0.499096 -0.06075 -0.240905" rpy="0 0 0"/>
<mass value="232.515" />
<inertia ixx="98.2496" ixy="-1.36888"  ixz="0.430951" iyy="4.46862" iyz="-0.572012" izz="96.6398" />
</inertial>
</link>

while the newest version generates this:

<link name="blmarm_-_wagon">
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="0" />
<inertia ixx="0" ixy="0"  ixz="0" iyy="0" iyz="0" izz="0" />
</inertial>
</link>
Gregwar commented 3 years ago

I investigated and found the origin of the problem, I will come back to you when this is fixed (there is something inconsistent in Onshape API, so I need to talk with them before)

Gregwar commented 3 years ago

I did a fix so that v3.0.10 should work for you, but I still need to understand why

(The partId can contain slashes / which need to be escaped for some API words and not others)

neoalejo commented 3 years ago

If it helps, I also had this issue just after trying the version that solved issue #46

kschyschtov commented 3 years ago

Thanks for looking into it.

I upgraded the onshape-to-robot with command python3 -m pip install --upgrade onshape-to-robot and it installed onshape-to-robot-0.3.10.

But unfortunately, there is still the same problem with the part without the link to STL file nor other properties related to shape.

Gregwar commented 3 years ago

Hello

Indeed the STL API word also requires no escaping for slashes Can you try v0.3.11 ? :-)

kschyschtov commented 3 years ago

Still the same ;)

Gregwar commented 3 years ago

With current build I can load this in pyBullet, even if it is highly unstable:

image

This isn't working for you ?

kschyschtov commented 3 years ago

It still generates the wagon link with zeros. I uninstalled and installed again the newest version, the same. Should I do anything else to update?

Gregwar commented 3 years ago

Try to clear your cache with onshape-to-robot-clear-cache and delete STL files if they exist and are empty

kschyschtov commented 3 years ago

Yes! Clearing cache helped. It seems to generate correctly now, thanks!

Gregwar commented 3 years ago

Ok, great! I'll close this, don't hesitate to re-open or create another issue later