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.
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.
- 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/.
LaserScantoPointCloud2conversion inlasertopc.- 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.
- Acquire or republish point-cloud data with
lasertopc,laser_assembler,read_pcd.cpp, orpointcloud_saver_*. - Clean the cloud with
outliers_removal_server.cppanddenoising_server.cpp. - Convert the processed cloud into occupancy products with
occupancymap_generator_server.cppandgrid_map_generator_script.cpp. - Build planner-facing abstractions with
occupancymap_planner_server.cpp. - Register datasets or map frames with
ar_tf.cpp,ar_tf_icp.cpp, andar_tracker_saver.cpp.
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 fromLaserScantoPointCloud2.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.
Start with these files if you want the clearest overview of the repo:
corodro_mapping_tools/src/outliers_removal_server.cppcorodro_mapping_tools/src/denoising_server.cppcorodro_mapping_tools/src/grid_map_generator_script.cppcorodro_mapping_tools/src/occupancymap_generator_server.cppcorodro_mapping_tools/src/occupancymap_planner_server.cppcorodro_mapping_tools/src/ar_tf_icp.cpp
If you want launch-file examples, look at:
corodro_mapping_tools/launch/radius_removal.launchcorodro_mapping_tools/launch/read_pcd.launchcorodro_mapping_tools/launch/grid_map_pcl_loader_node.launch
- This is a ROS 1 catkin repository built around PCL,
grid_map, TF, andar_track_alvar. - The package previously carried the placeholder name
my_pcl_tutorial; the meaningful package name is nowcorodro_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_*.cppandoccupancymap_planner_*.cppare legacy copies kept for history. For new work, prefer the code undercorodro_mapping_tools/src/. - If you need the fully integrated rover and drone workflow, use
IGLUNA-FC-Code. If you need the validation archive, seeTEST_VOLIERE.
This repository does not currently include a top-level license file. Add one before redistributing derivative work outside the original project context.