We need a calibration procedure to compute the offsets of the torque sensors. This could be carried out by a dedicated entity that takes as input:
joint encoders
joint torques
IMU
Force/torque sensors (only if we want the calibration to work when the robot is in contact with the environment)
This entity should have a command computeOffset that triggers the computation of the torque sensor offsets. The offset could be simply computed as the difference between the measurements and the expected joint torques (computed using the dynamic model). In the computation we could assume that the robot velocities and accelerations are null. It will be then up to the user to move the robot into a proper configuration before calling computeOffset.
The output signal of the entity should provide offset-free joint torque measurements.
in the init method it should take as input the urdf file name of the robot, which could then be used to load the pinocchio model to compute the joint torques
rather than computing the offset just once, it could compute it for a few iterations (e.g. 100) and then take the average (this would be more robust to noise)
in case the computed offset varies widely between two iterations it should print an error message to warn the user that something went wrong
We need a calibration procedure to compute the offsets of the torque sensors. This could be carried out by a dedicated entity that takes as input:
This entity should have a command
computeOffset
that triggers the computation of the torque sensor offsets. The offset could be simply computed as the difference between the measurements and the expected joint torques (computed using the dynamic model). In the computation we could assume that the robot velocities and accelerations are null. It will be then up to the user to move the robot into a proper configuration before callingcomputeOffset
.The output signal of the entity should provide offset-free joint torque measurements.