We did it through communicating when the one robot was clear of the others work space since they used some of the same workspace, one robot placed a part in a fixture, the next robot picked it up. To do this we utilized some modbus registers since you can connect the two robots together over modbus, one robot can become the master, the other the slave basically. We were then passing clear signals between the two or synchronizing signals.
In this once the parts have been distributed by the robot on the right side of the screen the two robots would each have their own part but they need to be placed into the fixture at the same time (sorry, some imagination is needed in this video). So once they start the weld sequence we then began synchronizing the movements, the robot on the right would tell the robot on the left when to move, the robot on the left would then confirm back to the robot on the right when the motion was complete, so something like this....
Right Robot
set_modbus_register(LHRobot-1, 1) #This is a modbus register on the left hand robot
movej(xxxxx) #Make some Move
wait modbus_register(RHRobot, 1) # This is a modbus register on the right hand robot that the left hand will set
set_modbus_register(RHRobot-1,0) # clear the local register for the next move sequence
Left Robot
wait modbus_register(LHRobot-1, 1) # Wait for the RH robot to tell me to move
set_modbus_register(LHRobot-1,0). # clear the local register for the next move sequence
movej(xxxxx). #Do some move
set_modbus_register(RHRobot-1, 1) #Tell the RH Robot that my move is complete
Hi pros, we have a project where we would need two UR robots to work in the same work space. We need two UR because of cycle time.
I have seen in the past the following software from Energid for collision avoidance. However this seems to use an external vision system to do the job. How do you guys manage two robots working in the same workspace and avoid collisions? My first guess would be to use the safety planes with some IO exchanges between the two robots and therefore build our own collision avoidance within the logic of the program itself. How are you guys doing it?
https://www.youtube.com/watch?v=QQL_3jkJrWg