Hello, community.
This is my first post here, so please, be gentle…
I’ve been given a task to program a UR10 robot, which must move according to the points,
which are given to him by the Siemens PLC over the PROFINET.
We have successfully established a Profinet connection between PLC and UR and
in the PLC we can see all the input registers and we can also set the output registers.
Because this UR will be on the machine which can produce different pieces,
they change the tools on this machine for every different piece.
That means that there will be different points (waypoints or poses or locations)
for every machine tool (not the tool/gripper on the UR) from where the UR will pick
the pieces and also different place locations where the UR will be putting down the pieces.
So we thought we would make recipes in the PLC, where we will store all
the points for each robot move for each different machine tool.
Because we can see the current TCP position (X,Y,Z,Rx,Ry,Rz) over the Profinet registers, we can save the
points p[X,Y,Z,Rx,Ry,Rz] in every moment we desire.
Then we can send back to the UR over Profinet registers these points
when they are needed and use ‘movel’ to move the robot to that point.
So far so good…
In our workshop when we attach the UR to the table and the whole concept is working.
Because the robot current TCP position (X,Y,Z,Rx,Ry,Rz) over the Profinet registers is relative to the base,
we can send back these positions and use them to calculate the difference between the current TCP pose and wanted location and use that with the ‘movel’ script command.
But the catch is that in a real situation (at the customer) the UR will be mounted on the top of the machine at around 45° or 50° angle.
And when we mount the UR in our workshop at the 45° angle on the table, the whole concept collapses.
I’ve been trying for a whole week now to make this work but I’m failing.
In the installation tab in the ‘Mounting’ section, I’ve set the correct mounting orientation and angle of the robot.
I’ve also created the plane in ‘Features’ section, which has X and Y in the same direction as the base
(red and green arrows pointing the same as on the base, and the blue arrow is pointing DOWN).
I’ve been reading the forum about pose_trans and base coordinates and TCP coordinates and planes and
trying all sorts of things, but I have to admit that all this stuff is new to me and I don’t understand it…
I understand that I need to do some transformations of the points which are sent from the PLC,
so the robot will move relative to the plane (which is flat, like the table; so when I want to move it up (Z) it must go straight up, not diagonally).
But for God’s sake, I don’t know how to do it or what to do.
That’s why I’m asking the community for help.
Can somebody explain (in layman’s terms or simple as possible) to me and/or show me a piece of program/code how this should/can be done, please?
Thank you in advance…