Vaibhav Shende Vaibhav Shende

URDFGenPy — Programmatic URDF Generation

Python library for programmatically generating URDF and Xacro robot descriptions with type-safe APIs for parametric robot design.

Software Robotics
URDFGenPy — Programmatic URDF Generation

Overview

Python library for generating URDF and Xacro robot descriptions programmatically instead of manual XML writing.

PTU robot model animation Robot visualization

Features

  • Programmatic API: Create robots using Python instead of XML
  • Type Safety: Built-in validation for robot structure
  • Xacro Support: Parametric robot generation with macros
  • Geometry Support: Meshes, primitives, collision/visual separation
  • ROS/ROS2 Compatible: Works with standard robot frameworks

Key Capabilities

  • Link and joint definitions with properties
  • Mass, inertia, collision geometry
  • Flexible, revolute, prismatic, continuous joints
  • Automatic inertia calculations
  • Material and texture definitions

Usage Example

from urdfgenpy import Robot, Link, Joint
 
robot = Robot("my_robot")
robot.add_link(Link("base", mass=1.0))
robot.add_link(Link("wheel_l", mass=0.5))
robot.add_joint(Joint("wheel_l", "base", "wheel_l"))
robot.to_urdf("my_robot.urdf")

Use Cases

  • Quick robot prototyping and iteration
  • Multi-robot variant generation
  • Educational robotics projects
  • Gazebo simulation setup
  • Hardware-simulation sync

Technical Details

  • Language: Python 3.7+
  • Output: Standard URDF and Xacro
  • Dependencies: Minimal external deps