According to the documentation of ISAAC GYM, when using EFFORT control for the drive of the dof, it is mentioned that the user should provide target values per each iteration, whereas, for POS and VEL control, the user could/should only provide targets values when these change.
With this in consideration, I have doubts about the simulation’s behavior when using a non-zero number of simulation substeps. More specifically, I have doubts about the EFFORT values in the simulation between each timestep, that is, the EFFORTS applied during each substep, and used by the internal integration algorithms of the simulation.
Let’s say I have one revolut DoF, and that I am applying EFFORT control. I have a timestep of
dt=0.1s and one substeps
dt_sub=0.05. Additionally, at the beginning of my simulation
t=0.0 by DoF is at rest with no force applied
tau(t=0.0) = 0.0, before i step my simulation I set the DoF effort to
tau=10 [Nm], and at the next timestep
t=0.1 I will change my effort to `tau=20[Nm].
It is unclear to me what value of EFFORT the DoF will use during each timestep and intermediate sub-time steps. Will the effort change discontinuously, will it be interpolated, or will every substep have the efforts reset to 0?. Perhaps the image could help to understand what are the possible cases.
I believe this information is of key-value if we intend to do direct torque control.
I have a similar doubt regarding position and velocity control. Would the internal drive position and velocity errors
tau (t) = Kp * pos_error(t) * Kd * vel_error(t) be updated at each simulation SUBtimestep? or will the values of the errors be those of the previous timestep?.