Mission-level ROS code for the CORODRO IGLUNA project: a rover and a drone collaborating to map and explore an unknown lunar-analogue environment.
FC stands for Field Campaign. This repository contains the final integrated code that was used during the project testing campaign.
This repository is the operational core of the project. It combines:
- rover navigation and localization,
- drone mapping state machines,
- task-level rover planning with HDDL,
- point-cloud processing utilities used during the mission,
- launch files and saved outputs from mission rehearsals.
If you want to understand how the rover and drone were orchestrated together, start here.
- A complete example of multi-robot mission software built by a student team.
- Practical integration of task planning, state machines, navigation, and mapping in ROS 1.
- Enough historical mission structure to learn from real tradeoffs, not just clean-room demos.
- HDDL hierarchical task planning for mission decomposition and waypoint sequencing.
- SMACH state machines for rover execution logic and drone mapping workflows.
- AMCL for rover localization against a 2D occupancy map.
global_plannerin Dijkstra mode for global path planning.TrajectoryPlannerROSwithdwa: truefor local motion planning.- Point-cloud outlier removal and denoising for map preparation.
- AR-tag-based frame linking, including a multi-tag rigid transform fit in the mapping stack.
- Occupancy-map discretization and traversability graph generation for planner input.
Rover/The rover-side mission packages: navigation, mapping helpers, hardware launch files, and the HDDL wrapper.Drone/Drone-side state machines, simulation scripts, and the drone mapping pipeline.LICENSERepository-level MIT license.docs/repository-map.mdA more detailed orientation guide for students.
- Read
Rover/README.mdandDrone/README.md. - Open
docs/repository-map.mdto understand which packages are mission-critical and which are experiments. - Follow the launch files rather than individual scripts first. They show how the system was actually assembled.
- Treat saved datasets and mission outputs as examples, not as required inputs.
The old my_pcl_tutorial naming has been replaced with descriptive package names:
corodro_mapping_toolsfor the reusable standalone mapping stack,corodro_rover_mappingfor the rover-side in-repo copy,corodro_drone_mappingfor the drone-side in-repo copy.
This repository is tied to the following publications:
- Dreier, Rimani, Sachidanand, and Govind Reddy, "Autonomous navigation applied to the IGLUNA lunar analogue mission on collaborative robotic systems", IAC 2021.
- Rimani, Viola, and Lizy-Destrez, "Application of a hierarchical task planner to a lunar lava tube analogue robotic mission", IAC 2021.
- Rimani, Lesire, Lizy-Destrez, and Viola, "Application of MBSE to model Hierarchical AI Planning problems in HDDL", ICAPS KEPS Workshop 2021.
If you use the navigation and mapping workflow, cite the autonomous navigation paper. If you use the planner/state-machine ideas, cite the hierarchical task planner paper as well.
Project overview video: https://www.youtube.com/watch?v=HWYhED8Z17Y