Kinovarobotics / Kinova-kortex2_Gen3_G3L

Code examples and API documentation for KINOVA® KORTEX™ robotic arms
https://www.kinovarobotics.com/
Other
118 stars 87 forks source link

(Torque) Calibration #189

Open sophielueth opened 12 months ago

sophielueth commented 12 months ago

Dear Kinova Team,

we wanted to calibrate the torque sensors in our Kinova Gen3. Looking for the correct interface in the documentation, I found this. I am wondering what the parameters global_gain (float), global_offset (float), gain (float [] of length 4) and offset (float [] of length 4) represent, that exist for each actuator (see e.g. here. I assume the torque sensors to be strain gauges and therefore only expected one gain and one offset per sensor for a linear mapping.

Could you please elaborate on how these parameters are used and how they were identified?

On another note: I also came across the class CalibrationItem here. It contains COGGING, MAGNETIC, MOTORand POSITION_RANGE. What parameters exactly are calibrated here?

Thank you!

kyilmazKinova commented 12 months ago

Hi, you should use the WebApp. Simply position your Gen3 in a candle pose then, on the WebApp, navigate to "Configurations/Robot/Actuators/ActuatorX". For every Actuator, click on "Set Offset".

Best regards,

sophielueth commented 12 months ago

Hi kyilmazKinova,

Thank you for your fast answer! I understand that clicking "set offset" will set the offset of the torque sensors (probably the TorqueOffset shown here). This limits calibration to one static parameter but does not allow me to influence the readings of the robot when under load (apart from that offset, which is added).

I want to understand to what extent I can adjust/calibrate the robot's sensors. The function WriteTorqueCalibration which is part of ActuatorConfigClient takes a Torque Calibration object as input. This object has the parameters global_gain, global_offset, gain and offset.

Could you please elaborate on how these parameters are used and how they were identified?

(And I'm still interested in information about the class CalibrationItem here.)

Best,

martinleroux commented 2 months ago

Hi @sophielueth ,

Apologies for the very late response. Our internal tracking of this issue was lost when Kevin left Kinova.

The Kortex API exposes some functions that are intended for internal use only (this is an issue we have solved for Link 6 but have yet to backport on Gen3). Torque calibration is one of them.

While it is technically possible to use the WriteTorqueCalibration function to overwrite our calibration, you would not be able to modify the model itself. I also assure you that the equipment we use in our production line is most likely more accurate with this model than what you would be able to obtain in a lab environment. For this reason, I strongly advise against trying to modify the torque calibration.