Skip to content

DH model inertia data incomplete: UR5 (missing entirely), UR10 (last-link Ixx=0) #637

Description

@petercorke

Background

Two reports (#387, #490) describe singular/near-singular inertia matrices for RTB's bundled DH models of Universal Robots arms. Verified 2026-08-25: neither is an RNE algorithm bug -- both are data-completeness gaps in the bundled model files themselves.

UR5 (#387)

src/roboticstoolbox/models/DH/UR5.py has no inertia data at all -- the source has a literal comment: # mass data, no inertia available. Every link's inertia tensor defaults to zero, so UR5.inertia(q) is trivially, exactly singular (det() == 0) for any q. Not fixable without sourcing real inertia parameters for the UR5 from somewhere (Universal Robots' published parameter sheet, as already used for UR10 -- see below).

UR10 (#490)

src/roboticstoolbox/models/DH/UR10.py has real inertia data (cited: UR's own parameters reference), but the manufacturer's own published data has Ixx=0 for the last link:

np.array([[0, 0, 0], [0, 0.0004, 0], [0, 0, 0.0003]]),  # link 6

This makes the resulting inertia matrix near-singular (det ~ 2e-6), though not exactly singular the way #490 originally reported it (the reporter saw an exactly-zero last row on an older version; current code produces small but nonzero values). Whether this is fixable depends on whether a better UR10 parameter source exists that fills this in, or whether it's genuinely negligible/omitted in the manufacturer's own reference.

Next steps

  • UR5: source real inertia parameters (community contribution welcome) or clearly document the model as kinematics-only.
  • UR10: worth a doc note in the class docstring that the last-link inertia is near-zero per the manufacturer's own reference, so users doing dynamics work know to expect a near-singular matrix, or supply a small regularization term if needed for control work.

Originally reported: #387, #490.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtKnown technical debt / deferred cleanup, not a live bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions