Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Velocity interpolation and small changes #8

Merged
merged 15 commits into from
Mar 12, 2020
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
staubli_val3_driver/val3/ros_server/.outlining.json
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
## Overview

This repository contains the `staubli_val3_driver` package which provides a set of VAL3 libraries and an application which together implement a [simple_message][] compatible server implementation.
Together with the nodes in [industrial_robot_client][], this server can be used as a ROS 1 driver that allows motion control of Staubli CS8 controlled robots, by exposing a [FollowJointTrajectory][] [action][] server, which is compatible with MoveIt and other nodes that implement an action client.
Together with the nodes in [industrial_robot_client][], this server can be used as a ROS 1 driver that allows motion control of Staubli CS8/CS8C controlled robots, by exposing a [FollowJointTrajectory][] [action][] server, which is compatible with MoveIt and other nodes that implement an action client.


## Compatibility

The current version of the driver is compatible with CS8 controllers only.
Future work may extend this to support CS9 controllers as well.
The current version of the driver is compatible with CS8/CS8C controllers only.
Future work is planned to extend this to support CS9 controllers as well.



Expand Down
33 changes: 17 additions & 16 deletions staubli_val3_driver/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,19 @@

## Overview

This ROS-I driver was developed in Staubli's VAL3 language for use with 6-axis Staubli robot manipulators.
This ROS-I driver was developed in Staubli's VAL 3 language for use with 6-axis Staubli robot manipulators.

It is advisable to try this driver on Staubli's emulator first.
It is advisable to try this driver on the emulator in [Staubli Robotics Suite (SRS)](https://www.staubli.com/en-us/robotics/product-range/robot-software/pc-robot-programming-srs/) first.


## Requirements

* Staubli 6-axis robot manipulator
* Staubli CS8 controller
* it may work with other controllers, but this driver was tested on CS8 only
* Staubli CS8/CS8C controller
* VAL3 version s7.7.2 or greater
* this is very important, since this implementation uses return values of `sioGet()`
only available from s7.7.2 onwards

* Staubli Robotics Suite 2019 (not required but strongly recommended)

## Installation

Expand All @@ -29,20 +28,22 @@ Clone [staubli_val3_driver](https://github.com/ros-industrial/staubli_val3_drive
git clone https://github.com/ros-industrial/staubli_val3_driver.git
```

### Transfer driver to Staubli CS8 controller
### Transfer driver to Staubli CS8/CS8C controller

There are 2 ways of transferring the VAL 3 application to the controller:

There are several ways of transferring VAL3 applications to a Staubli controller.
The simplest method is probably copying the contents of `val3` folder into a USB memory stick (<2GB given the CS8 limitations), plugging the stick to the controller and using the teach pendant to copy the folders.
1. Copy the contents of `val3` folder onto a USB memory stick (<2GB given the CS8/CS8C limitations), plugging the stick into the controller and using the teach pendant to copy the folders

1. Use the Transfer Manager in SRS to copy the VAL 3 applications to the controller. (Home -> Controller -> Transfer Manager)

### Open the VAL3 application with Staubli SRS

Although it is possible to edit the source files with any text editor (they are essentially XML files), it is advisable to use the Staubli Robotics Suite:
Although it is possible to edit the source files with any text editor (they are essentially XML files), it is advisable to use [Staubli Robotics Suite](https://www.staubli.com/en-us/robotics/product-range/robot-software/pc-robot-programming-srs/):

* Copy contents of folder `val3` into the `usrapp` folder of the Staubli cell
* Open the `ros_server` VAL3 project located inside the `ros_server` folder

SRS offers autocompletion, syntax highlighting and syntax checking, amongst other useful features, such as a Staubli controller/teach pendant emulator.

SRS offers autocompletion, syntax highlighting and syntax checking, amongst other useful features, such as a Staubli controller/teach pendant emulator.

## Usage

Expand All @@ -55,7 +56,7 @@ From `Main menu`:

### Configuration

The TCP sockets on the CS8 controller/emulator 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.
The TCP sockets on the CS8/CS8C controller/emulator must be configured prior to use, otherwise a runtime error will be generated and the driver will not work.

Two sockets (TCP Servers) are required. From `Main menu`:

Expand All @@ -73,17 +74,17 @@ have been transferred to the Staubli controller
2. The VAL3 application `ros_server` has been loaded
3. Both TCP Server sockets have been configured properly

Then simply press the `Run` button, ensure that `ros_server` is highlighted, then press `F8` (Ok).
Press the `Run` button, ensure that `ros_server` is highlighted, then press `F8` (Ok).

Notice that depending on which mode of operation is currently active, the motors may need to be enabled manually (a message will pop up on the screen).
Likewise, the robot will only move if the `Move` button has been pressed (or is kept pressed if in manual mode).
Depending on which working mode the controller is in, arm power may need to be enabled manually (a message will pop up on the screen).
Once arm power is enabled, the robot will only move if the `Move` button has been pressed (or is kept pressed if in manual mode).

### Run the industrial_robot_client node (ROS-I client)

The `indigo-devel` branch provides launch files (within the `staubli_val3_driver` ROS package). Simply run:

```shell
roslaunch staubli_val3_driver robot_interface_streaming.launch robot_ip:=<CS8 controller IP address>
roslaunch staubli_val3_driver robot_interface_streaming.launch robot_ip:=<controller IP address>
```

## Bugs, suggestions and feature requests
Expand Down
Loading