I have noticed a strange change of the wrist configuration during a moveL movement. It occurs when the z-axis of the Flange is in parallel to the base Y-axis and the robot moves linearly along that axis. When the joint in the base exceeds zero degrees, the wrist will change from a position top of the flange down under it. It occurs in many other positions, but this was the easiest one to describe.
The first point I was wondering about is, that the UrSim simulator doesn’t do the same at this point and i also see no need for that behavior. On the other Hand i see only disadvantages like the need of nearly infinit joint speeds and errors when hitting limits.
Does this behavior have an advantage that I haven’t yet recognized? In other words, is it a bug or a feature?
edit: I am using an UR10e with the actual software (5.11) and also the latest UrSim
If I understood you correctly, you are experiencing the Wrist Alignment Singularity.
If you want to read more about singularities check out our article here: https://www.universal-robots.com/articles/ur/application-installation/what-is-a-singularity/
Hello and thanks for response,
that s quite close! Let s add -90 Degree on Wrist1 to get Wrist2 vertical and avoid that a linear movement along y-Axis is blocked by the Wrist Alignment Singularity (eg.: [0, -98.96, -126.22, -136.29, 180, -1.78]). Then we see two different behaviors with UR-Sim and the real UR10e:
Moves along y-Axis backward and forward without any problem (Wrist 2 is orientated vertical all the time).
the real UR10e
Same situation but it starts to change the orientation of Wrist2 every time the Base Joint passes Zero. While changing the Orientation of Wrist 2 it ends up being blocked in the Wrist Alignment Singularity.
Why the real Robot does not keep the Wrist2 Axis orientated vertical like the simulation? I mean, there is no need to get stuck in the Wrist Alignment Singularity or is there something i did not mention? For sure it s better to avoid the singularities, but sometimes u can t.
My group is experiencing the same problem although in a different base orientation. When wrist 2 passes 0 it is completing the movement you mentioned above. It also will randomly using MoveL create curves in its point to point movement; only during this singularity. Though we are some times able to avoid this movement use MoveL during full runs of the program.
If there is a solution to this; I will be following it.
Is it possible, that the difference between the simulation and the real Robot is caused by the calibration?
And is there a way to copy the calibration data to UrSim?