CentroEPiaggio / kuka-lwr

Software related to the KUKA LWR 4+: for real and for simulation.
The Unlicense
101 stars 81 forks source link

Improving joint impedance controller #82

Closed hamalMarino closed 7 years ago

hamalMarino commented 7 years ago

The JointImpedanceController is at now internally computing the torque based on stiffness and damping, while it could actually use the internal JOINT_IMPEDANCE interface of the KRC. This PR address such change, while also working on resetting appropriately the flags when the command mode is changed, so that it is possible to switch between different control modes back and forth without incurring in various errors (as also commented in #67).

marcoesposito1988 commented 7 years ago

This looks goooood! Finally I manage to at least start the controller. I was always getting the FRI interpolation error with the old version. Thanks!!

Only think that I noticed: I do not manage to start the robot with this controller, I have to start with either joint_trajectory or cartesian_impedance and then switch to joint_impedance. If I start with this one, the KRL script gets stuck at "WAIT FOR $FRI_FRM_INT[2] == 1". Does it behave the same for you?

hamalMarino commented 7 years ago

Actually, we only tested successfully starting in position control mode (e.g. using joint_trajectory_controller), otherwise the same error appears. Starting with Cartesian impedance was never tested, as far as I remember.

We are working on a "safe" version of the node which won't allow position control at all, and use impedance instead: it's probably a little messy yet, but it's behaving quite well; you can have a look at pr_creating-safe-interfaces branch to get an idea, but that will change, and some commits will probably need to be in this PR.

In the meanwhile, did you test the controller? Does it work well for your setup? I hope to merge (or have someone else merge) this PR a little faster than the Cartesian Impedance one :smiley: