<?xml version='1.0' encoding='ISO-8859-1' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>constraint_generator.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>constraint__generator_8cpp</filename>
    <includes id="fake__loop__closure_8h" name="fake_loop_closure.h" local="no" imported="no">graph_slam/constraints/fake_loop_closure.h</includes>
    <includes id="odom_8h" name="odom.h" local="no" imported="no">graph_slam/constraints/odom.h</includes>
    <includes id="karto__laser__constraints_8h" name="karto_laser_constraints.h" local="no" imported="no">graph_slam/constraints/karto_laser_constraints.h</includes>
    <namespace>graph_slam</namespace>
    <member kind="function">
      <type>ConstraintGenPtr</type>
      <name>createConstraintGenerator</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac1f0f637152a82cb66dffbca7282f354</anchor>
      <arglist>(const ros::NodeHandle &amp;nh)</arglist>
    </member>
    <member kind="function">
      <type>T</type>
      <name>getPrivateParam</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4106886e84bf6755832b34ad80037815</anchor>
      <arglist>(const ros::NodeHandle &amp;nh, const string &amp;name, const T &amp;default_val)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>constraint_generator.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>constraint__generator_8h</filename>
    <class kind="class">graph_slam::ConstraintGenerator</class>
    <class kind="struct">graph_slam::NodeConstraint</class>
    <namespace>graph_slam</namespace>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; ConstraintGenerator &gt;</type>
      <name>ConstraintGenPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a272d903dde81138d0a4893d2baeea118</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; NodeConstraint, Eigen3::aligned_allocator&lt; NodeConstraint &gt; &gt;</type>
      <name>NodeConstraintVector</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ab3a8acde4f1a9cbe721ff2f4411f2e10</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::map&lt; pg::NodeId, geometry_msgs::Pose &gt;</type>
      <name>NodePoseMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a42f09491f1654c667714c6b406f60949</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>ConstraintGenPtr</type>
      <name>createConstraintGenerator</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac1f0f637152a82cb66dffbca7282f354</anchor>
      <arglist>(const ros::NodeHandle &amp;nh)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>diff_publisher.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>diff__publisher_8cpp</filename>
    <includes id="diff__publisher_8h" name="diff_publisher.h" local="no" imported="no">graph_slam/diff_publisher.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>diff_publisher.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>diff__publisher_8h</filename>
    <class kind="class">graph_slam::DiffPublisher</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>diff_subscriber.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>diff__subscriber_8cpp</filename>
    <includes id="diff__subscriber_8h" name="diff_subscriber.h" local="no" imported="no">graph_slam/diff_subscriber.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>diff_subscriber.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>diff__subscriber_8h</filename>
    <class kind="class">graph_slam::DiffSubscriber</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>fake_loop_closure.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>fake__loop__closure_8cpp</filename>
    <includes id="fake__loop__closure_8h" name="fake_loop_closure.h" local="no" imported="no">graph_slam/constraints/fake_loop_closure.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>fake_loop_closure.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/constraints/</path>
    <filename>fake__loop__closure_8h</filename>
    <includes id="constraint__generator_8h" name="constraint_generator.h" local="no" imported="no">graph_slam/constraint_generator.h</includes>
    <class kind="class">graph_slam::FakeLoopClosureGenerator</class>
    <namespace>graph_slam</namespace>
    <member kind="variable">
      <type>const double</type>
      <name>LOCALIZATION_RECENCY_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>adc964603eca50a028b8e2be597e9e0b4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>global_map.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>global__map_8cpp</filename>
    <includes id="global__map_8h" name="global_map.h" local="no" imported="no">graph_slam/global_map.h</includes>
    <namespace>graph_slam</namespace>
    <member kind="function">
      <type>nav_msgs::OccupancyGrid::Ptr</type>
      <name>generateGlobalMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>aa6db7475ec7fdcfac3bc6827a27216a7</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;graph, const pose_graph::NodePoseMap &amp;opt_poses, const double resolution)</arglist>
    </member>
    <member kind="function">
      <type>nm::MapMetaData</type>
      <name>getGridBounds</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac68c58841d63f010e2ca63afcdf8c271</anchor>
      <arglist>(const pg::NodePoseMap &amp;poses, const double resolution)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>global_map.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>global__map_8h</filename>
    <namespace>graph_slam</namespace>
    <member kind="function">
      <type>nav_msgs::OccupancyGrid::Ptr</type>
      <name>generateGlobalMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>aa6db7475ec7fdcfac3bc6827a27216a7</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;graph, const pose_graph::NodePoseMap &amp;opt_poses, const double resolution)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>PADDING</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a66fb46f452bd667c143056bdab8960da</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>graph_mapper.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>graph__mapper_8cpp</filename>
    <includes id="global__map_8h" name="global_map.h" local="no" imported="no">graph_slam/global_map.h</includes>
    <includes id="constraint__generator_8h" name="constraint_generator.h" local="no" imported="no">graph_slam/constraint_generator.h</includes>
    <includes id="scan__match__localization_8h" name="scan_match_localization.h" local="no" imported="no">graph_slam/scan_match_localization.h</includes>
    <includes id="diff__publisher_8h" name="diff_publisher.h" local="no" imported="no">graph_slam/diff_publisher.h</includes>
    <class kind="class">graph_slam::GraphMapper</class>
    <namespace>graph_slam</namespace>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; nm::OccupancyGrid const  &gt;</type>
      <name>GridConstPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ad916685313e89f107c7ad32ad0a590ba</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; nm::OccupancyGrid &gt;</type>
      <name>GridPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a056672dbc2d3904d215148801926fc7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::mutex::scoped_lock</type>
      <name>Lock</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a3528e24e5023d37a4bc23170924d3d7f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addTransformedPoints</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a2c36ecf23256ed16741ba230784687b6</anchor>
      <arglist>(LocalizedCloud::ConstPtr cloud, const Pose &amp;pose, sm::PointCloud *cloud_out)</arglist>
    </member>
    <member kind="function">
      <type>Pose</type>
      <name>applyConstraint</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a24137e11befa4cc8904e8016d95c11a7</anchor>
      <arglist>(const Pose &amp;p, const PoseConstraint &amp;c)</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getLocalizationRate</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac9ac9e595e3716221c14cdd0ee43016f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>getLocalizationsPerScanMatch</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a6c05963d62da3651a5d8bcdb14443706</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>T</type>
      <name>getPrivateParam</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>af7587435da5b8e6ff343327432d3d30f</anchor>
      <arglist>(const string &amp;name, const T &amp;default_val)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>getUniqueId</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a1c318ae027f30147a74d570ee8cb23ce</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>graph__mapper_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>TransformEigenToTF</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4e1941d147e648e30a91096f9d48214a</anchor>
      <arglist>(const Eigen3::Affine3d &amp;k, tf::Transform &amp;t)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>withinDistance</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a791c02b2ca44c7468e40087a06957c58</anchor>
      <arglist>(const PoseGraph &amp;g, const NodeId n1, const NodeId n2, const double d)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>DEFAULT_ANGLE_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a401560896bd03fe044873e754b77526a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>DEFAULT_POS_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>af254701a6c789d780698fed1383b6317</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>STATUS_CHECK_INT</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4eeb53f5903a92824d6ed8bfb378e71a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>karto_laser_constraint_generator.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>karto__laser__constraint__generator_8cpp</filename>
    <includes id="karto__laser__constraints_8h" name="karto_laser_constraints.h" local="no" imported="no">graph_slam/constraints/karto_laser_constraints.h</includes>
    <namespace>graph_slam</namespace>
    <member kind="function">
      <type>gm::Pose2D</type>
      <name>getLaserOffset</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac150bdf425f038de2f2a0c2eaf6d22d9</anchor>
      <arglist>(const tf::TransformListener &amp;tf, const sm::LaserScan &amp;scan)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>targetIs</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4b32a16456bfeb13060fd4f7f471a2de</anchor>
      <arglist>(const NodeConstraint &amp;constraint, const NodeId n)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>karto_laser_constraints.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/constraints/</path>
    <filename>karto__laser__constraints_8h</filename>
    <includes id="constraint__generator_8h" name="constraint_generator.h" local="no" imported="no">graph_slam/constraint_generator.h</includes>
    <includes id="sequential__scan__matcher_8h" name="sequential_scan_matcher.h" local="no" imported="no">graph_slam/sequential_scan_matcher.h</includes>
    <includes id="loop__scan__matcher_8h" name="loop_scan_matcher.h" local="no" imported="no">graph_slam/loop_scan_matcher.h</includes>
    <class kind="class">graph_slam::KartoLaserConstraints</class>
    <namespace>graph_slam</namespace>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; LoopScanMatcher &gt;</type>
      <name>LoopMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a982eabc7e44276f5576dc633979b9438</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; SequentialScanMatcher &gt;</type>
      <name>SeqMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a29a6befb862efd362197c7103eb66fe5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>loop_scan_matcher.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>loop__scan__matcher_8cpp</filename>
    <includes id="loop__scan__matcher_8h" name="loop_scan_matcher.h" local="no" imported="no">graph_slam/loop_scan_matcher.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>loop_scan_matcher.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>loop__scan__matcher_8h</filename>
    <includes id="scan__manager_8h" name="scan_manager.h" local="no" imported="no">graph_slam/scan_manager.h</includes>
    <class kind="class">graph_slam::LoopScanMatcher</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>mainpage.dox</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/</path>
    <filename>mainpage_8dox</filename>
  </compound>
  <compound kind="file">
    <name>odom.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/constraints/</path>
    <filename>odom_8h</filename>
    <includes id="constraint__generator_8h" name="constraint_generator.h" local="no" imported="no">graph_slam/constraint_generator.h</includes>
    <class kind="class">graph_slam::OdomConstraintGenerator</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>odom_constraint_generator.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>odom__constraint__generator_8cpp</filename>
    <includes id="odom_8h" name="odom.h" local="no" imported="no">graph_slam/constraints/odom.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>scan_manager.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>scan__manager_8cpp</filename>
    <includes id="scan__manager_8h" name="scan_manager.h" local="no" imported="no">graph_slam/scan_manager.h</includes>
    <namespace>graph_slam</namespace>
    <member kind="typedef">
      <type>NodeSequenceMap::left_map::const_iterator</type>
      <name>LeftIter</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a52a99471db013b4ddb4707ec7fa7a83a</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>NodeSequenceMap::right_map::const_iterator</type>
      <name>RightIter</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>abe1ed972e78d1ae08af37f8d9d609e99</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>NodeSequenceMap::value_type</type>
      <name>SequenceLink</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a739f7d3b5c2492bf1cc84bbdbfdfe4ef</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a246e5ccb86d3e50b9643d58a8a2e6367</anchor>
      <arglist>(const Chain &amp;chain, vector&lt; Chain &gt; *chains, NodeSet *processed)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>closerTo</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a3de9f6c0ec388bd02f4fd39011966f3d</anchor>
      <arglist>(const gm::Pose2D &amp;pose, const NodePoseMap &amp;optimized_poses, const NodeId n1, const NodeId n2)</arglist>
    </member>
    <member kind="function">
      <type>pg::PrecisionMatrix</type>
      <name>getPrecisionMatrix</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>abde00de760f29cf60003fb9e792c1a1f</anchor>
      <arglist>(const karto_scan_matcher::ScanMatchResult &amp;res, const bool use_covariances)</arglist>
    </member>
    <member kind="function">
      <type>ksm::ScanWithPose</type>
      <name>makeScanWithPose</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a9f2a1ac8f27ec45196ac6812366f69b3</anchor>
      <arglist>(const NodePoseMap &amp;optimized_poses, const NodeScanMap scans_, const NodeId n)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>RADIAN_TO_METER_MULT</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a455fa6e444363822d5d8e565fa7ad7fb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>scan_manager.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>scan__manager_8h</filename>
    <includes id="constraint__generator_8h" name="constraint_generator.h" local="no" imported="no">graph_slam/constraint_generator.h</includes>
    <class kind="class">graph_slam::ScanManager</class>
    <class kind="struct">graph_slam::WithOptimizedPoses</class>
    <namespace>graph_slam</namespace>
    <member kind="typedef">
      <type>std::vector&lt; pg::NodeId &gt;</type>
      <name>Chain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4e60010cc325e97382e7a5613bea4724</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Chain &gt;</type>
      <name>ChainVec</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a75e15aa8e16fa522bf41c02540db80f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; karto_scan_matcher::KartoScanMatcher &gt;</type>
      <name>KartoMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a1ed4e91e9f6fd7c03f150e223600169c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>sensor_msgs::LaserScan::ConstPtr</type>
      <name>LaserPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a621deb5ce728c069ba78eb426d6716ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::map&lt; pg::NodeId, LaserPtr &gt;</type>
      <name>NodeScanMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a182cc3c2e3e072b3cc0529462bdcb378</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::bimap&lt; pg::NodeId, pg::NodeId &gt;</type>
      <name>NodeSequenceMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a36651da8ed7418a52ddca645f26888db</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::set&lt; pg::NodeId &gt;</type>
      <name>NodeSet</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>aa8bb1c214e6973b67dfd989f7f3c4f49</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a0ef93aa4543284018d57069b753c50d0</anchor>
      <arglist>(const Chain &amp;chain, ChainVec *chains, NodeSet *processed)</arglist>
    </member>
    <member kind="function">
      <type>pg::PrecisionMatrix</type>
      <name>getPrecisionMatrix</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>abde00de760f29cf60003fb9e792c1a1f</anchor>
      <arglist>(const karto_scan_matcher::ScanMatchResult &amp;res, const bool use_covariances)</arglist>
    </member>
    <member kind="function">
      <type>Chain</type>
      <name>onewayChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ad1352d0357eac694e99a2536266e17a0</anchor>
      <arglist>(const Map &amp;m, const pg::NodeId seed, const NodeSet &amp;allowed, const NodeSet &amp;forbidden)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>scan_match_localization.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>scan__match__localization_8cpp</filename>
    <includes id="scan__match__localization_8h" name="scan_match_localization.h" local="no" imported="no">graph_slam/scan_match_localization.h</includes>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>scan_match_localization.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>scan__match__localization_8h</filename>
    <includes id="scan__manager_8h" name="scan_manager.h" local="no" imported="no">graph_slam/scan_manager.h</includes>
    <class kind="struct">graph_slam::LocalizationState</class>
    <class kind="class">graph_slam::ScanMatchLocalization</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>sequential_scan_matcher.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/src/</path>
    <filename>sequential__scan__matcher_8cpp</filename>
    <includes id="sequential__scan__matcher_8h" name="sequential_scan_matcher.h" local="no" imported="no">graph_slam/sequential_scan_matcher.h</includes>
    <namespace>graph_slam</namespace>
    <member kind="function">
      <type>bool</type>
      <name>alreadyHaveConstraintToTarget</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a329b3554ab4316a0862e051361ab141d</anchor>
      <arglist>(const NodeConstraint &amp;constraint, const NodeConstraintVector &amp;constraints)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sequential_scan_matcher.h</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/include/graph_slam/</path>
    <filename>sequential__scan__matcher_8h</filename>
    <includes id="scan__manager_8h" name="scan_manager.h" local="no" imported="no">graph_slam/scan_manager.h</includes>
    <class kind="class">graph_slam::SequentialScanMatcher</class>
    <namespace>graph_slam</namespace>
  </compound>
  <compound kind="file">
    <name>test_scan_match_constraints.cpp</name>
    <path>/home/rosbuild/hudson/workspace/doc-fuerte-graph_mapping/doc_stacks/2014-01-07_11-15-23.310522/graph_mapping/graph_slam/test/</path>
    <filename>test__scan__match__constraints_8cpp</filename>
    <includes id="karto__laser__constraints_8h" name="karto_laser_constraints.h" local="no" imported="no">graph_slam/constraints/karto_laser_constraints.h</includes>
    <member kind="typedef">
      <type>std::vector&lt; gs::Chain &gt;</type>
      <name>ChainVec</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a459b32150cabb3086915909b17b720cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::map&lt; pg::NodeId, sm::LaserScan &gt;</type>
      <name>NodeScanMap</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a2fad104ab28e9751cc9beb69f9193bae</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>equalVectors</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a2ed2cf6c8c0fd3fdff2d7c315420da4a</anchor>
      <arglist>(const vector&lt; T &gt; &amp;v1, const vector&lt; T &gt; &amp;v2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type>gm::Pose</type>
      <name>makePose</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a14124f84f1deb3838a6bc11d785fde2d</anchor>
      <arglist>(const double x, const double y, const double theta=0)</arglist>
    </member>
    <member kind="function">
      <type>ostream &amp;</type>
      <name>operator&lt;&lt;</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a5d3f5be193653a18248b2e8c58701701</anchor>
      <arglist>(ostream &amp;str, const vector&lt; T &gt; &amp;s)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a6d5efab94eae5492198263684ae3ae25</anchor>
      <arglist>(ScanMatcher, LoopClosure)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>aeca0799eafe262bd9aa0867330c6edd9</anchor>
      <arglist>(ScanMatcher, Sequential)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>PI</name>
      <anchorfile>test__scan__match__constraints_8cpp.html</anchorfile>
      <anchor>a952eac791b596a61bba0a133a3bb439f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>graph_slam</name>
    <filename>namespacegraph__slam.html</filename>
    <class kind="class">graph_slam::ConstraintGenerator</class>
    <class kind="class">graph_slam::DiffPublisher</class>
    <class kind="class">graph_slam::DiffSubscriber</class>
    <class kind="class">graph_slam::FakeLoopClosureGenerator</class>
    <class kind="class">graph_slam::GraphMapper</class>
    <class kind="class">graph_slam::KartoLaserConstraints</class>
    <class kind="struct">graph_slam::LocalizationState</class>
    <class kind="class">graph_slam::LoopScanMatcher</class>
    <class kind="struct">graph_slam::NodeConstraint</class>
    <class kind="class">graph_slam::OdomConstraintGenerator</class>
    <class kind="class">graph_slam::ScanManager</class>
    <class kind="class">graph_slam::ScanMatchLocalization</class>
    <class kind="class">graph_slam::SequentialScanMatcher</class>
    <class kind="struct">graph_slam::WithOptimizedPoses</class>
    <member kind="typedef">
      <type>std::vector&lt; pg::NodeId &gt;</type>
      <name>Chain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4e60010cc325e97382e7a5613bea4724</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Chain &gt;</type>
      <name>ChainVec</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a75e15aa8e16fa522bf41c02540db80f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; ConstraintGenerator &gt;</type>
      <name>ConstraintGenPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a272d903dde81138d0a4893d2baeea118</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; nm::OccupancyGrid const  &gt;</type>
      <name>GridConstPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ad916685313e89f107c7ad32ad0a590ba</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; nm::OccupancyGrid &gt;</type>
      <name>GridPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a056672dbc2d3904d215148801926fc7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; karto_scan_matcher::KartoScanMatcher &gt;</type>
      <name>KartoMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a1ed4e91e9f6fd7c03f150e223600169c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>sensor_msgs::LaserScan::ConstPtr</type>
      <name>LaserPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a621deb5ce728c069ba78eb426d6716ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>NodeSequenceMap::left_map::const_iterator</type>
      <name>LeftIter</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a52a99471db013b4ddb4707ec7fa7a83a</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::mutex::scoped_lock</type>
      <name>Lock</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a3528e24e5023d37a4bc23170924d3d7f</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; LoopScanMatcher &gt;</type>
      <name>LoopMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a982eabc7e44276f5576dc633979b9438</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; NodeConstraint, Eigen3::aligned_allocator&lt; NodeConstraint &gt; &gt;</type>
      <name>NodeConstraintVector</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ab3a8acde4f1a9cbe721ff2f4411f2e10</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::map&lt; pg::NodeId, geometry_msgs::Pose &gt;</type>
      <name>NodePoseMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a42f09491f1654c667714c6b406f60949</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::map&lt; pg::NodeId, LaserPtr &gt;</type>
      <name>NodeScanMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a182cc3c2e3e072b3cc0529462bdcb378</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::bimap&lt; pg::NodeId, pg::NodeId &gt;</type>
      <name>NodeSequenceMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a36651da8ed7418a52ddca645f26888db</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::set&lt; pg::NodeId &gt;</type>
      <name>NodeSet</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>aa8bb1c214e6973b67dfd989f7f3c4f49</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>NodeSequenceMap::right_map::const_iterator</type>
      <name>RightIter</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>abe1ed972e78d1ae08af37f8d9d609e99</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>boost::shared_ptr&lt; SequentialScanMatcher &gt;</type>
      <name>SeqMatcherPtr</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a29a6befb862efd362197c7103eb66fe5</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>NodeSequenceMap::value_type</type>
      <name>SequenceLink</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a739f7d3b5c2492bf1cc84bbdbfdfe4ef</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a0ef93aa4543284018d57069b753c50d0</anchor>
      <arglist>(const Chain &amp;chain, ChainVec *chains, NodeSet *processed)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a246e5ccb86d3e50b9643d58a8a2e6367</anchor>
      <arglist>(const Chain &amp;chain, vector&lt; Chain &gt; *chains, NodeSet *processed)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>addTransformedPoints</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a2c36ecf23256ed16741ba230784687b6</anchor>
      <arglist>(LocalizedCloud::ConstPtr cloud, const Pose &amp;pose, sm::PointCloud *cloud_out)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>alreadyHaveConstraintToTarget</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a329b3554ab4316a0862e051361ab141d</anchor>
      <arglist>(const NodeConstraint &amp;constraint, const NodeConstraintVector &amp;constraints)</arglist>
    </member>
    <member kind="function">
      <type>Pose</type>
      <name>applyConstraint</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a24137e11befa4cc8904e8016d95c11a7</anchor>
      <arglist>(const Pose &amp;p, const PoseConstraint &amp;c)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>closerTo</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a3de9f6c0ec388bd02f4fd39011966f3d</anchor>
      <arglist>(const gm::Pose2D &amp;pose, const NodePoseMap &amp;optimized_poses, const NodeId n1, const NodeId n2)</arglist>
    </member>
    <member kind="function">
      <type>ConstraintGenPtr</type>
      <name>createConstraintGenerator</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac1f0f637152a82cb66dffbca7282f354</anchor>
      <arglist>(const ros::NodeHandle &amp;nh)</arglist>
    </member>
    <member kind="function">
      <type>nav_msgs::OccupancyGrid::Ptr</type>
      <name>generateGlobalMap</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>aa6db7475ec7fdcfac3bc6827a27216a7</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;graph, const pose_graph::NodePoseMap &amp;opt_poses, const double resolution)</arglist>
    </member>
    <member kind="function">
      <type>nm::MapMetaData</type>
      <name>getGridBounds</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac68c58841d63f010e2ca63afcdf8c271</anchor>
      <arglist>(const pg::NodePoseMap &amp;poses, const double resolution)</arglist>
    </member>
    <member kind="function">
      <type>gm::Pose2D</type>
      <name>getLaserOffset</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac150bdf425f038de2f2a0c2eaf6d22d9</anchor>
      <arglist>(const tf::TransformListener &amp;tf, const sm::LaserScan &amp;scan)</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>getLocalizationRate</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ac9ac9e595e3716221c14cdd0ee43016f</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>getLocalizationsPerScanMatch</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a6c05963d62da3651a5d8bcdb14443706</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>pg::PrecisionMatrix</type>
      <name>getPrecisionMatrix</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>abde00de760f29cf60003fb9e792c1a1f</anchor>
      <arglist>(const karto_scan_matcher::ScanMatchResult &amp;res, const bool use_covariances)</arglist>
    </member>
    <member kind="function">
      <type>T</type>
      <name>getPrivateParam</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4106886e84bf6755832b34ad80037815</anchor>
      <arglist>(const ros::NodeHandle &amp;nh, const string &amp;name, const T &amp;default_val)</arglist>
    </member>
    <member kind="function">
      <type>T</type>
      <name>getPrivateParam</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>af7587435da5b8e6ff343327432d3d30f</anchor>
      <arglist>(const string &amp;name, const T &amp;default_val)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>getUniqueId</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a1c318ae027f30147a74d570ee8cb23ce</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>ksm::ScanWithPose</type>
      <name>makeScanWithPose</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a9f2a1ac8f27ec45196ac6812366f69b3</anchor>
      <arglist>(const NodePoseMap &amp;optimized_poses, const NodeScanMap scans_, const NodeId n)</arglist>
    </member>
    <member kind="function">
      <type>Chain</type>
      <name>onewayChain</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>ad1352d0357eac694e99a2536266e17a0</anchor>
      <arglist>(const Map &amp;m, const pg::NodeId seed, const NodeSet &amp;allowed, const NodeSet &amp;forbidden)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>targetIs</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4b32a16456bfeb13060fd4f7f471a2de</anchor>
      <arglist>(const NodeConstraint &amp;constraint, const NodeId n)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>TransformEigenToTF</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4e1941d147e648e30a91096f9d48214a</anchor>
      <arglist>(const Eigen3::Affine3d &amp;k, tf::Transform &amp;t)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>withinDistance</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a791c02b2ca44c7468e40087a06957c58</anchor>
      <arglist>(const PoseGraph &amp;g, const NodeId n1, const NodeId n2, const double d)</arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>DEFAULT_ANGLE_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a401560896bd03fe044873e754b77526a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>DEFAULT_POS_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>af254701a6c789d780698fed1383b6317</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>LOCALIZATION_RECENCY_THRESHOLD</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>adc964603eca50a028b8e2be597e9e0b4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>PADDING</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a66fb46f452bd667c143056bdab8960da</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>RADIAN_TO_METER_MULT</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a455fa6e444363822d5d8e565fa7ad7fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>STATUS_CHECK_INT</name>
      <anchorfile>namespacegraph__slam.html</anchorfile>
      <anchor>a4eeb53f5903a92824d6ed8bfb378e71a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::ConstraintGenerator</name>
    <filename>classgraph__slam_1_1ConstraintGenerator.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1ConstraintGenerator.html</anchorfile>
      <anchor>a46a0c0ba6090e929989520d977fd95ea</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, pg::NodeId new_node, const NodePoseMap &amp;optimized_poses)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>initializeFromGraph</name>
      <anchorfile>classgraph__slam_1_1ConstraintGenerator.html</anchorfile>
      <anchor>ace6fd6aebfa58492b3cf776fa0280c46</anchor>
      <arglist>(const pg::PoseGraph &amp;g, const std::vector&lt; pg::NodeId &gt; &amp;node_sequence)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>updateLocalization</name>
      <anchorfile>classgraph__slam_1_1ConstraintGenerator.html</anchorfile>
      <anchor>a33956271d6f1e00a2547d921b60f3d7e</anchor>
      <arglist>(const graph_slam::GraphLocalization &amp;loc)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual</type>
      <name>~ConstraintGenerator</name>
      <anchorfile>classgraph__slam_1_1ConstraintGenerator.html</anchorfile>
      <anchor>aab8a92abcc27f663eeb1e625dad48f0c</anchor>
      <arglist>()</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::DiffPublisher</name>
    <filename>classgraph__slam_1_1DiffPublisher.html</filename>
    <member kind="function">
      <type>void</type>
      <name>addDiff</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>a59580741739855cf47a3cb1d68cebb76</anchor>
      <arglist>(pose_graph::PoseGraphDiff *diff)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>DiffPublisher</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>a9ec6a80ef117a046f8331bacfc8dac7d</anchor>
      <arglist>(const ros::NodeHandle &amp;nh)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>getGraph</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>acafd0fe0379a802086deb2c20e8341fd</anchor>
      <arglist>(pose_graph::GetGraph::Request &amp;req, pose_graph::GetGraph::Response &amp;resp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>setGraph</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>af012200d5664f75d3514792e9b311256</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;graph)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned</type>
      <name>current_id_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>ad21a6ce047f262e11495e2852c18f61b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>diff_pub_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>a0ef03becf545aac6b11c728857133a83</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>pose_graph::PoseGraph</type>
      <name>graph_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>abbf814287220f2c36e1bd18b009c136f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceServer</type>
      <name>graph_srv_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>ac703ca25beb5c466a35a60cdfc2b0c86</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::mutex</type>
      <name>mutex_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>afb544d931eeb3dddf317e4493f46c0c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classgraph__slam_1_1DiffPublisher.html</anchorfile>
      <anchor>ab4499d3d0fecf856bd47fc21a66fb521</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::DiffSubscriber</name>
    <filename>classgraph__slam_1_1DiffSubscriber.html</filename>
    <member kind="typedef">
      <type>boost::function&lt; void(boost::optional&lt; const pose_graph::PoseGraphDiff &amp; &gt;, const pose_graph::PoseGraph &amp;)&gt;</type>
      <name>DiffCallback</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a90b31dbd1a0f70d352d911d0d518cefb</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>DiffSubscriber</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>ae1ec49917ee1ad2302342b7065e416bb</anchor>
      <arglist>(const ros::NodeHandle &amp;nh, const DiffCallback &amp;diff_cb)</arglist>
    </member>
    <member kind="function">
      <type>pose_graph::PoseGraph</type>
      <name>getCurrentGraph</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a14e4b26b25f28c144dad63218cf597d4</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>diffCB</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a75c99232b00ea9a0466d6823dda37661</anchor>
      <arglist>(const pose_graph::PoseGraphDiff &amp;diff)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>DiffCallback</type>
      <name>diff_callback_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a8f06233f5af60dca80324f3436d88bc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>diff_sub_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a75045f8f4cfbc17dd7fdafb0e052c192</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>pose_graph::PoseGraph</type>
      <name>graph_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>ae8e98e57962b8cf10d398d9bed51c7c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceClient</type>
      <name>graph_client_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a541db91ccd46a73a47c26dbcc43e5961</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned</type>
      <name>last_id_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>ac8da3050b787836958c80f68c1a0e3d0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::mutex</type>
      <name>mutex_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>a86c8663a07210333adef3073c3b594ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classgraph__slam_1_1DiffSubscriber.html</anchorfile>
      <anchor>abe85de8a76bd36dd168eba4db3345d43</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::FakeLoopClosureGenerator</name>
    <filename>classgraph__slam_1_1FakeLoopClosureGenerator.html</filename>
    <base>graph_slam::ConstraintGenerator</base>
    <member kind="function">
      <type></type>
      <name>FakeLoopClosureGenerator</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>ac13ba4cfd1982c417e879d7551dd27ef</anchor>
      <arglist>(double proximity_threshold)</arglist>
    </member>
    <member kind="function">
      <type>NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>a497d99e5bb20ffc591e675559143b5ff</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;graph, const pose_graph::NodeId new_node, const pose_graph::NodePoseMap &amp;optimized_poses)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>initializeFromGraph</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>af875508f453a7a18a76adfe71d255496</anchor>
      <arglist>(const pose_graph::PoseGraph &amp;g, const std::vector&lt; pose_graph::NodeId &gt; &amp;node_sequence)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>updateLocalization</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>a3737cd1f1257533a4b00aeea3fcc3c7a</anchor>
      <arglist>(const graph_slam::GraphLocalization &amp;loc)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>haveRecentlyReceivedPose</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>a4e246ca892c90ae9620a8d80d05014f9</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>locCB</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>aeed58905a30cd3f1c0e591daafd32611</anchor>
      <arglist>(const geometry_msgs::PoseWithCovarianceStamped &amp;msg)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>fake_loc_sub_</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>ab219b8b31ebba16b42bec73fbe71ff83</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::optional&lt; geometry_msgs::PoseStamped &gt;</type>
      <name>last_pose_</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>a684f866baf6b6c38db06d7de007ada79</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>ac31192cc0352b8378fc3b67f9b043a3f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>proximity_threshold_</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>a54682f4491a43d39ab96b560bd594e54</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>NodePoseMap</type>
      <name>true_poses_</name>
      <anchorfile>classgraph__slam_1_1FakeLoopClosureGenerator.html</anchorfile>
      <anchor>ab838b66a2a9c97adfc66ee3339a83c5d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::GraphMapper</name>
    <filename>classgraph__slam_1_1GraphMapper.html</filename>
    <member kind="function">
      <type></type>
      <name>GraphMapper</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a181b417f74787ff97493235c058ba5c2</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>addNewNode</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ac7d4cf4b1a03b38b3d3ea3894cf73b5e</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>PoseStamped</type>
      <name>currentFixedFramePose</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a43bddd048403a3d4e1ac793f367cc713</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>generateMap</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a32d682a0674bb538c7a28f33a85b799c</anchor>
      <arglist>(GenerateGlobalMap::Request &amp;req, GenerateGlobalMap::Response &amp;resp)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>optional&lt; NodeId &gt;</type>
      <name>getGridNode</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a4d8cc236449fe945d2dcdfbcd2e55412</anchor>
      <arglist>(const NodeId n) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>initializeFromFile</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a37685a138488f5cec931da88017f1173</anchor>
      <arglist>(const string &amp;fname)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>optimizePoses</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ab6fc45bfa789ae2c2af636b189a50c7c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>optimizePosesTimed</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a21865b11ea5bdb428736df5ba543e300</anchor>
      <arglist>(const WallTimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>publishLocalization</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a052cea474d4dd5165c9800d7a062e6e4</anchor>
      <arglist>(const WallTimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>saveGraph</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a52e9f84bed72ab85ef33833e714721dd</anchor>
      <arglist>(SaveGraph::Request &amp;req, SaveGraph::Response &amp;resp)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>scanCallback</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a2e0b758e6fd92c189029b663bea2de05</anchor>
      <arglist>(const sm::LaserScan::ConstPtr &amp;scan)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>setupConstraintGenerators</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ae287c73877e025ada9f3c87f141cc414</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>statusCheck</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>affb8c14b5d1aa005753a3a18db774c85</anchor>
      <arglist>(const WallTimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>sufficientlyFarApart</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a7035632a7a251ead9cb0e95886f1af45</anchor>
      <arglist>(const Pose &amp;p1, const Pose &amp;p2) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>updateConstraintLocalizations</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ae9159e97b94b07dce410ef35b172db9b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>updateFixedFramePose</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a4afc1fcc85960c3762d8eb4f2d09a297</anchor>
      <arglist>(const Time &amp;t)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>updateGraph</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>aa8c3373aadd04982afa2c4321cbade31</anchor>
      <arglist>(const WallTimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>updateGrid</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a739e4325f4ecb5822939f73b3dbf9116</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>visualize</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ac0b0fa1f9035a92958dd580a861c5335</anchor>
      <arglist>(const WallTimerEvent &amp;e)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>visualizeGridCallback</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>af8176c6de44f018770b3b45b00fd6c76</anchor>
      <arglist>(const UInt64 &amp;n)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>angle_threshold_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a4d60ed5f87b6cf7c85466fdb44577466</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const string</type>
      <name>base_frame_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a6918f953e990408492d50597252a6c8b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>vector&lt; ConstraintGenPtr &gt;</type>
      <name>constraint_generators_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>abe75ba15ed60837426b5ffb350819258</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>current_frame_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ad7f100c0a2a947640ed7777bfd35e1ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned</type>
      <name>current_graph_id_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ac5dc7618bd2def2234ee611c9f4ce886</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>optional&lt; NodeId &gt;</type>
      <name>current_grid_node_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a296e457a26a1686838faef2eb4a7cd18</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>DiffPublisher</type>
      <name>diff_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>adaed3115b0ea69aa8ed9b38b83733e17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::queue&lt; PoseGraphDiff &gt;</type>
      <name>diffs_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a3246584ed3281cf281838099b9d1f278</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const string</type>
      <name>fixed_frame_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a6003b1b57dbd9d62e92a0b82a3f4ccc4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceServer</type>
      <name>generate_map_srv_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a2e8d4bd2ccd2f355848c5ed7a0165b10</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>PoseGraph</type>
      <name>graph_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ad6a8b4f4becc8d987673ecd0d2c0a0e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::WallTimer</type>
      <name>graph_publication_timer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a84ef99a9656d094e72421d1c43c89d86</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::ServiceServer</type>
      <name>graph_save_srv_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a5c4455e327db7b61f0b35c7510d621f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>map&lt; NodeId, NodeSet &gt;</type>
      <name>grid_node_to_nodes_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a181520153c635845815a37e7019c2f6b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>initialized_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ad8a2caa9bec7800a8d6cb7e2c0aacef2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>optional&lt; PoseStamped &gt;</type>
      <name>last_fixed_frame_pose_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a6fa861f170c29f5df93163657123751a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>optional&lt; NodeId &gt;</type>
      <name>last_node_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>afe13429ed47bc0fe2188bce93bb914fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>LaserPtr</type>
      <name>last_scan_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a61ca36f836763e4a40dd76279742c344</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>local_grid_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a536a508b3d8b628b8bd20abcc0a6b0cb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>local_grid_resolution_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>abf34b04e52e4825f1ba3f05e0d8f9784</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>local_grid_size_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a1cc9534375f2f928fd3f256893584158</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>optional&lt; LocalizationState &gt;</type>
      <name>localization_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a55cc798b453886beabcd9b8641131518</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::shared_ptr&lt; ScanMatchLocalization &gt;</type>
      <name>localizer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a363f69b68dae08848efdc7838abce10f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>marker_array_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a851b4147ab6e64a4a3692ac1776a781b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::mutex</type>
      <name>mutex_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a0c928e4653ead334482e8e8cc5eff07b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a796e02bc076d0215235c55cb4685bfca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>NodePoseMap</type>
      <name>node_fixed_frame_poses_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a8ffa3c474db6d9a7f3b360c1e2d568ad</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>map&lt; NodeId, NodeId &gt;</type>
      <name>node_to_grid_node_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a260f6776e8832a748ecedbb458840d0f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>optional&lt; NodeId &gt;</type>
      <name>node_to_visualize_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ab0f222ae4016f4909c1c377a67713080</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::WallTimer</type>
      <name>optimization_timer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ad917a1bda0668946869b5e7b41455b8e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const bool</type>
      <name>optimize_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ace5ece3b83e047b57888d86cf711a707</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>NodePoseMap</type>
      <name>optimized_node_poses_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a046bed2fd093e7a16473918cfb6fd566</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>pos_threshold_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a958e75746db0c8dd9e2853bd9d183ce4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>scan_sub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a03f8f1eb53c34b07c7d5e07c1a83bac0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const string</type>
      <name>sensor_frame_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a2c79b6025b36ded16a7cc4250739da2f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::WallTimer</type>
      <name>status_check_timer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a841c0f8b289a47119ba5e5676fb19b79</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformListener</type>
      <name>tf_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a4a16818d7181861a48227e3a2bbf80ab</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformBroadcaster</type>
      <name>tf_broadcaster_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a16d94fb6ded6e6aa0e7ca8c1f746e397</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::WallTimer</type>
      <name>update_timer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a0d175947259379a73e4aa3a98a4a1802</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const bool</type>
      <name>use_spa_3d_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ad9633ddecb8a7bd61ac3e61f689fbc73</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>vis_marker_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>aa164220012544ec8e4d2ded1a4391deb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>vis_scan_pub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a44a831933a344c0a366f6bc92256abc7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::WallTimer</type>
      <name>visualization_timer_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>ac66832af90c06170526d57a4355e85e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Subscriber</type>
      <name>visualize_grid_sub_</name>
      <anchorfile>classgraph__slam_1_1GraphMapper.html</anchorfile>
      <anchor>a81b0321e857769acc53fd5fae305d13c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::KartoLaserConstraints</name>
    <filename>classgraph__slam_1_1KartoLaserConstraints.html</filename>
    <base>graph_slam::ConstraintGenerator</base>
    <member kind="function">
      <type>NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a6d76dadb3c8b0539743b370b0d3edfec</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, const pg::NodeId new_node, const NodePoseMap &amp;optimized_poses)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>initializeFromGraph</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a22ab065f94f4e61fada168a61ec0977e</anchor>
      <arglist>(const pg::PoseGraph &amp;g, const std::vector&lt; pg::NodeId &gt; &amp;node_sequence)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>KartoLaserConstraints</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>aa4d9b7d1e8e3dd729b440ddb987dbce2</anchor>
      <arglist>(double max_seq_link_length, unsigned min_seq_chain_length, double min_seq_link_response, double max_loop_link_length, unsigned min_loop_chain_length, double min_loop_closure_response, bool use_covariances)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>updateLocalization</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>af2db9d77a5634a581de34e97e4ffe939</anchor>
      <arglist>(const graph_slam::GraphLocalization &amp;loc)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>NodeConstraintVector</type>
      <name>loopConstraints</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a4966267b14a50a85fe3cc18cb2bfb13d</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, const pg::NodeId new_node, const geometry_msgs::Pose &amp;pose_estimate, const NodePoseMap &amp;optimized_poses)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>possiblyInitializeMatchers</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a8b20436582399a435bc67966553795c2</anchor>
      <arglist>(const sensor_msgs::LaserScan &amp;scan)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>NodeConstraintVector</type>
      <name>scanOdomConstraints</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>adfcbd87328d614ae1cb091f031d93158</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, const pg::NodeId new_node, const geometry_msgs::Pose &amp;pose_estimate, const NodePoseMap &amp;optimized_poses)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::optional&lt; pg::NodeId &gt;</type>
      <name>last_ref_node_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a673d462973019059a81b8c21a501b980</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>LoopMatcherPtr</type>
      <name>loop_matcher_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>ab636c62ec7213bb09e154d32dfd1388a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>max_loop_link_length_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>aa6aa080a14ecde1adf592205b6e6c17e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>max_sequential_link_length_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a3f3c92858be19f4ff4e6d6c81ebc5679</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const unsigned</type>
      <name>min_loop_chain_length_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a633f6e9bf4de21cd9d8b657c50569fe1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_loop_closure_response_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a48e95ff134bb38e09fe4be1f728aa0cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const unsigned</type>
      <name>min_sequential_chain_length_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>ad29760801f0e3c53d2bd9957bfa72266</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_sequential_link_response_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>aa7c24671e113b2f3c4da2c74eec4409d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::NodeHandle</type>
      <name>nh_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a2ac46a25cbf2e00330927bd3869dc2d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>geometry_msgs::Pose</type>
      <name>ref_node_odom_pose_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>ac20c60bd83120d34ca2dd1f4711145f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>SeqMatcherPtr</type>
      <name>seq_matcher_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a54946f7ede1e54fb9a85f70745738be8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformListener</type>
      <name>tf_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>a9f85e7efe4f00cbcf3dfbc6e7b83b265</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const bool</type>
      <name>use_covariances_</name>
      <anchorfile>classgraph__slam_1_1KartoLaserConstraints.html</anchorfile>
      <anchor>aa066c9917cd5bc1b35faee654072c0f9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>graph_slam::LocalizationState</name>
    <filename>structgraph__slam_1_1LocalizationState.html</filename>
    <member kind="function">
      <type></type>
      <name>LocalizationState</name>
      <anchorfile>structgraph__slam_1_1LocalizationState.html</anchorfile>
      <anchor>a8b6084afdc7ae63b923186e10575f16d</anchor>
      <arglist>(const pose_graph::NodeId n, const Eigen3::Affine3d trans, const Pose &amp;pose, const ros::Time &amp;stamp)</arglist>
    </member>
    <member kind="variable">
      <type>Pose</type>
      <name>node_frame_pose</name>
      <anchorfile>structgraph__slam_1_1LocalizationState.html</anchorfile>
      <anchor>a56ee3d72a3a3848fc5886e6c8e42cd04</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>Eigen3::Affine3d</type>
      <name>node_to_fixed_frame</name>
      <anchorfile>structgraph__slam_1_1LocalizationState.html</anchorfile>
      <anchor>a020bb4646396b0be5065358277640873</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>pose_graph::NodeId</type>
      <name>ref_node</name>
      <anchorfile>structgraph__slam_1_1LocalizationState.html</anchorfile>
      <anchor>ab663ca2381f45f88ef676cee199f911d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ros::Time</type>
      <name>stamp</name>
      <anchorfile>structgraph__slam_1_1LocalizationState.html</anchorfile>
      <anchor>aa99f81f602f1aebe36661f9661286456</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::LoopScanMatcher</name>
    <filename>classgraph__slam_1_1LoopScanMatcher.html</filename>
    <base>graph_slam::ScanManager</base>
    <member kind="function">
      <type>NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>a6d63cdcabf8768896fa66099bf93ea35</anchor>
      <arglist>(const pg::PoseGraph &amp;g, const pg::NodeId ref_node, const Pose &amp;init_pose_estimate, const LaserPtr scan) const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LoopScanMatcher</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>ae04674c4933563990ca84150e69442e2</anchor>
      <arglist>(const geometry_msgs::Pose2D &amp;laser_offset, double max_link_length, unsigned min_chain_length, double min_response, bool use_covariances)</arglist>
    </member>
    <member kind="function">
      <type>ChainVec</type>
      <name>possibleLoopClosures</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>ad5c07128bfa4dfdcd64ca75b6cc7bcc3</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, pg::NodeId ref_node, const geometry_msgs::Point &amp;barycenter, const LaserPtr scan) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>furtherThan</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>a74a96cb90ff382026b320b147c8e416b</anchor>
      <arglist>(const double max_distance, const geometry_msgs::Point &amp;p, const pg::NodeId n) const </arglist>
    </member>
    <member kind="variable" protection="private">
      <type>KartoMatcherPtr</type>
      <name>matcher_</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>ad4e63d3ce982d6a5f2a93b418ed44525</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>max_link_length_</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>a55389bdfa6aebe7e5fdbb630573a2b66</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_chain_length_</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>a6b77bf23221c114c353a512ada3539cb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_response_</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>a2f795009eafeffd88216457882c9f28c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>use_covariances_</name>
      <anchorfile>classgraph__slam_1_1LoopScanMatcher.html</anchorfile>
      <anchor>ae7da72cd6794cf5f90f964b913f0a004</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>graph_slam::NodeConstraint</name>
    <filename>structgraph__slam_1_1NodeConstraint.html</filename>
    <member kind="function">
      <type></type>
      <name>NodeConstraint</name>
      <anchorfile>structgraph__slam_1_1NodeConstraint.html</anchorfile>
      <anchor>a80221af2642746b510fb10da71c04763</anchor>
      <arglist>(const pg::NodeId target, const pg::PoseConstraint &amp;constraint)</arglist>
    </member>
    <member kind="variable">
      <type>pg::PoseConstraint</type>
      <name>constraint</name>
      <anchorfile>structgraph__slam_1_1NodeConstraint.html</anchorfile>
      <anchor>a596c64ef20b6534e471a2ae604f7ad75</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>pg::NodeId</type>
      <name>target</name>
      <anchorfile>structgraph__slam_1_1NodeConstraint.html</anchorfile>
      <anchor>ad5288b018c4287d864d35d397e33992b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::OdomConstraintGenerator</name>
    <filename>classgraph__slam_1_1OdomConstraintGenerator.html</filename>
    <base>graph_slam::ConstraintGenerator</base>
    <member kind="function">
      <type>NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1OdomConstraintGenerator.html</anchorfile>
      <anchor>a4ee5ac08fa1b6199d9e8e56a9f46bf2d</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, const pg::NodeId new_node, const NodePoseMap &amp;optimized_poses)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>initializeFromGraph</name>
      <anchorfile>classgraph__slam_1_1OdomConstraintGenerator.html</anchorfile>
      <anchor>aa06e2d8f5f0c0ae481b2511d20fd1f46</anchor>
      <arglist>(const pg::PoseGraph &amp;g, const std::vector&lt; pg::NodeId &gt; &amp;node_sequence)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>updateLocalization</name>
      <anchorfile>classgraph__slam_1_1OdomConstraintGenerator.html</anchorfile>
      <anchor>a7ed723afab597dcf030444547fb4098d</anchor>
      <arglist>(const graph_slam::GraphLocalization &amp;loc)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::optional&lt; pg::NodeId &gt;</type>
      <name>last_node_</name>
      <anchorfile>classgraph__slam_1_1OdomConstraintGenerator.html</anchorfile>
      <anchor>a49ab99df36882ed449f37232ba2859aa</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::ScanManager</name>
    <filename>classgraph__slam_1_1ScanManager.html</filename>
    <member kind="function">
      <type>void</type>
      <name>addNode</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>ac4e13e1661b6b30eb4f10d411fc300da</anchor>
      <arglist>(pg::NodeId n, LaserPtr scan)</arglist>
    </member>
    <member kind="function">
      <type>pg::NodeId</type>
      <name>closestNode</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a93b585555ae5fbff21629c9fabd22f57</anchor>
      <arglist>(const geometry_msgs::Pose2D &amp;pose, const NodeSet &amp;nodes) const </arglist>
    </member>
    <member kind="function">
      <type>geometry_msgs::Point</type>
      <name>computeBarycenterInBaseFrame</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a98765fcaa2b05a0730204e968071cf59</anchor>
      <arglist>(const LaserPtr scan) const </arglist>
    </member>
    <member kind="function">
      <type>boost::optional&lt; pg::NodeId &gt;</type>
      <name>lastNode</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a5da6f767599eeada773200184b5631a7</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>NodeSet</type>
      <name>nearbyNodes</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a92bdafcffdfc3fc65fb4e3c09acfcac7</anchor>
      <arglist>(pg::NodeId n, const geometry_msgs::Point &amp;center, const pg::PoseGraph &amp;graph, const double max_distance) const </arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>resetLastNode</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>ab46fed72c9872c2cd9268754a8ab79d8</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ScanManager</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>aaffe4122320f0c601215f40bc64ebb69</anchor>
      <arglist>(const geometry_msgs::Pose2D &amp;laser_offset)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>Chain</type>
      <name>getChain</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a502d26f9d189f02b2ce6bd2e5423767b</anchor>
      <arglist>(pg::NodeId n, const NodeSet &amp;nodes, const NodeSet &amp;processed) const </arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; karto_scan_matcher::ScanWithPose &gt;</type>
      <name>makeRefScans</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a5b82942bedc95ea6ff1bc1543ce0fec4</anchor>
      <arglist>(const NodeContainer &amp;nodes) const </arglist>
    </member>
    <member kind="function" protection="protected">
      <type>boost::optional&lt; geometry_msgs::Point &gt;</type>
      <name>nodeBarycenter</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a040eafd3cf9b484c3cc6b314799b7f1a</anchor>
      <arglist>(const pg::NodeId n) const </arglist>
    </member>
    <member kind="function" protection="protected">
      <type>geometry_msgs::Pose</type>
      <name>optimizedPose</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a377938f48ecb241ba02872abd08bc433</anchor>
      <arglist>(const pg::NodeId n) const </arglist>
    </member>
    <member kind="function" protection="protected">
      <type>NodeConstraint</type>
      <name>scanChainConstraint</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>afe4249e254d841e08819a6ef5b023182</anchor>
      <arglist>(const geometry_msgs::Point &amp;barycenter, const geometry_msgs::Pose2D &amp;pose, const pg::PrecisionMatrix &amp;prec, const Chain &amp;chain) const </arglist>
    </member>
    <member kind="function" protection="protected">
      <type>karto_scan_matcher::ScanMatchResult</type>
      <name>scanMatchNodes</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>ab76075476dfd1809a21607eaea37c252</anchor>
      <arglist>(KartoMatcherPtr matcher, const geometry_msgs::Pose &amp;init_pose_estimate, const LaserPtr scan, const NodeSet &amp;nodes) const </arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>const geometry_msgs::Pose2D</type>
      <name>laser_offset_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>aeef82ac74dd2c878f1f48a57eb7035aa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>NodeSequenceMap</type>
      <name>node_sequence_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a219dbf1d8f0b65d1be6a06b05a1cc57f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>pg::NodeId</type>
      <name>closestNode</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a59b20c2bb8488859d4a7e809871869ab</anchor>
      <arglist>(const geometry_msgs::Point &amp;barycenter, const Chain &amp;chain) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>geometry_msgs::Point</type>
      <name>nodeBarycenter</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a66de2ed835731030956c2f0b9d68a666</anchor>
      <arglist>(const pg::NodeId n, const geometry_msgs::Pose &amp;pose) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>setOptimizedPoses</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a54a325c3f610167fa2387983a55e7536</anchor>
      <arglist>(const NodePoseMap &amp;optimized_poses) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>unsetOptimizedPoses</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>ab4afa387a2068e14e572e22609924d08</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::map&lt; pg::NodeId, geometry_msgs::Point &gt;</type>
      <name>barycenters_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>aa24d312b2c4d8a20c95911f10817d954</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::optional&lt; pg::NodeId &gt;</type>
      <name>last_node_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a42c6c44af625bc241a6c01f5aac6cdda</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::optional&lt; NodePoseMap &gt;</type>
      <name>optimized_poses_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a97c993ddc0f247ee60763ae3673c6104</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>NodeScanMap</type>
      <name>scans_</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a593d24a529fb6aa4f385b1964f3e8dc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="friend" protection="private">
      <type>friend class</type>
      <name>WithOptimizedPoses</name>
      <anchorfile>classgraph__slam_1_1ScanManager.html</anchorfile>
      <anchor>a97d952d42ecbe87f0baf2ea78227434a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::ScanMatchLocalization</name>
    <filename>classgraph__slam_1_1ScanMatchLocalization.html</filename>
    <base>graph_slam::ScanManager</base>
    <member kind="function">
      <type>LocalizationState</type>
      <name>nextState</name>
      <anchorfile>classgraph__slam_1_1ScanMatchLocalization.html</anchorfile>
      <anchor>a52a0ea709f97b863941d84caf29f1833</anchor>
      <arglist>(const LocalizationState &amp;state, const Pose &amp;fixed_frame_pose, const LaserPtr scan, const pose_graph::PoseGraph &amp;graph, const NodePoseMap &amp;optimized_poses) const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ScanMatchLocalization</name>
      <anchorfile>classgraph__slam_1_1ScanMatchLocalization.html</anchorfile>
      <anchor>a6a7b6b8c93a19d4f495c18364d2bdf14</anchor>
      <arglist>(const geometry_msgs::Pose2D &amp;laser_offset, double neighborhood_size, const unsigned localizations_per_scan_match)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const unsigned</type>
      <name>localizations_per_scan_match_</name>
      <anchorfile>classgraph__slam_1_1ScanMatchLocalization.html</anchorfile>
      <anchor>a28ec10cfcfa568d3263a0c322fcdb1ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>KartoMatcherPtr</type>
      <name>matcher_</name>
      <anchorfile>classgraph__slam_1_1ScanMatchLocalization.html</anchorfile>
      <anchor>ac718400c5ef01cc54f49b561551b90bd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>max_link_length_</name>
      <anchorfile>classgraph__slam_1_1ScanMatchLocalization.html</anchorfile>
      <anchor>ab7a6abc25379c38466d834e30e95dff7</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>graph_slam::SequentialScanMatcher</name>
    <filename>classgraph__slam_1_1SequentialScanMatcher.html</filename>
    <base>graph_slam::ScanManager</base>
    <member kind="function">
      <type>void</type>
      <name>addRunningNode</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>ab44b96b04a1fc005e62062aaeebbad8d</anchor>
      <arglist>(const pg::NodeId &amp;n)</arglist>
    </member>
    <member kind="function">
      <type>ChainVec</type>
      <name>candidateChains</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a84bd3f553f7e6ad301ca7626a1b181db</anchor>
      <arglist>(const pg::PoseGraph &amp;graph, pose_graph::NodeId ref_node, const geometry_msgs::Point &amp;barycenter, const LaserPtr scan) const </arglist>
    </member>
    <member kind="function">
      <type>NodeConstraintVector</type>
      <name>getConstraints</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>ad5d41d9aa92aaee927f2b2aeb7273b26</anchor>
      <arglist>(const pg::PoseGraph &amp;g, const pose_graph::NodeId ref_node, const Pose &amp;initial_pose_estimate, const LaserPtr scan) const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>SequentialScanMatcher</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a1716e222d2abfdfa72d6b499319ed191</anchor>
      <arglist>(const geometry_msgs::Pose2D &amp;laser_offset, double max_link_length, unsigned min_chain_length, double min_response, bool use_covariances)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>KartoMatcherPtr</type>
      <name>matcher_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>aac4ed6c661743b65422b17a98c43a4a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>max_link_length_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a54fca19a2f82227fcb96ae1bfcbdf3c0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_chain_length_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>af8941d9a3b86e80b41b2f7ae7dcb037a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>min_response_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a4627248fbd34b66894f346fa63d52ab0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>boost::circular_buffer&lt; pg::NodeId &gt;</type>
      <name>running_nodes_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a85367215871cd492192adcee9605fbc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>use_covariances_</name>
      <anchorfile>classgraph__slam_1_1SequentialScanMatcher.html</anchorfile>
      <anchor>a5abda58fb2bcdb766a0af077fde38103</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>graph_slam::WithOptimizedPoses</name>
    <filename>structgraph__slam_1_1WithOptimizedPoses.html</filename>
    <member kind="function">
      <type></type>
      <name>WithOptimizedPoses</name>
      <anchorfile>structgraph__slam_1_1WithOptimizedPoses.html</anchorfile>
      <anchor>ac8e6d6708147cacb2857d0f0db4ae341</anchor>
      <arglist>(const ScanManager *matcher, const NodePoseMap &amp;poses)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>~WithOptimizedPoses</name>
      <anchorfile>structgraph__slam_1_1WithOptimizedPoses.html</anchorfile>
      <anchor>ae268526ac59cf2ffdf2c824c01e9b6fb</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>const ScanManager *</type>
      <name>matcher</name>
      <anchorfile>structgraph__slam_1_1WithOptimizedPoses.html</anchorfile>
      <anchor>a2ebb2bb1c3596fe536bbe1e728c17c5e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="page">
    <name>index</name>
    <title></title>
    <filename>index</filename>
    <docanchor file="index">codeapi</docanchor>
  </compound>
</tagfile>
