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:

  • Copying the contents of val3 folder into a USB memory stick (<2GB and FAT16 formatted given the CS8 limitations), plugging the stick to the controller and using the teach pendant to copy the folders.

  • Copying the contents of val3 folder directly to the controller using a FTP application like e.g. FileZilla. In order to connect to the controller, the controllers IP has to be known. Access to the controller can be granted using the maintenace account with the username "maintenance" and the corresponding password "spec_cal" (without the quotes).

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.

  • Then Press the "Move" button, in order to let the driver move the robot. If the manual mode is still active, the robot will only move, while the "Move" butten is pressed.


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.

Wiki: staubli_val3_driver (last edited 2018-11-21 07:41:00 by nilsmelchert)