Gravity Compensation Torques
In order to oppose the effect of gravitational force acting across Baxter's arm, gravity compensation torques have to be applied across that arm. This is a basic mode that is active from the time the robot is enabled. The built-in gravity compensating model uses KDL for calculating the gravity compensation torques. The springs attached to the S1 joint also require compensation torques, these are found using an internal spring model and applied in conjunction with the torques from KDL. These gravity compensation torques are passed directly to the JCB through a separate channel and are applied irrespective of the controller being active.
The gravity compensation torques are available via the topic
robot/limb/<side>/gravity_compensation_torques of message type
In order to disable the gravity compensation torques, an empty message should be published to the topic
/robot/limb/<side>/suppress_gravity_compensation at greater than 5 Hz.
The fields of the Gravity Compensation Torques message:
commanded_velocity: Commanded Velocity from RealTime Loop
commanded_effort: Commanded Effort from RealTime Loop. In torque control mode this will be the torques you commanded.
In position control mode this is the integral effort applied achieving the goal positions.
actual_position: Measured Position from RealTime Loop
actual_velocity: Measured Velocity from RealTime Loop
actual_effort: Measured Effort from RealTime Loop via the Spring Deflection Sensors in each Series Elastic Actuator
gravity_model_effort: Gravity Compensation Torques Commanded
hysteresis_model_effort: Spring Compensation Torques Commanded. This is the hysterisis effort applied to account for spring joint s1
crosstalk_model_effort: Joint Crosstalk Compensation. Present here is minimal compensation for joint s1 crosstalk caused by the arm's downstream joints
hystState: A variable used in calculating the hysteresis model.