CentroEPiaggio / kuka-lwr

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

Restore gravity compensation and native KUKA position control after merge #21

Closed marcoesposito1988 closed 9 years ago

carlosjoserg commented 9 years ago

Only that fix in the script. I still would like to have one single script, but in the meantime we can work with this as well.

I should change the ros_control.src -> ros_impedance.src for consistency then.

marcoesposito1988 commented 9 years ago

Done! I am not in the lab at the moment, I will test it asap.

marcoesposito1988 commented 9 years ago

Actually after testing your master branch I am reconsidering if the position interface is at all necessary.

Before merging multi-robot-test I just couldn't use impedance mode because of all kinds of errors coming from the KUKA box, but now it works flawlessly. I guess this is because you are not sending the effort coming from the ROS PID controller anymore, but you are using the internal KUKA controller and just sending it the target position, am I right? Are you still using any custom controller with the arm?

carlosjoserg commented 9 years ago

The position interface is still needed, specially to avoid the PID tuning, which is already done by KUKA in that interface. I would leave the effort interface for people that need that for other apps, like bilateral teleoperation, etc.

I guess this is because you are not sending the effort coming from the ROS PID controller anymore,

Exactly. I'm using tau = K q_FRI ( + D(q)<-0 + tau_FRI<-0 + f_dyn() ).

This is what I call StiffnessJointInterface in #19. Right know you can control both K and q_FRI with slides. You can also fix the K, and use it as a position-controlled robot. However, it is not as precise as using the native position control strategy, that's why it is still needed. In fact, it acts as a P-controller, and K is the proportional gain, so integral and derivative terms are missing.

What I don't like so far is having to switch scripts in the robot (which implies that you need to restart FRI), and for which I'd like to have a single KRL script. But we will get to that.