Quaddle URDF

A URDF (Unified Robot Description Format) model of Petoi's Quaddle β€” a 4-servo, omnidirectional quadruped robot kit for physical AI learning & experiments.

Try it now, no setup required: Quaddle robot simulator.

Watch it in action: Teach Quaddle How to Walk, Race with Pose-Controlled Teleoperation.

About Quaddle

Contents

robot.urdf     β€” the robot description (single file, no ROS package.xml/CMakeLists)
assets/        β€” STL meshes referenced by robot.urdf via package://assets/*.stl

All visual geometry is defined with package://assets/... mesh URIs. This is a bare URDF, not a full ROS package β€” a viewer/tool that doesn't already resolve package:// paths (e.g. a generic URDF viewer, or Python tooling like yourdfpy/urdfpy) may need either a ROS_PACKAGE_PATH entry that maps assets to this directory, or the mesh paths rewritten to plain relative paths (assets/...).

Structure

The robot is modeled as a central body link with four identical leg assemblies β€” left_front, right_front, right_back, left_back β€” each built from the same per-leg joint pattern:

  • <side>_thigh (revolute) β€” the driven hip joint, connecting the leg assembly to the body. One per leg; this is the actuated servo joint.
  • <side>_motor_arm, <side>_leg, <side>_spring (revolute) β€” the passive four-bar linkage that converts the single hip servo's rotation into Quaddle's knee-lift walking gait (Petoi's "retro-mechanical" leg design β€” one motor drives the full leg motion instead of a separate knee actuator).
  • <side>_wheel, <side>_wheel_tip (continuous) β€” the rolling foot tip at the end of each leg, enabling Quaddle's omnidirectional movement (walk, strafe, spin in place) without extra actuators.
  • <side>_knee, <side>_foot, body_collision, and the closing_* links β€” fixed, zero-mass dummy frames used for collision geometry and linkage closure, not physical parts.

Totals: 46 links, 45 joints (16 revolute, 8 continuous, 21 fixed).

Viewing the model

Any URDF-compatible viewer should work once mesh paths resolve correctly, for example:

# ROS 2 (if available)
ros2 launch urdf_tutorial display.launch.py model:=robot.urdf

# Or a standalone Python viewer
pip install yourdfpy
python3 -c "import yourdfpy; yourdfpy.URDF.load('robot.urdf').show()"

License

MIT β€” see LICENSE.

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading