DevTools•Jun 2026•3 min read

Direct Urdf Editing vs Solidworks Urdf Plugin

Hand-writing URDF/Xacro by hand versus exporting it from SolidWorks. One gives you control, the other gives you a head start you'll spend hours cleaning up.

The short answer

Direct Urdf Editing over Solidworks Urdf Plugin for most cases. The plugin gets you a first-draft URDF fast, but it bakes in garbage you have to fix by hand anyway — so you end up editing URDF regardless.

  • Pick Direct Urdf Editing if shipping a robot to production, care about clean kinematics, use Xacro macros, or need precise inertia and joint limits you can read and review in git
  • Pick Solidworks Urdf Plugin if already have a finished SolidWorks CAD model, need a visual mesh-accurate starting point in minutes, and treat the output as a draft you'll hand-edit
  • Also consider: onshape-to-robot or the Fusion 360 URDF exporter if your CAD lives elsewhere — same export-then-fix workflow, different parametric source.

— Nice Pick, opinionated tool recommendations

The Verdict

Pick direct URDF editing. Here's the uncomfortable truth the SolidWorks crowd won't tell you: the plugin's output is never the file you ship. It exports messy joint origins, auto-generated link names like 'base_link_1', inertia tensors copied from your CAD density guesses, and a mesh path layout that breaks the moment you move the package. Every single one of those gets fixed by hand — in a text editor — which means you're editing URDF anyway. So why pretend otherwise? When you write it yourself, you understand the kinematic tree, you use Xacro to parameterize, and your diffs are reviewable. The plugin is a crutch that teaches you nothing and hands you a 4,000-line blob you're afraid to touch. The only thing it truly saves you is typing out mesh vertices, and you were never going to do that by hand anyway. Learn the format. It's an afternoon.

What the SolidWorks plugin is actually good at

Credit where it's due: the SolidWorks URDF exporter (the sw_urdf_exporter, originally from SolidWorks Lab / ROS-Industrial) is genuinely useful for one thing — turning an existing, fully-mated assembly into geometry-accurate STL meshes with roughly-correct visual and collision shapes. If your mechanical team already built the robot in SolidWorks, regenerating those meshes by hand is insane. The plugin reads your mates to infer joint axes and parent/child relationships, which beats staring at a CAD model and transcribing transforms. For a one-off demo, a student project, or a first RViz visualization, it's a real time-saver. It also exports a usable package skeleton. The problem is everyone treats that skeleton as a finished product. It's not. It's scaffolding — accept it as scaffolding and it earns its place.

Where the plugin betrays you

The exporter's sins are well-documented and consistent: inertial values that assume uniform density and are wrong for anything with motors or batteries; joint limits left at defaults or omitted; collision meshes that are full-resolution visual meshes, which will tank your physics-sim performance and make MoveIt collision-checking crawl; and zero Xacro — you get flat, repetitive XML with no macros, so a four-legged robot has four hand-copied legs you must keep in sync manually. Re-exporting after a CAD change blows away every manual fix you made, so the round-trip is one-way in practice. It's tightly coupled to a Windows SolidWorks license, which is a non-starter for half the robotics world running Linux. And the link/joint naming is machine-ugly, polluting your TF tree.

Where direct editing earns its keep

Hand-authored URDF — really Xacro — is the format ROS actually wants you to use. You write one leg macro and instantiate it four times; change the femur length in one place and the whole robot updates. You set real inertia from datasheets or a proper CAD inertia query, real joint limits, real effort and velocity bounds. Collision geometry becomes cheap primitives — boxes and cylinders — so Gazebo and MoveIt run fast instead of choking on a million-triangle mesh. The file lives in git, diffs cleanly, and survives code review. The cost is honest: you have to learn link/joint/origin/axis semantics and debug a kinematic tree by hand, and the first one is slow. But that knowledge is the actual skill — and you'll need it to fix the plugin's output anyway, so there's no escaping it. Learn it once, own it forever.

Quick Comparison

FactorDirect Urdf EditingSolidworks Urdf Plugin
Time to first RViz visualizationSlow — hand-author tree and mesh referencesFast — export an existing assembly in minutes
Production-readiness of outputShips as-is; you control every valueDraft only; inertia, limits, collisions all need rework
Reusability (Xacro macros, DRY)Full Xacro — parameterize and reuseFlat repetitive XML, no macros
Survives CAD/iteration changesEdit in place, git-tracked diffsRe-export wipes manual fixes
Platform freedomAny OS, any text editorRequires Windows + SolidWorks license

The Verdict

Use Direct Urdf Editing if: You're shipping a robot to production, care about clean kinematics, use Xacro macros, or need precise inertia and joint limits you can read and review in git.

Use Solidworks Urdf Plugin if: You already have a finished SolidWorks CAD model, need a visual mesh-accurate starting point in minutes, and treat the output as a draft you'll hand-edit.

Consider: onshape-to-robot or the Fusion 360 URDF exporter if your CAD lives elsewhere — same export-then-fix workflow, different parametric source.

Direct Urdf Editing vs Solidworks Urdf Plugin: FAQ

Is Direct Urdf Editing or Solidworks Urdf Plugin better?

Direct Urdf Editing is the Nice Pick. The plugin gets you a first-draft URDF fast, but it bakes in garbage you have to fix by hand anyway — so you end up editing URDF regardless. Learn the format, own the file, skip the round-trip.

When should you use Direct Urdf Editing?

You're shipping a robot to production, care about clean kinematics, use Xacro macros, or need precise inertia and joint limits you can read and review in git.

When should you use Solidworks Urdf Plugin?

You already have a finished SolidWorks CAD model, need a visual mesh-accurate starting point in minutes, and treat the output as a draft you'll hand-edit.

What's the main difference between Direct Urdf Editing and Solidworks Urdf Plugin?

Hand-writing URDF/Xacro by hand versus exporting it from SolidWorks. One gives you control, the other gives you a head start you'll spend hours cleaning up.

How do Direct Urdf Editing and Solidworks Urdf Plugin compare on time to first rviz visualization?

Direct Urdf Editing: Slow — hand-author tree and mesh references. Solidworks Urdf Plugin: Fast — export an existing assembly in minutes. Solidworks Urdf Plugin wins here.

Are there alternatives to consider beyond Direct Urdf Editing and Solidworks Urdf Plugin?

onshape-to-robot or the Fusion 360 URDF exporter if your CAD lives elsewhere — same export-then-fix workflow, different parametric source.

🧊
The Bottom Line
Direct Urdf Editing wins

The plugin gets you a first-draft URDF fast, but it bakes in garbage you have to fix by hand anyway — so you end up editing URDF regardless. Learn the format, own the file, skip the round-trip.

Related Comparisons

Disagree? nice@nicepick.dev