This page describes how to run the iCub humanoid robot as a wearable device source, by exposing its sensors measurement and joints state.
The configuration file to run iCub as wearable device is ICubWearableDevice.xml, and it can be launched with:
yarprobotinterface --config ICubWearableDevice.xml
Before running the device make sure that:
yarpserveris running- The
YARP_ROBOT_NAMEis set to the proper robot name. - The robot is currently running (either Gazebo simulator or real robot making sure it is runned with the proper configuration for whole-body-dynamics)
- If the robot is running in simulation, the
whole-body-dynamicsestimatior has to be launchedWhen the real robot is running,yarprobotinterface --config launch-wholebodydynamics.xmlwhole-body-dynamicsestimatior should be running if the robot is launched with the proper configuration. To verify if the estimator is running, you can check whether data are streamed for the end-effectors to be used as sensors (e.g./wholeBodyDynamics/right_arm/endEffectorWrench:o). - In the configuration file, the following parameters are set properly:
ft-sensors: wrenche measurements that have to be exposed as wearable data. Those measurements should be provided bywhole-body-dynamicsestimator, or directly from sensors measurement.joint-sensors: joints for which the state has to be exposed as wearable data.
The estimated wrench data computed by whole-body-dynamics may be characterized by an offset due to ft sensors meaasurement.
If using the real-robot, the following command can be sent to remove the offset (while the robot is lifted from the ground):
yarp rpc /wholeBodyDynamics/rpc
calib all 300
If instead simulated robot is used, the command is the following (while the robot is on the ground):
yarp rpc /wholeBodyDynamics/rpc
resetOffset all 300
If the device is running correctly, the stream of wearable data can be read with:
/ICub/WearableData/data:o