matthias-mayr / Cartesian-Impedance-Controller

A C++ implementation of Cartesian impedance control for torque-controlled manipulators with ROS bindings.
https://matthias-mayr.github.io/Cartesian-Impedance-Controller/
BSD 3-Clause "New" or "Revised" License
212 stars 32 forks source link

Slow execution of (moveit) trajectory #8

Closed LuukvandenBent closed 1 year ago

LuukvandenBent commented 1 year ago

The execution of trajectories generated by moveit seem really slow. Even with high stiffness; translation up to 2000. They work well when executed by a position controller. The movement seems to be slower than commanded, and after finishing, the controller returns a successful execution. However, it is not at the final position yet and the arm still moves closer to the end goal, even after 'finishing' the trajectory. (Tried on Franka Panda/FR3)

LuukvandenBent commented 1 year ago

.... I figured it out again... Sorry for posting these issues that i resolve myself, but i hope it can help someone else maybe. So what caused the delay is the filtering of the pose. Normally this is set at 0.1, but since my moveit trajectories were running at 10hz this was wayyy to much. So I disabled it by setting it to 1.0 and seems to work fine now.

matthias-mayr commented 1 year ago

Yep, I put such strong filtering as a default to make it a bit more beginner friendly and not have people crash their robot if they send a new reference pose manually. I also typically turn on the extra tf frames to see where the reference frame is currently located.

FYI: For simple Cartesian linear trajectories, there's a trajectory generator here.