<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>balance.cpp</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/src/</path>
    <filename>balance_8cpp.html</filename>
    <includes id="balance_8h" name="balance.h" local="yes" imported="no">rm_chassis_controllers/balance.h</includes>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>balance.h</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/include/rm_chassis_controllers/</path>
    <filename>balance_8h.html</filename>
    <includes id="chassis__base_8h" name="chassis_base.h" local="yes" imported="no">rm_chassis_controllers/chassis_base.h</includes>
    <class kind="class">rm_chassis_controllers::BalanceController</class>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>chassis_base.cpp</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/src/</path>
    <filename>chassis__base_8cpp.html</filename>
    <includes id="chassis__base_8h" name="chassis_base.h" local="yes" imported="no">rm_chassis_controllers/chassis_base.h</includes>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>chassis_base.h</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/include/rm_chassis_controllers/</path>
    <filename>chassis__base_8h.html</filename>
    <class kind="class">rm_chassis_controllers::ChassisBase</class>
    <class kind="struct">rm_chassis_controllers::Command</class>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>omni.cpp</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/src/</path>
    <filename>omni_8cpp.html</filename>
    <includes id="omni_8h" name="omni.h" local="yes" imported="no">rm_chassis_controllers/omni.h</includes>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>omni.h</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/include/rm_chassis_controllers/</path>
    <filename>omni_8h.html</filename>
    <includes id="chassis__base_8h" name="chassis_base.h" local="yes" imported="no">rm_chassis_controllers/chassis_base.h</includes>
    <class kind="class">rm_chassis_controllers::OmniController</class>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>sentry.cpp</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/src/</path>
    <filename>sentry_8cpp.html</filename>
    <includes id="sentry_8h" name="sentry.h" local="yes" imported="no">rm_chassis_controllers/sentry.h</includes>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>sentry.h</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/include/rm_chassis_controllers/</path>
    <filename>sentry_8h.html</filename>
    <includes id="chassis__base_8h" name="chassis_base.h" local="yes" imported="no">rm_chassis_controllers/chassis_base.h</includes>
    <class kind="class">rm_chassis_controllers::SentryController</class>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>swerve.cpp</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/src/</path>
    <filename>swerve_8cpp.html</filename>
    <includes id="swerve_8h" name="swerve.h" local="yes" imported="no">rm_chassis_controllers/swerve.h</includes>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="file">
    <name>swerve.h</name>
    <path>/tmp/ws/src/rm_controllers/rm_chassis_controllers/include/rm_chassis_controllers/</path>
    <filename>swerve_8h.html</filename>
    <includes id="chassis__base_8h" name="chassis_base.h" local="yes" imported="no">rm_chassis_controllers/chassis_base.h</includes>
    <class kind="struct">rm_chassis_controllers::Module</class>
    <class kind="class">rm_chassis_controllers::SwerveController</class>
    <namespace>rm_chassis_controllers</namespace>
  </compound>
  <compound kind="class">
    <name>rm_chassis_controllers::BalanceController</name>
    <filename>classrm__chassis__controllers_1_1BalanceController.html</filename>
    <base>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface &gt;</base>
    <member kind="function">
      <type></type>
      <name>BalanceController</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a69af9996f3c79065fef14a8287615081</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a57270f6e574701389ed1bcab9f1ee4bb</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>BalanceMode</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab725251476bdb917af9c5a16d3febcd0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>NORMAL</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab725251476bdb917af9c5a16d3febcd0a2f5077cc6c1baff7e8b453e3fe768c5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>BLOCK</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab725251476bdb917af9c5a16d3febcd0a636ea066597f99aeb68285de22c4d5cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>BLOCK</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab725251476bdb917af9c5a16d3febcd0a636ea066597f99aeb68285de22c4d5cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="private">
      <name>NORMAL</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab725251476bdb917af9c5a16d3febcd0a2f5077cc6c1baff7e8b453e3fe768c5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; rm_msgs::BalanceState &gt; &gt;</type>
      <name>RtpublisherPtr</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a6794ad27175deb91908bc83734d03006</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>block</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4da5be358973ce4ec93768dd897dc65e</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4002306403080122b45b767871bf612f</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>normal</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a49ae39662fd7783d13e84bcdba3f058b</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a376c54a6f260b0f2613589c1d999bfdb</anchor>
      <arglist>() override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, STATE_DIM, STATE_DIM &gt;</type>
      <name>a_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>acabd296d21ef7226c77b161c08f44642</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>geometry_msgs::Vector3</type>
      <name>angular_vel_base_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4af5dbf1c201a6d87b95afbd4a0a9bcb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>anti_block_effort_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a6707b16fede5d3a214d3f97ceb0d9807</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, STATE_DIM, CONTROL_DIM &gt;</type>
      <name>b_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a449b80b0ccdd56cae0f157adef6e698b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>balance_mode_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>af6e9db68e7e9fa34b977c7e5508393e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>balance_state_changed_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a180d208e3d67a6e7ad210aa514939a17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>block_angle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a23bffae7da00fb4e9dc0309b6c7490ec</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>block_duration_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a3d5e79c93c96c4ce27ae8f832d39fcda</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>block_effort_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab521a6d0c1c31ed755f4f97f11dbf9db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>block_overtime_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4515fa6b67ea7c19abb5ccdd937c23c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>block_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a218822dd7a32d8f460a6888c34f9e6e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>block_velocity_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>aed7c77296a32008655574ff3f2bcec04</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::ImuSensorHandle</type>
      <name>imu_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ad7568cc5ff1ce245fa44a33a3f6836fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, CONTROL_DIM, STATE_DIM &gt;</type>
      <name>k_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4966514f4496e307806cb40040b83c2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>last_block_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a5b43aadc27039261dbc2e94c64c757cb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>left_momentum_block_joint_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4201c6215161218fd4ab99572a49dacd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>left_wheel_joint_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>aae5b13ff3596b2be935c1dee6413ad61</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>maybe_block_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a9edd4f2cf79f1f4a56e1311776d818fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>pitch_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a0ac015a0073a70c8517dc2abc73b9ed1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>position_clear_threshold_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a6cd0f647fe3bd73b5a32e858bfdd5bb1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>position_des_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ad1a4723f2a9b05d7ed598ba358b9427f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>position_offset_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a4433e7edaa94939f90258d6d97ded2c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, STATE_DIM, STATE_DIM &gt;</type>
      <name>q_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a929749f10de970b0cca0de6ef3a50814</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, CONTROL_DIM, CONTROL_DIM &gt;</type>
      <name>r_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a1aeeb466a221cc9de82a273b03eb68a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>right_momentum_block_joint_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab291710c1b24895e930546180b7041fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>right_wheel_joint_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ad7ec5e63fe4af254e44a7ba8eae6cddd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>roll_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a301084a5f379992b223a387aaf541086</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>RtpublisherPtr</type>
      <name>state_pub_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ad49bcf1cbd4224bc78fd18ce894e213c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_base_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a515644221112bfb15342ab318ad27adc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>aa0b8f9463156ca27b246c547d228a0a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::Matrix&lt; double, STATE_DIM, 1 &gt;</type>
      <name>x_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>ab0226556910cf2f2df88852323c08031</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>yaw_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a0ff1d20955160605e38e8a1e3a59f441</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>yaw_des_</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>aba40d5b63920c67b81208ffec08eac91</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int</type>
      <name>CONTROL_DIM</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>a6e8e78f71cf95be0187be9cd312472f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private" static="yes">
      <type>static const int</type>
      <name>STATE_DIM</name>
      <anchorfile>classrm__chassis__controllers_1_1BalanceController.html</anchorfile>
      <anchor>af5bb0afbe4e0851438ab39e5ee68080f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>rm_chassis_controllers::ChassisBase</name>
    <filename>classrm__chassis__controllers_1_1ChassisBase.html</filename>
    <templarg>T</templarg>
    <base>MultiInterfaceController&lt; T... &gt;</base>
    <member kind="function">
      <type></type>
      <name>ChassisBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ad4f0893dec7f19fee4068dd2560996e1</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af4d09236a4722684d03ff20ece549ab4</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79cd8334cd7748e0a932e59476546e1a</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>RAW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa1a680f6c73123d82517ac3df24b9ed04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>FOLLOW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa0b59398a1d82ecddf066c06de2e8544d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>TWIST</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fab28969cb5b3dfea8b4c0f3c98064da9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>FOLLOW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa0b59398a1d82ecddf066c06de2e8544d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>RAW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa1a680f6c73123d82517ac3df24b9ed04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>TWIST</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fab28969cb5b3dfea8b4c0f3c98064da9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdChassisCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7f3aa156bdddac6dec4c3e1dfaca802b</anchor>
      <arglist>(const rm_msgs::ChassisCmdConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdVelCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af8a535ff96b024df458c842911a82101</anchor>
      <arglist>(const geometry_msgs::Twist::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>follow</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a80f18ca111de8b78b8fda41e2dbffb15</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aec9ded360c29ee0045c1986c6057ee01</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a249092f065b8c55777eef836e91d0934</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>outsideOdomCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a643e51ba4d9cd308c05a43072186dd45</anchor>
      <arglist>(const nav_msgs::Odometry::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>powerLimit</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a657c3a72cd9ffee22b466207c8757082</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>raw</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a883a3caba138285c37d182d3e89ed178</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>recovery</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a735ad13ab9eb144fc85c72215e75601c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>tfVelToBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a6587979f287cb6911044b59b14803481</anchor>
      <arglist>(const std::string &amp;from)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>twist</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb7c03510f88bfcc7f86167bef3042e9</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>updateOdom</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5dfd4b3183fa3e9f3bfd08dda0cb1eee</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_chassis_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a11f34d21ab0f7986d01e1314357f92de</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; Command &gt;</type>
      <name>cmd_rt_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb33a7e3dd97995def21344a87175138</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>Command</type>
      <name>cmd_struct_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ace3d3c4630a93ca61e04b2d64e4dcfc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_vel_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ae882ba0468062a805b7e54d73f9196ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>command_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5ac782e0daed8360def209b98e6ae7e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>effort_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aac37a624d00074f9a2295dd3906aab32</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>hardware_interface::EffortJointInterface *</type>
      <name>effort_joint_interface_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50d3ea8fad82d18e11bdcf826a9cc28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>enable_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>adcf2575c0860cf3b15e0c302e7a7d467</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>follow_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa78d48e0af0058f895e044e494e1476d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; hardware_interface::JointHandle &gt;</type>
      <name>joint_handles_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50db131c5bc0b7dfb829822a2968190</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Time</type>
      <name>last_publish_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a659a58e383db28e7e0c31e514a9eb3e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>max_odom_vel_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a116cf159f1dfb3055e82edd450be98c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::TransformStamped</type>
      <name>odom2base_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7020f7f4f4fd70a3033f2a98b21e3e9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; nav_msgs::Odometry &gt;</type>
      <name>odom_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af0172ae6afb15a4666f741ef79a2f47f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; nav_msgs::Odometry &gt; &gt;</type>
      <name>odom_pub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a733b0717c61e3223eb896eedf7853c47</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>outside_odom_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a1b911c9d78aa3a9bcf7b55698383ccbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>control_toolbox::Pid</type>
      <name>pid_follow_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5187acad5c9f83ed284bd77f48dbdcc5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>power_offset_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5053d9c3dcc3f1a6985ed9566dd55b9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>publish_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79c944e6f7b79a46c579691410fe6846</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>publish_rate_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0a409b4d8a65884c0f93c0ffe2746025</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_w_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a2dc9ce2aa6cce9371062fd9b5d410743</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_x_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab9792f4408d3b3ec855e149a6ff91b80</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_y_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a414401afa63558551b06e2356b23ad57</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_control::RobotStateHandle</type>
      <name>robot_state_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa7b26365e80aa31448e889eb0f6fcaab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>state_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab993219fede3048ab3796b6769a958f6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>state_changed_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aff52a7f25e5f4f661d529e284e70ecc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_common::TfRtBroadcaster</type>
      <name>tf_broadcaster_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aab12514487c494fff53f63e2a7e638d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>timeout_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0fb9d729efb5ac9f90daf991d397ff1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>topic_update_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a40a3d6640111bf0515e1c120d6997c64</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>twist_angular_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a240f5dbc04dad41736af2ad6e46311a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::Vector3</type>
      <name>vel_cmd_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>acdc8bc4dcdf4dc0ffafd267c6a942db2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>velocity_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a81556f824b2973eb6202256a74659dbe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a852beae9009dbedd9651c02167218203</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>tf2::Transform</type>
      <name>world2odom_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ac42912e43e5e4b5fc2935d968548ff8a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::EffortJointInterface &gt;</name>
    <filename>classrm__chassis__controllers_1_1ChassisBase.html</filename>
    <base>MultiInterfaceController&lt; T... &gt;</base>
    <member kind="function">
      <type></type>
      <name>ChassisBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ad4f0893dec7f19fee4068dd2560996e1</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af4d09236a4722684d03ff20ece549ab4</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79cd8334cd7748e0a932e59476546e1a</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>FOLLOW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa0b59398a1d82ecddf066c06de2e8544d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>RAW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa1a680f6c73123d82517ac3df24b9ed04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>TWIST</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fab28969cb5b3dfea8b4c0f3c98064da9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdChassisCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7f3aa156bdddac6dec4c3e1dfaca802b</anchor>
      <arglist>(const rm_msgs::ChassisCmdConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdVelCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af8a535ff96b024df458c842911a82101</anchor>
      <arglist>(const geometry_msgs::Twist::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>follow</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a80f18ca111de8b78b8fda41e2dbffb15</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aec9ded360c29ee0045c1986c6057ee01</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a249092f065b8c55777eef836e91d0934</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>outsideOdomCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a643e51ba4d9cd308c05a43072186dd45</anchor>
      <arglist>(const nav_msgs::Odometry::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>powerLimit</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a657c3a72cd9ffee22b466207c8757082</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>raw</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a883a3caba138285c37d182d3e89ed178</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>recovery</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a735ad13ab9eb144fc85c72215e75601c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>tfVelToBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a6587979f287cb6911044b59b14803481</anchor>
      <arglist>(const std::string &amp;from)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>twist</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb7c03510f88bfcc7f86167bef3042e9</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>updateOdom</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5dfd4b3183fa3e9f3bfd08dda0cb1eee</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_chassis_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a11f34d21ab0f7986d01e1314357f92de</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; Command &gt;</type>
      <name>cmd_rt_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb33a7e3dd97995def21344a87175138</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>Command</type>
      <name>cmd_struct_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ace3d3c4630a93ca61e04b2d64e4dcfc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_vel_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ae882ba0468062a805b7e54d73f9196ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>command_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5ac782e0daed8360def209b98e6ae7e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>effort_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aac37a624d00074f9a2295dd3906aab32</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>hardware_interface::EffortJointInterface *</type>
      <name>effort_joint_interface_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50d3ea8fad82d18e11bdcf826a9cc28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>enable_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>adcf2575c0860cf3b15e0c302e7a7d467</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>follow_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa78d48e0af0058f895e044e494e1476d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; hardware_interface::JointHandle &gt;</type>
      <name>joint_handles_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50db131c5bc0b7dfb829822a2968190</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Time</type>
      <name>last_publish_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a659a58e383db28e7e0c31e514a9eb3e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>max_odom_vel_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a116cf159f1dfb3055e82edd450be98c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::TransformStamped</type>
      <name>odom2base_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7020f7f4f4fd70a3033f2a98b21e3e9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; nav_msgs::Odometry &gt;</type>
      <name>odom_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af0172ae6afb15a4666f741ef79a2f47f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; nav_msgs::Odometry &gt; &gt;</type>
      <name>odom_pub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a733b0717c61e3223eb896eedf7853c47</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>outside_odom_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a1b911c9d78aa3a9bcf7b55698383ccbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>control_toolbox::Pid</type>
      <name>pid_follow_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5187acad5c9f83ed284bd77f48dbdcc5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>power_offset_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5053d9c3dcc3f1a6985ed9566dd55b9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>publish_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79c944e6f7b79a46c579691410fe6846</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>publish_rate_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0a409b4d8a65884c0f93c0ffe2746025</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_w_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a2dc9ce2aa6cce9371062fd9b5d410743</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_x_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab9792f4408d3b3ec855e149a6ff91b80</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_y_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a414401afa63558551b06e2356b23ad57</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_control::RobotStateHandle</type>
      <name>robot_state_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa7b26365e80aa31448e889eb0f6fcaab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>state_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab993219fede3048ab3796b6769a958f6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>state_changed_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aff52a7f25e5f4f661d529e284e70ecc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_common::TfRtBroadcaster</type>
      <name>tf_broadcaster_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aab12514487c494fff53f63e2a7e638d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>timeout_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0fb9d729efb5ac9f90daf991d397ff1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>topic_update_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a40a3d6640111bf0515e1c120d6997c64</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>twist_angular_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a240f5dbc04dad41736af2ad6e46311a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::Vector3</type>
      <name>vel_cmd_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>acdc8bc4dcdf4dc0ffafd267c6a942db2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>velocity_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a81556f824b2973eb6202256a74659dbe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a852beae9009dbedd9651c02167218203</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>tf2::Transform</type>
      <name>world2odom_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ac42912e43e5e4b5fc2935d968548ff8a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::ImuSensorInterface, hardware_interface::EffortJointInterface &gt;</name>
    <filename>classrm__chassis__controllers_1_1ChassisBase.html</filename>
    <base>MultiInterfaceController&lt; T... &gt;</base>
    <member kind="function">
      <type></type>
      <name>ChassisBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ad4f0893dec7f19fee4068dd2560996e1</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af4d09236a4722684d03ff20ece549ab4</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79cd8334cd7748e0a932e59476546e1a</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>FOLLOW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa0b59398a1d82ecddf066c06de2e8544d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>RAW</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fa1a680f6c73123d82517ac3df24b9ed04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue" protection="protected">
      <name>TWIST</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a3e23fc2aa4f9062ea07ab194d892db7fab28969cb5b3dfea8b4c0f3c98064da9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdChassisCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7f3aa156bdddac6dec4c3e1dfaca802b</anchor>
      <arglist>(const rm_msgs::ChassisCmdConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>cmdVelCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af8a535ff96b024df458c842911a82101</anchor>
      <arglist>(const geometry_msgs::Twist::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>follow</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a80f18ca111de8b78b8fda41e2dbffb15</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aec9ded360c29ee0045c1986c6057ee01</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a249092f065b8c55777eef836e91d0934</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>outsideOdomCallback</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a643e51ba4d9cd308c05a43072186dd45</anchor>
      <arglist>(const nav_msgs::Odometry::ConstPtr &amp;msg)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>powerLimit</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a657c3a72cd9ffee22b466207c8757082</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>raw</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a883a3caba138285c37d182d3e89ed178</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>recovery</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a735ad13ab9eb144fc85c72215e75601c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>tfVelToBase</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a6587979f287cb6911044b59b14803481</anchor>
      <arglist>(const std::string &amp;from)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>twist</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb7c03510f88bfcc7f86167bef3042e9</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>updateOdom</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5dfd4b3183fa3e9f3bfd08dda0cb1eee</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_chassis_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a11f34d21ab0f7986d01e1314357f92de</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; Command &gt;</type>
      <name>cmd_rt_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aeb33a7e3dd97995def21344a87175138</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>Command</type>
      <name>cmd_struct_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ace3d3c4630a93ca61e04b2d64e4dcfc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>cmd_vel_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ae882ba0468062a805b7e54d73f9196ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>command_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5ac782e0daed8360def209b98e6ae7e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>effort_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aac37a624d00074f9a2295dd3906aab32</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>hardware_interface::EffortJointInterface *</type>
      <name>effort_joint_interface_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50d3ea8fad82d18e11bdcf826a9cc28</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>enable_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>adcf2575c0860cf3b15e0c302e7a7d467</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::string</type>
      <name>follow_source_frame_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa78d48e0af0058f895e044e494e1476d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::vector&lt; hardware_interface::JointHandle &gt;</type>
      <name>joint_handles_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab50db131c5bc0b7dfb829822a2968190</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Time</type>
      <name>last_publish_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a659a58e383db28e7e0c31e514a9eb3e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>max_odom_vel_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a116cf159f1dfb3055e82edd450be98c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::TransformStamped</type>
      <name>odom2base_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a7020f7f4f4fd70a3033f2a98b21e3e9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>realtime_tools::RealtimeBuffer&lt; nav_msgs::Odometry &gt;</type>
      <name>odom_buffer_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>af0172ae6afb15a4666f741ef79a2f47f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; nav_msgs::Odometry &gt; &gt;</type>
      <name>odom_pub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a733b0717c61e3223eb896eedf7853c47</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>ros::Subscriber</type>
      <name>outside_odom_sub_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a1b911c9d78aa3a9bcf7b55698383ccbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>control_toolbox::Pid</type>
      <name>pid_follow_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5187acad5c9f83ed284bd77f48dbdcc5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>power_offset_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a5053d9c3dcc3f1a6985ed9566dd55b9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>publish_odom_tf_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a79c944e6f7b79a46c579691410fe6846</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>publish_rate_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0a409b4d8a65884c0f93c0ffe2746025</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_w_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a2dc9ce2aa6cce9371062fd9b5d410743</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_x_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab9792f4408d3b3ec855e149a6ff91b80</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>RampFilter&lt; double &gt; *</type>
      <name>ramp_y_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a414401afa63558551b06e2356b23ad57</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_control::RobotStateHandle</type>
      <name>robot_state_handle_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aa7b26365e80aa31448e889eb0f6fcaab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>int</type>
      <name>state_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ab993219fede3048ab3796b6769a958f6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>state_changed_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aff52a7f25e5f4f661d529e284e70ecc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>rm_common::TfRtBroadcaster</type>
      <name>tf_broadcaster_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>aab12514487c494fff53f63e2a7e638d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>timeout_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a0fb9d729efb5ac9f90daf991d397ff1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>bool</type>
      <name>topic_update_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a40a3d6640111bf0515e1c120d6997c64</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>twist_angular_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a240f5dbc04dad41736af2ad6e46311a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>geometry_msgs::Vector3</type>
      <name>vel_cmd_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>acdc8bc4dcdf4dc0ffafd267c6a942db2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>velocity_coeff_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a81556f824b2973eb6202256a74659dbe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>a852beae9009dbedd9651c02167218203</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>tf2::Transform</type>
      <name>world2odom_</name>
      <anchorfile>classrm__chassis__controllers_1_1ChassisBase.html</anchorfile>
      <anchor>ac42912e43e5e4b5fc2935d968548ff8a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rm_chassis_controllers::Command</name>
    <filename>structrm__chassis__controllers_1_1Command.html</filename>
    <member kind="variable">
      <type>rm_msgs::ChassisCmd</type>
      <name>cmd_chassis_</name>
      <anchorfile>structrm__chassis__controllers_1_1Command.html</anchorfile>
      <anchor>a8283ce337c07f56c23b369fff2680f8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>geometry_msgs::Twist</type>
      <name>cmd_vel_</name>
      <anchorfile>structrm__chassis__controllers_1_1Command.html</anchorfile>
      <anchor>a9a732d47c867d97e560c6bd24d989523</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Time</type>
      <name>stamp_</name>
      <anchorfile>structrm__chassis__controllers_1_1Command.html</anchorfile>
      <anchor>afc7d8deadf91cc401ec515e9167114f3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rm_chassis_controllers::Module</name>
    <filename>structrm__chassis__controllers_1_1Module.html</filename>
    <member kind="variable">
      <type>effort_controllers::JointPositionController *</type>
      <name>ctrl_pivot_</name>
      <anchorfile>structrm__chassis__controllers_1_1Module.html</anchorfile>
      <anchor>a0fec736c155dbfe4af795af9429789ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>effort_controllers::JointVelocityController *</type>
      <name>ctrl_wheel_</name>
      <anchorfile>structrm__chassis__controllers_1_1Module.html</anchorfile>
      <anchor>a7cb5d024e0081ed18b61239575158cfb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>pivot_offset_</name>
      <anchorfile>structrm__chassis__controllers_1_1Module.html</anchorfile>
      <anchor>a3951d85a9fa4b62e9dddb33eb585ee6b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>Vec2&lt; double &gt;</type>
      <name>position_</name>
      <anchorfile>structrm__chassis__controllers_1_1Module.html</anchorfile>
      <anchor>a1bf1aba5d0b7e4bcd994c29e85e2f181</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>structrm__chassis__controllers_1_1Module.html</anchorfile>
      <anchor>a55437a04eb7fa8e0891deb49a6eaf371</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>rm_chassis_controllers::OmniController</name>
    <filename>classrm__chassis__controllers_1_1OmniController.html</filename>
    <base>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::EffortJointInterface &gt;</base>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>ad93517789f465f61eec569baf6ad47ec</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>OmniController</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>a9e2c49d0448637e0cf7d0415cf9075bb</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>ad05749951fe2af3053a983ab2ff88d3c</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="function" protection="private">
      <type>geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>a117be69d947ea9293a2f36ee5c759fda</anchor>
      <arglist>() override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Eigen::MatrixXd</type>
      <name>chassis2joints_</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>ab6bc6fefd57330536987ce7e813ee448</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::shared_ptr&lt; effort_controllers::JointVelocityController &gt; &gt;</type>
      <name>joints_</name>
      <anchorfile>classrm__chassis__controllers_1_1OmniController.html</anchorfile>
      <anchor>a6ec25f564e8f24917636cfa4565652a4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>rm_chassis_controllers::SentryController</name>
    <filename>classrm__chassis__controllers_1_1SentryController.html</filename>
    <base>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::EffortJointInterface &gt;</base>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a54292137e9e3b96b46b151a004a39687</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SentryController</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a97ca8040135530ae9d82a18914eb1323</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>catapult</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>ac9efaf831127bfb768d986ac7348c17a</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a4f63599a61bbadc18bbe48e93e574b16</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>normal</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a9b9813c034bad0ec52427f6bf4c171f7</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a7d2abdc18963fb9be4318634642bef12</anchor>
      <arglist>() override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>catapult_angle_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a2f656d8d5bcd2a2bb410967e2b175a39</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>catapult_initial_velocity_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a4f08d141a033eb7286aca6bd1bac7095</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>effort_controllers::JointPositionController</type>
      <name>ctrl_catapult_joint_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a04f57d0ab3fcc0167133c4b194da1407</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>effort_controllers::JointVelocityController</type>
      <name>ctrl_wheel_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a474709ec555bb6df4572105e13bfaece</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>if_catapult_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a42aba2af21195768b19858d4ce2bc23d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>last_vel_cmd_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a37b5e2d1ec9bf9e6f73317716e806f4b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>lock_duratoin_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a610ea96d45e9ab925076f9313cbb2a01</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>lock_time_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>ae3d306523ba50da94e9b71b326c3159d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>vel_coff_</name>
      <anchorfile>classrm__chassis__controllers_1_1SentryController.html</anchorfile>
      <anchor>a22e8190c5ccab684a6fc1574f3b0068b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>rm_chassis_controllers::SwerveController</name>
    <filename>classrm__chassis__controllers_1_1SwerveController.html</filename>
    <base>ChassisBase&lt; rm_control::RobotStateInterface, hardware_interface::EffortJointInterface &gt;</base>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classrm__chassis__controllers_1_1SwerveController.html</anchorfile>
      <anchor>ab82ac1017bb6e8cc00b0cd67298db4f0</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh) override</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SwerveController</name>
      <anchorfile>classrm__chassis__controllers_1_1SwerveController.html</anchorfile>
      <anchor>a850d3e45e8b6c91c967cf1623217173e</anchor>
      <arglist>()=default</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>moveJoint</name>
      <anchorfile>classrm__chassis__controllers_1_1SwerveController.html</anchorfile>
      <anchor>ac20eccca2b30810755a2684b25c3c5c7</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period) override</arglist>
    </member>
    <member kind="function" protection="private">
      <type>geometry_msgs::Twist</type>
      <name>odometry</name>
      <anchorfile>classrm__chassis__controllers_1_1SwerveController.html</anchorfile>
      <anchor>a17cae558414d5367535d17839048c9f6</anchor>
      <arglist>() override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; Module &gt;</type>
      <name>modules_</name>
      <anchorfile>classrm__chassis__controllers_1_1SwerveController.html</anchorfile>
      <anchor>a29576759ba5c701e0b464c80baf52897</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>rm_chassis_controllers</name>
    <filename>namespacerm__chassis__controllers.html</filename>
    <class kind="class">rm_chassis_controllers::BalanceController</class>
    <class kind="class">rm_chassis_controllers::ChassisBase</class>
    <class kind="struct">rm_chassis_controllers::Command</class>
    <class kind="struct">rm_chassis_controllers::Module</class>
    <class kind="class">rm_chassis_controllers::OmniController</class>
    <class kind="class">rm_chassis_controllers::SentryController</class>
    <class kind="class">rm_chassis_controllers::SwerveController</class>
  </compound>
</tagfile>
