Setting up communication between real and virtual robot

Hey guys,
I am new to vc and have a project to do.
I want to connect a virtual and a real robot in a way that both of them will copy the pose/ movement of each other.

In the case you will move the real robot, the virtual will do the same and vice versa.

I will appreciate any help or suggestion.

p.s. I am also trying to find someone to undertake this project for me but no luck till now. If you have any lead about that, would be great!


1 Like


Could you specify which robot manufacturer you are working with? And what kind of communication interfaces does it support?



it is a universal robot ur10. It uses tcp/ip for remote control and real time data exchange.


If you have VC Premium you can use the RTDE Plugin to communicate with UR Robot. To get info about that check this Academy video:
and also section “Universal Robots RTDE Plugin” in the application’s help:

If you don’t have Premium then you could try to use python scripts and python socket to communicate with the controller. There are few posts on this forum about sockets. For example on this one I posted few example models where two robots are communicating with UDP and TCP/IP sockets within the layout: How to read values from external python script


1 Like

I am truly amazed!
I have the pro version and that plugin, I think, is exactly what I was trying to recreate!

I was using this UDP/ TCP socket example to start my work but this plugin is super handy!

So many thanks!

Note that the RTDE interface is only for exchanging robot IO and status information such as joint values. It doesn’t allow you to directly command the robot to move to certain pose for example.
The Universal Robots RTDE connectivity in VC Robotics and Premium is easy to use with configuration through UI and has good performance but it is of course limited to the functionality of that RTDE interface on the UR controller.

To give such commands to the UR robot controller you’ll need to use the TCP/IP “primary” or “secondary” interface to send URScript commands from VC to the UR controller. This can be implemented as a Python script in VC.

In addition if you need to e.g. start or stop robot programs on the UR controller you need to use the “dashboard server” interface. This can be also done pretty easily from a Python script in VC.

you are right.
RTDE is the one part of what I want.
The other one -to control the robot through vc- will probably have to be programmed. Something I have no idea how to do…

Thank you for the information nevertheless!

Hello TSy, would you have a code to give as How to do example?

Thanks in advance

The socket.accept() function cannot be called when I use the socket provided by the system.How do you listen for multiple clients.