Force Control

From Wiki for iCub and Friends
Revision as of 09:15, 7 October 2010 by Robotics (talk | contribs)
Jump to: navigation, search


iCub supporting joint level torque control

Joint level torque control as will be reported below can be achieved with iCub from version 1.2 to 1.x. Version 1.1 of the iCub has not *.ini files properly configured.

Torque Control in iCub v1.x

The version of the iCub robot starting from v1.1, are not provided with joint level torque sensing (this will be a feature of iCub v2.x). The robots from version 1.1 are equipped with proximal 6-axis force/torque (F/T) sensors.

For these robots it is possible to compute joint torques exploiting a model-based approach based on a modified Newton-Euler algorithm. These computation are performed by the wholeBodyTorqueObserver module, running on a blade. A possible rate the module should run is 10ms. This rate has been tested to give good results in terms of performances of the controller. The more the rate, the more the delay. It is a good attitude to check the time intercurring between the actual measurement of the F/T sensors and the corrisponding torque measurements that are sent to the firmware. Unfortunately, a tool performing this check is not available yet, but at least be sure that the computations are performed within the time your thread should work.

wholeBodyTorqueObserver takes measurementsfrom the 3DOF orientation tracker placed on the head and the four F/T sensors of the limbs to make a model-based estimation of joint torques, with the hypotesis that an external force is working on the end-effector.

iCubInterface provides ports for the communication with wholeBodyTorqueObserver and send "virtual" torque measurements to the DSP boards which perform joint level torque control at 1ms rate.

Datas and Ports

wholeBodyTorqueObserver and iCubInterface communicate through yarp ports the datas necessary to achieve joint level torque control. iCub ports are:

  • /icub/inertial
  • /icub/left_arm/analog:o