diff --git a/index.html b/index.html index a5cfd203..aac40490 100644 --- a/index.html +++ b/index.html @@ -1,390 +1,321 @@ - + - - - - - - - - - RTAB-Map - - - - - -
-
- View on GitHub - -

RTAB-Map

-

Real-Time Appearance-Based Mapping

- -
- Download this project as a .zip file - Download this project as a tar.gz file -
-
-
- - -
-
-

video

- -

-Overview

- -

RTAB-Map (Real-Time Appearance-Based Mapping) is a RGB-D Graph SLAM approach based on a global Bayesian loop closure detector. The loop closure detector uses a bag-of-words approach to determinate how likely a new image comes from a previous location or a new location. When a loop closure hypothesis is accepted, a new constraint is added to the map's graph, then a graph optimizer minimizes the errors in the map. A memory management approach is used to limit the number of locations used for loop closure detection and graph optimization, so that real-time constraints on large-scale environnements are always respected. RTAB-Map can be used alone with a hand-held Kinect or stereo camera for 6DoF RGB-D mapping, or on a robot equipped with a laser rangefinder for 3DoF mapping.

- - - -

Under the hood :

- - - -

-Install

- -

| ROS | Ubuntu | Mac OS X | Windows |

- - - -

-Troubleshooting

- -

Visit the Tutorials, post an issue or ask a question on the RTAB-Map Forum.

- -

-License

- - - -

-Author

- - - -

-What's new

- -

October 2014

- - - -

September 2014

- - - -

August 2014

- - - -

July 2014

- - - - - - - - - - - - - - - - -
Onboard mappingRemote mapping
- -

June 2014

- - - -

Older news

- -

-Videos

- -

RGBD-SLAM: - video - video

- -

Appearance-based loop closure detection: - video - video

- -

More videos here.

- -

-Older news

- -

February 2014

- - - -

December 2013

- - - -

November 2013

- - - -

June 2013

- - - -

February 2013

- - - -

January 2013

- - - -

December 2012

- - - -
neato -Tpdf Graph.dot -o out.pdf
-
- -

May 2012

- - - -

March 2012

- - -
-
- - - - - - - - - + + + + RTAB-Map + + + + + + +

<!DOCTYPE html>

+

<html>

+


+

  <head>

+

    <meta charset='utf-8'>

+

    <meta http-equiv="X-UA-Compatible" content="chrome=1">

+

    <meta name="description" content="RTAB-Map : Real-Time Appearance-Based Mapping">

+


+

    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">

+


+

    <title>RTAB-Map</title>

+

  </head>

+


+

  <body>

+


+

    <!-- HEADER -->

+

    <div id="header_wrap" class="outer">

+

        <header class="inner">

+

          <a id="forkme_banner" href="https://github.com/introlab/rtabmap">View on GitHub</a>

+


+

          <h1 id="project_title">RTAB-Map</h1>

+

          <h2 id="project_tagline">Real-Time Appearance-Based Mapping</h2>

+


+

            <section id="downloads">

+

              <a class="zip_download_link" href="https://github.com/introlab/rtabmap/zipball/master">Download this project as a .zip file</a>

+

              <a class="tar_download_link" href="https://github.com/introlab/rtabmap/tarball/master">Download this project as a tar.gz file</a>

+

            </section>

+

        </header>

+

    </div>

+


+

    <!-- MAIN CONTENT -->

+

    <div id="main_content_wrap" class="outer">

+

      <section id="main_content" class="inner">

+

        <p><a href="http://www.youtube.com/watch?v=AMLwjo80WzI"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/onlinergbdslam.jpeg" alt="video" title="video"></a></p>

+


+

<h2>

+

<a id="overview" class="anchor" href="#overview" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Overview</h2>

+


+

<p><img src="https://raw.githubusercontent.com/introlab/rtabmap/master/guilib/src/images/RTAB-Map.png" alt="RTAB-Map logo" title="RTAB-Map" align="left" width="120">

+

<strong>RTAB-Map</strong> (Real-Time Appearance-Based Mapping) is a RGB-D Graph-Based SLAM approach based on an incremental appearance-based loop closure detector. The loop closure detector uses a bag-of-words approach to determinate how likely a new image comes from a previous location or a new location. When a loop closure hypothesis is accepted, a new constraint is added to the map's graph, then a graph optimizer minimizes the errors in the map. A memory management approach is used to limit the number of locations used for loop closure detection and graph optimization, so that real-time constraints on large-scale environnements are always respected. RTAB-Map can be used alone with a hand-held Kinect or stereo camera for 6DoF RGB-D mapping, or on a robot equipped with a laser rangefinder for 3DoF mapping.

+

<a name="papers"></a></p>

+


+

<ul>

+

<li>

+

<strong>RGB-D mapping</strong>

+


+

<ul>

+

<li>M. Labbé and F. Michaud, “<a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/images/e/eb/Labbe14-IROS.pdf">Online Global Loop Closure Detection for Large-Scale Multi-Session Graph-Based SLAM</a>,” in <em>Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems</em>, 2014. (<a href="http://ieeexplore.ieee.org/xpl/login.jsp?tp=&amp;arnumber=6942926">IEEE Xplore</a>)</li>

+

<li>Results shown in this paper can be reproduced by the <a href="https://github.com/introlab/rtabmap/wiki/Multi-session">Multi-session mapping</a> tutorial.</li>

+

</ul>

+

</li>

+

<li>

+

<strong>Loop closure detection</strong>:

+


+

<ul>

+

<li>M. Labbé and F. Michaud, “<a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/images/b/bc/TRO2013.pdf">Appearance-Based Loop Closure Detection for Online Large-Scale and Long-Term Operation</a>,” in <em>IEEE Transactions on Robotics</em>, vol. 29, no. 3, pp. 734-745, 2013. (<a href="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6459608">IEEE Xplore</a>)</li>

+

<li>M. Labbé and F. Michaud, “<a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/images/f/f0/Labbe11memory.pdf">Memory management for real-time appearance-based loop closure detection</a>,” in <em>Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems</em>, 2011, pp. 1271–1276. (<a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6094602">IEEE Xplore</a>)</li>

+

<li>Visit <a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">RTAB-Map's page on IntRoLab</a> for detailed information on the loop closure detection approach and related datasets. </li>

+

</ul>

+

</li>

+

</ul>

+


+

<h2>

+

<a id="install" class="anchor" href="#install" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Install</h2>

+


+

<p><a href="https://github.com/introlab/rtabmap_ros#rtabmap_ros"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/ros.png" alt="ROS" width="50"></a>  <a href="https://github.com/introlab/rtabmap/wiki/Installation#ubuntu"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/ubuntu.png" alt="Ubuntu" width="50"></a>  <a href="https://github.com/introlab/rtabmap/wiki/Installation#macosx"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/apple.png" alt="Mac OS X" width="50"></a>  <a href="https://github.com/introlab/rtabmap/wiki/Installation#windows"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/windows.png" alt="Windows" width="50"></a> <a href="https://play.google.com/store/apps/details?id=com.introlab.rtabmap"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/tango.png" alt="Google Tango" width="50"></a> <a href="https://github.com/introlab/rtabmap/wiki/Installation#raspberrypi"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/logos/raspberrypi.png" alt="Raspberry Pi" width="40"></a> </p>

+


+

<ul>

+

<li>

+

<a href="https://github.com/introlab/rtabmap/wiki/Installation">Installation</a> instructions. </li>

+

<li>

+

<a href="https://github.com/introlab/rtabmap/wiki/Tutorials">Tutorials</a>.</li>

+

<li>

+

<a href="https://github.com/introlab/rtabmap/wiki/Tools">Tools</a>.</li>

+

<li>For <strong>ROS</strong> users, take a look to <a href="http://wiki.ros.org/rtabmap">rtabmap</a> page on the ROS wiki for a package overview. See also <a href="http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot">SetupOnYourRobot</a> to know how to integrate RTAB-Map on your robot.</li>

+

</ul>

+


+

<h3>

+

<a id="troubleshooting" class="anchor" href="#troubleshooting" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Troubleshooting</h3>

+


+

<ul>

+

<li>

+

<strong>Standalone</strong>

+


+

<ul>

+

<li>Visit the <a href="https://github.com/introlab/rtabmap/wiki">wiki</a>.</li>

+

<li>Ask a question on the <a href="http://official-rtab-map-forum.67519.x6.nabble.com/">RTAB-Map Forum</a>.</li>

+

<li>Post an <a href="https://github.com/introlab/rtabmap/issues">issue on GitHub</a> (see old issues on <a href="https://code.google.com/p/rtabmap/issues/list">Google code</a>).</li>

+

<li>For the loop closure detection approach, visit <a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">RTAB-Map on IntRoLab website</a>.</li>

+

</ul>

+

</li>

+

<li>

+

<strong>ROS</strong>

+


+

<ul>

+

<li>Visit <a href="http://wiki.ros.org/rtabmap_ros">rtabmap_ros</a> wiki page for nodes documentation, demos and tutorials on ROS. </li>

+

<li>Ask a question on <a href="http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:rtabmap_ros/page:1/">answers.ros.org</a> with <strong>rtabmap</strong> or <strong>rtabmap_ros</strong> tag.</li>

+

</ul>

+

</li>

+

</ul>

+


+

<h2>

+

<a id="license" class="anchor" href="#license" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>License</h2>

+


+

<ul>

+

<li>If OpenCV is built <strong>without the nonfree</strong> module, RTAB-Map can be used under the permissive BSD License. </li>

+

<li>If OpenCV is built <strong>with the nonfree</strong> module, RTAB-Map is free for research only because it depends on <strong>SURF</strong> and <strong>SIFT</strong> features. <strong>SIFT</strong> and <strong>SURF</strong> are <strong>not free</strong> for commercial use.

+


+

<ul>

+

<li>SURF noncommercial notice: <a href="http://www.vision.ee.ethz.ch/%7Esurf/download.html">http://www.vision.ee.ethz.ch/~surf/download.html</a>

+

</li>

+

<li>SIFT patent: <a href="http://www.cs.ubc.ca/%7Elowe/keypoints/">http://www.cs.ubc.ca/~lowe/keypoints/</a>

+

</li>

+

</ul>

+

</li>

+

</ul>

+


+

<h2>

+

<a id="author" class="anchor" href="#author" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Author</h2>

+


+

<ul>

+

<li>

+

<a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php?title=Mathieu_Labb%C3%A9&amp;setlang=en">Mathieu Labbé</a>

+


+

<ul>

+

<li><a href="http://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">RTAB-Map's page at IntRoLab</a></li>

+

<li><a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map#Publications">Papers</a></li>

+

<li>Similar projects: <a href="http://find-object.googlecode.com">Find-Object</a>

+

</li>

+

</ul>

+

</li>

+

</ul>

+


+

<h2>

+

<a id="whats-new" class="anchor" href="#whats-new" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>What's new</h2>

+


+

<h3>

+

<a id="february-2016" class="anchor" href="#february-2016" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>February 2016</h3>

+


+

<ul>

+

<li>

+

<p>I'm pleased to announce that RTAB-Map is now on <strong>Project Tango</strong>. The app is <a href="https://play.google.com/store/apps/details?id=com.introlab.rtabmap">available</a> on Google Play Store. </p>

+


+

<p><a href="https://youtu.be/BE8kMkrCeuA"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/rtabmap-tango.jpeg" alt="video" title="video"></a></p>

+


+

<ul>

+

<li>Screenshots:</li>

+

</ul>

+


+

<p><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/rtabmap-tango.png" alt="rtabmap tango 1" width="600"></p>

+


+

<p><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/rtabmap-tango2.png" alt="rtabmap tango 2" width="600"></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="october-2015" class="anchor" href="#october-2015" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>October 2015</h3>

+


+

<ul>

+

<li>

+

<strong>Version 0.10.10</strong>: Visit the <a href="https://github.com/introlab/rtabmap/releases">release page</a> for more info!</li>

+

</ul>

+


+

<h3>

+

<a id="september-2015" class="anchor" href="#september-2015" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>September 2015</h3>

+


+

<ul>

+

<li>

+

<p><strong>Version 0.10.6</strong>: Integration of a robust graph optimization approach called <a href="https://openslam.org/vertigo.html">Vertigo</a> (which uses <a href="https://openslam.org/g2o.html">g2o</a> or <a href="https://collab.cc.gatech.edu/borg/gtsam">GTSAM</a>), see <a href="https://github.com/introlab/rtabmap/wiki/Robust-Graph-Optimization">this page</a>:</p>

+


+

<p><a href="http://www.youtube.com/watch?v=A8v70DZxLF8"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/robust_graph_optimization.jpg" alt="video" title="video"></a></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="august-2015" class="anchor" href="#august-2015" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>August 2015</h3>

+


+

<ul>

+

<li>

+

<p><strong>Version 0.10.5</strong>: New example to export data to <a href="http://meshlab.sourceforge.net/">MeshLab</a> in order to add textures on a created mesh with low polygons, see <a href="https://github.com/introlab/rtabmap/wiki/Export-Raster-Layers-to-MeshLab">this page</a>:</p>

+


+

<p><a href="https://github.com/introlab/rtabmap/wiki/Export-Raster-Layers-to-MeshLab"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/Tutorials/Texture/texture_tutorial.jpeg" alt="Texture tutorial" width="400"></a></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="october-2014" class="anchor" href="#october-2014" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>October 2014</h3>

+


+

<ul>

+

<li>

+

<p>New example to speed up RTAB-Map's odometry, see <a href="https://github.com/introlab/rtabmap/wiki/Change-parameters">this page</a>:</p>

+


+

<p><a href="http://www.youtube.com/watch?v=Bh8WZsU4YC8"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/speedup.jpeg" alt="video" title="video"></a></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="september-2014" class="anchor" href="#september-2014" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>September 2014</h3>

+


+

<ul>

+

<li>

+

<p>At <strong>IROS 2014</strong> in Chicago, a team using RTAB-Map for SLAM <strong>won</strong> the Kinect navigation contest held during the conference. See their press release for more details: <a href="http://www.meetup.com/SV-ROS-users/pages/Winning_the_IROS2014_Microsoft_Connect_Challenge/">Winning the IROS2014 Microsoft Kinect Challenge</a>. I also added the Wiki page <a href="https://github.com/introlab/rtabmap/wiki/IROS2014KinectChallenge">IROS2014KinectChallenge</a> showing in details the RTAB-Map part used in their solution.</p>

+


+

<p><a href="http://www.youtube.com/watch?v=_qiLAWp7AqQ"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/iros2014.jpeg" alt="video" title="video"></a></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="august-2014" class="anchor" href="#august-2014" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>August 2014</h3>

+


+

<ul>

+

<li>

+

<p>Here a comparison between reality and what can be shown in RVIZ (you can <a href="http://wiki.ros.org/rtabmap_ros#Robot_mapping_with_Find-Object">reproduce this demo here</a>):</p>

+


+

<p><a href="http://www.youtube.com/watch?v=o1GSQanY-Do"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/findobject.jpeg" alt="video" title="video"></a></p>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="july-2014" class="anchor" href="#july-2014" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>July 2014</h3>

+


+

<ul>

+

<li>

+

<p>Added <a href="http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot">Setup on your robot</a> wiki page to know how to integrate RTAB-Map on your ROS robot. Multiple sensor configurations are shown but the optimal configuration is to have a 2D laser, a Kinect-like sensor and odometry.</p>

+


+

<p><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/Tutorials/MultiSession/4.png" alt="AZIMUT3" align="left" width="300"></p>

+


+

<table>

+

<thead>

+

<tr>

+

<th>Onboard mapping</th>

+

<th>Remote mapping</th>

+

</tr>

+

</thead>

+

<tbody>

+

<tr>

+

<td><a href="http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot#Bring-up_your_robot"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/rgbd/setupA.png" alt="" width="300"></a></td>

+

<td><a href="http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot#Remote_mapping"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/rgbd/remoteMapping.png" alt="" width="300"></a></td>

+

</tr>

+

</tbody>

+

</table>

+

</li>

+

</ul>

+


+

<h3>

+

<a id="june-2014" class="anchor" href="#june-2014" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>June 2014</h3>

+


+

<ul>

+

<li>

+

<p>I'm glad to announce that my paper submitted to <a href="http://www.iros2014.org/">IROS 2014</a> was accepted! <a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/images/e/eb/Labbe14-IROS.pdf">This paper</a> explains in details how RGB-D mapping with RTAB-Map is done. Results shown in this paper can be reproduced by the <a href="https://github.com/introlab/rtabmap/wiki/Multi-session">Multi-session mapping</a> tutorial:</p>

+


+

<p><a href="https://github.com/introlab/rtabmap/wiki/Multi-session"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/Tutorials/MultiSession/3.png" alt="Multi-session mapping" width="600"></a></p>

+

</li>

+

</ul>

+


+

<h2>

+

<a id="videos" class="anchor" href="#videos" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Videos</h2>

+


+

<ul>

+

<li>

+

<p><strong>RGBD-SLAM</strong></p>

+


+

<p><a href="http://www.youtube.com/watch?v=Nm2ggyAW4rw"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/desktop.jpeg" alt="video" title="video"></a></p>

+


+

<p><a href="http://www.youtube.com/watch?v=joV7VCvGrKM"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/globalonly.jpeg" alt="video" title="video"></a></p>

+

</li>

+

<li>

+

<p><strong>Appearance-based loop closure detection</strong></p>

+


+

<p><a href="http://www.youtube.com/watch?v=CAk-QGMlQmI"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/rtabmap.jpeg" alt="video" title="video"></a></p>

+


+

<p><a href="http://www.youtube.com/watch?v=1dImRinTJSE"><img src="https://raw.githubusercontent.com/wiki/introlab/rtabmap/doc/video_screenshots/newcollegeomni.jpeg" alt="video" title="video"></a></p>

+


+

<ul>

+

<li>More loop closure detection videos <a href="http://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">here</a>.</li>

+

</ul>

+

</li>

+

</ul>

+

      </section>

+

    </div>

+


+

    <!-- FOOTER  -->

+

    <div id="footer_wrap" class="outer">

+

      <footer class="inner">

+

        <p class="copyright">RTAB-Map maintained by <a href="https://github.com/introlab">introlab</a></p>

+

        <p>Published with <a href="https://pages.github.com">GitHub Pages</a></p>

+

      </footer>

+

    </div>

+


+

              <script type="text/javascript">

+

            var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");

+

            document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

+

          </script>

+

          <script type="text/javascript">

+

            try {

+

              var pageTracker = _gat._getTracker("UA-56986679-1");

+

            pageTracker._trackPageview();

+

            } catch(err) {}

+

          </script>

+


+


+

  </body>

+

</html>

+