Skip to content

CORODRO/Corodro-Mapping-Tools

Repository files navigation

CORODRO SLAM and Mapping Utilities

SLAM_CODE is the standalone mapping toolbox extracted from the CORODRO mission work. It is the best repository to study how raw scans and point clouds were cleaned, aligned, and converted into occupancy maps and planner-ready terrain abstractions without pulling in the full rover and drone mission stack.

Why This Repo Exists

The field campaign code in IGLUNA-FC-Code contains the final integrated mission workflow. This repository keeps the mapping-specific pieces in a smaller and easier-to-study place so students can:

  • experiment on saved point clouds and offline datasets,
  • understand the terrain-processing pipeline step by step,
  • reuse individual mapping nodes without the full mission state machines,
  • inspect the AR-tag-based registration logic separately from mission orchestration.

What You Can Do Here

  • convert range data into PointCloud2,
  • save and reload point clouds,
  • remove outliers and denoise clouds,
  • generate occupancy maps from processed terrain data,
  • discretize maps into planner-friendly cells,
  • align map frames with AR-tag observations,
  • replay stored datasets from PCD_FILES/.

Algorithms Used

  • LaserScan to PointCloud2 conversion in lasertopc.
  • Radius outlier removal with PCL.
  • Local covariance-based point-cloud denoising.
  • 2.5D terrain-to-occupancy conversion using elevation and depth-gradient checks.
  • Occupancy-grid discretization into traversability cells for planning.
  • AR-tag pose collection and rigid transform estimation between datasets.
  • SVD best-fit alignment for multi-tag registration in corodro_mapping_tools/src/ar_tf_icp.cpp.
  • OctoMap integration through the historical launch experiments.

Main Pipeline

  1. Acquire or republish point-cloud data with lasertopc, laser_assembler, read_pcd.cpp, or pointcloud_saver_*.
  2. Clean the cloud with outliers_removal_server.cpp and denoising_server.cpp.
  3. Convert the processed cloud into occupancy products with occupancymap_generator_server.cpp and grid_map_generator_script.cpp.
  4. Build planner-facing abstractions with occupancymap_planner_server.cpp.
  5. Register datasets or map frames with ar_tf.cpp, ar_tf_icp.cpp, and ar_tracker_saver.cpp.

Repository Map

  • corodro_mapping_tools/: main ROS package for filtering, map generation, planner discretization, and AR-tag alignment.
  • corodro_mapping_tools/src/: the core C++ nodes and service servers.
  • corodro_mapping_tools/launch/: launch files for mapping experiments and historical test setups.
  • corodro_mapping_tools/srv/: custom services used by the processing pipeline.
  • corodro_mapping_tools/msg/: custom message definitions.
  • corodro_mapping_tools/cfg/: dynamic reconfigure support.
  • lasertopc/: small bridge package from LaserScan to PointCloud2.
  • laser_assembler/: cloud assembly helpers for scan accumulation.
  • PCD_FILES/: sample datasets and intermediate outputs from mapping tests.
  • data: example AR-tag pose database file used by the alignment tools.
  • docs/repository-map.md: a shorter orientation guide for the package layout.

Where Students Should Start

Start with these files if you want the clearest overview of the repo:

  1. corodro_mapping_tools/src/outliers_removal_server.cpp
  2. corodro_mapping_tools/src/denoising_server.cpp
  3. corodro_mapping_tools/src/grid_map_generator_script.cpp
  4. corodro_mapping_tools/src/occupancymap_generator_server.cpp
  5. corodro_mapping_tools/src/occupancymap_planner_server.cpp
  6. corodro_mapping_tools/src/ar_tf_icp.cpp

If you want launch-file examples, look at:

  • corodro_mapping_tools/launch/radius_removal.launch
  • corodro_mapping_tools/launch/read_pcd.launch
  • corodro_mapping_tools/launch/grid_map_pcl_loader_node.launch

Practical Notes

  • This is a ROS 1 catkin repository built around PCL, grid_map, TF, and ar_track_alvar.
  • The package previously carried the placeholder name my_pcl_tutorial; the meaningful package name is now corodro_mapping_tools.
  • Some launch files are historical experiments from development and validation. Treat them as examples rather than polished production entry points.
  • The loose top-level files gridmapplanner_*.cpp and occupancymap_planner_*.cpp are legacy copies kept for history. For new work, prefer the code under corodro_mapping_tools/src/.
  • If you need the fully integrated rover and drone workflow, use IGLUNA-FC-Code. If you need the validation archive, see TEST_VOLIERE.

License Note

This repository does not currently include a top-level license file. Add one before redistributing derivative work outside the original project context.

About

Reusable mapping toolbox for point-cloud denoising, occupancy-map generation, AR-tag frame alignment, and planner-ready terrain processing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors