How much time did you spend on your last robot before it actually moved in Gazebo?
Not designing it.
Bringing it up.
Writing URDFs. Configuring ros2_control. Fixing TF trees. Debugging controllers that refuse to activate. Chasing launch issues. Finding out a single missing parameter prevented the entire robot from moving.
After repeating that workflow enough times, I started building a tool to automate it.
Supported CAD sources
-
STEP
-
SolidWorks assemblies
-
Onshape assemblies
The generated model includes:
-
Inferred joints
-
Collision geometry
-
Inertia estimation
-
A complete simulation package
What makes it different?
The generation process doesn’t stop after producing a URDF.
Every generated robot goes through an automated verification pipeline:
Import CAD
↓
Generate URDF
↓
Build
↓
Launch Gazebo
↓
Verify controllers
↓
Verify TF
↓
Validate joint states
A package is only considered successful if every stage passes.
Otherwise, it reports exactly where it failed, for example:
✗ Build failed
✗ Controller failed to activate
✗ TF tree incomplete
✗ Robot unstable after spawn
instead of simply returning “Generation complete.”
Why?
Many CAD-to-URDF tools stop once the files have been generated.
The difficult part usually starts afterwards getting everything to build, launch, and behave correctly in simulation.
My goal was to make the generation process include that verification step, so the output is something you can immediately start working with instead of spending hours debugging the initial bring-up.
I’d really appreciate feedback from the ROS community.
-
Which CAD format gives you the most trouble?
-
What’s the biggest pain point in your CAD → URDF → Gazebo workflow?
-
Would an automated verification pipeline be useful in your workflow?
I’m happy to try your CAD model and share the results.
