V-REP : crazy behavior of r_shoulder_x

When changing the position of r_shoulder_y from -90 to 0, r_shoulder_x motor is falling down to -30° and impossible to set a position under this -30°.

I changed the torque_max of MX_28 in the configuration, it change nothing… (anyway the present load is very low !) I check mass, inertia, and all parameters, nothing different from the left arm which works good.

Here an image (r and l_shoulder_x at -90° and 90° / l and r shoulder_y at 0), the difference between each side is obvious :

What I understand is that r_shoulder_x can’t support the load and goes to -30 (with r_shoulder_y at -90 r_shoulder_x is really unloaded and it works !!!)
This is a V-REP behavior because Pypot send a good value to V-REP
If someone can help me, I think I’m going to turn mad if I continu to search…

This is with the new light poppy_respondable in V-REP but I checked with the previous heavy and slow poppy and it is the same.

I raised the problem on the v-rep support:


It is a physic engine problem. Normally it should work better with a simplified robot model…

To modify Mass and Inertia didn’t change anything at the simulation on my computer.

Vortex seems to be a really good simulation engine, but it is not free (20 seconds, a little bit short to test behavior ) :smile:

But choosing a very accurate simulation with bullet gives acceptable results, (ouf !)

Thank you Matthieu, I gonna sleep well now !


Hi Matthieu,

How do you choose the mass and the inertia for the different shapes, is it the real mass ? How do you calculate the Inertia of each shape ? Do you take care of the mass of the motor (for example the knee motor doesn’t exist in the poppy model but I guess this motor have a certain weight ?)

The answer of the coppelia robotics’s admin (http://www.forum.coppeliarobotics.com/viewtopic.php?f=5&t=3159) raise a lot of question in my mind…

Mass and inertia are computed by Solidworks (mass properties) and included in the urdf model. Normally, I specified the mass density of the 3D printing material and the motors to be as realistic as possible.

Yet the overall mass is quite low (2.5kg) while the real robot is closer to 3.5kg. There is a lot of screws and nuts and wire which are not considered but 1kg seems too much for just these additional elements.

How did you see that the knee motor was massless ?

BTW a MX28 weights 72 gr and a MX64 126gr, it can be a first way to verify if the mass of each part seems correct or not.

For the knee, there is only a join (r_knee_y) between r_thight and r_shin. There isn’t any shape. I taught a join is massless because in the properties dialog I can’t find the mass, maybe I’m wrong.

Maybe solidworks split the mass of the join in shin and thight (116 g each) ? Or solidworks just ignore the mass of the motor and It could explain the difference of about 1 kg.

So I checked a second time the overall mass of the robot:

It’s indeed 3.45kg (+ shoes :smile:). I will now check Solidworks to find where is the missing kilogram.

In solidworks, the mass for MX64 was not correct (70gr) but I changed it and checked all other parts and I’ve only reached 2,88kg so there is still 600gr missing…

(For the 3D printed part density, I use data available here: http://www.sculpteo.com/fr/specifications-techniques-materiaux)

It seems the mass of screws, nuts and electric wire is relatively important.

So I have weighed the screws:

  • screw M2x5mm: 0.17 gr
  • bolt M2x3mm: 0.17 gr
  • bolt M2.5x4mm: 0.34 gr
  • bolt M2.5x6Mm: 0.4 gr


  • 19 MX-28 --> 2819*0.17 = 51gr
  • 4 MX-64 --> 284*0.34 = 22 gr
  • fix MX --> 2623*0.4 = 110gr

400 gr remaining …

What a nice black poppy with orange shoes !!! I want the same for christmas :wink:

For the plastic, 0,9gr/cm3 is really light. It means that the plastic parts are floatting on water, is it right ?

Could you weight separatly one shin with one MX-28. You should obtain 116 gr (44g of plastic and 72g of motor). If not, the problem of weight is due to the plastic density.

What is the weight of the electronics in the head (I think less than 400 gr…)

This post could be named : how to have the better simulation with V-REP

For this, I used this [code][1] [1]: http://nbviewer.ipython.org/github/jjehl/poppy_balance/blob/master/Test_simulation_engine.ipynb

To bench the arm movement which ,you know, could be really crazy. The graph represent the gap between the goal and the present position of the arm using r_shoulder movement, it have to reach zero. Two graph for left and right arm.

1 - Engine : Bullet - Precision : accurate - time step : 25 ms

Really, bad -> impossible to use for a correct simulation.

2 - Engine : Bullet - Precision : very accurate - time step : 25 ms

better but always a big difference in position and speed.

3 - Engine : Bullet - Precision : very accurate - time step : 25 ms PID modified with I = 0,01

better for position but not for speed.

4 - Engine : Bullet - Precision : very accurate - time step : 25 ms inertia x2 for all shape
Not so bad.

5 - Engine : Bullet - Precision : very accurate - time step : 25 ms - inertia x4 - PID modified with I = 0,01

Clearly my best result.

6 - Engine : Vortex - Precision : accurate - time step : 25 ms

But Vortex is not free and slower than bullet especially on weak computer…

1 Like

I have just weighted the lower body 3D printed parts:

  • pelvis: 32 gr
  • hip: 11 gr
  • thigh: 46 gr
  • shin: 37 gr
  • foot: 51 gr

So I guess the given density is not that bad :wink: