Create a new URScript to identify UR type (e.g. UR5, UR10e)

Summary

*Create a new URScript command to identify UR type (e.g. UR5, UR10e) to let user have capability to know UR type

What is it?

*New URScript command (e.g. get_ur_type()) returns a number meaning UR type.
Here is just example. (You could have better idea.)
0x00000001 : UR3
0x00000002 : UR5
0x00000003 : UR10
:
0x00010001 : UR3e
0x00010002 : UR5e
0x00010003 : UR10e
:

Why is it needed?

*We control UR robot via socket from our own PC and have our software in the PC to remote to URCB.
Our software is running now with UR5, then we are now developing our software to support both UR5 and UR10e.
Several parameters (e.g. payload, CoG) are different for each UR, so we shall set them for each.
To be common software for UR5 and UR10e, we shall know UR type at starting our software so that our software can configure proper value for each.

Can you access the Dashboard server? It has exactly what you’re describing.

https://www.universal-robots.com/articles/ur/dashboard-server-e-series-port-29999/

Otherwise you might be able to leverage the get_inverse_kin_has_solution() function. Just pass it a point that is outside the reach of the UR5 but inside the reach of the 10. One should return false and the other true. Might depend on TCP though, dunno. Might be worth a shot.

1 Like

Hi Eric,
I appreciate the very helpful information.

To classify both UR model and Control Box series, “get robot model” is not enough, but combination with “PolyscopeVersion” can classify UR type. (e.g. UR5 and UR10e as below)

UR5
UR type on UR5

UR10e
UR type on UR10e