[Documentation] [TitleIndex] [WordIndex

staubli_experimental: staubli_rx160_gazebo | staubli_tx90_gazebo | staubli_tx90_support | staubli_val3_driver

Package Summary

ROS-Industrial VAL3 driver for interfacing with Staubli robot controllers.

This package is part of the ROS-Industrial program and contains a VAL3 application and libraries that implement an industrial_robot_client compatible server program.

See the readme and wiki for more information.


This package enables specific ROS nodes to communicate with the CS8/C robot controller from Staubli. It uses the protocol defined in the simple_message package and was developed in Staubli's VAL3 language for use with 6-DOF Staubli robot mainpulators. So far only joint position straming is supported. Trajectory downloading, velocity or force control are not yet supported.

This package is part of the ROS-Industrial program and therefore follows the ROS-I conventions.



In order to work with the driver, a minumum VAL3 version of s7.7.2 is required. This is very important, since this implementation uses return values of 'sioGet()' only available from s7.7.2 onwards. It is advisable to put the new VAL3 version on a USB-stick which is FAT16 formatted, since that is the only format, that is compatible to the CS8/C controller.

Note: Before updating the controller, it is highly advisable to make a backup of your current controller settings in case that something goes wrong.


Installing the driver to a Staubli controller simply consists of transferring thecontents of the val3 folder to the controller itself. There two possible ways of transferring VAL3 applications to a Staubli controller:

For both ways, the folders "ros_libs" and "ros_server", which are the content of the "val3" folder of the repository need to be copied to the /usr/usrapp/ directory of the CS8/C controller. After successfully transfering the folders, the controller has to be rebooted.


To load the driver from the tech pendant, follow these steps:

  1. Application manager --> Val3 applications

  2. +Disk --> ros_server

  3. Optional: If you wish to start the driver everysingle time you turn on the controller, you can set the "ros_server" as a startup application by changing the mode from "manual" to "autostart".

Then the TCP sockets on the CS8/C controller must be configured prior to using the driver, otherwise a runtime error will be displayed on the teach pendant and the driver will not work. Two sockets (TCP Servers) are required. In order to set the socket configuration, the following steps need to be done using the teach pendant:

  1. Control panel --> I/O --> Socket -->TCP Servers

  2. Configure the following sockets:
    • Name: Feedback, Port 11002, Timeout: -1, Delimiter: 13, Nagle Off
    • Name: Motion, Port 11000, Timeout: -1, Delimiter: 13, Nagle Off


Check that

  1. The contents of the "val3" folder (both ros_server and ros_libs folders) have been transfered to the Staubli controller.
  2. The VAL3 application "ros_server" has been loaded
  3. Both TCP Server sockets have been configured properly


If you configured the driver as a startup application, you can simply reboot the CS8/C controller in order to load the driver. Else simply press the "Run" button on the teach pendant while the "ros_server" is highlighted in the applications menu. Then press "F8" (Ok).

Note that depending on which mode of operation is currently active, the motors may need to be enabled manually using the teach pendant (The message will pop up on the screen. For the CS8C controller the mode can be changed to automatic, by turning the key to the middle configuration.


The staubli_val3_driver provides launch files to start the communication the your robot. In order to start the nodes listed in the following section, simply run:

$ roslaunch staubli_val3_driver robot_interface_streaming.launch robot_ip:=<CS8/C controller IP address>


Coming soon

See the package README for more information.

2019-11-16 13:23