Multi-Robots Dataset Generator (MRDG) is a generator of datasets for multi-robots scenarios. It can generate data for C-SLAM backend algorithms. MRDG is also able to compute errors from computed results.
MRDG runs inside Dev Containers — no manual dependency installation is required. The only prerequisites are Docker, the Dev Containers extension for VS Code and X11 server.
-
Clone the repository
git clone https://github.com/tschweitzer57/MRDG.git cd MRDG -
Open in VS Code and select the appropriate Dev Container when prompted (or via Reopen in Container):
Container Purpose Docker image dataset-genDataset generation tschweitzer57/gtsam:base-20.04error-metricsMetrics computation & visualization tschweitzer57/gtsam:base-20.04dataset-gen-v2Dataset generation (to be removed) tschweitzer57/gtsam:4.3a0-ros2-jrldataset-gen-v3Dataset generation (under developement) tschweitzer57/gtsam:4.3a0-ros2jazzy-miragemetrics-v2Metrics computation & visualization (to be removed) tschweitzer57/gtsam:4.3a0-ros2-jrlmetrics-v3Metrics computation & visualization (under developement) tschweitzer57/gtsam:4.3a0-ros2jazzy-mirage -
Wait for the container to build. The workspace, helpers, scripts, configuration files, and output folders are automatically bind-mounted inside the container — no extra setup is needed.
MRDG covers two main workflows: dataset generation and metrics computation.
Open the dataset-gen Dev Container.
cd scripts
python gen-default.pyThis generates a dataset using 2_Configurations/DEFAULT/default.json (4 robots, 250 poses, 30 landmarks) and saves the output to 4_Datasets/.
cd scripts
python gen-vld1.pyThis iterates over all .json files in 2_Configurations/VLD1/ and generates one dataset per configuration file.
cd scripts
python parse-dataset.pyConfiguration files are JSON files located in 2_Configurations/. The main parameters are:
{
"name": "my_dataset",
"trajectory": {
"robots": 4,
"poses": 250,
"seed": 0
},
"landmarks": {
"number": 30,
"detection_prob": 0.8
},
"intra-loop-closure": { "number": 10, "frequency": 5 },
"inter-direct-loop-closure": { "pose": true, "range": true },
"sigmas": {
"odom": [0.01, 0.01, 0.01],
"lc_pose": [0.05, 0.05, 0.05]
},
"outliers": {
"false_matching": 0.05,
"robot_loss": false
}
}See 2_Configurations/DEFAULT/complete.json for the full list of available parameters.
Open the error-metrics Dev Container. Place solver results (.jrr.cbor files) in 5_Results/Computed/ before running the scripts.
cd scripts
python TEST_4.py # Compute errors across solver iterations
python BR_1_display.py # Display swarm consensus and landmark errorsOutput metrics are saved to 5_Results/Metrics/ and plots to 5_Results/Display/.
- Documentation : Contains MRDG documentation and images
- Generator : Contains datasets generation helpers and scripts for different scenarios
- Configurations : Contains configuration files for generation helpers and scripts
- Metrics : Contains metrics helpers and script to display errors
- Datasets : Contains generated datasets
- Results : Contains computed results (errors and graphs)

