Ros2-project-gen — one command scaffolds a complete, ready-to-build ROS 2 project like create-react-app-style

Every robotics team I know has the same “starter project” repo — a copy-paste graveyard. It’s stale, half-migrated to Humble and half to Jazzy, launches have quirky names, and CI exists on exactly one project. Onboarding a new member means a 20-minute tour of “here’s how we do it in this repo.”

ros2 pkg create only gives you a single empty package. Nobody’s starter is a single package.

What it does

One command turns a blank directory into a complete, opinionated, ready-to-build ROS 2 project:

cargo install ros2-project-gen
ros2-project-gen init my_robot --template minimal_ros2
cd my_robot/ros2_ws && colcon build   # ✅ builds on day one

demo

Why it’s different

  • Full projects, not packages — workspace + multiple packages + launch files + GitHub Actions CI + docs + tests.
  • Multi-language in one workspace — rclcpp, rclpy, and rclrs compiling side-by-side. The minimal_ros2 template proves it: one colcon build runs a C++, a Python, and a Rust talker on topics that cross language boundaries.
  • Perception-friendly — the ai_perception template ships a Rust YOLOv8 inference node (ONNX Runtime), no Python glue required.
  • Won’t let you break your environment — doctor checks rustc, cargo, cmake, colcon, and ROS 2 before you start; list shows what’s available.

Six templates so far: minimal, perception, minimal_ros2, ai_perception, matlab_bridge, visualization.

Try it

cargo install ros2-project-gen
ros2-project-gen init test_bot

Repo: GitHub - Gaurav-x111/ros2-project-gen: ros2-project-gen — Scaffold production-ready ROS 2 projects in seconds. One command generates a complete workspace: minimal, perception, AI/ML (YOLO+ONNX), multi-language (C++/Python/Rust), MATLAB bridge, and RViz2 visualization templates. Single native Rust binary, no Python required. Like create-react-app, but for robotics. · GitHub

It’s brand new

This is v0.1.0 — there’s a lot left on the roadmap (more templates, Windows runners for the generated CI, template authoring docs, and probably UX feedback I haven’t imagined).

What’s the first thing that breaks when your team’s starter repo goes stale?

2 Likes