Closed chauvinSimon closed 1 year ago
libfranka
. We do not pass the joint position targets to one of the joint position motion generators provided by libfranka
. Instead, we created our own TorqueGenerator
which contains our own PD controller. This outputs joint torques that are sent to the Franka. So to answer your question, we use the purple path to create an external controller, and the PD controller is not the built-in one in the FCI, it's our own PD controller for which we spent some time tuning the gains. The PD controller is not identical to what is used in training in sim.The real-robot code is currently not available publicly, but it is something that we are currently working on.
Thank you very much @ritviksingh9 for your detailed answer
This sound very efficient to overcome the impossibility to use nvidia-drivers on the PC that talks to the robot (due to the
PREEMPT_RT
kernel)!I would have two series of questions (unfortunately I could not find any additional details in the documentation / paper):
regarding the
zmq
interface:msgpack
orprotobuf
)?regarding the computer running the RT kernel for the Franka Emika robot:
FCI
vialibfranka
, isn't it?joint position
(calledqc
on thisFCI
figure) passed to ajoint position motion generator
, which is then processed by one of theFCI
internal controllers, e.g. thejoint impedance controller
, as explained here? (green path on the attached image)torques
(calledto-d
on thisFCI
figure) directly processed by anexternal controller
? (purple path on the attached image)fig.9
the targetjoint position
issued at1kHz
is converted totorques
by aPD
controller.PD
controller the built-in one ofFCI
?PD
controller also used in simulation during training (I do not think so)? And if yes are thePD
parameters identical in simulation and on the real robot?