Two Robots picking one part


I am a beginner with visual components and have the following problem I want to use two robots “synchronized” here in this simple example I try to grab the box with both robots, and then I want both robots to place the box together on the pallet. The problem is that the box is only picked by one robot at a time and the other robot just follow the movement. Is it possible that both robots pick the box at the same time?
Thank you in advance.


In VC you don’t have synchronized motions for robots like you do for example in ABB with MultiMove Sync robots. That is you cannot program motions on robots so that they would always reach their targets at the same time and the robot that is slower to reach its target dictates the speed of the motion.

There are couple of hack ways to do this kind of. One way would be to model second robot as an workpiece positioner so replace robot controller with servo controller and then create an abstract interface to export its joints to first robot. This approach has severe downsides and you basically cannot program and jog the second robot anymore but you can only jog it as external axes on the first robot. And there wouldn’t be kinematics anymore so joint jogging would be supported only and no TCP jogging for the second robot. But this way the motions would be properly synchronized.

Second approach is to use a trick where on the second robot you attach a base to first robot’s mountplate. And then after pick has been done but before any motions are executed you do a small motion on second robot using a base that is attached to first robot. This sets the active base and then you can move the first robot anyway you want and second robot tries to retain its position in relation to the moving base. Then after release you do a small motion with null base to disable this tracking affect and then you can move both robot individually again. Check the attached model for example.

SyncPick.vcmx (601.6 KB)


1 Like

Hi keke,

thank you a lot, that was very helpful

Hello again,

I have started to program an example in the Python API with the second approach as described by keke above. For the most part it works, but now I have the problem that the following robot whose base is in the TCP of the leading robot follows the movements of the leading robot for a short time even though the base is deselected. I wonder if there is any option to avoid this, I tried to set the values of the Base back to default (statement.getProperty(‘Base’).Value = “”) after I added a position statement but it won’t work.

My second Problem is that in the beginning the two robots approach the box with different speed, when someone would know how to avoid this I would be grateful.

Thanks in advance.
06_SyncPick_PythonScripted_Methods.vcmx (129.5 KB)