Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MAOMaps: Matterport Overlapping Maps Dataset

Dataset description

MAOMaps is a dataset for evaluation of Visual SLAM, RGB-D SLAM and Map Merging algorithms. It contains 40 samples with RGB and depth images, and ground truth trajectories and maps. These 40 samples are joined into 20 pairs of overlapping maps for map merging methods evaluation. The samples were collected using Matterport3D dataset and Habitat simulator.

The dataset is available here.

To use this dataset in your research, please cite the paper: TBA.

Sample running demo

Samples information

PairTrajectory 1 lengthTrajectory 2 lengthIoU, %Points 3DResolution 2D
121.720.348405288399x403
232.920.830493070448x509
313.715.962130162234x399
419.022.945415810463x419
518.413.844175628383x243
616.221.240193740444x219
74.17.848121247239x236
813.911.046163418329x250
99.44.33088337211x245
109.810.040189478250x310
1121.511.240240041330x379
1216.317.433397487528x407
1322.221.054266472329x425
1413.915.842214593327x484
1512.621.120277755397x314
1621.617.827267133400x284
1710.86.539164773349x238
1813.712.351156416255x326
1915.614.142183705228x319
2018.919.928251173293x465

Dataset structure

The dataset contains 20 pairs of trajectories. Each pair is stored in its own subdirectory.

Each sample contains:

  • first.bag, second.bag - raw data in Rosbag format for first and second trajectory of the pair. Rosbags contain RGB images (in topic /habitat/rgb/image), depth maps (in topic /habitat/depth/image), camera info (in topic /habitat/rgb/camera_info), and poses (in topic /true_pose).

  • gt_points_first.pcd, gt_points_second.pcd - ground truth maps stored as point clouds, for first and second trajectory of the pair.

  • gt_points_first.txt, gt_points_second.txt - ground truth maps coordinates in text format, for first and second trajectory of the pair.

  • gt_points_merged.pcd - merged ground truth map in Pointcloud format.

  • gt_points_merged.txt - merged ground truth map points in text format.

  • gt_colors_first.txt, gt_colors_second.txt - colors of points of first and second ground truth map in RGB format.

  • gt_colors_merged.txt - colors of points of merged ground truth map in RGB format.

  • gt_poses_first.txt, gt_poses_second.txt - ground truth trajectories stores as a set of 6D poses.

  • start_pose_first.txt, start_pose_second.txt - ground truth start positions of first and second trajectory.

Toolbox

This toolbox contains scripts for VSLAM and Map Merging algorithms evaluation (stored in evaluate folder) and scripts for dataset expanding (stored in collect_data folder).

Evaluate

To use this part of toolbox, clone slam_comparison repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/slam_comparison
cd ..; catkin_make;

Usage example: estimate RTAB-MAP quality

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and launch the SLAM:
roslaunch rtabmap_ros rtabmap.launch
  1. In third terminal, enter the dataset directory, and play some rosbag of the dataset, e.g.
rosbag play sample1/first.bag
  1. Create directory to store SLAM pointclouds:
mkdir sample1/eval_rtabmap
  1. In fourth terminal, run pointcloud saver:
rosrun pointcloud_processing pointcloud_subscriber /octomap_occupied_space ./sample1/eval_rtabmap/slam_points.txt ./sample1/eval_rtabmap/slam_colors.txt
  1. After rosbag stops, and SLAM finishes building map, stop pointcloud saver node in fourth terminal using Ctrl-C command

  2. Copy groundtruth map and trajectory into SLAM evaluation directory:

cp sample1/gt_points_first.txt sample1/eval_rtabmap/gt_points.txt
cp sample1/gt_poses_first.txt sample1/eval_rtabmap
  1. Transform SLAM pointcloud into Habitat coordinate system:
python evaluate/pointcloud_transformer.py ./sample1/eval_rtabmap/slam_points.txt ./sample1/start_pose_first.txt -0.45
mv sample1/eval_rtabmap/slam_points_transformed.txt sample1/eval_rtabmap/slam_points.txt
  1. Compute the absolute mapping error of the SLAM:
rosrun pointcloud_processing octomap_processing ./sample1/eval_rtabmap abs nearest ./sample1/eval_rtabmap/results.txt

Collect_data

To use this part of toolbox, clone habitat_ros repo into your ROS workspace and build it:

cd~/catkin_ws/src
git clone https://github.com/CnnDepth/habitat_ros
cd ..; catkin_make;

Usage example: create 21st sample of the dataset

  1. Open terminal, and run Ros master node:
roscore
  1. Open another terminal, and run Habitat keyboard agent:
roslaunch habitat_ros keyboard_agent.launch
  1. Create directory sample21 for new sample:
mkdir sample21
  1. In third terminal, record Rosbag from Habitat:
rosbag record /habitat/rgb/image /habitat/depth/image /habitat/rgb/camera_info /true_pose -O sample21/first.bag
  1. Move agent through virtual environment using arrow keys on keyboard

  2. After end of movement, stop rosbag recording in third terminal using Ctrl-C command

  3. Play recorded rosbag:

rosbag play sample21/first.bag
  1. In fourth terminal, create ground-truth map of the rosbag:
python collect_data/gt_map_creator.py ./sample21/gt_points_first.txt ./sample21/gt_colors_first.txt 0.0
  1. In fifth terminal, create ground-truth trajectory of the rosbag:
python collect_data/gt_path_writer.py ./sample21/gt_poses_first.txt
  1. After rosbag ends, interrupt ROS loops in fourth and fifth terminal using Ctrl-C command.

About

No description, website, or topics provided.

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages