Source code for roboticstoolbox.models.DH.UR10

import numpy as np
from roboticstoolbox import DHRobot, RevoluteDH
from spatialmath import SE3


[docs]class UR10(DHRobot): """ Class that models a Universal Robotics UR10 manipulator :param symbolic: use symbolic constants :type symbolic: bool ``UR10()`` is an object which models a Unimation Puma560 robot and describes its kinematic and dynamic characteristics using standard DH conventions. .. runblock:: pycon >>> import roboticstoolbox as rtb >>> robot = rtb.models.DH.UR10() >>> print(robot) Defined joint configurations are: - qz, zero joint angle configuration - qr, arm horizontal along x-axis .. note:: - SI units are used. :References: - `Parameters for calculations of kinematics and dynamics <https://www.universal-robots.com/articles/ur/parameters-for-calculations-of-kinematics-and-dynamics>`_ :sealso: :func:`UR3`, :func:`UR5` .. codeauthor:: Peter Corke """ # noqa def __init__(self, symbolic=False): if symbolic: import spatialmath.base.symbolic as sym zero = sym.zero() pi = sym.pi() else: from math import pi zero = 0.0 deg = pi / 180 inch = 0.0254 # robot length values (metres) a = [0, -0.612, -0.5723, 0, 0, 0] d = [0.1273, 0, 0, 0.163941, 0.1157, 0.0922] alpha = [pi / 2, zero, zero, pi / 2, -pi / 2, zero] # mass data, no inertia available mass = [7.1, 12.7, 4.27, 2.000, 2.000, 0.365] center_of_mass = [ [0.021, 0, 0.027], [0.38, 0, 0.158], [0.24, 0, 0.068], [0.0, 0.007, 0.018], [0.0, 0.007, 0.018], [0, 0, -0.026], ] links = [] for j in range(6): link = RevoluteDH( d=d[j], a=a[j], alpha=alpha[j], m=mass[j], r=center_of_mass[j], G=1 ) links.append(link) super().__init__( links, name="UR10", manufacturer="Universal Robotics", keywords=("dynamics", "symbolic"), symbolic=symbolic, ) self.qr = np.array([180, 0, 0, 0, 90, 0]) * deg self.qz = np.zeros(6) self.addconfiguration("qr", self.qr) self.addconfiguration("qz", self.qz)
if __name__ == "__main__": # pragma nocover ur10 = UR10(symbolic=False) print(ur10) # print(ur10.dyntable())