<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>__init__.py</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/python_lib/sr_robot_lib/</path>
    <filename>____init_____8py</filename>
    <namespace>sr_robot_lib</namespace>
  </compound>
  <compound kind="file">
    <name>biotac.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>biotac_8cpp</filename>
    <includes id="biotac_8hpp" name="biotac.hpp" local="yes" imported="no">sr_robot_lib/biotac.hpp</includes>
    <namespace>tactiles</namespace>
    <member kind="define">
      <type>#define</type>
      <name>TACTILE_DATA_LENGTH_BYTES</name>
      <anchorfile>biotac_8cpp.html</anchorfile>
      <anchor>af841069592daea39a6cdbdefb410c867</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>biotac.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>biotac_8hpp</filename>
    <includes id="generic__tactiles_8hpp" name="generic_tactiles.hpp" local="yes" imported="no">sr_robot_lib/generic_tactiles.hpp</includes>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">tactiles::Biotac</class>
    <namespace>tactiles</namespace>
  </compound>
  <compound kind="file">
    <name>compute_joint_0_target.py</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/examples/</path>
    <filename>compute__joint__0__target_8py</filename>
    <class kind="class">compute_joint_0_target::Merger</class>
    <namespace>compute_joint_0_target</namespace>
    <member kind="variable">
      <type></type>
      <name>anonymous</name>
      <anchorfile>namespacecompute__joint__0__target.html</anchorfile>
      <anchor>a8f17d3895c9e6764ccaf290ecab55e1d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>merger</name>
      <anchorfile>namespacecompute__joint__0__target.html</anchorfile>
      <anchor>ac1fbc6fb27508ef5269d0a7e96a62d6f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>etherCAT_hand_lib.py</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/python_lib/sr_robot_lib/</path>
    <filename>etherCAT__hand__lib_8py</filename>
    <class kind="class">sr_robot_lib::etherCAT_hand_lib::EtherCAT_Hand_Lib</class>
    <namespace>sr_robot_lib::etherCAT_hand_lib</namespace>
  </compound>
  <compound kind="file">
    <name>generic_tactiles.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>generic__tactiles_8cpp</filename>
    <includes id="generic__tactiles_8hpp" name="generic_tactiles.hpp" local="yes" imported="no">sr_robot_lib/generic_tactiles.hpp</includes>
    <namespace>tactiles</namespace>
    <member kind="define">
      <type>#define</type>
      <name>TACTILE_DATA_LENGTH_BYTES</name>
      <anchorfile>generic__tactiles_8cpp.html</anchorfile>
      <anchor>af841069592daea39a6cdbdefb410c867</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>generic_tactiles.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>generic__tactiles_8hpp</filename>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <includes id="sensor__updater_8hpp" name="sensor_updater.hpp" local="yes" imported="no">sr_robot_lib/sensor_updater.hpp</includes>
    <class kind="class">tactiles::GenericTactiles</class>
    <namespace>tactiles</namespace>
  </compound>
  <compound kind="file">
    <name>generic_updater.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>generic__updater_8cpp</filename>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>generic_updater.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>generic__updater_8hpp</filename>
    <class kind="class">generic_updater::GenericUpdater</class>
    <class kind="struct">generic_updater::UpdateConfig</class>
    <namespace>generic_updater</namespace>
    <namespace>operation_mode</namespace>
    <namespace>operation_mode::device_update_state</namespace>
    <member kind="enumeration">
      <type></type>
      <name>DeviceUpdateState</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INITIALIZATION</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53a8d01f932abb0893d366f11d7b549410f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OPERATION</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53a73fcb6d2534877e981b54876ab21c8ba</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>mainpage.dox</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/</path>
    <filename>mainpage_8dox</filename>
  </compound>
  <compound kind="file">
    <name>motor_data_checker.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>motor__data__checker_8cpp</filename>
    <includes id="motor__data__checker_8hpp" name="motor_data_checker.hpp" local="yes" imported="no">sr_robot_lib/motor_data_checker.hpp</includes>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>motor_data_checker.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>motor__data__checker_8hpp</filename>
    <includes id="sr__joint__motor_8hpp" name="sr_joint_motor.hpp" local="yes" imported="no">sr_robot_lib/sr_joint_motor.hpp</includes>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">generic_updater::MessageChecker</class>
    <class kind="class">generic_updater::MessageFromMotorChecker</class>
    <class kind="class">generic_updater::MotorDataChecker</class>
    <class kind="class">generic_updater::SlowMessageFromMotorChecker</class>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>motor_updater.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>motor__updater_8cpp</filename>
    <includes id="motor__updater_8hpp" name="motor_updater.hpp" local="yes" imported="no">sr_robot_lib/motor_updater.hpp</includes>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>motor_updater.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>motor__updater_8hpp</filename>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">generic_updater::MotorUpdater</class>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>motor_updater_test.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/test/</path>
    <filename>motor__updater__test_8cpp</filename>
    <includes id="motor__updater_8hpp" name="motor_updater.hpp" local="yes" imported="no">sr_robot_lib/motor_updater.hpp</includes>
    <class kind="class">MotorUpdaterTest</class>
    <class kind="struct">UpdaterResult</class>
    <member kind="define">
      <type>#define</type>
      <name>COMMAND_TYPE</name>
      <anchorfile>motor__updater__test_8cpp.html</anchorfile>
      <anchor>aa503261304326062f6486a08d187ac03</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>motor__updater__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>motor__updater__test_8cpp.html</anchorfile>
      <anchor>a77ccf2a65a39d0a7919aba00e47385de</anchor>
      <arglist>(Utils, motor_updater_freq_low_tolerancy)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>motor__updater__test_8cpp.html</anchorfile>
      <anchor>a643bc3aa6c522d5fa340a97374f9ef3d</anchor>
      <arglist>(Utils, motor_updater_freq_medium_tolerancy)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>motor__updater__test_8cpp.html</anchorfile>
      <anchor>a50c410a83278153ed02bd2c6977c4818</anchor>
      <arglist>(Utils, motor_updater_freq_high_tolerancy)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>muscle_updater.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>muscle__updater_8cpp</filename>
    <includes id="muscle__updater_8hpp" name="muscle_updater.hpp" local="yes" imported="no">sr_robot_lib/muscle_updater.hpp</includes>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>muscle_updater.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>muscle__updater_8hpp</filename>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">generic_updater::MuscleUpdater</class>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>sensor_updater.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sensor__updater_8cpp</filename>
    <includes id="sensor__updater_8hpp" name="sensor_updater.hpp" local="yes" imported="no">sr_robot_lib/sensor_updater.hpp</includes>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>sensor_updater.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sensor__updater_8hpp</filename>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">generic_updater::SensorUpdater</class>
    <namespace>generic_updater</namespace>
  </compound>
  <compound kind="file">
    <name>setup.py</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/</path>
    <filename>setup_8py</filename>
    <namespace>setup</namespace>
    <member kind="variable">
      <type></type>
      <name>setup_args</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>a504ffa482edfe0eff08f64b2f5dff0e9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>shadow_PSTs.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>shadow__PSTs_8cpp</filename>
    <includes id="shadow__PSTs_8hpp" name="shadow_PSTs.hpp" local="yes" imported="no">sr_robot_lib/shadow_PSTs.hpp</includes>
    <namespace>tactiles</namespace>
    <member kind="define">
      <type>#define</type>
      <name>TACTILE_DATA_LENGTH_BYTES</name>
      <anchorfile>shadow__PSTs_8cpp.html</anchorfile>
      <anchor>af841069592daea39a6cdbdefb410c867</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>shadow_PSTs.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>shadow__PSTs_8hpp</filename>
    <includes id="generic__tactiles_8hpp" name="generic_tactiles.hpp" local="yes" imported="no">sr_robot_lib/generic_tactiles.hpp</includes>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">tactiles::ShadowPSTs</class>
    <namespace>tactiles</namespace>
  </compound>
  <compound kind="file">
    <name>sr_joint_motor.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__joint__motor_8hpp</filename>
    <class kind="struct">shadow_joints::Joint</class>
    <class kind="struct">shadow_joints::JointToMuscle</class>
    <class kind="struct">shadow_joints::JointToSensor</class>
    <class kind="class">shadow_joints::MotorWrapper</class>
    <class kind="class">shadow_joints::MuscleDriver</class>
    <class kind="class">shadow_joints::MuscleWrapper</class>
    <class kind="struct">shadow_joints::PartialJointToSensor</class>
    <class kind="class">shadow_joints::SrActuatorWrapper</class>
    <namespace>shadow_joints</namespace>
    <member kind="typedef">
      <type>threadsafe::Map&lt; boost::shared_ptr&lt; shadow_robot::JointCalibration &gt; &gt;</type>
      <name>CalibrationMap</name>
      <anchorfile>namespaceshadow__joints.html</anchorfile>
      <anchor>a635ffd5f65102142a81950f86837be14</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sr_motor_hand_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sr__motor__hand__lib_8cpp</filename>
    <includes id="sr__motor__hand__lib_8hpp" name="sr_motor_hand_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_motor_hand_lib.hpp</includes>
    <includes id="shadow__PSTs_8hpp" name="shadow_PSTs.hpp" local="yes" imported="no">sr_robot_lib/shadow_PSTs.hpp</includes>
    <namespace>shadow_robot</namespace>
  </compound>
  <compound kind="file">
    <name>sr_motor_hand_lib.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__motor__hand__lib_8hpp</filename>
    <includes id="sr__motor__robot__lib_8hpp" name="sr_motor_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_motor_robot_lib.hpp</includes>
    <class kind="class">shadow_robot::SrMotorHandLib</class>
    <namespace>shadow_robot</namespace>
  </compound>
  <compound kind="file">
    <name>sr_motor_robot_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sr__motor__robot__lib_8cpp</filename>
    <includes id="sr__motor__robot__lib_8hpp" name="sr_motor_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_motor_robot_lib.hpp</includes>
    <namespace>shadow_robot</namespace>
    <member kind="define">
      <type>#define</type>
      <name>error_flag_names</name>
      <anchorfile>sr__motor__robot__lib_8cpp.html</anchorfile>
      <anchor>a263b3eff3e4c28be48ea6c6e1b277561</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SERIOUS_ERROR_FLAGS</name>
      <anchorfile>sr__motor__robot__lib_8cpp.html</anchorfile>
      <anchor>a524d457ba8cc46f4d97252483fa09a45</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sr_motor_robot_lib.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__motor__robot__lib_8hpp</filename>
    <includes id="sr__robot__lib_8hpp" name="sr_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_robot_lib.hpp</includes>
    <includes id="motor__updater_8hpp" name="motor_updater.hpp" local="yes" imported="no">sr_robot_lib/motor_updater.hpp</includes>
    <includes id="motor__data__checker_8hpp" name="motor_data_checker.hpp" local="yes" imported="no">sr_robot_lib/motor_data_checker.hpp</includes>
    <class kind="class">shadow_robot::SrMotorRobotLib</class>
    <namespace>shadow_robot</namespace>
  </compound>
  <compound kind="file">
    <name>sr_muscle_hand_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sr__muscle__hand__lib_8cpp</filename>
    <includes id="sr__muscle__hand__lib_8hpp" name="sr_muscle_hand_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_muscle_hand_lib.hpp</includes>
    <includes id="shadow__PSTs_8hpp" name="shadow_PSTs.hpp" local="yes" imported="no">sr_robot_lib/shadow_PSTs.hpp</includes>
    <namespace>shadow_robot</namespace>
  </compound>
  <compound kind="file">
    <name>sr_muscle_hand_lib.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__muscle__hand__lib_8hpp</filename>
    <includes id="sr__muscle__robot__lib_8hpp" name="sr_muscle_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_muscle_robot_lib.hpp</includes>
    <class kind="class">shadow_robot::SrMuscleHandLib</class>
    <namespace>shadow_robot</namespace>
  </compound>
  <compound kind="file">
    <name>sr_muscle_robot_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sr__muscle__robot__lib_8cpp</filename>
    <includes id="sr__muscle__robot__lib_8hpp" name="sr_muscle_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_muscle_robot_lib.hpp</includes>
    <namespace>shadow_robot</namespace>
    <member kind="define">
      <type>#define</type>
      <name>error_flag_names</name>
      <anchorfile>sr__muscle__robot__lib_8cpp.html</anchorfile>
      <anchor>a263b3eff3e4c28be48ea6c6e1b277561</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SERIOUS_ERROR_FLAGS</name>
      <anchorfile>sr__muscle__robot__lib_8cpp.html</anchorfile>
      <anchor>a524d457ba8cc46f4d97252483fa09a45</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sr_muscle_robot_lib.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__muscle__robot__lib_8hpp</filename>
    <includes id="sr__robot__lib_8hpp" name="sr_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_robot_lib.hpp</includes>
    <includes id="muscle__updater_8hpp" name="muscle_updater.hpp" local="yes" imported="no">sr_robot_lib/muscle_updater.hpp</includes>
    <class kind="class">shadow_robot::SrMuscleRobotLib</class>
    <namespace>shadow_robot</namespace>
    <member kind="define">
      <type>#define</type>
      <name>NUM_MUSCLE_DRIVERS</name>
      <anchorfile>sr__muscle__robot__lib_8hpp.html</anchorfile>
      <anchor>a1356fc07ecaeff01333f33ecbd3d76b7</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sr_robot_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>sr__robot__lib_8cpp</filename>
    <includes id="sr__robot__lib_8hpp" name="sr_robot_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_robot_lib.hpp</includes>
    <includes id="shadow__PSTs_8hpp" name="shadow_PSTs.hpp" local="yes" imported="no">sr_robot_lib/shadow_PSTs.hpp</includes>
    <includes id="biotac_8hpp" name="biotac.hpp" local="yes" imported="no">sr_robot_lib/biotac.hpp</includes>
    <includes id="UBI0_8hpp" name="UBI0.hpp" local="yes" imported="no">sr_robot_lib/UBI0.hpp</includes>
    <includes id="motor__updater_8hpp" name="motor_updater.hpp" local="no" imported="no">sr_robot_lib/motor_updater.hpp</includes>
    <namespace>shadow_robot</namespace>
    <member kind="define">
      <type>#define</type>
      <name>error_flag_names</name>
      <anchorfile>sr__robot__lib_8cpp.html</anchorfile>
      <anchor>a263b3eff3e4c28be48ea6c6e1b277561</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SERIOUS_ERROR_FLAGS</name>
      <anchorfile>sr__robot__lib_8cpp.html</anchorfile>
      <anchor>a524d457ba8cc46f4d97252483fa09a45</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sr_robot_lib.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>sr__robot__lib_8hpp</filename>
    <includes id="sr__joint__motor_8hpp" name="sr_joint_motor.hpp" local="yes" imported="no">sr_robot_lib/sr_joint_motor.hpp</includes>
    <includes id="generic__tactiles_8hpp" name="generic_tactiles.hpp" local="yes" imported="no">sr_robot_lib/generic_tactiles.hpp</includes>
    <class kind="class">shadow_robot::CoupledJoint</class>
    <class kind="union">crc_unions::CRCUnion</class>
    <class kind="class">shadow_robot::SrRobotLib</class>
    <namespace>crc_unions</namespace>
    <namespace>operation_mode</namespace>
    <namespace>operation_mode::robot_state</namespace>
    <namespace>shadow_robot</namespace>
    <member kind="typedef">
      <type>CRCUnion</type>
      <name>union16</name>
      <anchorfile>namespacecrc__unions.html</anchorfile>
      <anchor>a8961584d761bd7fb2c215e671b0cf7f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>RobotState</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INITIALIZATION</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651ae79c3a714b478b24200b15b56397e3ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OPERATION</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651acd55ec55c22bcafb303449be732b5aef</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SHUTDOWN</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651a81a061b1c31ecf239ca03ba42963c764</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>test_robot_lib.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/test/</path>
    <filename>test__robot__lib_8cpp</filename>
    <includes id="sr__motor__hand__lib_8hpp" name="sr_motor_hand_lib.hpp" local="yes" imported="no">sr_robot_lib/sr_motor_hand_lib.hpp</includes>
    <class kind="class">HandLibTest</class>
    <class kind="class">HandLibTestProtected</class>
    <class kind="class">TestHandLib</class>
    <member kind="define">
      <type>#define</type>
      <name>COMMAND_TYPE</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>aa503261304326062f6486a08d187ac03</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>error_flag_names</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a263b3eff3e4c28be48ea6c6e1b277561</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>STATUS_TYPE</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>aa2cc8c93a1c2d22358ad92c3ed65e86e</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a223b73d56106d1e3aa6ff53a034cc390</anchor>
      <arglist>(SrRobotLib, Initialization)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a2cf912fa8811a894dab51eb6cbc9272c</anchor>
      <arglist>(SrRobotLib, ConfigParsing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a75d7edb1558a75ec7ca2610a3cb45162</anchor>
      <arglist>(SrRobotLib, CalibrateJoint)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a73e26ba653d109da4289d56d898edd44</anchor>
      <arglist>(SrRobotLib, TimedCalibrateJoint)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>aba920b89d109fbbf4f2eac858b66221a</anchor>
      <arglist>(SrRobotLib, UpdateMotor)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a1365453ffd73a340edb60ecd3d871598</anchor>
      <arglist>(SrRobotLib, UpdateActuators)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__robot__lib_8cpp.html</anchorfile>
      <anchor>a06a6ee146c7f4d2886f993d297b27cb1</anchor>
      <arglist>(SrRobotLib, HumanizeFlags)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>UBI0.cpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/src/</path>
    <filename>UBI0_8cpp</filename>
    <includes id="UBI0_8hpp" name="UBI0.hpp" local="yes" imported="no">sr_robot_lib/UBI0.hpp</includes>
    <namespace>tactiles</namespace>
    <member kind="define">
      <type>#define</type>
      <name>TACTILE_DATA_LENGTH_BYTES</name>
      <anchorfile>UBI0_8cpp.html</anchorfile>
      <anchor>af841069592daea39a6cdbdefb410c867</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>UBI0.hpp</name>
    <path>/tmp/ws/src/sr_ethercat/sr_robot_lib/include/sr_robot_lib/</path>
    <filename>UBI0_8hpp</filename>
    <includes id="generic__tactiles_8hpp" name="generic_tactiles.hpp" local="yes" imported="no">sr_robot_lib/generic_tactiles.hpp</includes>
    <includes id="generic__updater_8hpp" name="generic_updater.hpp" local="yes" imported="no">sr_robot_lib/generic_updater.hpp</includes>
    <class kind="class">tactiles::UBI0</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt;</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt;</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt;</class>
    <namespace>tactiles</namespace>
  </compound>
  <compound kind="class">
    <name>tactiles::Biotac</name>
    <filename>classtactiles_1_1Biotac.html</filename>
    <templarg></templarg>
    <templarg></templarg>
    <base>tactiles::GenericTactiles</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a692ea11ed0788dc4ede0ca61a29db92d</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Biotac</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a899f9982e693cc66559a17130664ec19</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Biotac</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a876cbc99427d812f28db237e158716c1</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a788ad80719a30e36a218050f292d7245</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a3cc2105ec3ff949861eff754db21e83c</anchor>
      <arglist>(std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a315e2773488d21e575651021f3e62e68</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_version_specific_details</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a0ca13ee7a56a00d2baad1fc4417f779c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a935a3a82377714592f543f96bd583748</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>size_t</type>
      <name>nb_electrodes_</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>ab997af89c03176bab859d02f7483216e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const size_t</type>
      <name>nb_electrodes_v1_</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a9c0efe3971bb0c50c6d052fdd4208747</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const size_t</type>
      <name>nb_electrodes_v2_</name>
      <anchorfile>classtactiles_1_1Biotac.html</anchorfile>
      <anchor>a61163f3ff79089884c89aafa2ad8cb87</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::CoupledJoint</name>
    <filename>classshadow__robot_1_1CoupledJoint.html</filename>
    <member kind="function">
      <type></type>
      <name>CoupledJoint</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a2e3ff1e7dd3ae4e4496f3f376e9f1507</anchor>
      <arglist>(std::string joint_name, std::string joint_sibling_name, std::vector&lt; double &gt; raw_values_coupled_vector, std::vector&lt; double &gt; calibrated_values_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~CoupledJoint</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>ab766703f2f4f56980f83511787d23b4b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; double &gt;</type>
      <name>calibrated_values_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>abad721a1b375661967d43980ca959444</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>calibration_points_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>ae04ad2a1c9591a43d9f804250465741a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; int &gt;</type>
      <name>element_neighbor_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a489ec41c2892b547c2c03ca45acc220c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>element_num_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>aab9856a4368310850bb4cd3a0b61c434</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>name_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>ad6181bee32492b7a5d59d5cff9a49583</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const int</type>
      <name>nb_surrounding_points_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a4419981e832f1c4bacc4c8ec8585a224</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; double &gt;</type>
      <name>raw_values_coupled_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a879d0362ee0d331f301b0dfe57c6c04d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>sibling_name_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a2247b9a1d7187e86137b3afcadb89ae5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>total_points_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a820b64b17e00e99df35094e2f09ee4c6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; int &gt;</type>
      <name>triangle_</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a2dca65bdecee67eb3357e6f6018158ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>process_calibration_values</name>
      <anchorfile>classshadow__robot_1_1CoupledJoint.html</anchorfile>
      <anchor>a23a5ca95ffb9cc5cd0a8f910ffb6e625</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="union">
    <name>crc_unions::CRCUnion</name>
    <filename>unioncrc__unions_1_1CRCUnion.html</filename>
    <member kind="variable">
      <type>int8u</type>
      <name>byte</name>
      <anchorfile>unioncrc__unions_1_1CRCUnion.html</anchorfile>
      <anchor>a8470fbbe65d4d2421fbcc63e55a87b5f</anchor>
      <arglist>[2]</arglist>
    </member>
    <member kind="variable">
      <type>int16u</type>
      <name>word</name>
      <anchorfile>unioncrc__unions_1_1CRCUnion.html</anchorfile>
      <anchor>a4ed4a98d76e9d4ff613328c50995cd20</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>sr_robot_lib::etherCAT_hand_lib::EtherCAT_Hand_Lib</name>
    <filename>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</filename>
    <member kind="function">
      <type>def</type>
      <name>__init__</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a46241079e6cfbde8a469bd898c880153</anchor>
      <arglist>(self)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>activate</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a7826a7ec4443a8258732d66f0fda96fd</anchor>
      <arglist>(self)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>activate_joint_states</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a1d47e66787e6f3f8d7e2f746075b13a2</anchor>
      <arglist>(self)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>debug_callback</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>aed960d8232b7d81d3cf1ed013ee83183</anchor>
      <arglist>(self, msg)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>get_average_raw_value</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>acb2b2da3b77c19ca5a605c6aeb194c2f</anchor>
      <arglist>(self, sensor_name, number_of_samples=10, accept_zeros=True)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>get_effort</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a369181564e691ef5e81ffe82a5cf8d4c</anchor>
      <arglist>(self, joint_name)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>get_position</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a046db0a88d795c6aa19428a099398c74</anchor>
      <arglist>(self, joint_name)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>get_raw_value</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>ab4ebfd31eb2a75370ca4f4156aa5343c</anchor>
      <arglist>(self, sensor_name)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>get_velocity</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a2099b4974ca01272fb8b3b1770e772ff</anchor>
      <arglist>(self, joint_name)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>joint_state_callback</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>abc5d42f3f57a993e88a4c1943843c100</anchor>
      <arglist>(self, msg)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>on_close</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a0a156e64fbcde27c6760c8964918dbb2</anchor>
      <arglist>(self)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>sendupdate</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>aa9963c0bffbb68d4ea42abd6e31dfe57</anchor>
      <arglist>(self, joint_name, target, controller_type=&quot;effort&quot;)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>set_pid</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a75d57a218f2859df6346b4a01da72ff2</anchor>
      <arglist>(self, joint_name, pid_parameters)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>start_record</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a87cfec8caf414a1969538a84cd93916d</anchor>
      <arglist>(self, joint_name, callback)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>stop_record</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a187338e63b7c40aefd1e4d55910e159a</anchor>
      <arglist>(self, joint_name)</arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>callback</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a0199d98344e24fdb4d3fdc03ba7026c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>compounds</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a05f97e9e584468a6bb6feef369fe7b18</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>debug_subscriber</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>aecc2390232332313e896de897a5ecf06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>efforts</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a96fa0a4f0c23df64bc61a8175c8e5f13</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>hand_finder</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>aeb917a697581b2430819066a1a4fb87d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>hand_id</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a4060acb233175d08f0d5f0c5b7c4a33c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>hand_params</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a44d6b041c2a083de7ed52f5179279724</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>joint_state_subscriber</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>ace823c61aa613978bbe3c1028b04c9c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>msg_to_send</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a849b4a87f8353538ab1c8b3732524466</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>pid_services</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>accf76af69666e71449bae0aafe2e2611</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>positions</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a2ec39a8218c2bd26cf106e14df9e8d7f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>publishers</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a5e5705c270d246cc2dc448a42188d984</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>raw_values</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a167d769d900432884b4d6121be0e2f63</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>record_js_callback</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>ac4e7d3e701b267660f838ca25b024f17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>velocities</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>ac3761f52986fbc8fd3cf510405a431a7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>list</type>
      <name>sensors</name>
      <anchorfile>classsr__robot__lib_1_1etherCAT__hand__lib_1_1EtherCAT__Hand__Lib.html</anchorfile>
      <anchor>a54537e48bd57c68fd12d32e25ad2277f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::GenericTactiles</name>
    <filename>classtactiles_1_1GenericTactiles.html</filename>
    <templarg>StatusType</templarg>
    <templarg>CommandType</templarg>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aad465a4de4ac1f8552c6b41974f4cdf2</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a67d417f5e8a87234e6604eaf131e5ed0</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aafcb744d67a05b29c385419de337f785</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aac246b78455cc48e70f321293eb35f77</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a5ec248e6fd9377da5f2ecd68dcccf50d</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a63001a63417a7c0a7d87eb419b7f36d8</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab1115eed2c8fd1f4e037bafe12a77daa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; generic_updater::SensorUpdater&lt; CommandType &gt; &gt;</type>
      <name>sensor_updater</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ad4a3841dd8ce5cc66aa35a05fc82bc9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ac57a95580dba43c92daed5767d84a4f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned int</type>
      <name>nb_tactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>acd90a28de4a47ffba273bb5aa026b8df</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_received_data_type</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab5ec0af7e7054fcaf207f8bfa14f82bc</anchor>
      <arglist>(int32u data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>sanitise_string</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a1d3b7af26663fced40e5137df65c9635</anchor>
      <arglist>(const char *raw_string, const unsigned int str_size)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; std::vector&lt; AllTactileData &gt; &gt;</type>
      <name>all_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2c98c3ca14f38c7410621f803c50aee1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae2bea5120a0140514ca5d61d0ea2b39a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; int32u &gt;</type>
      <name>initialization_received_data_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a3ca5d8cda93b207e67a9c803eaf6d8fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2986def0f2c6b11014112f533b772940</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>reset_service_client_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae99008193ee1f026348bd25973ec7599</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1GenericTactiles.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aad465a4de4ac1f8552c6b41974f4cdf2</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a67d417f5e8a87234e6604eaf131e5ed0</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aafcb744d67a05b29c385419de337f785</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aac246b78455cc48e70f321293eb35f77</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a5ec248e6fd9377da5f2ecd68dcccf50d</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a63001a63417a7c0a7d87eb419b7f36d8</anchor>
      <arglist>(ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS *status_data)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab1115eed2c8fd1f4e037bafe12a77daa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; generic_updater::SensorUpdater&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt; &gt;</type>
      <name>sensor_updater</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ad4a3841dd8ce5cc66aa35a05fc82bc9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ac57a95580dba43c92daed5767d84a4f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned int</type>
      <name>nb_tactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>acd90a28de4a47ffba273bb5aa026b8df</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_received_data_type</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab5ec0af7e7054fcaf207f8bfa14f82bc</anchor>
      <arglist>(int32u data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>sanitise_string</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a1d3b7af26663fced40e5137df65c9635</anchor>
      <arglist>(const char *raw_string, const unsigned int str_size)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; std::vector&lt; AllTactileData &gt; &gt;</type>
      <name>all_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2c98c3ca14f38c7410621f803c50aee1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae2bea5120a0140514ca5d61d0ea2b39a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; int32u &gt;</type>
      <name>initialization_received_data_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a3ca5d8cda93b207e67a9c803eaf6d8fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2986def0f2c6b11014112f533b772940</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>reset_service_client_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae99008193ee1f026348bd25973ec7599</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1GenericTactiles.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aad465a4de4ac1f8552c6b41974f4cdf2</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a67d417f5e8a87234e6604eaf131e5ed0</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aafcb744d67a05b29c385419de337f785</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aac246b78455cc48e70f321293eb35f77</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a5ec248e6fd9377da5f2ecd68dcccf50d</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a63001a63417a7c0a7d87eb419b7f36d8</anchor>
      <arglist>(ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS *status_data)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab1115eed2c8fd1f4e037bafe12a77daa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; generic_updater::SensorUpdater&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt; &gt;</type>
      <name>sensor_updater</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ad4a3841dd8ce5cc66aa35a05fc82bc9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ac57a95580dba43c92daed5767d84a4f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned int</type>
      <name>nb_tactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>acd90a28de4a47ffba273bb5aa026b8df</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_received_data_type</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab5ec0af7e7054fcaf207f8bfa14f82bc</anchor>
      <arglist>(int32u data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>sanitise_string</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a1d3b7af26663fced40e5137df65c9635</anchor>
      <arglist>(const char *raw_string, const unsigned int str_size)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; std::vector&lt; AllTactileData &gt; &gt;</type>
      <name>all_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2c98c3ca14f38c7410621f803c50aee1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae2bea5120a0140514ca5d61d0ea2b39a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; int32u &gt;</type>
      <name>initialization_received_data_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a3ca5d8cda93b207e67a9c803eaf6d8fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2986def0f2c6b11014112f533b772940</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>reset_service_client_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae99008193ee1f026348bd25973ec7599</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1GenericTactiles.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aad465a4de4ac1f8552c6b41974f4cdf2</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a67d417f5e8a87234e6604eaf131e5ed0</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aafcb744d67a05b29c385419de337f785</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>aac246b78455cc48e70f321293eb35f77</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a5ec248e6fd9377da5f2ecd68dcccf50d</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a63001a63417a7c0a7d87eb419b7f36d8</anchor>
      <arglist>(ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS *status_data)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~GenericTactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab1115eed2c8fd1f4e037bafe12a77daa</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; generic_updater::SensorUpdater&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt; &gt;</type>
      <name>sensor_updater</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ad4a3841dd8ce5cc66aa35a05fc82bc9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ac57a95580dba43c92daed5767d84a4f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned int</type>
      <name>nb_tactiles</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>acd90a28de4a47ffba273bb5aa026b8df</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_received_data_type</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ab5ec0af7e7054fcaf207f8bfa14f82bc</anchor>
      <arglist>(int32u data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>sanitise_string</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a1d3b7af26663fced40e5137df65c9635</anchor>
      <arglist>(const char *raw_string, const unsigned int str_size)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; std::vector&lt; AllTactileData &gt; &gt;</type>
      <name>all_tactile_data</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2c98c3ca14f38c7410621f803c50aee1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae2bea5120a0140514ca5d61d0ea2b39a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; int32u &gt;</type>
      <name>initialization_received_data_vector</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a3ca5d8cda93b207e67a9c803eaf6d8fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>a2986def0f2c6b11014112f533b772940</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>reset_service_client_</name>
      <anchorfile>classtactiles_1_1GenericTactiles.html</anchorfile>
      <anchor>ae99008193ee1f026348bd25973ec7599</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::GenericUpdater</name>
    <filename>classgeneric__updater_1_1GenericUpdater.html</filename>
    <templarg></templarg>
    <member kind="function" virtualness="pure">
      <type>virtual operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_command</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a7cde89587041c41f5372b5f624f654d7</anchor>
      <arglist>(CommandType *command)=0</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GenericUpdater</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>af7f101ad940d131886fb2b2d04a515d8</anchor>
      <arglist>(std::vector&lt; UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>timer_callback</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a26c0c34facc108a5d127589d186dd69d</anchor>
      <arglist>(const ros::TimerEvent &amp;event, int32u data_type)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~GenericUpdater</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>ac676559f03811a446a3632e7e07d815f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; UpdateConfig &gt;</type>
      <name>important_update_configs_vector</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>aa7a6f503eba6658f545f363cd6dc9614</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; UpdateConfig &gt;</type>
      <name>initialization_configs_vector</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>afceebd94cf0d4b536c98710308e48768</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>update_state</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a1c2a714d8e876edc2f8cba9ebcdbb1cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>mutex</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>acd19b6c802f8f12dc90f6a46d9d983cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_tilde</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a54b0baf5ec4eba6b03ed5efde8136c9d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; ros::Timer &gt;</type>
      <name>timers</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>af36864b3fcd943e5d1866987a7e5054f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; int32u, std::list&lt; int32u &gt; &gt;</type>
      <name>unimportant_data_queue</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a9edd3dfaf5796516a65b6bd19f74dcaa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; UpdateConfig &gt;</type>
      <name>update_configs_vector</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>adddc38be47a0d7ce4bcd9d774c93e59f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>which_data_to_request</name>
      <anchorfile>classgeneric__updater_1_1GenericUpdater.html</anchorfile>
      <anchor>a2a07f4dfb1ad1ff98d30aaaae8e94569</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>HandLibTest</name>
    <filename>classHandLibTest.html</filename>
    <member kind="function">
      <type>void</type>
      <name>check_hw_actuator</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a90683bae2ed3d5a15e7d96ca65e24784</anchor>
      <arglist>(std::string name, int motor_id, int id_in_enum, double expected_pos)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>HandLibTest</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a6e03fd15bab63cf81e75f9e3a2ddf3dd</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~HandLibTest</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a6c6a52e355cd710acd9ea6be626f8d9c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>sr_actuator::SrMotorActuator *</type>
      <name>actuator</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>aec05f50ac962ac55ebb0fe384eac5518</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros_ethercat_model::RobotState *</type>
      <name>hw</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a4491b2891b5d020473547fad54504693</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>XmlRpc::XmlRpcValue</type>
      <name>joint_to_sensor_mapping</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a2a769250bef4afb45f5601c29bfd7492</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; HandLibTestProtected &gt;</type>
      <name>sr_hand_lib</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>a9f73fca31c5b952cfad99883a2716f46</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh</name>
      <anchorfile>classHandLibTest.html</anchorfile>
      <anchor>abd05881009a82a56d542869f76039b79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>HandLibTestProtected</name>
    <filename>classHandLibTestProtected.html</filename>
    <base>SrMotorHandLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</base>
    <member kind="function">
      <type></type>
      <name>HandLibTestProtected</name>
      <anchorfile>classHandLibTestProtected.html</anchorfile>
      <anchor>a0eac916f278e7c3040a769104cacb83c</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>shadow_joints::Joint</name>
    <filename>structshadow__joints_1_1Joint.html</filename>
    <member kind="variable">
      <type>boost::shared_ptr&lt; SrActuatorWrapper &gt;</type>
      <name>actuator_wrapper</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>a95f86ccf4ab4f3def98bddc49ff43e28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>sr_math_utils::filters::LowPassFilter</type>
      <name>effort_filter</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>a172a6791591b9d32011e38ca723559fc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>has_actuator</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>afb095fecf2cc0e89e533aef22ee78755</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::string</type>
      <name>joint_name</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>aaf5633159e343ff79d5142cc6c8093cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>JointToSensor</type>
      <name>joint_to_sensor</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>ac792a142a5fa304ad6f4289cd8484eba</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>sr_math_utils::filters::LowPassFilter</type>
      <name>pos_filter</name>
      <anchorfile>structshadow__joints_1_1Joint.html</anchorfile>
      <anchor>ae573fb0eedd0996ef1720de5f59a3ab6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>shadow_joints::JointToMuscle</name>
    <filename>structshadow__joints_1_1JointToMuscle.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>muscle_driver_id</name>
      <anchorfile>structshadow__joints_1_1JointToMuscle.html</anchorfile>
      <anchor>abb821394aa8625d96f26f9d69ee04b62</anchor>
      <arglist>[2]</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>muscle_id</name>
      <anchorfile>structshadow__joints_1_1JointToMuscle.html</anchorfile>
      <anchor>ac17b3ca9b84e1177e6266a7efdd8d1ff</anchor>
      <arglist>[2]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>shadow_joints::JointToSensor</name>
    <filename>structshadow__joints_1_1JointToSensor.html</filename>
    <member kind="variable">
      <type>bool</type>
      <name>calibrate_after_combining_sensors</name>
      <anchorfile>structshadow__joints_1_1JointToSensor.html</anchorfile>
      <anchor>acf913cd846149c30c94964c9e99ef183</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; PartialJointToSensor &gt;</type>
      <name>joint_to_sensor_vector</name>
      <anchorfile>structshadow__joints_1_1JointToSensor.html</anchorfile>
      <anchor>af3940d9134ed8c30fd487d1d7de8e1e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; std::string &gt;</type>
      <name>sensor_names</name>
      <anchorfile>structshadow__joints_1_1JointToSensor.html</anchorfile>
      <anchor>acbc40982f7c731e5bfd920c796589d69</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>compute_joint_0_target::Merger</name>
    <filename>classcompute__joint__0__target_1_1Merger.html</filename>
    <member kind="function">
      <type>def</type>
      <name>__init__</name>
      <anchorfile>classcompute__joint__0__target_1_1Merger.html</anchorfile>
      <anchor>a6d54358f1cbd8f5b7fa1ba58f461d4fa</anchor>
      <arglist>(self)</arglist>
    </member>
    <member kind="function">
      <type>def</type>
      <name>callback</name>
      <anchorfile>classcompute__joint__0__target_1_1Merger.html</anchorfile>
      <anchor>a8093ee7aee17c206318a5248ec9bea1c</anchor>
      <arglist>(self, data)</arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>publisher</name>
      <anchorfile>classcompute__joint__0__target_1_1Merger.html</anchorfile>
      <anchor>aa74539f78771a652921cc0e6092b8598</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>subscriber</name>
      <anchorfile>classcompute__joint__0__target_1_1Merger.html</anchorfile>
      <anchor>a010707e4a989241e6e5d2b0bd66176d3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::MessageChecker</name>
    <filename>classgeneric__updater_1_1MessageChecker.html</filename>
    <member kind="function">
      <type>int</type>
      <name>find</name>
      <anchorfile>classgeneric__updater_1_1MessageChecker.html</anchorfile>
      <anchor>ac8ef8b47daab481212f73ddec57bfd62</anchor>
      <arglist>(int motor_id)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MessageChecker</name>
      <anchorfile>classgeneric__updater_1_1MessageChecker.html</anchorfile>
      <anchor>a1801262aacbcac0ebcb1078c14822919</anchor>
      <arglist>(FROM_MOTOR_DATA_TYPE msg_type)</arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; MessageFromMotorChecker * &gt;</type>
      <name>msg_from_motor_checkers</name>
      <anchorfile>classgeneric__updater_1_1MessageChecker.html</anchorfile>
      <anchor>aa3cfc62c1cefa215d17173353b64499b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>FROM_MOTOR_DATA_TYPE</type>
      <name>msg_type</name>
      <anchorfile>classgeneric__updater_1_1MessageChecker.html</anchorfile>
      <anchor>ae7844034a1f40fb2e21a2c8e03df77bc</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::MessageFromMotorChecker</name>
    <filename>classgeneric__updater_1_1MessageFromMotorChecker.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>get_received</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>ac95e6d56e53faad1510c5fd1ab077772</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MessageFromMotorChecker</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>a5ef18f76d4703b5f878e166dc20fab09</anchor>
      <arglist>(int id)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_received</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>a1128ff822c13395a640276f6d3b59c20</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~MessageFromMotorChecker</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>a9a1bcc269115f1df745f1db5b9b21e07</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>motor_id_</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>aa10d18e53b014b033584714dcd9c1a62</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>received_</name>
      <anchorfile>classgeneric__updater_1_1MessageFromMotorChecker.html</anchorfile>
      <anchor>afb86f8473b7f3363b3cb24841308a66a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::MotorDataChecker</name>
    <filename>classgeneric__updater_1_1MotorDataChecker.html</filename>
    <member kind="function">
      <type>bool</type>
      <name>check_message</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a4b7d4aecb546d01a1a0d369453f5f783</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, FROM_MOTOR_DATA_TYPE motor_data_type, int16u motor_slow_data_type)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a53b963b733360b1833bdf71a60bd1a1e</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt; joints_vector, std::vector&lt; UpdateConfig &gt; initialization_configs_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MotorDataChecker</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a3ca051c59823f237980072948c1cd7f7</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt; joints_vector, std::vector&lt; UpdateConfig &gt; initialization_configs_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~MotorDataChecker</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a7c3ddbf5455f674da26bc89a13aa095b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>int</type>
      <name>find</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a5972f6885a93b0c1ea0f8e4140ace68e</anchor>
      <arglist>(FROM_MOTOR_DATA_TYPE motor_data_type)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>is_everything_checked</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a02372a6ceaee2a4784fea1159ddbed1c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>timer_callback</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>af5368b6b0a2ac6b4bbdad49b197cb99f</anchor>
      <arglist>(const ros::TimerEvent &amp;event)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Timer</type>
      <name>check_timeout_timer</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a6a66e39447fef285c5551d8fea1906d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Duration</type>
      <name>init_max_duration</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>ac0ede364a8d9eab602bbc4235f7c5288</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; MessageChecker &gt;</type>
      <name>msg_checkers_</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>ac69fa91df755636833dbdde62e58a67c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_tilde</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>ab005649d863539063c17ea423270a8b7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>update_state</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a2c7d7c25063457a829809ee673d4fcb6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const double</type>
      <name>timeout</name>
      <anchorfile>classgeneric__updater_1_1MotorDataChecker.html</anchorfile>
      <anchor>a2f0698c9c3d6bae74d5e80b309a91412</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::MotorUpdater</name>
    <filename>classgeneric__updater_1_1MotorUpdater.html</filename>
    <templarg>CommandType</templarg>
    <base>generic_updater::GenericUpdater</base>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_command</name>
      <anchorfile>classgeneric__updater_1_1MotorUpdater.html</anchorfile>
      <anchor>a299e661e288b3125f5d25fc74868f9e7</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_init_command</name>
      <anchorfile>classgeneric__updater_1_1MotorUpdater.html</anchorfile>
      <anchor>ad41c4c6049e6599325879ef37892107b</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MotorUpdater</name>
      <anchorfile>classgeneric__updater_1_1MotorUpdater.html</anchorfile>
      <anchor>ab3bae1a9e6cc7dd83af9a8b397ef68d6</anchor>
      <arglist>(std::vector&lt; UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>even_motors</name>
      <anchorfile>classgeneric__updater_1_1MotorUpdater.html</anchorfile>
      <anchor>aa617333f39cd9db62fd4365bccd7a42f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>MotorUpdaterTest</name>
    <filename>classMotorUpdaterTest.html</filename>
    <member kind="function">
      <type>UpdaterResult</type>
      <name>check_updates</name>
      <anchorfile>classMotorUpdaterTest.html</anchorfile>
      <anchor>a95d8aae9b2ca4d3640e7c08ea1f22b61</anchor>
      <arglist>(double tolerancy)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MotorUpdaterTest</name>
      <anchorfile>classMotorUpdaterTest.html</anchorfile>
      <anchor>aaebcd9348998f34abd7f47c7f4ed35f9</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~MotorUpdaterTest</name>
      <anchorfile>classMotorUpdaterTest.html</anchorfile>
      <anchor>aa4a30ef2aedf5d07b6bb68525d3f3685</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_joints::MotorWrapper</name>
    <filename>classshadow__joints_1_1MotorWrapper.html</filename>
    <base>shadow_joints::SrActuatorWrapper</base>
    <member kind="function">
      <type></type>
      <name>MotorWrapper</name>
      <anchorfile>classshadow__joints_1_1MotorWrapper.html</anchorfile>
      <anchor>a6a7c4bff21998190e3c3080d1013ca49</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>ros::ServiceServer</type>
      <name>force_pid_service</name>
      <anchorfile>classshadow__joints_1_1MotorWrapper.html</anchorfile>
      <anchor>a14a2cf824be60fa779859cd779711459</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>motor_id</name>
      <anchorfile>classshadow__joints_1_1MotorWrapper.html</anchorfile>
      <anchor>ab82b9e4c6702814f7cc82ddf0e29c16d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>msg_motor_id</name>
      <anchorfile>classshadow__joints_1_1MotorWrapper.html</anchorfile>
      <anchor>a01bcbb284fd96370b1a5b7a8cbfc101e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::ServiceServer</type>
      <name>reset_motor_service</name>
      <anchorfile>classshadow__joints_1_1MotorWrapper.html</anchorfile>
      <anchor>aa1afe88447bfba8d51e5b57a08413d23</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_joints::MuscleDriver</name>
    <filename>classshadow__joints_1_1MuscleDriver.html</filename>
    <member kind="function">
      <type></type>
      <name>MuscleDriver</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>aefde83a911fefa0c64ef511cea45cd60</anchor>
      <arglist>(int id=0)</arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>assembly_date_day</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a9bbbbe1af4a06d877d8467308a6d8015</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>assembly_date_month</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>ac3326fcb01ae34cc01657af4bee57507</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>assembly_date_year</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>aeb9714b5d18c8edcd925bc5d4adada41</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>bad_data</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>af2fd63490d819f6a5837b596c966a074</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>can_err_rx</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>ac41dc112067edc1e9970b8fc3a6915ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>can_err_tx</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>ae3d8d5221078847d581262db7d115d2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>can_msgs_received_</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a5f545ee4010285e6a8ab73db37f32e56</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>can_msgs_transmitted_</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>ab2fb5eec4249ae9d579d580af0555dc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>driver_ok</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a2c0f4c8da9391cfa42ef3111833d65c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>firmware_modified_</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>aa29a2ce3263d53e86f04a26bc2da984b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>muscle_driver_id</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>ad318deceb5de7639598c838a7e89eb71</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>pic_firmware_git_revision_</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a0d1b1253e593ff23cd329659c7de2593</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::ServiceServer</type>
      <name>reset_driver_service</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a1d41ace3d3c6adfa98d1e9f2bc74a81c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>serial_number</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>a24c003b285a37f1582cb0a2fa03fb501</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>server_firmware_git_revision_</name>
      <anchorfile>classshadow__joints_1_1MuscleDriver.html</anchorfile>
      <anchor>adb303c40fe84b9ccd6271d1b5d18571f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::MuscleUpdater</name>
    <filename>classgeneric__updater_1_1MuscleUpdater.html</filename>
    <templarg></templarg>
    <base>generic_updater::GenericUpdater</base>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_command</name>
      <anchorfile>classgeneric__updater_1_1MuscleUpdater.html</anchorfile>
      <anchor>afbbb9d3775c74d3c26ce7b75af352c81</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_init_command</name>
      <anchorfile>classgeneric__updater_1_1MuscleUpdater.html</anchorfile>
      <anchor>ad661dadca058fd2f3b9853a8673389b4</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MuscleUpdater</name>
      <anchorfile>classgeneric__updater_1_1MuscleUpdater.html</anchorfile>
      <anchor>a9248d391fe96ffa25dd712cd2988e4ee</anchor>
      <arglist>(std::vector&lt; UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_joints::MuscleWrapper</name>
    <filename>classshadow__joints_1_1MuscleWrapper.html</filename>
    <base>shadow_joints::SrActuatorWrapper</base>
    <member kind="function">
      <type></type>
      <name>MuscleWrapper</name>
      <anchorfile>classshadow__joints_1_1MuscleWrapper.html</anchorfile>
      <anchor>a26ce09dfbc0e46af83f50998d6119629</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>muscle_driver_id</name>
      <anchorfile>classshadow__joints_1_1MuscleWrapper.html</anchorfile>
      <anchor>aabdb465cab9c7bb6e34ed437353d13e2</anchor>
      <arglist>[2]</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>muscle_id</name>
      <anchorfile>classshadow__joints_1_1MuscleWrapper.html</anchorfile>
      <anchor>a6342a6b20c297a1f2c5bd75a59b751df</anchor>
      <arglist>[2]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>shadow_joints::PartialJointToSensor</name>
    <filename>structshadow__joints_1_1PartialJointToSensor.html</filename>
    <member kind="variable">
      <type>double</type>
      <name>coeff</name>
      <anchorfile>structshadow__joints_1_1PartialJointToSensor.html</anchorfile>
      <anchor>af36158ace1e0d34e97b03d015e410fb5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>sensor_id</name>
      <anchorfile>structshadow__joints_1_1PartialJointToSensor.html</anchorfile>
      <anchor>a2180abca8761196e85b9eebd58334ae8</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::SensorUpdater</name>
    <filename>classgeneric__updater_1_1SensorUpdater.html</filename>
    <templarg></templarg>
    <base>generic_updater::GenericUpdater</base>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_command</name>
      <anchorfile>classgeneric__updater_1_1SensorUpdater.html</anchorfile>
      <anchor>a446681af4474afe16e9dd7f8a2c09a05</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>build_init_command</name>
      <anchorfile>classgeneric__updater_1_1SensorUpdater.html</anchorfile>
      <anchor>ad564359769ef24cd1a30f4a00695bc93</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset</name>
      <anchorfile>classgeneric__updater_1_1SensorUpdater.html</anchorfile>
      <anchor>a3b46b687e6195109bdb87b726407a0ae</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SensorUpdater</name>
      <anchorfile>classgeneric__updater_1_1SensorUpdater.html</anchorfile>
      <anchor>a6d410c51831d6ed5be7dfc391678e1ff</anchor>
      <arglist>(std::vector&lt; UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::ShadowPSTs</name>
    <filename>classtactiles_1_1ShadowPSTs.html</filename>
    <templarg></templarg>
    <templarg></templarg>
    <base>tactiles::GenericTactiles</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a534aaf6ccccd82276233560d58d168c0</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a106a963d705fc951dc39aeb435b6197c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a46537f2f3e4c706e01bd26194fb1fb7c</anchor>
      <arglist>(std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>af3a4c770d517550d4f1151a91de0601c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShadowPSTs</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>aecd3df176de5c861354e0021f3b93403</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ShadowPSTs</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a9645b398704ed8932e2cba81d26b0c73</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a3c375f51b4fd9517925e1b934cb6e88c</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; std::vector&lt; PST3Data &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1ShadowPSTs.html</anchorfile>
      <anchor>a75f2709fe3f0b3ab8f932b1ea28dcc4c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>generic_updater::SlowMessageFromMotorChecker</name>
    <filename>classgeneric__updater_1_1SlowMessageFromMotorChecker.html</filename>
    <base>generic_updater::MessageFromMotorChecker</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>set_received</name>
      <anchorfile>classgeneric__updater_1_1SlowMessageFromMotorChecker.html</anchorfile>
      <anchor>a7d015080fef6a9e7965117379065d2d2</anchor>
      <arglist>(FROM_MOTOR_SLOW_DATA_TYPE slow_data_type)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SlowMessageFromMotorChecker</name>
      <anchorfile>classgeneric__updater_1_1SlowMessageFromMotorChecker.html</anchorfile>
      <anchor>a3923494278c18813f9b685396af5f8b8</anchor>
      <arglist>(int id)</arglist>
    </member>
    <member kind="variable">
      <type>boost::array&lt; bool, MOTOR_SLOW_DATA_LAST+1 &gt;</type>
      <name>slow_data_received</name>
      <anchorfile>classgeneric__updater_1_1SlowMessageFromMotorChecker.html</anchorfile>
      <anchor>a653e6e9211dd719d27624cd4f31703ba</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_joints::SrActuatorWrapper</name>
    <filename>classshadow__joints_1_1SrActuatorWrapper.html</filename>
    <member kind="function">
      <type></type>
      <name>SrActuatorWrapper</name>
      <anchorfile>classshadow__joints_1_1SrActuatorWrapper.html</anchorfile>
      <anchor>aab0329f2e12f66a924ccfdbde2f5c024</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>ros_ethercat_model::Actuator *</type>
      <name>actuator</name>
      <anchorfile>classshadow__joints_1_1SrActuatorWrapper.html</anchorfile>
      <anchor>a5a0a68c2690852864e8198571461efab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>actuator_ok</name>
      <anchorfile>classshadow__joints_1_1SrActuatorWrapper.html</anchorfile>
      <anchor>a1f5c7643426ff2766394f7e69ac7e5f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>bad_data</name>
      <anchorfile>classshadow__joints_1_1SrActuatorWrapper.html</anchorfile>
      <anchor>ada5ab5f0004336cda7ca0e8ea23a1f6b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::SrMotorHandLib</name>
    <filename>classshadow__robot_1_1SrMotorHandLib.html</filename>
    <templarg>StatusType</templarg>
    <templarg>CommandType</templarg>
    <base>shadow_robot::SrMotorRobotLib</base>
    <member kind="function">
      <type>bool</type>
      <name>force_pid_callback</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ab0751837c2dde513306d5f6bd573e573</anchor>
      <arglist>(sr_robot_msgs::ForceController::Request &amp;request, sr_robot_msgs::ForceController::Response &amp;response, int motor_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset_motor_callback</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a0be009353ca29c38cc39cd577bf18fb1</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response, std::pair&lt; int, std::string &gt; joint)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMotorHandLib</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>af8b66204fe29c2ec602e66aad250812e</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>find_joint_name</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a6fd0f10b8246b60b152b20ce32fd2b71</anchor>
      <arglist>(int motor_index)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a278164fd0f0424dae3b50fc2dbc53ca7</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>update_force_control_in_param_server</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a76cd06e4fb308c7d4c1fd4b3b6f56479</anchor>
      <arglist>(std::string joint_name, int max_pwm, int sg_left, int sg_right, int f, int p, int i, int d, int imax, int deadband, int sign, int torque_limit, int torque_limiter_gain)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>std::vector&lt; int &gt;</type>
      <name>read_joint_to_motor_mapping</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a59cf07b9b4bbf43718b9654ca3ad4c01</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>resend_pids</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ab0d68c2d5b65fa07a25c6a56388198ce</anchor>
      <arglist>(std::string joint_name, int motor_index)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::map&lt; std::string, ros::Timer &gt;</type>
      <name>pid_timers</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ae0fc4133dd6f81901a54eb93b094085e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const char *</type>
      <name>human_readable_motor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a290c8d3ac76ed46ac44cf966910c9346</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int32u</type>
      <name>motor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>acbe6bbec3bf2b697805a1168bcb2f5b7</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int</type>
      <name>nb_motor_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>af2614a5203429edf589b313a6bc05e0d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>SrMotorHandLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</name>
    <filename>classshadow__robot_1_1SrMotorHandLib.html</filename>
    <base>SrMotorRobotLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</base>
    <member kind="function">
      <type>bool</type>
      <name>force_pid_callback</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ab0751837c2dde513306d5f6bd573e573</anchor>
      <arglist>(sr_robot_msgs::ForceController::Request &amp;request, sr_robot_msgs::ForceController::Response &amp;response, int motor_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>reset_motor_callback</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a0be009353ca29c38cc39cd577bf18fb1</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response, std::pair&lt; int, std::string &gt; joint)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMotorHandLib</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>af8b66204fe29c2ec602e66aad250812e</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::string</type>
      <name>find_joint_name</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a6fd0f10b8246b60b152b20ce32fd2b71</anchor>
      <arglist>(int motor_index)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a278164fd0f0424dae3b50fc2dbc53ca7</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>update_force_control_in_param_server</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a76cd06e4fb308c7d4c1fd4b3b6f56479</anchor>
      <arglist>(std::string joint_name, int max_pwm, int sg_left, int sg_right, int f, int p, int i, int d, int imax, int deadband, int sign, int torque_limit, int torque_limiter_gain)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>std::vector&lt; int &gt;</type>
      <name>read_joint_to_motor_mapping</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a59cf07b9b4bbf43718b9654ca3ad4c01</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>resend_pids</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ab0d68c2d5b65fa07a25c6a56388198ce</anchor>
      <arglist>(std::string joint_name, int motor_index)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::map&lt; std::string, ros::Timer &gt;</type>
      <name>pid_timers</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>ae0fc4133dd6f81901a54eb93b094085e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const char *</type>
      <name>human_readable_motor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>a290c8d3ac76ed46ac44cf966910c9346</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int32u</type>
      <name>motor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>acbe6bbec3bf2b697805a1168bcb2f5b7</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int</type>
      <name>nb_motor_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorHandLib.html</anchorfile>
      <anchor>af2614a5203429edf589b313a6bc05e0d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::SrMotorRobotLib</name>
    <filename>classshadow__robot_1_1SrMotorRobotLib.html</filename>
    <templarg>StatusType</templarg>
    <templarg>CommandType</templarg>
    <base>shadow_robot::SrRobotLib</base>
    <member kind="function">
      <type>void</type>
      <name>add_diagnostics</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae328067f07f960d3fdca57702eb06493</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>build_command</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a51db59bd22da72058fb4d4a0665c1b73</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reinitialize_motors</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab53ac33a29104666748ae3e99e493af7</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMotorRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ac5dbb06bd6d4676478dbdb3560565565</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a39c8cc44d3279d8a4c98cdf57dedc21b</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>motor_current_state</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa69604ad7fad3db0409f57fe2602be93</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="protected">
      <type>std::pair&lt; int, std::vector&lt; crc_unions::union16 &gt; &gt;</type>
      <name>ForceConfig</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aba35042082c3faed132e64aa6a609f72</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>calibrate_joint</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aaffbad87d52a9b7a11302bf4b1518f38</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>change_control_parameters</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa875148a03197ce4e2c26d4164fb326d</anchor>
      <arglist>(int16_t control_type)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>change_control_type_callback_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a303160a6c40c28b7003db1644773ce63</anchor>
      <arglist>(sr_robot_msgs::ChangeControlType::Request &amp;request, sr_robot_msgs::ChangeControlType::Response &amp;response)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>check_if_joint_coupled</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a2f06155eeeb7d5b0b9b68ada981f817d</anchor>
      <arglist>(string joint_name)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>int</type>
      <name>find_joint_by_name</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a9adcc40da32f7ba5c9df5c9067d5be68</anchor>
      <arglist>(string joint_name)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>generate_force_control_config</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a762e549fd4b3fea094747f2633515a36</anchor>
      <arglist>(int motor_index, int max_pwm, int sg_left, int sg_right, int f, int p, int i, int d, int imax, int deadband, int sign, int torque_limit, int torque_limiter_gain)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>sr_actuator::SrMotorActuator *</type>
      <name>get_joint_actuator</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a83963dd24984ec919566b70e7cd3f7d8</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; std::pair&lt; std::string, bool &gt; &gt;</type>
      <name>humanize_flags</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a443158186409f6bcbd66e3e692028e7c</anchor>
      <arglist>(int flag)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae99f72312358bbe27341feb543caac64</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>motor_system_controls_callback_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a99da60e1f11bccc5589493eb9afc895b</anchor>
      <arglist>(sr_robot_msgs::ChangeMotorSystemControls::Request &amp;request, sr_robot_msgs::ChangeMotorSystemControls::Response &amp;response)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_position_sensor_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae8e5c90da63bd073ddeacd57b7a18e11</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data, double timestamp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>read_additional_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a6cf1044b318e48bbc24daa1ca69a90af</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>change_control_type_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5a0ae3bcf7fe42c21854794326648e08</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>config_index</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa5f69e5b99f75915610ac04205316db1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>sr_robot_msgs::ControlType</type>
      <name>control_type_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a43f837efaa8cff3ba51f98341e3f8c78</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>control_type_changed_flag_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ac9d9e04980b3b82ed3fe2415091e80f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int8u</type>
      <name>crc_byte</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a1bfa486aa502d63785ddc57967bc4a76</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int8u</type>
      <name>crc_i</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a16672b4248162dffad3d74120ea6f585</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int16u</type>
      <name>crc_result</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5f60af6a6177592881242e9d443c3484</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>index_motor_in_msg</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ad67d05d03d64f9cbe80d16d733b766b0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>lock_command_sending_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab820d7ff7f2335ca1d263fe3a9dae1f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; generic_updater::MotorDataChecker &gt;</type>
      <name>motor_data_checker</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab4dc50c50dd263b116eb525237f089fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>motor_index_full</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>afa1c55dffc0b9fad7492d37d3ba68ee7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; std::vector&lt; sr_robot_msgs::MotorSystemControls &gt;, std::list&lt; std::vector&lt; sr_robot_msgs::MotorSystemControls &gt; &gt; &gt;</type>
      <name>motor_system_control_flags_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5dea3bdc643ee5238a0aea5b609f30e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>motor_system_control_server_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a3d66ae8e08e9bdaea269226c41389e05</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>motor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a8e596cdce07d6fc5cd180c13807295f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; generic_updater::MotorUpdater&lt; CommandType &gt; &gt;</type>
      <name>motor_updater_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab629bd9f335b8fadec067c74e2d7f9b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; ForceConfig, std::list&lt; ForceConfig &gt; &gt;</type>
      <name>reconfig_queue</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae3a8390a5969e131aa23a68f6046229e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; int16_t, std::list&lt; int16_t &gt; &gt;</type>
      <name>reset_motors_queue</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>abd88fd3902fdadc1423097830a7e0c34</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>SrMotorRobotLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</name>
    <filename>classshadow__robot_1_1SrMotorRobotLib.html</filename>
    <base>SrRobotLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</base>
    <member kind="function">
      <type>void</type>
      <name>add_diagnostics</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae328067f07f960d3fdca57702eb06493</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>build_command</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a51db59bd22da72058fb4d4a0665c1b73</anchor>
      <arglist>(COMMAND_TYPE *command)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reinitialize_motors</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab53ac33a29104666748ae3e99e493af7</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMotorRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ac5dbb06bd6d4676478dbdb3560565565</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a39c8cc44d3279d8a4c98cdf57dedc21b</anchor>
      <arglist>(STATUS_TYPE *status_data)</arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>motor_current_state</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa69604ad7fad3db0409f57fe2602be93</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="protected">
      <type>std::pair&lt; int, std::vector&lt; crc_unions::union16 &gt; &gt;</type>
      <name>ForceConfig</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aba35042082c3faed132e64aa6a609f72</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>calibrate_joint</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aaffbad87d52a9b7a11302bf4b1518f38</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, STATUS_TYPE *status_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>change_control_parameters</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa875148a03197ce4e2c26d4164fb326d</anchor>
      <arglist>(int16_t control_type)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>change_control_type_callback_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a303160a6c40c28b7003db1644773ce63</anchor>
      <arglist>(sr_robot_msgs::ChangeControlType::Request &amp;request, sr_robot_msgs::ChangeControlType::Response &amp;response)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>check_if_joint_coupled</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a2f06155eeeb7d5b0b9b68ada981f817d</anchor>
      <arglist>(string joint_name)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>int</type>
      <name>find_joint_by_name</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a9adcc40da32f7ba5c9df5c9067d5be68</anchor>
      <arglist>(string joint_name)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>generate_force_control_config</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a762e549fd4b3fea094747f2633515a36</anchor>
      <arglist>(int motor_index, int max_pwm, int sg_left, int sg_right, int f, int p, int i, int d, int imax, int deadband, int sign, int torque_limit, int torque_limiter_gain)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>sr_actuator::SrMotorActuator *</type>
      <name>get_joint_actuator</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a83963dd24984ec919566b70e7cd3f7d8</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; std::pair&lt; std::string, bool &gt; &gt;</type>
      <name>humanize_flags</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a443158186409f6bcbd66e3e692028e7c</anchor>
      <arglist>(int flag)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae99f72312358bbe27341feb543caac64</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>motor_system_controls_callback_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a99da60e1f11bccc5589493eb9afc895b</anchor>
      <arglist>(sr_robot_msgs::ChangeMotorSystemControls::Request &amp;request, sr_robot_msgs::ChangeMotorSystemControls::Response &amp;response)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_position_sensor_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae8e5c90da63bd073ddeacd57b7a18e11</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, STATUS_TYPE *status_data, double timestamp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>read_additional_data</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a6cf1044b318e48bbc24daa1ca69a90af</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, STATUS_TYPE *status_data)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>change_control_type_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5a0ae3bcf7fe42c21854794326648e08</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>config_index</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>aa5f69e5b99f75915610ac04205316db1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>sr_robot_msgs::ControlType</type>
      <name>control_type_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a43f837efaa8cff3ba51f98341e3f8c78</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>control_type_changed_flag_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ac9d9e04980b3b82ed3fe2415091e80f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int8u</type>
      <name>crc_byte</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a1bfa486aa502d63785ddc57967bc4a76</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int8u</type>
      <name>crc_i</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a16672b4248162dffad3d74120ea6f585</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int16u</type>
      <name>crc_result</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5f60af6a6177592881242e9d443c3484</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>index_motor_in_msg</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ad67d05d03d64f9cbe80d16d733b766b0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>lock_command_sending_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab820d7ff7f2335ca1d263fe3a9dae1f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; generic_updater::MotorDataChecker &gt;</type>
      <name>motor_data_checker</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab4dc50c50dd263b116eb525237f089fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>motor_index_full</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>afa1c55dffc0b9fad7492d37d3ba68ee7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; std::vector&lt; sr_robot_msgs::MotorSystemControls &gt;, std::list&lt; std::vector&lt; sr_robot_msgs::MotorSystemControls &gt; &gt; &gt;</type>
      <name>motor_system_control_flags_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a5dea3bdc643ee5238a0aea5b609f30e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>motor_system_control_server_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a3d66ae8e08e9bdaea269226c41389e05</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>motor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>a8e596cdce07d6fc5cd180c13807295f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; generic_updater::MotorUpdater&lt; COMMAND_TYPE &gt; &gt;</type>
      <name>motor_updater_</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ab629bd9f335b8fadec067c74e2d7f9b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; ForceConfig, std::list&lt; ForceConfig &gt; &gt;</type>
      <name>reconfig_queue</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>ae3a8390a5969e131aa23a68f6046229e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; int16_t, std::list&lt; int16_t &gt; &gt;</type>
      <name>reset_motors_queue</name>
      <anchorfile>classshadow__robot_1_1SrMotorRobotLib.html</anchorfile>
      <anchor>abd88fd3902fdadc1423097830a7e0c34</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::SrMuscleHandLib</name>
    <filename>classshadow__robot_1_1SrMuscleHandLib.html</filename>
    <templarg></templarg>
    <templarg></templarg>
    <base>shadow_robot::SrMuscleRobotLib</base>
    <member kind="function">
      <type>bool</type>
      <name>reset_muscle_driver_callback</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>ae2c12c62ffe90cd8bb62c4d6ec01d00b</anchor>
      <arglist>(std_srvs::Empty::Request &amp;request, std_srvs::Empty::Response &amp;response, int muscle_driver_index)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMuscleHandLib</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>a38e62965977a2b88eda3c09628ebcb54</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>a0c3a4c9663650168a14917ec10277de5</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>ab1ba4bdef5d05ea5a23e1fe0a89fd3b0</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; shadow_joints::JointToMuscle &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>std::vector&lt; shadow_joints::JointToMuscle &gt;</type>
      <name>read_joint_to_muscle_mapping</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>afdf5556a319a8639a595750d77a7ea0d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const char *</type>
      <name>human_readable_muscle_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>a4c181983a3b7a99a58d06c7b4e4f9a88</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int32u</type>
      <name>muscle_data_types</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>a86323c6b7fcba43f1e78c5eb7bd1aa7f</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int</type>
      <name>nb_muscle_data</name>
      <anchorfile>classshadow__robot_1_1SrMuscleHandLib.html</anchorfile>
      <anchor>a4ebcf6915f8c8d755774e9a3d5107035</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::SrMuscleRobotLib</name>
    <filename>classshadow__robot_1_1SrMuscleRobotLib.html</filename>
    <templarg></templarg>
    <templarg></templarg>
    <base>shadow_robot::SrRobotLib</base>
    <member kind="function">
      <type>void</type>
      <name>add_diagnostics</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ad6b3e034e3086945b7e7b48da2f602bb</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>build_command</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ad58f282308fadbbbebc700a326088dd3</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reinitialize_motors</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ac3ee5f8162acb0291a0f7f9d294c992f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrMuscleRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a4d102dca73daf4f8950d5ee7a6a1fde3</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>aa97ca5f1cc4f38e65c9bb2c253906d7b</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>muscle_current_state</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ad9f81b8886a99910bb77cb7fdfe9f29b</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>calibrate_joint</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a7f9c8e50c165f3ed6fb3d7d6dd32dbf3</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>check_muscle_driver_data_received_flags</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>abfa276642096784d5645f880fd79b1ca</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>sr_actuator::SrMuscleActuator *</type>
      <name>get_joint_actuator</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ab8233304d94943ab681ca835dd220899</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>unsigned int</type>
      <name>get_muscle_pressure</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>afa8ed1e9e481fd1ee5bcf02776224c19</anchor>
      <arglist>(int muscle_driver_id, int muscle_id, StatusType *status_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; std::pair&lt; std::string, bool &gt; &gt;</type>
      <name>humanize_flags</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ab33cb196c262a10bfbe3ff0ab00c8164</anchor>
      <arglist>(int flag)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>init_timer_callback</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a039a8585440b854983326b2fac6670da</anchor>
      <arglist>(const ros::TimerEvent &amp;event)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ab4c7a085c2ebdc94034dadeacd37618d</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>process_position_sensor_data</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ac552c345864d60bb65b18c2324937d5e</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data, double timestamp)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>read_additional_muscle_data</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a4fa4ed569b0091bc4fe953d550634b7c</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>read_muscle_driver_data</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>abec2fa05dfeca8e41c448c19d56e3a25</anchor>
      <arglist>(std::vector&lt; shadow_joints::MuscleDriver &gt;::iterator muscle_driver_tmp, StatusType *status_data)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual shadow_joints::CalibrationMap</type>
      <name>read_pressure_calibration</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>af7507b90924e98cad6f7a409cf76582c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>set_muscle_driver_data_received_flags</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a6db4ad37e7f242e52bde517826ecee09</anchor>
      <arglist>(unsigned int msg_type, int muscle_driver_id)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>set_valve_demand</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a302ebf6403b9f676ad8e4020e9d65b83</anchor>
      <arglist>(uint8_t *muscle_data_byte_to_set, int8_t valve_value, uint8_t shifting_index)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Timer</type>
      <name>check_init_timeout_timer</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>aa352542b73cb7484c9d80867333d680f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::map&lt; unsigned int, unsigned int &gt;</type>
      <name>from_muscle_driver_data_received_flags_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a84d271aac97626b4f008ae51be65959d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Duration</type>
      <name>init_max_duration</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a5187100054f3fbd0dabac3bb09dc0996</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>lock_init_timeout_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ac3b2e31a2bec16c2fc1165bdd206b566</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; shadow_joints::MuscleDriver &gt;</type>
      <name>muscle_drivers_vector_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a5b92b3876d38f46c9222571aec8bd843</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>muscle_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>aeef78bf6a02b13b9d7a0c7338a774cd1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; generic_updater::MuscleUpdater&lt; CommandType &gt; &gt;</type>
      <name>muscle_updater_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>ab4b5a2daa950a94abfeb1855611e3b59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>shadow_joints::CalibrationMap</type>
      <name>pressure_calibration_map_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a91d053f798bb3151eccd1dd118b37a99</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; shadow_robot::JointCalibration &gt;</type>
      <name>pressure_calibration_tmp_</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>aafbca5be25f1ca9f3370eed22f2a0037</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::queue&lt; int16_t, std::list&lt; int16_t &gt; &gt;</type>
      <name>reset_muscle_driver_queue</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a61749d6d10e8ed84e28f564a901518b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const double</type>
      <name>timeout</name>
      <anchorfile>classshadow__robot_1_1SrMuscleRobotLib.html</anchorfile>
      <anchor>a1a7c0b0039ec39da8d9d64491c65584b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>shadow_robot::SrRobotLib</name>
    <filename>classshadow__robot_1_1SrRobotLib.html</filename>
    <templarg>StatusType</templarg>
    <templarg>CommandType</templarg>
    <member kind="typedef">
      <type>std::map&lt; std::string, CoupledJoint &gt;</type>
      <name>CoupledJointMapType</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7a9ba44421fa5dff5039f33038b4ae01</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a3f32a52f6fc3970448d7dafb84cf89aa</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>build_command</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1c698130e2f54bb1514e363d4d9961f8</anchor>
      <arglist>(CommandType *command)=0</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>build_tactile_command</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a23d0280e492f58a84db72ca5f2690108</anchor>
      <arglist>(CommandType *command)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>nullify_demand_callback</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a4d3da434897baaf9eaed972f2fa67920</anchor>
      <arglist>(sr_robot_msgs::NullifyDemand::Request &amp;request, sr_robot_msgs::NullifyDemand::Response &amp;response)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reinitialize_sensors</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad76ed0d4d33984eea1bda0decaad89c1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a84c0cb5fe469c1d711d56770fa254899</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7c034a8475f6206b17f3066ffb98ea83</anchor>
      <arglist>(StatusType *status_data)=0</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update_tactile_info</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a366cc64848d8e5749647b38e6c52ac38</anchor>
      <arglist>(StatusType *status)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~SrRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad0e59c762d2d89f0b3affd5531032d27</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>shadow_joints::CalibrationMap</type>
      <name>calibration_map</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aedbbf0490936c25078f0a603f9cd2f4f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>CoupledJointMapType</type>
      <name>coupled_calibration_map</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a13d89b286cf235b7a40cad720a21eb48</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros_ethercat_model::RobotState *</type>
      <name>hw_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a36bab589b6b5ba43090ecf6ffcb16398</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>lock_tactile_init_timeout_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a4e9f4e6dba635d1df298135f0dfe5b9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>main_pic_idle_time</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aca0530863c40940a424409e5580c98e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>main_pic_idle_time_min</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a740442dc0a35a899c26086db6ec2dca5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Timer</type>
      <name>tactile_check_init_timeout_timer</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a2a92bc5484a17bc84f6e920196d5e72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>tactile_current_state</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a322cb70752a297e19f74bf91330ffed5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Duration</type>
      <name>tactile_init_max_duration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1c7e9ae81005559f4d50a9d13c992fef</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; tactiles::GenericTactiles&lt; StatusType, CommandType &gt; &gt;</type>
      <name>tactiles</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ac7ed29f2d96cd7598612fc68eb412298</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; tactiles::GenericTactiles&lt; StatusType, CommandType &gt; &gt;</type>
      <name>tactiles_init</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a3a7aa5ea7fa122e850034a94986cea7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const double</type>
      <name>tactile_timeout</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a0be4e3f7346e27cfb00a4417382d2bbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>calibrate_joint</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ab493e54c53b10c7d1b6527c5a759cf61</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, StatusType *status_data)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>checkSelfTests</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aca8d0996ac1f119f98ad0b272b1dcb09</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual ros_ethercat_model::Actuator *</type>
      <name>get_joint_actuator</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a5c482e2d4ef89dc60cee13048b974a93</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ac816c710a52a591734d36a7d4280d91c</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>CoupledJointMapType</type>
      <name>read_coupled_joint_calibration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a33cc5cbfcd7b0933a498bd9f36a19181</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>shadow_joints::CalibrationMap</type>
      <name>read_joint_calibration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a6d70c9286d9732e1406ff4a168d9db2a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; shadow_joints::JointToSensor &gt;</type>
      <name>read_joint_to_sensor_mapping</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a9eac02e123baf0f7522e697359e4e83f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>read_update_rate_configs</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7eaefd01e484eafa82454b94e7d29d0c</anchor>
      <arglist>(std::string base_param, int nb_data_defined, const char *human_readable_data_types[], const int32u data_types[])</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>tactile_init_timer_callback</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a104ef6d741c465a19e9218a4e41e907c</anchor>
      <arglist>(const ros::TimerEvent &amp;event)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>biotac_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aa6f7a9657d1cf6521c5e5b0cba9f7f06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; shadow_robot::JointCalibration &gt;</type>
      <name>calibration_tmp</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aa66648d23fa0d81f3f240274bf45fd06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1ce366cd46e8511c452d92f78d345a6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>generic_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ae28b1c5c6302b21cee25aa7e831251e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>joint_prefix_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a808e68a798bd7109b92118c5b65ecbfd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; shadow_joints::Joint &gt;</type>
      <name>joints_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a69e8e9248d6ec4f07bc5e97957cbc5c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_tilde</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a67057e35b8e7296a5e60c2049505b97b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad53ef219f0d6cfdaef02c418ff7a0f21</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>nullify_demand_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a54e37c21016a7add2c5ba5837b727a52</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>nullify_demand_server_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a745485fb543be12e10022aa66167b1df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>pst3_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aec33bb6ed0d8df8fbabc7a2e2fc9d526</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::thread &gt;</type>
      <name>self_test_thread_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ab4276fbebde24b20fa1027ce0c2810ad</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>ubi0_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>afe07002020db76cca5a0f4945f21d94f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const char *</type>
      <name>human_readable_sensor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a004343af3c03be74919abb65801fec8a</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const int</type>
      <name>nb_sensor_data</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a582fd38f27b5c8fd07782b0bfa2580eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const int32u</type>
      <name>sensor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a56c795a4f4b0d72979ed42ff04e03d44</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>SrRobotLib&lt; STATUS_TYPE, COMMAND_TYPE &gt;</name>
    <filename>classshadow__robot_1_1SrRobotLib.html</filename>
    <member kind="typedef">
      <type>std::map&lt; std::string, CoupledJoint &gt;</type>
      <name>CoupledJointMapType</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7a9ba44421fa5dff5039f33038b4ae01</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a3f32a52f6fc3970448d7dafb84cf89aa</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>build_command</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1c698130e2f54bb1514e363d4d9961f8</anchor>
      <arglist>(COMMAND_TYPE *command)=0</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>build_tactile_command</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a23d0280e492f58a84db72ca5f2690108</anchor>
      <arglist>(COMMAND_TYPE *command)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>nullify_demand_callback</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a4d3da434897baaf9eaed972f2fa67920</anchor>
      <arglist>(sr_robot_msgs::NullifyDemand::Request &amp;request, sr_robot_msgs::NullifyDemand::Response &amp;response)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>reinitialize_sensors</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad76ed0d4d33984eea1bda0decaad89c1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SrRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a84c0cb5fe469c1d711d56770fa254899</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh, ros::NodeHandle nhtilde, std::string device_id, std::string joint_prefix)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7c034a8475f6206b17f3066ffb98ea83</anchor>
      <arglist>(STATUS_TYPE *status_data)=0</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update_tactile_info</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a366cc64848d8e5749647b38e6c52ac38</anchor>
      <arglist>(STATUS_TYPE *status)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~SrRobotLib</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad0e59c762d2d89f0b3affd5531032d27</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>shadow_joints::CalibrationMap</type>
      <name>calibration_map</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aedbbf0490936c25078f0a603f9cd2f4f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>CoupledJointMapType</type>
      <name>coupled_calibration_map</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a13d89b286cf235b7a40cad720a21eb48</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros_ethercat_model::RobotState *</type>
      <name>hw_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a36bab589b6b5ba43090ecf6ffcb16398</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; boost::mutex &gt;</type>
      <name>lock_tactile_init_timeout_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a4e9f4e6dba635d1df298135f0dfe5b9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>main_pic_idle_time</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aca0530863c40940a424409e5580c98e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>main_pic_idle_time_min</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a740442dc0a35a899c26086db6ec2dca5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Timer</type>
      <name>tactile_check_init_timeout_timer</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a2a92bc5484a17bc84f6e920196d5e72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>operation_mode::device_update_state::DeviceUpdateState</type>
      <name>tactile_current_state</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a322cb70752a297e19f74bf91330ffed5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Duration</type>
      <name>tactile_init_max_duration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1c7e9ae81005559f4d50a9d13c992fef</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; tactiles::GenericTactiles&lt; STATUS_TYPE, COMMAND_TYPE &gt; &gt;</type>
      <name>tactiles</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ac7ed29f2d96cd7598612fc68eb412298</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>boost::shared_ptr&lt; tactiles::GenericTactiles&lt; STATUS_TYPE, COMMAND_TYPE &gt; &gt;</type>
      <name>tactiles_init</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a3a7aa5ea7fa122e850034a94986cea7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const double</type>
      <name>tactile_timeout</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a0be4e3f7346e27cfb00a4417382d2bbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>calibrate_joint</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ab493e54c53b10c7d1b6527c5a759cf61</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp, STATUS_TYPE *status_data)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>checkSelfTests</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aca8d0996ac1f119f98ad0b272b1dcb09</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual ros_ethercat_model::Actuator *</type>
      <name>get_joint_actuator</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a5c482e2d4ef89dc60cee13048b974a93</anchor>
      <arglist>(std::vector&lt; shadow_joints::Joint &gt;::iterator joint_tmp)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>initialize</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ac816c710a52a591734d36a7d4280d91c</anchor>
      <arglist>(std::vector&lt; std::string &gt; joint_names, std::vector&lt; int &gt; actuator_ids, std::vector&lt; shadow_joints::JointToSensor &gt; joint_to_sensors)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>CoupledJointMapType</type>
      <name>read_coupled_joint_calibration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a33cc5cbfcd7b0933a498bd9f36a19181</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>shadow_joints::CalibrationMap</type>
      <name>read_joint_calibration</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a6d70c9286d9732e1406ff4a168d9db2a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; shadow_joints::JointToSensor &gt;</type>
      <name>read_joint_to_sensor_mapping</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a9eac02e123baf0f7522e697359e4e83f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>read_update_rate_configs</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a7eaefd01e484eafa82454b94e7d29d0c</anchor>
      <arglist>(std::string base_param, int nb_data_defined, const char *human_readable_data_types[], const int32u data_types[])</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>tactile_init_timer_callback</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a104ef6d741c465a19e9218a4e41e907c</anchor>
      <arglist>(const ros::TimerEvent &amp;event)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>biotac_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aa6f7a9657d1cf6521c5e5b0cba9f7f06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; shadow_robot::JointCalibration &gt;</type>
      <name>calibration_tmp</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aa66648d23fa0d81f3f240274bf45fd06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>device_id_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a1ce366cd46e8511c452d92f78d345a6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>generic_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ae28b1c5c6302b21cee25aa7e831251e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>joint_prefix_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a808e68a798bd7109b92118c5b65ecbfd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; shadow_joints::Joint &gt;</type>
      <name>joints_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a69e8e9248d6ec4f07bc5e97957cbc5c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nh_tilde</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a67057e35b8e7296a5e60c2049505b97b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::NodeHandle</type>
      <name>nodehandle_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ad53ef219f0d6cfdaef02c418ff7a0f21</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>nullify_demand_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a54e37c21016a7add2c5ba5837b727a52</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::ServiceServer</type>
      <name>nullify_demand_server_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a745485fb543be12e10022aa66167b1df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>pst3_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>aec33bb6ed0d8df8fbabc7a2e2fc9d526</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; boost::thread &gt;</type>
      <name>self_test_thread_</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>ab4276fbebde24b20fa1027ce0c2810ad</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; generic_updater::UpdateConfig &gt;</type>
      <name>ubi0_sensor_update_rate_configs_vector</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>afe07002020db76cca5a0f4945f21d94f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const char *</type>
      <name>human_readable_sensor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a004343af3c03be74919abb65801fec8a</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const int</type>
      <name>nb_sensor_data</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a582fd38f27b5c8fd07782b0bfa2580eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected" static="yes">
      <type>static const int32u</type>
      <name>sensor_data_types</name>
      <anchorfile>classshadow__robot_1_1SrRobotLib.html</anchorfile>
      <anchor>a56c795a4f4b0d72979ed42ff04e03d44</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TestHandLib</name>
    <filename>classTestHandLib.html</filename>
    <base>HandLibTestProtected</base>
    <member kind="function">
      <type></type>
      <name>TestHandLib</name>
      <anchorfile>classTestHandLib.html</anchorfile>
      <anchor>a0ab9f60649f5f62b1f1062a3a66fa286</anchor>
      <arglist>(hardware_interface::HardwareInterface *hw, ros::NodeHandle nh)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::UBI0</name>
    <filename>classtactiles_1_1UBI0.html</filename>
    <templarg></templarg>
    <templarg></templarg>
    <base>tactiles::GenericTactiles</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>add_diagnostics</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>ad4d75c4bda94b2fc544b8dfadcf8ae8c</anchor>
      <arglist>(std::vector&lt; diagnostic_msgs::DiagnosticStatus &gt; &amp;vec, diagnostic_updater::DiagnosticStatusWrapper &amp;d)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual std::vector&lt; AllTactileData &gt; *</type>
      <name>get_tactile_data</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a89c1c7182dc676e24ba2a14442e7a494</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a13b72caa50a7a020f93b39085165dc25</anchor>
      <arglist>(std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>publish</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>abb56ea8ed304a55da7e992a1b0381d16</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a4448371aa4ced1c5d1bbb2fa9a76be6c</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>aa2c09cfd38cfd66bb4bea659c2404d0e</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a40b8976e316f15f8238edbfedabfd6b9</anchor>
      <arglist>(StatusType *status_data)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; sr_robot_msgs::AuxSpiData &gt; &gt;</type>
      <name>aux_spi_publisher</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a1dca4020cb737088f6a4a45543ac1f3c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; UBI0PalmData &gt;</type>
      <name>palm_tactiles</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>aed7bc9dbaf4be34d46cc5d453741614f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>boost::shared_ptr&lt; std::vector&lt; UBI0Data &gt; &gt;</type>
      <name>tactiles_vector</name>
      <anchorfile>classtactiles_1_1UBI0.html</anchorfile>
      <anchor>a9120484dca4d9bdef56a5e97275b0a79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0200__PALM__EDC__STATUS_00_01ETHERCAT__DATA271299d5f1140b8e8e9fef2aba985e5f.html</filename>
    <base>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt;</base>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0200__PALM__EDC__STATUS_00_01ETHERCAT__DATA271299d5f1140b8e8e9fef2aba985e5f.html</anchorfile>
      <anchor>a8eaaf70aee1d2cf8d1a4439afe63c6a9</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0200__PALM__EDC__STATUS_00_01ETHERCAT__DATA271299d5f1140b8e8e9fef2aba985e5f.html</anchorfile>
      <anchor>abac0ec5ffd2f0261a1bd7f7bae6b3a75</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0200__PALM__EDC__STATUS_00_01ETHERCAT__DATA271299d5f1140b8e8e9fef2aba985e5f.html</anchorfile>
      <anchor>a0a99f4e742924ffff77fe61798f338d1</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0240__PALM__EDC__STATUS_00_01ETHERCAT__DATA5fa20dc52e43b32d8163add441f8fe1b.html</filename>
    <base>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt;</base>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0240__PALM__EDC__STATUS_00_01ETHERCAT__DATA5fa20dc52e43b32d8163add441f8fe1b.html</anchorfile>
      <anchor>a4c4ec2532ef8eeb3efcaae6287ab5e94</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0240__PALM__EDC__STATUS_00_01ETHERCAT__DATA5fa20dc52e43b32d8163add441f8fe1b.html</anchorfile>
      <anchor>ab653caac51fd33e124e3f4a371d0259e</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0240__PALM__EDC__STATUS_00_01ETHERCAT__DATA5fa20dc52e43b32d8163add441f8fe1b.html</anchorfile>
      <anchor>ae0dba805dc8a2ab1280dbdc31e1be7ef</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt;</name>
    <filename>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0300__PALM__EDC__STATUS_00_01ETHERCAT__DATA89fb8d668fbf5d73876aab64265e3085.html</filename>
    <base>GenericTactiles&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt;</base>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0300__PALM__EDC__STATUS_00_01ETHERCAT__DATA89fb8d668fbf5d73876aab64265e3085.html</anchorfile>
      <anchor>acfb936e87a5b36078f317fcc0cbd2a91</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0300__PALM__EDC__STATUS_00_01ETHERCAT__DATA89fb8d668fbf5d73876aab64265e3085.html</anchorfile>
      <anchor>ac70ed45cb04d76da41c4b3b163c61cdf</anchor>
      <arglist>(ros::NodeHandle nh, std::string device_id, std::vector&lt; generic_updater::UpdateConfig &gt; update_configs_vector, operation_mode::device_update_state::DeviceUpdateState update_state, boost::shared_ptr&lt; std::vector&lt; GenericTactileData &gt; &gt; init_tactiles_vector)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~UBI0</name>
      <anchorfile>classtactiles_1_1UBI0_3_01ETHERCAT__DATA__STRUCTURE__0300__PALM__EDC__STATUS_00_01ETHERCAT__DATA89fb8d668fbf5d73876aab64265e3085.html</anchorfile>
      <anchor>a76b8ed04a13f23488161c38c15cf4fd9</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>generic_updater::UpdateConfig</name>
    <filename>structgeneric__updater_1_1UpdateConfig.html</filename>
    <member kind="variable">
      <type>int32u</type>
      <name>what_to_update</name>
      <anchorfile>structgeneric__updater_1_1UpdateConfig.html</anchorfile>
      <anchor>a451299f179d27c8a2b64e796c0876e51</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>when_to_update</name>
      <anchorfile>structgeneric__updater_1_1UpdateConfig.html</anchorfile>
      <anchor>a5baaeee93dd1d30c15a667d759138747</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>UpdaterResult</name>
    <filename>structUpdaterResult.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>can_num_transmitted_counter</name>
      <anchorfile>structUpdaterResult.html</anchorfile>
      <anchor>a99e29221dfc4d28588087912a618b50f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>git_transmitted</name>
      <anchorfile>structUpdaterResult.html</anchorfile>
      <anchor>a68c8cd433eb9547ebe98ec594bb8a482</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>git_transmitted_once</name>
      <anchorfile>structUpdaterResult.html</anchorfile>
      <anchor>a812273f021274e9fba9c56b2d543b187</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>compute_joint_0_target</name>
    <filename>namespacecompute__joint__0__target.html</filename>
    <class kind="class">compute_joint_0_target::Merger</class>
    <member kind="variable">
      <type></type>
      <name>anonymous</name>
      <anchorfile>namespacecompute__joint__0__target.html</anchorfile>
      <anchor>a8f17d3895c9e6764ccaf290ecab55e1d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>merger</name>
      <anchorfile>namespacecompute__joint__0__target.html</anchorfile>
      <anchor>ac1fbc6fb27508ef5269d0a7e96a62d6f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>crc_unions</name>
    <filename>namespacecrc__unions.html</filename>
    <class kind="union">crc_unions::CRCUnion</class>
    <member kind="typedef">
      <type>CRCUnion</type>
      <name>union16</name>
      <anchorfile>namespacecrc__unions.html</anchorfile>
      <anchor>a8961584d761bd7fb2c215e671b0cf7f4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>generic_updater</name>
    <filename>namespacegeneric__updater.html</filename>
    <class kind="class">generic_updater::GenericUpdater</class>
    <class kind="class">generic_updater::MessageChecker</class>
    <class kind="class">generic_updater::MessageFromMotorChecker</class>
    <class kind="class">generic_updater::MotorDataChecker</class>
    <class kind="class">generic_updater::MotorUpdater</class>
    <class kind="class">generic_updater::MuscleUpdater</class>
    <class kind="class">generic_updater::SensorUpdater</class>
    <class kind="class">generic_updater::SlowMessageFromMotorChecker</class>
    <class kind="struct">generic_updater::UpdateConfig</class>
  </compound>
  <compound kind="namespace">
    <name>operation_mode</name>
    <filename>namespaceoperation__mode.html</filename>
    <namespace>operation_mode::device_update_state</namespace>
    <namespace>operation_mode::robot_state</namespace>
  </compound>
  <compound kind="namespace">
    <name>operation_mode::device_update_state</name>
    <filename>namespaceoperation__mode_1_1device__update__state.html</filename>
    <member kind="enumeration">
      <type></type>
      <name>DeviceUpdateState</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INITIALIZATION</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53a8d01f932abb0893d366f11d7b549410f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OPERATION</name>
      <anchorfile>namespaceoperation__mode_1_1device__update__state.html</anchorfile>
      <anchor>aba8015b3424a7b4a1450643cc0807a53a73fcb6d2534877e981b54876ab21c8ba</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>operation_mode::robot_state</name>
    <filename>namespaceoperation__mode_1_1robot__state.html</filename>
    <member kind="enumeration">
      <type></type>
      <name>RobotState</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INITIALIZATION</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651ae79c3a714b478b24200b15b56397e3ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OPERATION</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651acd55ec55c22bcafb303449be732b5aef</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SHUTDOWN</name>
      <anchorfile>namespaceoperation__mode_1_1robot__state.html</anchorfile>
      <anchor>a04aea0c02d96c835847f6e9770106651a81a061b1c31ecf239ca03ba42963c764</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>setup</name>
    <filename>namespacesetup.html</filename>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>d</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>aa2586b6c4dd84a0aaaf49cb1565cee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type></type>
      <name>setup_args</name>
      <anchorfile>namespacesetup.html</anchorfile>
      <anchor>a504ffa482edfe0eff08f64b2f5dff0e9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>shadow_joints</name>
    <filename>namespaceshadow__joints.html</filename>
    <class kind="struct">shadow_joints::Joint</class>
    <class kind="struct">shadow_joints::JointToMuscle</class>
    <class kind="struct">shadow_joints::JointToSensor</class>
    <class kind="class">shadow_joints::MotorWrapper</class>
    <class kind="class">shadow_joints::MuscleDriver</class>
    <class kind="class">shadow_joints::MuscleWrapper</class>
    <class kind="struct">shadow_joints::PartialJointToSensor</class>
    <class kind="class">shadow_joints::SrActuatorWrapper</class>
    <member kind="typedef">
      <type>threadsafe::Map&lt; boost::shared_ptr&lt; shadow_robot::JointCalibration &gt; &gt;</type>
      <name>CalibrationMap</name>
      <anchorfile>namespaceshadow__joints.html</anchorfile>
      <anchor>a635ffd5f65102142a81950f86837be14</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>shadow_robot</name>
    <filename>namespaceshadow__robot.html</filename>
    <class kind="class">shadow_robot::CoupledJoint</class>
    <class kind="class">shadow_robot::SrMotorHandLib</class>
    <class kind="class">shadow_robot::SrMotorRobotLib</class>
    <class kind="class">shadow_robot::SrMuscleHandLib</class>
    <class kind="class">shadow_robot::SrMuscleRobotLib</class>
    <class kind="class">shadow_robot::SrRobotLib</class>
  </compound>
  <compound kind="namespace">
    <name>sr_robot_lib</name>
    <filename>namespacesr__robot__lib.html</filename>
    <namespace>sr_robot_lib::etherCAT_hand_lib</namespace>
  </compound>
  <compound kind="namespace">
    <name>sr_robot_lib::etherCAT_hand_lib</name>
    <filename>namespacesr__robot__lib_1_1etherCAT__hand__lib.html</filename>
    <class kind="class">sr_robot_lib::etherCAT_hand_lib::EtherCAT_Hand_Lib</class>
  </compound>
  <compound kind="namespace">
    <name>tactiles</name>
    <filename>namespacetactiles.html</filename>
    <class kind="class">tactiles::Biotac</class>
    <class kind="class">tactiles::GenericTactiles</class>
    <class kind="class">tactiles::ShadowPSTs</class>
    <class kind="class">tactiles::UBI0</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0200_PALM_EDC_COMMAND &gt;</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0240_PALM_EDC_COMMAND &gt;</class>
    <class kind="class">tactiles::UBI0&lt; ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_STATUS, ETHERCAT_DATA_STRUCTURE_0300_PALM_EDC_COMMAND &gt;</class>
  </compound>
  <compound kind="page">
    <name>index</name>
    <title></title>
    <filename>index</filename>
    <docanchor file="index" title="Overview">overview</docanchor>
    <docanchor file="index" title="Crawling algorithm">crawling</docanchor>
    <docanchor file="index" title="Efficiency considerations">efficiency</docanchor>
    <docanchor file="index" title="Minimal dependencies">dependencies</docanchor>
    <docanchor file="index" title="Code API">codeapi</docanchor>
    <docanchor file="index" title="The C++ API">cpp</docanchor>
  </compound>
</tagfile>
