Motor inertia values in the PyBullet simulation


I see that this thread gives some very useful information regarding the modelling of the drive system, such as the motor inertia: Actuation Frictions Information - #2 by majid_khadiv

My understanding is that since the URDF files generated from robot_properties_solo only contain info about link geometry and inertia, the motor inertia mentioned above needs to be included in the simulation separately from the UDRF. I am assuming that this happens in the following lines of within robot_properties_solo (lines 176-180 as of writing)

# The inertia of a single blmc_motor.
motor_inertia = 0.0000045

# The motor gear ratio.
motor_gear_ration = 9.0

However, I notice that this number in the code does not correspond to any of the numbers in the drive system identification experiments in the first link above. Am I missing some factor of the gear ratio? Or are the units not what I expect it to be? Or am I misinterpreting what these numbers are?

Any guidance here would be very helpful, as I am using simulator that is not PyBullet and I am trying to add the actuator inertia to my model.

Thank you in advance,


Hello Yuni,

here is our motor rotor inertia estimate from the CAD model.

The reflected inertia seen at the output of the actuator module is 81 times higher.

That’s because the 9:1 gear ratio goes in squared.

Best, Felix

1 Like

Hi Yuni,

Yes you are right, the motor inertias need to be added to your simulation, if you’d like to have its effect. We only included the information in the robot_properties such that if someone is interested, they can use them. The rotor inertia itself is correct in the file and its unit is kgmˆ2. The reason that you see a difference between this value and the one reported in our system identification thread is that there we also have a disk mounted at the output of the joint and the identified inertia is the sum of these two inertias.
If you take a look at the following picture, you see that if we subtract the disk inertia from the estimated inertia we can retrieve the rotor inertia with 14.6% of error which might be due to the inertia of other parts of the drive system such as belts and pulleys for instance.
In conclusion, if you wanna add the effect of rotor inertia to the simulation, I would say the values in the robot_properties_solo are good enough.



Hi Felix and Majid,

Thank you very much for the very detailed and quick responses.

Thank you for the clarification regarding the inertia values–this all makes perfect sense to me now.

14.6% error in the system identification experiments seems quite small to me, considering that there are many unmodelled effects such as belts dynamics, etc. This gives me good confidence when using the provided rotor inertia value, and saves us the hassle of having to experimentally confirm the values ourselves!

Many thanks,