dm_robotics_panda icon indicating copy to clipboard operation
dm_robotics_panda copied to clipboard

Trajectory following using cartesian velocity controller

Open sachinkundu opened this issue 1 year ago • 3 comments

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?

Here is the code and the video

sachinkundu avatar Jan 15 '24 09:01 sachinkundu

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.

JeanElsner avatar Jan 19 '24 14:01 JeanElsner

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.

video

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.

why-does-ie-still-exist avatar May 29 '24 04:05 why-does-ie-still-exist

@sachinkundu @why-does-ie-still-exist Did you able to solve the issue?

rodriguesvinay avatar Apr 08 '25 14:04 rodriguesvinay