Batou1406 / dls_orbit_bat_private

Unified framework for robot learning built on NVIDIA Isaac Sim
https://isaac-orbit.github.io/orbit/
Other
1 stars 0 forks source link

[Bug Report] Robot is assigned initial Torque or Velocity when reseted #15

Closed Batou1406 closed 7 months ago

Batou1406 commented 7 months ago

Robot is assigned initial Torque or Velocity when reseted

After long investigation of the robot's behaviour, I couldn't explain why the robot was jumping after a reset. For sure this causes problem during training and prevent the policy to reach the maximum episode length every time.

I deactivated every actions the model base action could have on the robot : ie. I removed that line which applied the computed Torques to the asset. self._asset.set_joint_effort_target(self.u)#, joint_ids=self._joint_ids) The following behaviour can then observed which don't make sense since absolutly no torque are supposed to be applied to the robot : Screencast from 08. 05. 24 14:19:18.webm

Next step

This is clearly a error in the implementation or a bug of some kind. I have to find where it comes from and fix it.

Batou1406 commented 7 months ago

I tried with Go2 also, The Go2 don't jump but the joints are indeed assigned a velocity and a torque

Batou1406 commented 7 months ago

Note on Articulation

Orbit uses actuators models. The Aliengo is configured with DCMotor actuators who belong to the category of explicit actuators. These actuators have a PD controller enabled and can take three input :

To compute the final Torque as follow $\tau_{j, computed} = kP * (q - q{des}) + kD * (\dot{q} - \dot q{des}) + \tau_{ff}$

With $K_P$ the stiffness and $K_D$ the damping of the DCMotor.

Eventhough, I only used the function set_joint_effort_target, it still had the PD controller active and the position and velocity reference set as None were treated as zeros. The short term solution will be to set the damping and stiffness to zero in the Aliengo ArticulationCfg definition. However, one should consider changing the type of actuator for the long term solution.

Conclusion

The issue is now fixed and the correct behaviour when no torque are applied can be observed : Screencast from 08. 05. 24 16:14:34.webm.