# Modify DH & Dynamic Parameters

**URL:** <https://forum.universal-robots.com/t/modify-dh-dynamic-parameters/24204>\
**Category:** Technical Questions\
**Created:** [October 3, 2022, 6:01pm UTC](https://forum.universal-robots.com/t/modify-dh-dynamic-parameters/24204 "2022-10-03T18:01:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon24792100](https://avatars.discourse-cdn.com/v4/letter/a/ee7513/32.png) [@anon24792100](https://forum.universal-robots.com/u/anon24792100)\
**Post date:** [October 3, 2022, 6:01pm UTC](https://forum.universal-robots.com/t/modify-dh-dynamic-parameters/24204/1 "2022-10-03T18:01:20Z")

</div>

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](https://www.universal-robots.com/articles/ur/application-installation/dh-parameters-for-calculations-of-kinematics-and-dynamics/) be modified or changed?

I can see from previous topics ([1](https://forum.universal-robots.com/t/is-there-a-way-to-modify-dh-parameters/3681), [2](https://forum.universal-robots.com/t/dh-parameters-of-e-series-robots/2618)) 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”)

---

<div class="post-metadata">

**Author:** ![anon12906586](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@anon12906586](https://forum.universal-robots.com/u/anon12906586)\
**Post date:** [October 19, 2022, 4:37am UTC](https://forum.universal-robots.com/t/modify-dh-dynamic-parameters/24204/2 "2022-10-19T04:37:17Z")

</div>

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](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:

> <https://github.com/ros-industrial/universal_robot/pull/504#issuecomment-652394378>
>
> I could definitely work on that, yes.
> 
> I've talked back to the guys at UR and …it seems that the inertias are only set for the UR10 and UR16 as for the smaller ones they are negligible compared to the motor inertia used internally. That means that we should probably stick to the cylinder approximations using the masses and cog as listed in UR's documentation.

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.
