Joint_velocity targets never achieved and slowing down

Hi, I am trying to velocity control the RidgebackFranka robot ( RidgebackFranka/ridgeback_franka.usd) in the nvcr.io/nvidia/isaac-sim:2022.1.1 docker image.

In particular I am sending the following:

a = ArticulationAction(joint_velocities=[0.2, 0., 0.], joint_indices=[0,1,2])
self._robots.apply_action(a)

The result is the following:

  • the robot over a few timesteps achieves a max. velocity of around 0.15
  • as it moves away from the origin, it then slows down. If I change the sign of the commands, it then accelerates again in the other direction, until it is further away from the origin and slows down again

So I have two questions:

  • why does it never achieve the actual target velocity but is always a bit slower
  • why does it then slow down, even though I continue to apply the same actions at each timestep?

Thank you for your help.

Turns out even if never setting position targets, the underlying controller will assume position targets of 0. So the solution is to simulatenously pass in the current position as a target