Home

Awesome

build badge build badge License

Schunk SVH ROS Driver

This is the repository for the Schunk SVH ROS1 driver. It completes the standalone library with everything that you need to operate the five finger hand in a ROS1 context. Here's the ROS2 version. You'll also find more information about the ROS API and hardware-related details on the wikipage.

Installation

You can either setup a fresh ROS workspace, for instance with

mkdir -p $HOME/schunk_ws/src && cd "$_"
catkin_init_workspace

or use an existing one. Inside the src folder of that ROS workspace, get the relevant ROS packages

git clone -b main https://github.com/SCHUNK-GmbH-Co-KG/schunk_svh_ros_driver.git
git clone -b main https://github.com/SCHUNK-GmbH-Co-KG/schunk_svh_library.git
rosdep install --ignore-src --from-paths ./ -y -r

We use catkin build for building the workspace. That's more convenient when working with the schunk_svh_library, which is a non-catkin package and would else require catkin_make_isolated. catkin is part of the catkin_tools package. You can install it e.g. with

sudo apt-get install python3-catkin-tools

Here's more information about this install.

You can then build everything in the root of the ROS workspace with

cd ..
catkin config --install
catkin build

If you used an existing workspace for the new Schunk components, you might need to remove the build folder first so that you don't mix build spaces with previous calls to catkin_make.

Connection to the SVH

There are a few minimal steps required before you can connect to the SVH for the first time. You'll find them here.

Getting started

Source your local install/setup.bash and run

roslaunch schunk_svh_driver svh_ros_control_standalone.launch name_prefix:=left_hand

if you have a left Schunk SVH hand, else omit the name_prefix parameter. The default is name_prefix:=right_hand. This will start initializing the SVH. After calibrating each degree of freedom separately, the SVH is ready to use.

The driver starts with a running joint_trajectory_controller for commanding all joints in a synchronized way. You can send trajectory goals to its action server for controlling groups of joints.

An easy access is provided with rqt's joint trajectory controller plugin. You might need to install that first with e.g.

sudo apt install ros-$ROS_DISTRO-rqt-joint-trajectory-controller

In a sourced terminal, call rqt and navigate to Plugins -> Robot Tools -> Joint trajectory controller. You can then move individual fingers with sliders.

Setup on a Raspberry Pi

Here's a step-by-step tutorial of how to setup the Schunk SVH ROS driver on a Raspberry Pi 4.