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.
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).
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.
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.pyhas no inertia data at all -- the source has a literal comment:# mass data, no inertia available. Every link's inertia tensor defaults to zero, soUR5.inertia(q)is trivially, exactly singular (det() == 0) for anyq. 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.pyhas real inertia data (cited: UR's own parameters reference), but the manufacturer's own published data hasIxx=0for the last link: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
Originally reported: #387, #490.