Trajectory following using cartesian velocity controller
I can't seem to get a basic trajectory follower to work.
I have a block(prop.Block()) which I place in the scene along with Panda and install an extra sensor to get the block pose. I calculate a 100 step Cartesian trajectory of SE(3) matrices from TCP to the Block.
In step I get the current TCP pose from dm.Timestep and expected TCP pose from the trajectory above. If the current TCP pose is at the expected pose then I consider the step complete and increment to next step. If not then I do not consider the step complete. The velocity action is (expected - actual) / 0.1 (since the control timestep is 0.1)
(just setting action x,y,z and not setting any angular velocity components)
It almost seems to work except it is unstable. Looks like a classic case of wrong gains but can't seem to get it right.
Would you have any ideas?
That's odd. Looking at your video, that's not a behavior I would expect. It's possible that this behavior is a result of how I configured the controller. I will investigate and get back to you.
I am also having an issue with the Panda cartesian velocity controller. I can't see the above video but it sounds like my issue is similar.
I am using gymnasium to control a RL environment with keyboard inputs, corresponding to 1(m/s?) in the world's axes. Around 0:15 it starts to oscillate on its own, without any action given to the controller.
If you need code to replicate I can write some.
@sachinkundu @why-does-ie-still-exist Did you able to solve the issue?