roboticslab-uc3m / kinematics-dynamics

Kinematics and dynamics solvers and controllers.
https://robots.uc3m.es/kinematics-dynamics/
GNU Lesser General Public License v2.1
19 stars 12 forks source link

Impedance control in cartesian space #195

Closed PeterBowman closed 1 year ago

PeterBowman commented 1 year ago

As a follow-up to https://github.com/roboticslab-uc3m/kinematics-dynamics/issues/194, let's add some spring-like behavior to the ftCompensation app now that it knows how to convert FT sensor data into cartesian force commands while performing gravity compensation.

PeterBowman commented 1 year ago

Done at https://github.com/roboticslab-uc3m/kinematics-dynamics/commit/488028bcb8d9043c3cd6f208de4eded5e857e4ef. There is a lot of friction mainly in the elbow joint that should be somehow compensated in the low-level (https://github.com/roboticslab-uc3m/yarp-devices/issues/261), but for now it seems to work well in orientations (Y and Z axes) with this configuration:

ftCompensation --from ftCompensation-stump.ini --mode wrench \
               --sensorName ch0 --sensorRemote /jr3 \
               --cartesianRemote /teo/leftArm/CartesianControl \
               --linGain 1 --rotGain 1 \
               --linStiffness 250 --rotStiffness 10 \
               --linDamping 0 --rotDamping 1

Note this could have been implemented as an add-on for the GCMP command in BasicCartesianControl. Such attempt was initiated in https://github.com/roboticslab-uc3m/kinematics-dynamics/compare/6e78a53...b8ed4ca and explained in https://github.com/roboticslab-uc3m/yarp-devices/issues/258, but discarded (for now) to focus on low-level joint impedance control.

jgvictores commented 1 year ago

Just for the historic, and completely low priority, would a video be possible (maybe of this vs gcmp)?