Skip to content

guillaume-schneider/BenchBot

Repository files navigation

BenchBot Banner

BenchBot

Documentation ROS 2 Humble Python 3.10+ License

The Comprehensive Ecosystem for ROS 2 Navigation & SLAM Benchmarking


💡 What is BenchBot?

BenchBot is a complete lifecycle ecosystem for professional ROS 2 development. From initial integration to final validation, it empowers teams to master their navigation stack.

  • 🧩 Integrate: Plug in any SLAM algorithm with a modular plugin system.
  • ⚙️ Optimize: Use the AI Auto-Tuner to automatically discover the perfect parameters for your robot.
  • 📈 Monitor: Track evolution with industrial-grade metrics (ATE, SSIM, Coverage) over time.
  • ✅ Validate: Ensure production readiness with automated CI/CD pipelines and reproducible Docker environments.
benchmark_demo.mp4

🚀 Key Features

  • Multi-Simulator: Switch between Gazebo (Classic) and O3DE (PhysX 5.0).
  • High-Fidelity Physics: "Sim-to-Real" tuning with realistic wheel slip, friction, and IMU/Lidar noise (Details).
  • Advanced Metrics:
    • Trajectory: ATE (Absolute Trajectory Error) with automatic alignment
    • Map Quality: Coverage %, IoU, SSIM (Structural Similarity), Wall Thickness Analysis
    • System: Real-time CPU Usage %, Max RAM (MB)
    • Anomaly Detection: Stuck robot, TF jumps, massive drift detection
  • Docker Support: Full containerization for 100% reproducible benchmarks across environments
  • Automated Reporting: One-click PDF generation with trajectory plots, metrics tables, and health indicators
  • Centralized Logging: Rotating file logs, colored console output, automatic crash reports (JSON)
  • Comprehensive Testing: 70+ unit tests with pytest, 80%+ code coverage, CI/CD ready
  • Headless CI: Run full benchmarks on servers without a display (runner/run_matrix.py).
  • Modern GUI: Dashboard, Analysis Comparison, 3D Visualizer, Robot Manager, and Settings.
  • Intelligent Comparison: Overlay up to 3 trajectories with ground truth and detailed anomaly tooltips.
  • 3D Real-Time Monitoring: Live LIDAR point cloud, robot pose, and trajectory with "Follow Robot" camera mode.
  • Stress Testing: Dynamic sensor degradation (LIDAR noise/range) and actuator limiting.

🏆 Benchmark Results Showcase

See the full Demo Report for interactive analysis.

Here is a sample comparison between SLAM Toolbox, Cartographer, and GMapping in a simulated office environment.

📊 Performance Summary

Metric SLAM Toolbox Cartographer GMapping
ATE RMSE (m) 0.0130 🥇 0.0151 🥈 0.0197 🥉
Map SSIM 0.9175 0.8517 0.9212 🥇
CPU Usage 196% 🥇 1476% 1284%
RAM Usage 1212 MB 1068 MB 1027 MB 🥇
Map IoU 0.1457 0.0079 0.1695 🥇

Analysis: SLAM Toolbox offers the best trajectory accuracy (lowest ATE), while GMapping produces the highest quality maps (best SSIM & IoU) but consumes significantly more resources. Cartographer struggled with loop closure in this specific scenario, resulting in lower map quality scores.

📈 Generated Charts & Maps

ATE Error Coverage Metrics

System Resources Generated Maps


📖 Documentation

Full documentation is available at https://benchbot.guillaumeschneider.fr.

Quick Links


📦 Installation

Prerequisites

  • OS: Ubuntu 22.04 LTS
  • ROS 2: Humble Hawksbill
  • Python: 3.10+

Quick Install

# Clone the repository
git clone https://github.com/guillaume-schneider/BenchBot.git
cd BenchBot

# Run automated installer
./install.sh

For detailed instructions, see the Installation Guide.


🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

An automated framework for benchmarking and ROS 2 Development with Gazebo and O3DE and advanced metrics, reporting and optimization.

Topics

Resources

License

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages