ROS with UR5 connection confusion

Hi there,
I am wei sheng from Malaysia, currently a final year student in my degree. For my final year project, I am going to implement machine vision system for barcode scanning on parcel, conveyor belt that feed the parcel, and also an Universal Robot Arm UR5 CB3 series to sort the parcel.

Personally I am new to this field and would like to explore as much as I can. And would like to get suggestion from expert here if possible.

I am having some confusion and it would be great help if someone could answer my question.

  1. I am planning to use ROS as the main controller which will be running on my laptop, machine vision as one of the node, and controlling the UR through UR_ROS_Driver and ROS MoveIt . My confusion is , is it good to setup like this? As I know if I setup like this , all the trajectory planning will be done on my laptop side and the UR controller just wait for the joint command to move. Will this be a bad choice for scalability as we are not optimizing the built in UR controller box and the pc need to run the machine vision system too while moving the UR robot.

Or is it possible that the UR5 robot run only when receive all waypoint pose command from the PC via UR Script and all the kinematic , all trajectory planning is done by the built in UR5 controller and it only receive the command from pc side. And while carrying

  1. How to connect a PC to a UR robot controller in hardware for ROS? What type of cable i should buy for that? As I know the connection is from ethernet port of pc to the ethernet port of UR controller box and it is known as RTDE, am I right?

  2. When using the RTDE connection with pc, can i write the program as it will wait for external command from the pc such as number from [1 to 10] then if else condition in UR teach pendant program so that it move to the correct location according to number it received?If yes , how to do that and any suggestion or example on that?

Thanks in advance

All of your mentioned possibilities are possible, and it what is a good choice depends on your situation.

In addition it is also possible to create a TCP socket from the urscript to your computer.

and yes, one of the protocols are called RTDE, see https://www.universal-robots.com/articles/ur/interface-communication/real-time-data-exchange-rtde-guide/

You can also use ur_rtde. It is a python library made and maintained by the University of Southern Denmark for there research in mind. See Universal Robots RTDE C++ Interface — ur_rtde 1.5.5 documentation