I am new to ROS development and Staubli robots. Though i have some prior knowledge on UR5e, I am finding it hard to understand the architecture of Staubli and its other programming interfaces (like staubli robotics suite) and more importantly, is there a way to send commands to the robot from remote system via TCP/IP??(like ur_rtde, urx libraries for UR robots).

So can anyone suggest a beginners tutorial or a guide where i can get a good understanding on the staubli's architecture(VAL3, SRS) and its ROS interfacing. I am not able to find much information or troubleshooting tutorials in the internet (no idea why). It looked like a very closed loop for a beginner like me. Any help from your side would be very helpful.

Thanks in advance. As i can't find any good forums (like UR forums) for Staubli (please suggest one,if anyone knows) , I thought this would be helpful for me.


First I want to say that I do work for Staubli. While Staubli does not directly support ROS, others have done some development work using ROS with our robots. most of them were with the older CS8C controller.

There is a github depository with a driver that should work with the both the CS8C and the CS9 controller. I have not actually used this driver.


  • $\begingroup$ thank you so much for your reply, I have integrated CS9 (tx2_60) with ros using this val3 driver. It works fine $\endgroup$ Jun 12 at 15:53
  • $\begingroup$ But still, can you suggest a way to send remote commands to the robot via TCP/IP directly without ROS (similar to python libs like urx, ur_rtde) ? $\endgroup$ Jun 12 at 16:08
  • $\begingroup$ You can send bytes of data to a TCP or UDP socket, but there is no predefined protocol. You would have to create a VAL 3 application to receive and act on the data. Basically you would be writing a driver in VAL 3. There is a beta instruction, $exec, which allows you execute VAL 3 commands sent as strings, "movej( jStart, tTool, mSlow)". The Beta instructions are from "software add ons" which are extensions of the standard VAL 3 programming language. These add ons are subject to change and are provided as is for testing purposes. $\endgroup$
    – Jim
    Jun 14 at 15:25

I don't know about ROS, but if you have Stäubli Robotic Suite you can write a program to read your TCP/IP commands (as a TCP client, server or UDP) and do whatever you want.

You need to go into the Physical I/O tab and modify the socket card, at this point you can add and set the way you want a new UDP/TCP server/TCP client.

If you want a tutorial about it there's one here: SRS 2016 TUTO 5 - Virtual wiring. It's part of a full introduction tutorials to SRS.

  • $\begingroup$ Thank you so much. It definitely helped me. $\endgroup$ Jun 14 at 10:39
  • $\begingroup$ @AswathamanG Glad I helped! :) $\endgroup$
    – Jack
    Jun 14 at 10:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.