DOFs vs. Actuators

This question is related to Are URDF transmission elements supported?

What is the difference between a DOF and an actuator? When humanoid.py reads nv_humanoid.xml, gym.get_asset_dof_count(humanoid_asset) and gym.get_asset_actuator_count(humanoid_asset) both return 21. When I modify humanoid.xml to use my URDF file, I get 40 DOFs, but 0 actuators. I know that a URDF joint corresponds to a DOF, but is there anything in a URDF file that corresponds to an actuator? I am trying to determine whether I can just replace humanoid.py’s actuator code with DOF code, but it would help if I had a better idea of what an actuator does. Thanks for any help you can provide.

Hi @jim.rothrock,

The closest thing in URDF that corresponds to MJCF actuators is transmissions. We’re looking into supporting those as actuators.

The actuator API in Isaac Gym is a fairly lightweight wrapper over DOFs, so you can actually use DOF properties and DOF controls (force and PD targets) directly to accomplish anything that you can do with actuators.

It was an omission on our part to not provide actuator support for URDF assets - sorry about that! Hopefully we can rectify this soon.

Take care
– Lukasz

Hi @jim.rothrock,

I can only add to @lwawrzyniak reply that the main difference between DOF and actuator is that DOF properties characterize the model itself, its dynamic and kinematic properties, and actuators - how do we control the model. Without actuators, it is just a ragdoll. And the same robot model can be controlled in different ways - actuators can be applied to all or only some subset of DOFs, you can have PD or torque controller attached to the same joint. Moreover, actuators do not necessarily correspond to DOFs at all - if your robot model has tendons, you can use them as actuators instead of applying torques directly to joints.

Our approach to actuators is pretty similar to Mujoco actuators - to be able to fully describe the robot you need to be able to specify how it is actuated and the same physical model with the same DOF structure can have use different approaches to make it moving.