robot on linear axis placing parts on moving object

Hello everybody,

I am trying to simulate a more complex pick and placescenario. I have a robot placed on a linear axis along a conveyour. On this conveyour are objects with known constant distance between each other and they are moving with constant speed. The robot should move on its linear axis in front of one object and place some parts on this object. After one object has been handled, the robot should move to the next object and synchronize its movement with the second object on the conveyour and so on.

I tried it to us python script as mentioned in the tutorial “placing parts on moving objects”, however, the the function (linearMoveToMtx_ExternalBase) used in the tutorial cannot utilize the external axis.

Then I tried to move the robot positioner with an additional python script, but the movements of the positioner and the robot do not harmonize, e.g. the robot starts to jump around and cannot place parts correctly.

If there is anyone with an idea on how to get such a scenario working, help is much appreciated!


In this example the track joint is controlled by the script in the track and the joint is not exposed as external joint to the robot. See the code in the track. If you need an external axis for the linear track, you could model another servo controller in it and the two joints (one as external + another controller by the script) on top of each other. The one joint tracking the box and the other being controller by the robot motions as external axis. This simulates the scenario where conveyor encoder value is added on top of the external value.

Notice also that I created a robot base that is attached to the root node of the robot and if you teach motions in Base1 they are tight to the robot.

Also see the signal connections to see how the whole thing works.

linear_tracking.vcmx (134 KB)