/**

\page RemoveForceSensorLinkOffset

\section introduction Overview

This component is remove link's weight from force/torque sensor values.

\subsection feature Feature

Original force/torque values are provided by \ref RobotHadware RTC or hrpsys-simulator's RTC. 
Original force/torque may include by the weight force/torque of links of a
robot, which are on the tips of force/torque sensors such as hands and feet. 

This component removes the links' weight offset from force/torque. 
Out data ports are automatically generated according to VRML sensor information. 
For example, if a robot has "rhsensor", 
this component removes offset from input "rhsensor" port and 
output offset force/torque from output "off_rhsensor" port. 

Note that "off_xx" values from this component are same as "xx" values from RobotHardware by default.
This means, if zero force-moment offset and zero mass offset are specified,
"off_xx" values equal to "xx".

\subsection offsettype Offset type
Two types of offsets are considered.
1. Sensor offset (drift, ...etc) : In idl, force_offset and moment_offset
2. Link offset (hands and feets mass properties) : In idl, link_offset_centroid and link_offset_mass

\subsection frame Frame

This component requires robot's attitude sensing to know the direction
of gravity to remove weight force/torque offset. 
If the robot has imu sensors, this component uses estimated attitude
value from "rpy" input data port. 
Otherwise, this component assumes that the robot's rpy equals zero. 

\subsection parameterfile Parameter File

This component can load parameters from a file through OpenHRP::RemoveForceSensorLinkOffsetService::loadForceMomentOffsetParams().
This component can also dump parameter through OpenHRP::RemoveForceSensorLinkOffsetService::dumpForceMomentOffsetParams(). 

Each line of file should be 11 components, "sensorname force_offset_x force_offset_y force_offset_z moment_offset_x moment_offset_y moment_offset_z link_offset_centroid_x link_offset_centroid_y link_offset_centroid_z link_offset_mass".

<table>
<tr><th>implementation_id</th><td>RemoveForceSensorLinkOffset</td></tr>
<tr><th>category</th><td>example</td></tr>
</table>

\section dataports Data Ports

\subsection inports Input Ports

<table>
<tr><th>port name</th><th>data type</th><th>unit</th><th>description</th></tr>
<tr><td>qCurrent</td><td>RTC::TimedDoubleSeq</td><td>[rad]</td><td>Actual joint angles</td></tr>
<tr><td>rpy</td><td>RTC::TimedOrientation3D</td><td>[rad]</td><td>Actual attitude sensor's Roll-Pitch-Yaw angle in the world frame </td></tr>
<tr><td>name of force/torque sensor defined in a VRML model, such as "rhsensor"</td><td>RTC::TimedDoubleSeq</td><td>[N],[Nm]</td><td>raw force/torque in the sensor frame</td></tr>
</table>

\subsection outports Output Ports

<table>
<tr><th>port name</th><th>data type</th><th>unit</th><th>description</th></tr>
<tr><td>"off_" + name of force/torque sensor defined in a VRML model, such as "off_rhsensor"</td><td>RTC::TimedDoubleSeq</td><td>[N],[Nm]</td><td>offset-removed force/torque in the sensor frame</td></tr>
</table>

\section serviceports Service Ports

\subsection provider Service Providers

<table>
<tr><th>port name</th><th>interface name</th><th>service type</th><th>IDL</th><th>description</th></tr>
<tr><td>RemoveForceSensorLinkOffsetService</td><td>service0</td><td>RemoveForceSensorLinkOffsetService</td><td>\ref OpenHRP::RemoveForceSensorLinkOffsetService</td><td>RemoveForceSensorLinkOffsetService</td></tr>
</table>

\subsection consumer Service Consumers

N/A

\section configuration Configuration Variables

<table>
<tr><th>name</th><th>type</th><th>unit</th><th>default
value</th><th>description</th></tr>
<tr><td>debugLevel</td><td>int</td><td></td><td>0</td><td>debug level</td></tr>
</table>

\section conf Configuration File

N/A

 */
