<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>ackermann_steering_bot.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/common/src/</path>
    <filename>ackermann__steering__bot_8cpp</filename>
    <includes id="ackermann__steering__bot_8h" name="ackermann_steering_bot.h" local="yes" imported="no">./../include/ackermann_steering_bot.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__bot_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_bot.h</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/common/include/</path>
    <filename>ackermann__steering__bot_8h</filename>
    <class kind="class">AckermannSteeringBot</class>
    <member kind="enumeration">
      <type></type>
      <name>INDEX_WHEEL</name>
      <anchorfile>ackermann__steering__bot_8h.html</anchorfile>
      <anchor>aec772175c76a18c0ce2ce39688038b77</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INDEX_RIGHT</name>
      <anchorfile>ackermann__steering__bot_8h.html</anchorfile>
      <anchor>aec772175c76a18c0ce2ce39688038b77a6d07d7da29cc0ee9203ffb7720a6a7d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>INDEX_LEFT</name>
      <anchorfile>ackermann__steering__bot_8h.html</anchorfile>
      <anchor>aec772175c76a18c0ce2ce39688038b77a0de0d5d4f008973a7109a368113d80fd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/src/</path>
    <filename>ackermann__steering__controller_8cpp</filename>
    <includes id="ackermann__steering__controller_8h" name="ackermann_steering_controller.h" local="no" imported="no">ackermann_steering_controller/ackermann_steering_controller.h</includes>
    <namespace>ackermann_steering_controller</namespace>
    <member kind="function" static="yes">
      <type>static double</type>
      <name>euclideanOfVectors</name>
      <anchorfile>ackermann__steering__controller_8cpp.html</anchorfile>
      <anchor>abcf3d312c1170b9f0dca43eae6affb98</anchor>
      <arglist>(const urdf::Vector3 &amp;vec1, const urdf::Vector3 &amp;vec2)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>getWheelRadius</name>
      <anchorfile>ackermann__steering__controller_8cpp.html</anchorfile>
      <anchor>ad72cd7f64604c767991196773af01ca0</anchor>
      <arglist>(const urdf::LinkConstSharedPtr &amp;wheel_link, double &amp;wheel_radius)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>isCylinder</name>
      <anchorfile>ackermann__steering__controller_8cpp.html</anchorfile>
      <anchor>af674a79b8db166c375210bd1b37fbf87</anchor>
      <arglist>(const urdf::LinkConstSharedPtr &amp;link)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller.h</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/include/ackermann_steering_controller/</path>
    <filename>ackermann__steering__controller_8h</filename>
    <includes id="odometry_8h" name="odometry.h" local="no" imported="no">ackermann_steering_controller/odometry.h</includes>
    <class kind="class">ackermann_steering_controller::AckermannSteeringController</class>
    <class kind="struct">ackermann_steering_controller::AckermannSteeringController::Commands</class>
    <namespace>ackermann_steering_controller</namespace>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_default_odom_frame_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_default_odom_frame_test/</path>
    <filename>ackermann__steering__controller__default__odom__frame__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__default__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__default__odom__frame__test_8cpp.html</anchorfile>
      <anchor>ac4639b6c0728bbb1419ad3c969782e3d</anchor>
      <arglist>(AckermannSteeringControllerTest, testOdomFrame)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__default__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a44d862d9c9513414523351ab77edfc89</anchor>
      <arglist>(AckermannSteeringControllerTest, testOdomTopic)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_fail_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_fail_test/</path>
    <filename>ackermann__steering__controller__fail__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__fail__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__fail__test_8cpp.html</anchorfile>
      <anchor>aeefc6e8997d9cb7d9a3ae07984b530bc</anchor>
      <arglist>(AckermannSteeringControllerTest, testWrongJointName)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_limits_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_limits_test/</path>
    <filename>ackermann__steering__controller__limits__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>add7bf1ec0454ddf7b2565c53590682a6</anchor>
      <arglist>(AckermannSteeringControllerTest, testLinearJerkLimits)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a1c1d5bb5ad18a8e1993a74d3570b896c</anchor>
      <arglist>(AckermannSteeringControllerTest, testLinearAccelerationLimits)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a97c776648ef330642eb4d31f75d8dd7e</anchor>
      <arglist>(AckermannSteeringControllerTest, testLinearVelocityLimits)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a2af38147733dad079740d2b2fcb85b38</anchor>
      <arglist>(AckermannSteeringControllerTest, testAngularJerkLimits)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a6c27321bf2c242598e61441630d8c440</anchor>
      <arglist>(AckermannSteeringControllerTest, testAngularAccelerationLimits)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__limits__test_8cpp.html</anchorfile>
      <anchor>a55482716263350150f9c5d1b8fc7a05e</anchor>
      <arglist>(AckermannSteeringControllerTest, testAngularVelocityLimits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_nan_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_nan_test/</path>
    <filename>ackermann__steering__controller__nan__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__nan__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__nan__test_8cpp.html</anchorfile>
      <anchor>a22cb900d9bc75eb892b8812968fa919d</anchor>
      <arglist>(AckermannSteeringControllerTest, testNaN)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_odom_frame_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_odom_frame_test/</path>
    <filename>ackermann__steering__controller__odom__frame__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a3cffbd6d8f0a6f4839aeac1b79122c56</anchor>
      <arglist>(AckermannSteeringControllerTest, testNoOdomFrame)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a66073fabaca488ed206d8e2801c7a398</anchor>
      <arglist>(AckermannSteeringControllerTest, testNewOdomFrame)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__odom__frame__test_8cpp.html</anchorfile>
      <anchor>a44d862d9c9513414523351ab77edfc89</anchor>
      <arglist>(AckermannSteeringControllerTest, testOdomTopic)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_odom_tf_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_odom_tf_test/</path>
    <filename>ackermann__steering__controller__odom__tf__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__odom__tf__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__odom__tf__test_8cpp.html</anchorfile>
      <anchor>a3cffbd6d8f0a6f4839aeac1b79122c56</anchor>
      <arglist>(AckermannSteeringControllerTest, testNoOdomFrame)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_test/</path>
    <filename>ackermann__steering__controller__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__test_8cpp.html</anchorfile>
      <anchor>ae09f6ee70f710773397051d7534045fa</anchor>
      <arglist>(AckermannSteeringControllerTest, testForward)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__test_8cpp.html</anchorfile>
      <anchor>aefc674f90e78026adf137d35aa0af19c</anchor>
      <arglist>(AckermannSteeringControllerTest, testTurn)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__test_8cpp.html</anchorfile>
      <anchor>ac4639b6c0728bbb1419ad3c969782e3d</anchor>
      <arglist>(AckermannSteeringControllerTest, testOdomFrame)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ackermann_steering_controller_timeout_test.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/ackermann_steering_controller_timeout_test/</path>
    <filename>ackermann__steering__controller__timeout__test_8cpp</filename>
    <includes id="test__common_8h" name="test_common.h" local="yes" imported="no">../common/include/test_common.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>ackermann__steering__controller__timeout__test_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST_F</name>
      <anchorfile>ackermann__steering__controller__timeout__test_8cpp.html</anchorfile>
      <anchor>af486babd2475bb3eb4892acc799ab5bc</anchor>
      <arglist>(AckermannSteeringControllerTest, testTimeout)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>odometry.cpp</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/src/</path>
    <filename>odometry_8cpp</filename>
    <includes id="odometry_8h" name="odometry.h" local="no" imported="no">ackermann_steering_controller/odometry.h</includes>
    <namespace>ackermann_steering_controller</namespace>
  </compound>
  <compound kind="file">
    <name>odometry.h</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/include/ackermann_steering_controller/</path>
    <filename>odometry_8h</filename>
    <class kind="class">ackermann_steering_controller::Odometry</class>
    <namespace>ackermann_steering_controller</namespace>
  </compound>
  <compound kind="file">
    <name>test_common.h</name>
    <path>/tmp/ws/src/ros_controllers/ackermann_steering_controller/test/common/include/</path>
    <filename>test__common_8h</filename>
    <class kind="class">AckermannSteeringControllerTest</class>
    <member kind="function">
      <type>tf::Quaternion</type>
      <name>tfQuatFromGeomQuat</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a18358df11baeec260a241cd72202d1a6</anchor>
      <arglist>(const geometry_msgs::Quaternion &amp;quat)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>ANGULAR_VELOCITY_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a12354ae0f5071955cea199fd90a2928f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>EPS</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>afe01386a82fedc016455a43c20280a97</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>JERK_ANGULAR_VELOCITY_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a655bad5d5ae48791eb7669207427c389</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>JERK_LINEAR_VELOCITY_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a052df28d84b65883e681360bf05f6bba</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>ORIENTATION_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a46883f35cee1a294fe7c785933f7269d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>POSITION_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>ae3525a736ad86d2718e5cb2b3d050442</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>VELOCITY_TOLERANCE</name>
      <anchorfile>test__common_8h.html</anchorfile>
      <anchor>a1094aad36ddfc0fd475c68eb2611507f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>AckermannSteeringBot</name>
    <filename>classAckermannSteeringBot.html</filename>
    <base>hardware_interface::RobotHW</base>
    <member kind="function">
      <type></type>
      <name>AckermannSteeringBot</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>af17733d344b9e895001e7a254097254e</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>ros::Duration</type>
      <name>getPeriod</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ab6e111cea58758d857cc343b562a4964</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>ros::Time</type>
      <name>getTime</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a0bb225efa762c7ab0a1ee0386dae1275</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>read</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a7d9f6257b07be7fa2175b2e0d45b8813</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>startCallback</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a8c2ac0b1297ccddbbaa38d7987113f12</anchor>
      <arglist>(std_srvs::Empty::Request &amp;, std_srvs::Empty::Response &amp;)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>stopCallback</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a5b4f10d519af10abacd9746ff852f465</anchor>
      <arglist>(std_srvs::Empty::Request &amp;, std_srvs::Empty::Response &amp;)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>write</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ae127c275baeae1a495630c8d653997f5</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>cleanUp</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a607140d1a932ae984ee8963172e6b77d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>getJointNames</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a73c10dccf5be3c1f55532899cdc684ac</anchor>
      <arglist>(ros::NodeHandle &amp;_nh)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>getSteerJointNames</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>adec8949846968b54466f19b7991dfd1c</anchor>
      <arglist>(ros::NodeHandle &amp;_nh)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>getWheelJointNames</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ab6a03b63956b3635d4007026032c0e30</anchor>
      <arglist>(ros::NodeHandle &amp;_nh)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerCommandJointInterfaceHandle</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a5cc228a95e09dc79013beb3bd11eba2a</anchor>
      <arglist>(hardware_interface::JointStateInterface &amp;_jnt_state_interface, hardware_interface::JointCommandInterface &amp;_jnt_cmd_interface, const std::string _jnt_name, double &amp;_jnt_cmd)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerHardwareInterfaces</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ad64d0971120c353ca2836c82632a6655</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerInterfaceHandles</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a9d3df1b1c0d1c3d6c8cc7a5efe12309d</anchor>
      <arglist>(hardware_interface::JointStateInterface &amp;_jnt_state_interface, hardware_interface::JointCommandInterface &amp;_jnt_cmd_interface, const std::string _jnt_name, double &amp;_jnt_pos, double &amp;_jnt_vel, double &amp;_jnt_eff, double &amp;_jnt_cmd)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerJointStateInterfaceHandle</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a1306597f2137c78459d7d46ab23bf9b5</anchor>
      <arglist>(hardware_interface::JointStateInterface &amp;_jnt_state_interface, const std::string _jnt_name, double &amp;_jnt_pos, double &amp;_jnt_vel, double &amp;_jnt_eff)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerSteerInterface</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a6508ec9ae057326ffd4fa927223b147e</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>registerWheelInterface</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a267c058ebe04b30989c3aadec99af8c5</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>front_steer_jnt_eff_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a78b903c1c38da3a74dd2d0fba8ee9472</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>front_steer_jnt_name_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a7e86c480e2845af61d5fe9c46ba0867e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>front_steer_jnt_pos_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a65616b23a9756494b0a8ed2328c10208</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>front_steer_jnt_pos_cmd_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a0914fc85518e1feb3adfccd10070a383</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::PositionJointInterface</type>
      <name>front_steer_jnt_pos_cmd_interface_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a6bd72063a9504f6176b5bb0f8e21b5ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>front_steer_jnt_vel_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>afbbb82d75ca2ce99c47ef5aea4df8555</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointStateInterface</type>
      <name>jnt_state_interface_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a5f37126948c6db97758dbc7207da21c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ac04b52364776fa1e4ea81a516b6b7d64</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>ns_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>af3c59a9fe672148c96c647a84028b71a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>rear_wheel_jnt_eff_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>adf5b5d02d8162bce3dbae5102f9af326</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>rear_wheel_jnt_name_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a21894f7029e643f2fdfdefc47b959600</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>rear_wheel_jnt_pos_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ab336c1b46bbb2b76f7c629cb8c563b6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>rear_wheel_jnt_vel_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a131a5a7e5ba8799166a347d3a05a7cf6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>rear_wheel_jnt_vel_cmd_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a60a56066be9ab7115b4b74aa0c32c7ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::VelocityJointInterface</type>
      <name>rear_wheel_jnt_vel_cmd_interface_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>aa96518f70a932e99b06c7eb921c74e17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>running_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>acbe3f0a1eceb0aa5265ad3eaa80df3e0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceServer</type>
      <name>start_srv_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a84570e7f87e65dd568a97074e9dc8ec8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceServer</type>
      <name>stop_srv_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a1d8ebf084da8c166085c883a00aa836e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_steer_jnt_eff_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ae77e053f331f44f63f4268ebee3425d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::string &gt;</type>
      <name>virtual_front_steer_jnt_names_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a5c6e4ebccebfff3aebf4a3dcfa9dee6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_steer_jnt_pos_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a4a7a01c490f731948dea5cba26552ec3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_steer_jnt_pos_cmd_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a8d11984a8e587b70a4a2dbe1db787371</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_steer_jnt_vel_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>af96101780f37b747ffa0cb834482ad2b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_wheel_jnt_eff_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a826c72bcf18058307091840b87dcb7e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::string &gt;</type>
      <name>virtual_front_wheel_jnt_names_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a569218fdde96304c8c949710b1f8910d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_wheel_jnt_pos_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a42dd0b6c96f49689245291f85c5bdfa4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_wheel_jnt_vel_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a472fcfef7590bee884afc1d4f0741eae</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_front_wheel_jnt_vel_cmd_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a92629857155c0e986569b847bdd9e823</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_rear_wheel_jnt_eff_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a0c96d7d8ab6815d91f7c2298173d7319</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::string &gt;</type>
      <name>virtual_rear_wheel_jnt_names_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a93f1c9c6c4ed8064d0e61e3716cc78b6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_rear_wheel_jnt_pos_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a3c4df4ce78fa93a4faecedfb9addb6d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_rear_wheel_jnt_vel_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>a9b8652bb25be2ca0bd20e746f0854c18</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; double &gt;</type>
      <name>virtual_rear_wheel_jnt_vel_cmd_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>ad6bd5e84142124eac55a06de643ba324</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_separation_h_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>abff5129399e2f4bff4729226ffd6497b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_separation_w_</name>
      <anchorfile>classAckermannSteeringBot.html</anchorfile>
      <anchor>afd8b8933e01046c79f117d15c819dbe8</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ackermann_steering_controller::AckermannSteeringController</name>
    <filename>classackermann__steering__controller_1_1AckermannSteeringController.html</filename>
    <base>MultiInterfaceController&lt; hardware_interface::PositionJointInterface, hardware_interface::VelocityJointInterface &gt;</base>
    <class kind="struct">ackermann_steering_controller::AckermannSteeringController::Commands</class>
    <member kind="function">
      <type></type>
      <name>AckermannSteeringController</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a4d14b8a0177a82eaf238db4c607ecdbd</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a6a9072049ccb9798fb73fa6338b17248</anchor>
      <arglist>(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>starting</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a551376d78617415b7fa7ae24deb41c41</anchor>
      <arglist>(const ros::Time &amp;time)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stopping</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a41ed751105466b55a0c03a5fc7cb0f97</anchor>
      <arglist>(const ros::Time &amp;)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a81521415d74fa1ad99f389f269324522</anchor>
      <arglist>(const ros::Time &amp;time, const ros::Duration &amp;period)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>brake</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>acfeafce4836f49154167f187bf50139d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>cmdVelCallback</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a04b3d03baed205ec38d452c0ff7a7254</anchor>
      <arglist>(const geometry_msgs::Twist &amp;command)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>setOdomParamsFromUrdf</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a05176b6c86af0cf2a6c10044e08325cd</anchor>
      <arglist>(ros::NodeHandle &amp;root_nh, const std::string rear_wheel_name, const std::string front_steer_name, bool lookup_wheel_separation_h, bool lookup_wheel_radius)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>setOdomPubFields</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a7cef5d7502a609118a7762884271b86b</anchor>
      <arglist>(ros::NodeHandle &amp;root_nh, ros::NodeHandle &amp;controller_nh)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>allow_multiple_cmd_vel_publishers_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>aaed7d06ef24509b485c4bd801d6b3f8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>base_frame_id_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a2184057702200e9bc97a29f104899e9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>cmd_vel_timeout_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>ae2bbc565422a3a62f66929b5deb4823b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>realtime_tools::RealtimeBuffer&lt; Commands &gt;</type>
      <name>command_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a233496373370d499f22c9fbe1325fde4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Commands</type>
      <name>command_struct_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a3690649d211cd846fff20502ea96529c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>enable_odom_tf_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>ac070c647005d4cec9ecea96965567834</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>front_steer_joint_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a2d2ff9a36954cce3f5b5980d411b7464</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Commands</type>
      <name>last0_cmd_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a91f67377711f687ddd8e58599d62e149</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Commands</type>
      <name>last1_cmd_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>ae1848abfc09eb6d2f0748681ee68741e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>last_state_publish_time_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a3166e8f7d5e21a740fefb73a4ed1dd93</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>diff_drive_controller::SpeedLimiter</type>
      <name>limiter_ang_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a1fa3922e571e25608c5d5f5659bb18dc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>diff_drive_controller::SpeedLimiter</type>
      <name>limiter_lin_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>af9d814e3e75e44f154d96dd9d94e83f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>name_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a751b14c415ece36dbfd043d0f0ca9e0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>odom_frame_id_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>ac4b7fe2417fadc36c63dfdd774a0d02b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; nav_msgs::Odometry &gt; &gt;</type>
      <name>odom_pub_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a91ec55ba31c79ca0982691c0e3cfac8f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Odometry</type>
      <name>odometry_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>aab4a2f6cf87759b2835a03ece998d7d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>open_loop_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a80d1c4546e06a5a7a0dd24997e28d4f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Duration</type>
      <name>publish_period_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a1853cf22361f56540e66bc85845070d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>hardware_interface::JointHandle</type>
      <name>rear_wheel_joint_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>adb991af4fde2b2c003aaad7199597eb4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>steer_joints_size_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a5454f3ec919e71e132ce8277b10838bd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>steer_pos_multiplier_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a92d7b9234abe70aa77e081fe27352c7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>sub_command_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a6e97d6234f65b7597771a54f287f8983</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; realtime_tools::RealtimePublisher&lt; tf::tfMessage &gt; &gt;</type>
      <name>tf_odom_pub_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a0a036e996e9c00d72e8a5cc08fe40974</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>wheel_joints_size_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a977b2f4de31c12e886e046433f8f3c1c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a5cef08600bfffcf3177b71da23835b81</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_radius_multiplier_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>ad18c5175db58bc690bb149f9a648d30a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_separation_h_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>a5b6d85fb78cd927819a0d67f7e2bae1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_separation_h_multiplier_</name>
      <anchorfile>classackermann__steering__controller_1_1AckermannSteeringController.html</anchorfile>
      <anchor>aab3dcefe875af8ce21890b0a465615f5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>AckermannSteeringControllerTest</name>
    <filename>classAckermannSteeringControllerTest.html</filename>
    <member kind="function">
      <type></type>
      <name>AckermannSteeringControllerTest</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a7b5bc93bdce533968dae04c07fee5ade</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>nav_msgs::Odometry</type>
      <name>getLastOdom</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a3b3320340b6adf5825629113a751aa3a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>isControllerAlive</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>abfa2825a24c8139cf86f5330b128e32d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>isLastOdomValid</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>ae3dd226f1ba841c66f0d210eb31195f1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>publish</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a57a826ad0decab0df73f07f2b559c96f</anchor>
      <arglist>(geometry_msgs::Twist cmd_vel)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>start</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a570ce5c95f2b2f9cf53114bee84e128a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>stop</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a31e597c184985e5fceab747946898cff</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~AckermannSteeringControllerTest</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>ae267405c3db6c826c18aea2f7fd76b46</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>odomCallback</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>af38ac630a45c886b520aa97b206f220f</anchor>
      <arglist>(const nav_msgs::Odometry &amp;odom)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>cmd_pub</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a3f60bbd019f774f6b31e8de1c33b9503</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>ctrl_name</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a11ce537d915d5df0ddfddf37ec628a22</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>nav_msgs::Odometry</type>
      <name>last_odom</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a3a8057f1cb5ff8e6d00c1d5109624cdc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceClient</type>
      <name>list_ctrls_srv</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>aa900cb2e8af7c0c85d38a7588e778c77</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>ae86a190f65f1a88432373b0cbc198d5d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::mutex</type>
      <name>odom_mutex</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>aec626db380b05dd70f6eb88c0b49cc13</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>odom_sub</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a586cbbc3f81b32c09da5525f3fc27980</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceClient</type>
      <name>start_srv</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a2184f990da5e444859575ac327f4a61f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceClient</type>
      <name>stop_srv</name>
      <anchorfile>classAckermannSteeringControllerTest.html</anchorfile>
      <anchor>a6b7459fdbba6b2fe93f0b547bb4dd3a4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ackermann_steering_controller::AckermannSteeringController::Commands</name>
    <filename>structackermann__steering__controller_1_1AckermannSteeringController_1_1Commands.html</filename>
    <member kind="function">
      <type></type>
      <name>Commands</name>
      <anchorfile>structackermann__steering__controller_1_1AckermannSteeringController_1_1Commands.html</anchorfile>
      <anchor>a32b669ed75802d5b229bc585901b50c6</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>ang</name>
      <anchorfile>structackermann__steering__controller_1_1AckermannSteeringController_1_1Commands.html</anchorfile>
      <anchor>a97d043b973a964b2dbf36570b15d3dc4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>lin</name>
      <anchorfile>structackermann__steering__controller_1_1AckermannSteeringController_1_1Commands.html</anchorfile>
      <anchor>a7b7f58a0c9a429e5df2693e21eec965f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Time</type>
      <name>stamp</name>
      <anchorfile>structackermann__steering__controller_1_1AckermannSteeringController_1_1Commands.html</anchorfile>
      <anchor>a0c02eaffb3b82ac6223d2d1c86e5526b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ackermann_steering_controller::Odometry</name>
    <filename>classackermann__steering__controller_1_1Odometry.html</filename>
    <member kind="typedef">
      <type>boost::function&lt; void(double, double)&gt;</type>
      <name>IntegrationFunction</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a47c6f03eeb309c4e97b6ebd27707c980</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getAngular</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>aa0e30368e83f1b394ba8b7a3beff2f7f</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getHeading</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>afe315f4e397eabbb82d8a6fc34921147</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getLinear</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>afd6fd0a97ae0d84e0c57b91fc571aa41</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getX</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a108e958850dcd7bfe487c4e00a2c89c6</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getY</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a8d20490001e5a9b46ea5e5f7e29875f5</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a7e62b062e7d71cf418207831cdcc69cd</anchor>
      <arglist>(const ros::Time &amp;time)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Odometry</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a003b6adf693aedd1fcf595abf6eac2e4</anchor>
      <arglist>(size_t velocity_rolling_window_size=10)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setVelocityRollingWindowSize</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a506fb0af4c98766ba27604e4687eb9b6</anchor>
      <arglist>(size_t velocity_rolling_window_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setWheelParams</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a138ef1dd649cc5b2a4ce0c89fd995156</anchor>
      <arglist>(double wheel_reparation_h, double wheel_radius)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>update</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a11ea3723bd06f0ed2f059f0da4ef0eb7</anchor>
      <arglist>(double rear_wheel_pos, double front_steer_pos, const ros::Time &amp;time)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>updateOpenLoop</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a0fd5f3d555b666b6e8c5900116a6605b</anchor>
      <arglist>(double linear, double angular, const ros::Time &amp;time)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>bacc::accumulator_set&lt; double, bacc::stats&lt; bacc::tag::rolling_mean &gt; &gt;</type>
      <name>RollingMeanAcc</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>aac9d0f6ab832a8dc419f868fffaacb5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>bacc::tag::rolling_window</type>
      <name>RollingWindow</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>ab98de8a51980fbd56ecacb5f242c599d</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>integrateExact</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a4c5ff31ba964d1f01fe9afdd96500ecb</anchor>
      <arglist>(double linear, double angular)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>integrateRungeKutta2</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a9c947fc2a8b6d52e8d34c4fd6de6a953</anchor>
      <arglist>(double linear, double angular)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>resetAccumulators</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a5461616f8e0f59637c4320c74d8060ca</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>angular_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a8d551f5cd9f8f5f76221663616851618</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>RollingMeanAcc</type>
      <name>angular_acc_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a95f919abb577ed9de266e8ce26720478</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>heading_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a8e6e50b979ae166799b3a6ac8bed608b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>IntegrationFunction</type>
      <name>integrate_fun_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>aa30565fe5d5329acd2a3ee418c9f19fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>linear_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a26d71b482f24d95e16b0eae509f99c41</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>RollingMeanAcc</type>
      <name>linear_acc_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>aa425ea5cf2ad295c65fc737d61382624</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>rear_wheel_old_pos_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a93cea490d53779835733f089c10ba01b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>timestamp_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>ac454ce648170da73c9e91d33af5f1c53</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>size_t</type>
      <name>velocity_rolling_window_size_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>ae56ec114c62bbe07f084d96f962c9438</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_radius_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>aba5376837db657550fa2bd69d8c0e1e0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>wheel_separation_h_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>ac74ee6f8655cec2e7bed428cbeca318c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>x_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>a7913ec8d700e43f5f870425923945352</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>y_</name>
      <anchorfile>classackermann__steering__controller_1_1Odometry.html</anchorfile>
      <anchor>ae7e8700346989849e97ccf493bbe7888</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>ackermann_steering_controller</name>
    <filename>namespaceackermann__steering__controller.html</filename>
    <class kind="class">ackermann_steering_controller::AckermannSteeringController</class>
    <class kind="class">ackermann_steering_controller::Odometry</class>
  </compound>
</tagfile>
