mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-10 13:30:20 +08:00
Create gh-pages branch via GitHub
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 78 B |
Binary file not shown.
|
After Width: | Height: | Size: 463 B |
Binary file not shown.
|
After Width: | Height: | Size: 216 B |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
+390
@@ -0,0 +1,390 @@
|
||||
<!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="http://img.youtube.com/vi/AMLwjo80WzI/0.jpg" alt="video"></a></p>
|
||||
|
||||
<h1>
|
||||
<a id="overview" class="anchor" href="#overview" aria-hidden="true"><span class="octicon octicon-link"></span></a>Overview</h1>
|
||||
|
||||
<p><strong>RTAB-Map</strong> (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.</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.</li>
|
||||
<li>Results shown in this paper can be reproduced by the [MultiSessionDemo Multi-session mapping] 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>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Under the hood :</p>
|
||||
|
||||
<ul>
|
||||
<li>Loop closure hypotheses are evaluated using a Bayes filter.</li>
|
||||
<li>Image matching is done using a "bag-of-words" approach (with SURF features - OpenCV).</li>
|
||||
<li>Graph optimization is done with <a href="https://www.openslam.org/toro.html">TORO</a>.</li>
|
||||
<li>Memory is divided into short-term, working and long-term memories.</li>
|
||||
<li>Sqlite3 database is used for the long-term memory.</li>
|
||||
</ul>
|
||||
|
||||
<h1>
|
||||
<a id="install" class="anchor" href="#install" aria-hidden="true"><span class="octicon octicon-link"></span></a>Install</h1>
|
||||
|
||||
<p>| <a href="https://code.google.com/p/rtabmap/wiki/Installation#ROS_version"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/ros.png" alt="ROS" width="50"></a> | <a href="https://code.google.com/p/rtabmap/wiki/Installation#Ubuntu"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/ubuntu.png" alt="Ubuntu" width="50"></a> | <a href="https://code.google.com/p/rtabmap/wiki/Installation#Mac_OS_X"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/apple.jpg" alt="Mac OS X" width="50"></a> | <a href="https://code.google.com/p/rtabmap/wiki/Installation#Windows"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/windows.png" alt="Windows" width="50"></a> | </p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://code.google.com/p/rtabmap/wiki/Installation">Installation</a> instructions. </li>
|
||||
<li>
|
||||
<a href="https://code.google.com/p/rtabmap/wiki/Tutorials">Tutorials</a>.</li>
|
||||
<li>
|
||||
<a href="https://code.google.com/p/rtabmap/wiki/Tools">Tools</a>.</li>
|
||||
<li>For <strong>ROS</strong> users, take a look to <a href="https://code.google.com/p/rtabmap/wiki/ROS">ROS page</a> for a package overview. See also <a href="https://code.google.com/p/rtabmap/wiki/SetupOnYourRobot">SetupOnYourRobot</a> to know how to integrate RTAB-Map on your robot.</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a id="troubleshooting" class="anchor" href="#troubleshooting" aria-hidden="true"><span class="octicon octicon-link"></span></a>Troubleshooting</h2>
|
||||
|
||||
<p>Visit the <a href="https://code.google.com/p/rtabmap/wiki/Tutorials">Tutorials</a>, post an <a href="https://code.google.com/p/rtabmap/issues/list">issue</a> or ask a question on the <a href="http://official-rtab-map-forum.67519.x6.nabble.com/"> RTAB-Map Forum</a>.</p>
|
||||
|
||||
<h2>
|
||||
<a id="license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h2>
|
||||
|
||||
<ul>
|
||||
<li>Note that RTAB-Map is free for research only because it depends on <em>SURF</em> and <em>SIFT</em> 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>
|
||||
|
||||
<h1>
|
||||
<a id="author" class="anchor" href="#author" aria-hidden="true"><span class="octicon octicon-link"></span></a>Author</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php?title=Mathieu_Labb%C3%A9&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>
|
||||
|
||||
<h1>
|
||||
<a id="whats-new" class="anchor" href="#whats-new" aria-hidden="true"><span class="octicon octicon-link"></span></a>What's new</h1>
|
||||
|
||||
<p>October 2014</p>
|
||||
|
||||
<ul>
|
||||
<li>I added a <a href="http://official-rtab-map-forum.67519.x6.nabble.com/">RTAB-Map Forum</a> to ask questions, so it will easier to share answers with the community.</li>
|
||||
<li>New version 0.7.0:
|
||||
|
||||
<ul>
|
||||
<li>Calibration tool in the Source panel in Preferences.</li>
|
||||
<li>Binary features can be used for loop closure detection.</li>
|
||||
<li>
|
||||
<a href="https://code.google.com/p/rtabmap/wiki/Tools#Database_viewer">DatabaseViewer</a> can remove/add manually loop closures.</li>
|
||||
<li>Added exportation dialog (<code>*</code>.ply <code>*</code>.pcd).</li>
|
||||
<li>ROS: <a href="https://code.google.com/p/rtabmap/wiki/ROS#RVIZ_plugins">rviz plugins</a>: MapCloudDisplay, InfoDisplay, MapGraphDisplay.</li>
|
||||
<li>Downloads:</li>
|
||||
<li>Source: <a href="http://bit.ly/1powfmG">RTABMap-0.7.0-Source.zip</a>
|
||||
</li>
|
||||
<li>Windows binary: <a href="http://bit.ly/1mM3pRs">RTABMap-0.7.0-win64.zip</a>
|
||||
</li>
|
||||
<li>Windows installer: <a href="http://bit.ly/1qSgELI">RTABMap-0.7.0-win64.exe</a>
|
||||
</li>
|
||||
<li>New example to speed up RTAB-Map, see the page <a href="https://code.google.com/p/rtabmap/wiki/FastRGBDMapping">FastRGBDMapping</a>:
|
||||
<a href="http://www.youtube.com/watch?v=Bh8WZsU4YC8"><img src="http://img.youtube.com/vi/Bh8WZsU4YC8/0.jpg" alt="video"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>September 2014</p>
|
||||
|
||||
<ul>
|
||||
<li>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://code.google.com/p/rtabmap/wiki/IROS2014KinectChallenge">IROS2014KinectChallenge</a> showing in details the RTAB-Map part used in their solution.
|
||||
<a href="http://www.youtube.com/watch?v=_qiLAWp7AqQ"><img src="http://img.youtube.com/vi/_qiLAWp7AqQ/0.jpg" alt="video"></a> </li>
|
||||
</ul>
|
||||
|
||||
<p>August 2014</p>
|
||||
|
||||
<ul>
|
||||
<li>I did a fork of the source code for GitHub and I will keep it synchronised with the svn here. It will be easier for you to customize the code with a fork on GitHub.
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/introlab/rtabmap">GitHub for RTAB-Map</a></li>
|
||||
<li><a href="https://github.com/introlab/rtabmap-ros-pkg">GitHub for RTAB-Map's ROS package</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Here a comparison between reality and what can be shown in RVIZ (you can <a href="https://code.google.com/p/rtabmap/wiki/ROS?ts=1408024477&updated=ROS#Robot_mapping_with_Find-Object">reproduce this demo here</a>):
|
||||
<a href="http://www.youtube.com/watch?v=o1GSQanY-Do"><img src="http://img.youtube.com/vi/o1GSQanY-Do/0.jpg" alt="video"></a> </li>
|
||||
</ul>
|
||||
|
||||
<p>July 2014</p>
|
||||
|
||||
<ul>
|
||||
<li>Added <a href="https://code.google.com/p/rtabmap/wiki/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.
|
||||
<img src="http://rtabmap.googlecode.com/svn/trunk/doc/Tutorials/MultiSession/4.png" alt="AZIMUT3">
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Onboard mapping</th>
|
||||
<th>Remote mapping</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://code.google.com/p/rtabmap/wiki/SetupOnYourRobot#Bring-up_your_robot"><img src="http://rtabmap.googlecode.com/svn/trunk/doc/rgbd/setupA.png" alt="" width="400"></a></td>
|
||||
<td><a href="https://code.google.com/p/rtabmap/wiki/SetupOnYourRobot#Remote_mapping"><img src="http://rtabmap.googlecode.com/svn/trunk/doc/rgbd/remoteMapping.png" alt="" width="400"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>June 2014</p>
|
||||
|
||||
<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://code.google.com/p/rtabmap/wiki/MultiSessionDemo">Multi-session mapping</a> tutorial:
|
||||
<a href="https://code.google.com/p/rtabmap/wiki/MultiSessionDemo"><img src="http://rtabmap.googlecode.com/svn/trunk/doc/Tutorials/MultiSession/3.png" alt="Multi-session mapping" width="800"></a></p></li>
|
||||
<li>
|
||||
<p>Release 0.6.4</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Binaries!</strong> <a href="https://code.google.com/p/rtabmap/wiki/Installation#Mac_OS_X"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/apple.jpg" alt="Mac OS X" height="15"></a><a href="https://code.google.com/p/rtabmap/wiki/Installation#Windows"><img src="https://rtabmap.googlecode.com/svn/trunk/doc/logos/windows.png" alt="Windows" height="15"></a> See [Installation] page for more information.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Release 0.6.3
|
||||
|
||||
<ul>
|
||||
<li>(r1330) New icon!</li>
|
||||
<li>(r1310) Freenect support.</li>
|
||||
<li>(r1335) Added cloud smoothing (Moving Least Squares) option when saving clouds.</li>
|
||||
<li>(r1334) Added a quality odometry threshold, turning the background yellow when the mapping area has too low features.</li>
|
||||
<li>(r1328) Fixed some building issues with OpenCV version: nonFree module explicitly required. This simplified installation for ROS Indigo (r1329).</li>
|
||||
<li>(r1342) rtabmap-databaseViewer: Added total path length under the Graph view.</li>
|
||||
<li>Some bug fixes.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><a href="http://code.google.com/p/rtabmap/#Older_news">Older news</a></p>
|
||||
|
||||
<h1>
|
||||
<a id="videos" class="anchor" href="#videos" aria-hidden="true"><span class="octicon octicon-link"></span></a>Videos</h1>
|
||||
|
||||
<p><em>RGBD-SLAM</em>:
|
||||
<a href="http://www.youtube.com/watch?v=Nm2ggyAW4rw"><img src="http://img.youtube.com/vi/Nm2ggyAW4rw/0.jpg" alt="video"></a>
|
||||
<a href="http://www.youtube.com/watch?v=joV7VCvGrKM"><img src="http://img.youtube.com/vi/joV7VCvGrKM/0.jpg" alt="video"></a></p>
|
||||
|
||||
<p><em>Appearance-based loop closure detection</em>:
|
||||
<a href="http://www.youtube.com/watch?v=CAk-QGMlQmI"><img src="http://img.youtube.com/vi/CAk-QGMlQmI/0.jpg" alt="video"></a>
|
||||
<a href="http://www.youtube.com/watch?v=1dImRinTJSE"><img src="http://img.youtube.com/vi/1dImRinTJSE/0.jpg" alt="video"></a></p>
|
||||
|
||||
<p><strong>More videos <a href="http://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">here</a></strong>.</p>
|
||||
|
||||
<h1>
|
||||
<a id="older-news" class="anchor" href="#older-news" aria-hidden="true"><span class="octicon octicon-link"></span></a>Older news</h1>
|
||||
|
||||
<p>February 2014</p>
|
||||
|
||||
<ul>
|
||||
<li>Release 0.6.2</li>
|
||||
<li>New <a href="https://code.google.com/p/rtabmap/wiki/Tools">Tools</a> page.</li>
|
||||
<li>Updated <a href="https://code.google.com/p/rtabmap/wiki/Tutorials">Tutorials</a> page (RGB-D mapping, multi-session mapping demos...).</li>
|
||||
<li>Updated <a href="https://code.google.com/p/rtabmap/wiki/ROS">ROS</a> usage and demos.</li>
|
||||
</ul>
|
||||
|
||||
<p>December 2013</p>
|
||||
|
||||
<ul>
|
||||
<li>Updated trunk to version 0.6.</li>
|
||||
<li>Ubuntu/ROS updated!
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<em>ROS version</em>: Because RTAB-Map 0.6 requires PCL 1.7, ROS Hydro is required. The installation is now using Catkin. See the <a href="https://code.google.com/p/rtabmap/wiki/ROS">ROS</a> page for new RTAB-Map packages installation and usage. The "visual_slam" package doesn't exist anymore, all RGB-D features are handled directly in "rtabmap" package. The mapping demo (ROS bag) from "visual_slam" is updated to new package (see bottom of <a href="https://code.google.com/p/rtabmap/wiki/ROS#Demos">ROS</a> for launch files).</li>
|
||||
<li>Example of mapping with a hand-held Kinect (or OpenNI-compliant sensors): <a href="https://rtabmap.googlecode.com/svn/trunk/ros-pkg/launch/rgbd_mapping.launch">rgbd_mapping.launch</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<pre><code>$ roslaunch openni_launch openni.launch depth_registration:=true
|
||||
$ roslaunch rtabmap rgbd_mapping.launch
|
||||
</code></pre>
|
||||
|
||||
<ul>
|
||||
<li>Ubuntu <strong>standalone version</strong>:</li>
|
||||
</ul>
|
||||
|
||||
<pre><code>$ svn checkout http://rtabmap.googlecode.com/svn/trunk/rtabmap rtabmap
|
||||
$ cd rtabmap/build
|
||||
$ cmake ..
|
||||
$ make -j4
|
||||
$ make install
|
||||
$ rtabmap
|
||||
</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>November 2013</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<em>(EDIT)</em> I re-uploaded the zip file with installers for OpenNI.</li>
|
||||
<li>Added a standalone demo version for RGB-D mapping on Windows 7.</li>
|
||||
<li>
|
||||
<a href="https://rtabmap.googlecode.com/files/RTAB-Map-0.6.0-win32-DEMO.zip">RTAB-Map-0.6.0-win32-DEMO.zip</a>.</li>
|
||||
<li>Install:
|
||||
|
||||
<ul>
|
||||
<li>Unzip</li>
|
||||
<li>Install OpenNI-Win32-1.5.4-Dev.msi</li>
|
||||
<li>Install Sensor-Win-OpenSource32-5.1.0.msi</li>
|
||||
<li>Plug the Kinect</li>
|
||||
<li>Run bin/RTAB-Map.exe</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>What's included in the demo:
|
||||
|
||||
<ul>
|
||||
<li>Hand-held Kinect RGBD mapping,</li>
|
||||
<li>Modes "Mapping" and "Localization" (that can be switched on-the-fly),</li>
|
||||
<li>Multiple maps management,</li>
|
||||
<li>Added a 3D map viewer directly in the RTAB-Map GUI,</li>
|
||||
<li>Three odometry approaches: </li>
|
||||
<li>SURF/SIFT (best quality), </li>
|
||||
<li>FAST/BRIEF (fast),</li>
|
||||
<li>ICP (slow but invariant to light),</li>
|
||||
<li>Save the resulting cloud to .pcd file.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>(<em>Ubuntu/ROS users</em>) In the next weeks, the ROS package will be updated with the new features, and with an easier interface to use than the visual_slam package (all the RGBD stuff will be included directly in the rtabmap package).</li>
|
||||
</ul>
|
||||
|
||||
<p>June 2013</p>
|
||||
|
||||
<ul>
|
||||
<li>Added new demos (mapping 2d/3d, localization) with a robot (ROS bags included!). See <a href="https://code.google.com/p/rtabmap/wiki/SLAMDemo">SLAMDemo</a>. Example:</li>
|
||||
</ul>
|
||||
|
||||
<p>February 2013</p>
|
||||
|
||||
<ul>
|
||||
<li>Long paper accepted in <em>IEEE Transactions on Robotics</em> (all papers <a href="https://code.google.com/p/rtabmap/#Papers">below</a>). See RTAB-Map tested on 12 data sets!</li>
|
||||
</ul>
|
||||
|
||||
<p>January 2013</p>
|
||||
|
||||
<ul>
|
||||
<li>Added a <a href="https://code.google.com/p/rtabmap/wiki/Example">C++ usage example</a>.</li>
|
||||
<li>Integrated RTAB-Map with <a href="http://www.openslam.org/toro.html">TORO</a> to make a <strong>6D SLAM demo</strong>. See the page [SLAMDemo] if you want to try the demo. In this example, we use a hand-held Kinect sensor: we assemble incrementally the map depending on the 6D visual odometry (SIFT features are used), then when a loop closure is detected using RTAB-Map, TORO is used to optimize the map with the new constraint. </li>
|
||||
</ul>
|
||||
|
||||
<p>December 2012</p>
|
||||
|
||||
<ul>
|
||||
<li>Version 0.5.0.</li>
|
||||
<li>Moved all sensorimotor stuff to the new project <a href="http://semolearning.googlecode.com">SeMoLearning</a>. Now RTAB-Map contains only things about loop closure detection using a Bayesian bag-of-words approach, as in the RTAB-Map related <a href="https://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map#Publications">papers</a>. This also simplified the interface.</li>
|
||||
<li>I added a new option from the menu to print the detected loop closure IDs in the application console (in MATLAB matrix format, for fast copy/paste in MATLAB).</li>
|
||||
<li>Also, when generating the map using the menu action, a tip is printed in the application console to know how print a pdf from the ".dot" file with Graphiz: </li>
|
||||
</ul>
|
||||
|
||||
<pre><code>neato -Tpdf Graph.dot -o out.pdf
|
||||
</code></pre>
|
||||
|
||||
<p>May 2012</p>
|
||||
|
||||
<ul>
|
||||
<li>Five new videos (720p) from other community data sets can be found on <a href="http://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">RTAB-Map's page at IntRoLab</a>. </li>
|
||||
</ul>
|
||||
|
||||
<p>March 2012</p>
|
||||
|
||||
<ul>
|
||||
<li>Release 0.3.2:
|
||||
|
||||
<ul>
|
||||
<li>Simplified RTAB-Map's main parameters by adding a basic panel in Preferences.
|
||||
November 2011</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>I've made a simple interface to play with feature detectors and descriptors of OpenCV. See it at <a href="http://find-object.googlecode.com">Find-Object</a>.
|
||||
July 2011</li>
|
||||
<li>New videos with different data sets are added to the <a href="http://introlab.3it.usherbrooke.ca/mediawiki-introlab/index.php/RTAB-Map">home page</a>.</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="http://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>
|
||||
@@ -0,0 +1 @@
|
||||
console.log('This would be the main JS file.');
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,70 @@
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #f0f3f3; }
|
||||
.highlight .c { color: #0099FF; font-style: italic } /* Comment */
|
||||
.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
|
||||
.highlight .k { color: #006699; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #555555 } /* Operator */
|
||||
.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #009999 } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
|
||||
.highlight .go { color: #AAAAAA } /* Generic.Output */
|
||||
.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #99CC66 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #006699 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
|
||||
.highlight .m { color: #FF6600 } /* Literal.Number */
|
||||
.highlight .s { color: #CC3300 } /* Literal.String */
|
||||
.highlight .na { color: #330099 } /* Name.Attribute */
|
||||
.highlight .nb { color: #336666 } /* Name.Builtin */
|
||||
.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #336600 } /* Name.Constant */
|
||||
.highlight .nd { color: #9999FF } /* Name.Decorator */
|
||||
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #CC00FF } /* Name.Function */
|
||||
.highlight .nl { color: #9999FF } /* Name.Label */
|
||||
.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #003333 } /* Name.Variable */
|
||||
.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #CC3300 } /* Literal.String.Char */
|
||||
.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
|
||||
.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #CC3300 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
|
||||
.highlight .vc { color: #003333 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #003333 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #003333 } /* Name.Variable.Instance */
|
||||
.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
|
||||
|
||||
.type-csharp .highlight .k { color: #0000FF }
|
||||
.type-csharp .highlight .kt { color: #0000FF }
|
||||
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
|
||||
.type-csharp .highlight .nc { color: #2B91AF }
|
||||
.type-csharp .highlight .nn { color: #000000 }
|
||||
.type-csharp .highlight .s { color: #A31515 }
|
||||
.type-csharp .highlight .sc { color: #A31515 }
|
||||
@@ -0,0 +1,425 @@
|
||||
/*******************************************************************************
|
||||
Slate Theme for GitHub Pages
|
||||
by Jason Costello, @jsncostello
|
||||
*******************************************************************************/
|
||||
|
||||
@import url(pygment_trac.css);
|
||||
|
||||
/*******************************************************************************
|
||||
MeyerWeb Reset
|
||||
*******************************************************************************/
|
||||
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Theme Styles
|
||||
*******************************************************************************/
|
||||
|
||||
body {
|
||||
box-sizing: border-box;
|
||||
color:#373737;
|
||||
background: #212121;
|
||||
font-size: 16px;
|
||||
font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 10px 0;
|
||||
font-weight: 700;
|
||||
color:#222222;
|
||||
font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h2 {
|
||||
padding-bottom: 10px;
|
||||
font-size: 32px;
|
||||
background: url('../images/bg_hr.png') repeat-x bottom;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 10px 0 15px 0;
|
||||
}
|
||||
|
||||
footer p {
|
||||
color: #f2f2f2;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #007edf;
|
||||
text-shadow: none;
|
||||
|
||||
transition: color 0.5s ease;
|
||||
transition: text-shadow 0.5s ease;
|
||||
-webkit-transition: color 0.5s ease;
|
||||
-webkit-transition: text-shadow 0.5s ease;
|
||||
-moz-transition: color 0.5s ease;
|
||||
-moz-transition: text-shadow 0.5s ease;
|
||||
-o-transition: color 0.5s ease;
|
||||
-o-transition: text-shadow 0.5s ease;
|
||||
-ms-transition: color 0.5s ease;
|
||||
-ms-transition: text-shadow 0.5s ease;
|
||||
}
|
||||
|
||||
a:hover, a:focus {text-decoration: underline;}
|
||||
|
||||
footer a {
|
||||
color: #F2F2F2;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 739px;
|
||||
padding: 5px;
|
||||
margin: 10px 0 10px 0;
|
||||
border: 1px solid #ebebeb;
|
||||
|
||||
box-shadow: 0 0 5px #ebebeb;
|
||||
-webkit-box-shadow: 0 0 5px #ebebeb;
|
||||
-moz-box-shadow: 0 0 5px #ebebeb;
|
||||
-o-box-shadow: 0 0 5px #ebebeb;
|
||||
-ms-box-shadow: 0 0 5px #ebebeb;
|
||||
}
|
||||
|
||||
p img {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
border: none;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
width: 100%;
|
||||
color: #222;
|
||||
background-color: #fff;
|
||||
|
||||
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
|
||||
font-size: 14px;
|
||||
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
}
|
||||
|
||||
pre {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,.1);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 3px;
|
||||
margin: 0 3px;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
pre code {
|
||||
display: block;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: #666;
|
||||
margin-bottom: 20px;
|
||||
padding: 0 0 0 20px;
|
||||
border-left: 3px solid #bbb;
|
||||
}
|
||||
|
||||
|
||||
ul, ol, dl {
|
||||
margin-bottom: 15px
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-position: inside;
|
||||
list-style: disc;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-position: inside;
|
||||
list-style: decimal;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
dl dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dl dd {
|
||||
padding-left: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dl p {
|
||||
padding-left: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 1px;
|
||||
margin-bottom: 5px;
|
||||
border: none;
|
||||
background: url('../images/bg_hr.png') repeat-x center;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 1px solid #373737;
|
||||
margin-bottom: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
padding: 10px;
|
||||
background: #373737;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 10px;
|
||||
border: 1px solid #373737;
|
||||
}
|
||||
|
||||
form {
|
||||
background: #f2f2f2;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Full-Width Styles
|
||||
*******************************************************************************/
|
||||
|
||||
.outer {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inner {
|
||||
position: relative;
|
||||
max-width: 640px;
|
||||
padding: 20px 10px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#forkme_banner {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top:0;
|
||||
right: 10px;
|
||||
z-index: 10;
|
||||
padding: 10px 50px 10px 10px;
|
||||
color: #fff;
|
||||
background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
|
||||
font-weight: 700;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,.5);
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
#header_wrap {
|
||||
background: #212121;
|
||||
background: -moz-linear-gradient(top, #373737, #212121);
|
||||
background: -webkit-linear-gradient(top, #373737, #212121);
|
||||
background: -ms-linear-gradient(top, #373737, #212121);
|
||||
background: -o-linear-gradient(top, #373737, #212121);
|
||||
background: linear-gradient(top, #373737, #212121);
|
||||
}
|
||||
|
||||
#header_wrap .inner {
|
||||
padding: 50px 10px 30px 10px;
|
||||
}
|
||||
|
||||
#project_title {
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
font-size: 42px;
|
||||
font-weight: 700;
|
||||
text-shadow: #111 0px 0px 10px;
|
||||
}
|
||||
|
||||
#project_tagline {
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
background: none;
|
||||
text-shadow: #111 0px 0px 10px;
|
||||
}
|
||||
|
||||
#downloads {
|
||||
position: absolute;
|
||||
width: 210px;
|
||||
z-index: 10;
|
||||
bottom: -40px;
|
||||
right: 0;
|
||||
height: 70px;
|
||||
background: url('../images/icon_download.png') no-repeat 0% 90%;
|
||||
}
|
||||
|
||||
.zip_download_link {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 90px;
|
||||
height:70px;
|
||||
text-indent: -5000px;
|
||||
overflow: hidden;
|
||||
background: url(../images/sprite_download.png) no-repeat bottom left;
|
||||
}
|
||||
|
||||
.tar_download_link {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 90px;
|
||||
height:70px;
|
||||
text-indent: -5000px;
|
||||
overflow: hidden;
|
||||
background: url(../images/sprite_download.png) no-repeat bottom right;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.zip_download_link:hover {
|
||||
background: url(../images/sprite_download.png) no-repeat top left;
|
||||
}
|
||||
|
||||
.tar_download_link:hover {
|
||||
background: url(../images/sprite_download.png) no-repeat top right;
|
||||
}
|
||||
|
||||
#main_content_wrap {
|
||||
background: #f2f2f2;
|
||||
border-top: 1px solid #111;
|
||||
border-bottom: 1px solid #111;
|
||||
}
|
||||
|
||||
#main_content {
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
#footer_wrap {
|
||||
background: #212121;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
Small Device Styles
|
||||
*******************************************************************************/
|
||||
|
||||
@media screen and (max-width: 480px) {
|
||||
body {
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#downloads {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.inner {
|
||||
min-width: 320px;
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
#project_title {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
min-width: 320px;
|
||||
max-width: 480px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user