Torque sensor

HRIM defines a torque sensor as
A device that measures the rotatory force on an axis.

So, apart from the common requirements (ID, Status, Power, Specs and Simulation, detailed in HRIM component model section), all torque sensors will contain a topic referring to publishing a torque reading.

HRIM component model: Torque sensor
URI XML MODEL ABSTRACTION CLASS
M/O
SHORT DESCRIPTION
/hrim_sensor_torque_<instance_id>/id generic/id.xml service M Ask for component identification.
/hrim_sensor_torque_<instance_id>/status generic/status.xml topic
(Pub)
M How the module is working.
/hrim_sensor_torque_<instance_id>/power generic/power.xml topic
(Pub)
M Describes the power supply type and give the information about the module power consumption.
/hrim_sensor_torque_<instance_id>/specs_comm generic/specs_comm.xml service M Ask for the communication capabilities the component offers.
/hrim_sensor_torque_<instance_id>/state_comm generic/state_comm.xml topic
(Pub)
M Published the resources that the component is using at the moment.
/hrim_sensor_torque_<instance_id>/module_3d generic/module_3d.xml service M Ask for the 3D model of the HRIM component.
/hrim_sensor_torque_<instance_id>/module_urdf generic/module_urdf.xml service M Ask for the information of the HRIM component's 3D model.
/hrim_sensor_torque_<instance_id>/specs sensor/torque/topics/specs.xml service M Ask for device features.
/hrim_sensor_torque_<instance_id>/torque sensor/torque/topics/torque.xml topic
(Pub)
M Torque reading.
Parameters
PARAMETER NAME DATA TYPE UNIT CLASS
M/O
SHORT DESCRIPTION
frame_id string M Sets the TF frame from which the Rangefinder is publishing.

Note: the {BASE} wildcard references the base topics all modules contain, defined in the HRIM component model page.

The XML notation would look like:

<?xml version="1.0"?>
<module name="torque" type="sensor" description="defines the messages to interact with a torque sensor">

  <mandatory>

    {BASE}

    <topic name="specs" type="service" description="device features" fileName="SpecsTorque">
      <response>
        <property name="max_torque" type="uint16" unit="newtons per metre" description="maximum measurable torque">
          <value></value>
        </property>
        <property name="resolution" type="float32" unit="newtons per metre" description="minimum measurable torque change">
          <value></value>
        </property>
        <property name="device_type" type="uint8" unit="enum" enum='{"STATIC": 0, "ROTARY": 1, "NONCONTACTING": 2}' description="way the sensor detects torque">
          <value></value>
        </property>
        <property name="sensor_direction" type="uint8" unit="enum" enum='{"CLOCKWISE": 0, "COUNTERCLOCKWISE": 1, "BIDIRECTIONAL": 2}' description="rotatory direction the sensor measures">
          <value></value>
        </property>
        <property name="max_rpm" type="uint32" unit="rpm" description="maximum rpm the sensor withstands">
          <value></value>
        </property>
        <property name="safe_overload" type="uint16" unit="percentage" description="maximum force the sensor withstands safely">
          <value></value>
        </property>
        <property name="max_overload" type="uint16" unit="percentage" description="maximum force the sensor withstands before total breakdown">
          <value></value>
        </property>
        <property name="min_ideal_temp" type="float32" unit="celsius" description="minimum temperature where the error margin is at it's lowest">
          <value></value>
        </property>
        <property name="max_ideal_temp" type="float32" unit="celsius" description="maximum temperature where the error margin is at it's lowest">
          <value></value>
        </property>
        <property name="min_operating_temp" type="float32" unit="celsius" description="minimum operating temperature">
          <value></value>
        </property>
        <property name="max_operating_temp" type="float32" unit="celsius" description="maximum operating temperature">
          <value></value>
        </property>
        <property name="min_error_margin" type="float32" unit="plus-minus percentage" description="average error margin while inside the ideal temperature ranges">
          <value></value>
        </property>
        <property name="max_error_margin" type="float32" unit="plus-minus percentage" description="average error margin while outside the ideal temperature ranges">
          <value></value>
        </property>
      </response>
    </topic>

    <topic name="torque" type="publish" description="torque force on the measured axis" fileName="Torque">
      <property name="header" type="header" fileName="Header" package="std_msgs">
        <value></value>
      </property>
      <property name="torque" type="float64" unit="newtons per metre" description="torque reading">
        <value></value>
      </property>
    </topic>

    <param name="frame_id" type="string" description="tf frame from which the torque sensor is publishing">
      <value></value>
    </param>

  </mandatory>
</module>