Modify DH & Dynamic Parameters

Hello,

I have a question regarding the e-Series robots. Can the DH Parameters as well as the Dynamic Parameters, as shown in this article be modified or changed?

I can see from previous topics (1, 2) that

The DH parameters in URControl.conf is the generalized parameters of any robot of that size.
In the file calibration.conf you will find a set of corrections, that apply to this particular calibrated robot.

and

You can always open the URControl.conf file in your robot setup folder on the OS, to find the applicable DH parameters for your robot.
For accurate values for your particular robot, you should also use the calibration files, to find the respective corrections to the DH model.

However, it does not indicate whether URControl.conf is able to be modified, just that calibration.conf will correct the generalized DH parameters. Additionally, I have not been able to find any information on whether the Dynamic Parameters as shown in the UR article linked in the first paragraph can be corrected or altered at all.

Are modifications of the DH and Dynamic Parameters (mass & center of mass) possible for e-Series robots?

(Edit: changed “kinematic” to “dynamic”)

Changing any of the values on the robot is not something that you’d want to do, if it’s even possible, because if the internal controller reads these files, you’d just make it calculate things wrong for your robot.

The DH calibration corrections are inherent characteristics of the as-manufactured hardware that are already used in the internal controller for kinematic calculations.

You need to extract and use them in your own external forward and inverse kinematics calculations to map from end-effector pose to joint angles accurately, but they’re already used by the internal controller. There are also some kind of joint eccentricity calibration files in there, but I don’t understand how to use them and I don’t know if they’re used in the internal FK and IK schemes or not. I’d guess they are.

However, in my experience, the differences between the end-effector pose reported by the robot and the end-effector pose computed using external kinematics calculations using the calibrated DH parameters (sum of the nominal and the corrections) are really minimal, though… smaller than practical applications would need (like an end-effector position error magnitude measured in microns between external and internal estimates of the end-effector pose).

My two UR5e robots seem to show worst-case forward kinematic disagreement on the order of 3mm in position and maybe 10 milliradians in axis-angle orientation magnitude if I use the nominal/uncalibrated DH values in my external forward kinematic calculations. I’ve heard in the UR ROS driver discussions about centimeter-scale deviations if you use the nominal DH params in external calculations, but I assume that’s on the bigger robots like the UR10, or maybe is on older models with newer models built more accurately?

As far as dynamic parameters, extremely accurate values are also characteristics of the as-built robot, but that information (if it’s used in a calibrated fashion at all) is not, as far as I know, available from the robot and I believe it’s UR-proprietary information.

You can try to measure it yourself using a dynamic parameter identification scheme:

http://dr-kors.at/pdf/Dynamic_parameter_identification_of_the_Universal_Robots_UR5.pdf

Knowing the actual link inertias accurately isn’t that important, as I understand it, because the motor inertia (reflected through the gearbox) is more relevant to the dynamics of the smaller robots, see, for example:

Without identifying robot inertias and motor models, this will make it hard to do accurate dynamics calculations for fast motions externally (capturing inertia matrix, centrifugal, Coriolis, and motor dynamics terms at high speeds and accelerations). I think the dynamic properties are mostly listed to allow you to compute gravity torques.