I’m a second-year engineering student on the IIT Bombay Mars Rover Team. I built this because writing ROS2 boilerplate from scratch is slow, and Copilot gives you snippets — not a package that actually builds.
Describe what your robot should do. ros2vine writes the nodes, launch files, build config, and README — ready to colcon build.
Core features:
- Complete packages, not snippets — every generation is a full colcon-buildable package
- Python (rclpy) and C++ (rclcpp), or mixed
- Static validator on every output — catches missing deps, bad entry points, wrong imports
- Inferred details — if your prompt was brief, ros2vine documents every assumption it made (topic names, message types, defaults) so you know exactly what was generated
- Iterative refinement — describe changes in plain English, regenerates with full context
- Inline code editing — edit any file directly in the viewer before downloading
- Interactive node graph — see topic flow between nodes visually
- Parameter tuning — live sliders for every declared parameter, one-click
params.yamlexport - URDF-aware generation — upload your
.urdfand generated nodes use your exact joint names, link names, and TF frame IDs - Node template library — PID controller, EKF, CAN bus driver, serial bridge, lifecycle node, action server, diagnostics, and more
- Package history — every session saved locally, browse and reload any previous generation
- Share link — a URL that recreates any generation exactly
- Voice input — describe your node by speaking, useful when your hands are on hardware
Advanced modes (
more button):
- Multi-package workspace — describe a full system, ros2vine plans 2–5 interdependent packages with matching topic names and generates all of them
- Simulation package — Gazebo or Isaac Sim version of your package with the same topics, drop-in swap from sim to hardware
- Hardware abstraction layer — sensor driver generation from a verified chip register database: AS5600, BNO055, MPU6050, VL53L0X, INA219
- ROS1 bridge config — generates
ros1_bridgeYAML and launch file from your package’s topic graph
CLI:
bash
pip install ros2vine
ros2vine generate "wheel angle controller fusing AS5600 encoder and BNO055 IMU" --out ~/ros2_ws/src
ros2vine generate "EKF state estimator" --lang cpp --distro jazzy --out ~/ros2_ws/src
Built this for our rover team first, figured others might find it useful too.
Would love feedback, especially from people who actually use it on a real robot.
Happy ROSing!