qb_softhand_industry repository

Repository Summary

Checkout URI https://bitbucket.org/qbrobotics/qbshin-ros.git
VCS Type git
VCS Version production-noetic
Last Updated 2023-09-18
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)


qb SoftHand Industry is an adaptable yet robust robotic hand gripper for collaborative robotic arms and for humanoid robots. It is in scale 1:1 with the average human hand and it is similarily composed by 19 completely desensorized phalanges and a flat palm.

The specific system of tendons connected to just a single motor provides the mechanical adaptability of the grasp to the shape and softness of any object without damaging it, i.e. exploiting the intrinsic capability of soft robots to continuously deform in a huge variety of possible configurations through interaction with external items.

In addition, the single actuator fixed directly on the back of the hand barely affects the total encumbrance and weight (only 480 grams) of the device.

Table of Contents

  1. Installation
    1. Requirements
    2. Ubuntu Packages
    3. Sources
    4. Device Setup
  2. Usage
    1. Launch File
    2. GUI Control
    3. API Control
  3. Support, Bugs and Contribution
  4. Purchase



If you have never set it up, you probably need to add your linux user to the dialout group to grant right access to the serial port resources. To do so, just open a terminal and execute the following command:

sudo gpasswd -a <user_name> dialout

where you need to replace the <user_name> with your current linux username.

Note: don't forget to logout or reboot.

Ubuntu Packages

If you prefer to leave your catkin workspace as it is, you can simply install all the ROS packages from the Ubuntu official repositories:

sudo apt update
sudo apt install ros-noetic-qb-softhand-industry


Since you are interested in the ROS interfaces for our devices, it is assumed that you are familiar at least with the very basics of the ROS environment. If not, it might be useful to spend some of your time with ROS and catkin tutorials. After that, don't forget to come back here and start having fun with our Nodes.

Install the qb SoftHand Industry packages for a ROS user is straightforward. Nonetheless the following are the detailed steps which should be easy to understand even for ROS beginners:

  1. Clone the qb_softhand_industry packages to your Catkin Workspace, e.g. ~/catkin_ws:
   cd `~/catkin_ws/src`
   git clone https://bitbucket.org/qbrobotics/qbshin-ros.git

  1. Install ROS dependencies using rosdep:
   cd `~/catkin_ws`
   rosdep install --from-paths src --ignore-src -r -y

  1. Compile the packages using catkin:

Note: depending on your ROS installation, you may need some extra packages to properly compile the code. Please, be sure that you have already installed at least ros-noetic-ros-controllers, ros-noetic-transmission-interface, ros-noetic-joint-limits-interface, ros-noetic-combined-robot-hw, and their dependencies (e.g. use sudo apt install <ros-pkg>).

  1. If you were not familiar with ROS you should be happy now: everything is done! Nonetheless, if you encounter some troubles during the compilation, feel free to ask for support on our Bitbucket.

Device Setup

To connect a qb SoftHand Industry to your system is read carefully the manual to understand all the requirements and advices. However the communication happens via Ethernet, ( default address so you have to configure your wired connection with an IP of the same family.


Launch file

Once the device is physically connected to your system, you can launch the device node with the following command line:

roslaunch qb_softhand_industry_control shin_control.launch use_rviz:=true use_controller_gui:=true

The arguments explained
  • use_rviz [false]: Choose whether or not to use rviz. If enabled you should see a virtual hand on screen performing a similar behavior.

Be aware that the qb SoftHand is desensorized and therefore it is not possible to know exactly the position of each finger: the screen visualization is just the result of an estimation of the closure value and may differ from the real configuration of your qb SoftHand (e.g. when grasping an object). - use_controller_gui [false]: Choose whether or not to use the controller GUI.

Additional arguments
  • control_duration [0.001]: The duration of the control loop expressed in seconds.
  • ip_address []: The IP address of the ELMO driver.
  • flange_angle [0]: The angle of the configurable flange (in radians).
  • max_repeats [3]: The maximum number of consecutive repetitions to mark retrieved data as corrupted.

The followings are particular control modes which are enabled with few parameters, but the concepts of this paragraph hold for all of them.

1. GUI Control

This control mode is the one suggested to test that everything is working as expected. You are able to open and close the qb SoftHand Industry interactively, but nothing more than this.

You will probably need this only the very first times and for debugging.

To start this mode just add use_controller_gui:=true to the general roslaunch command.

After a while a GUI should appear to screen with two empty dropdown menus, a red enable button below them, and a speed scaling slider at the bottom. 1. Select the Controller Manager namespace from the left menu, e.g. /<robot_namespace>/control/controller_manager (where <robot_namespace> is an additional argument of the launch file needed with several devices). This enables the right menu which provides all the controllers available for the connected device. 1. Select the shin synergy trajectory controller from the second dropdown menu and enable it through the circular button. 1. A single slider will appear in the GUI to control the closure of the hand, which ranges from 0 (hand completely open) to 1 (hand completely closed). Move the slider to perform a complete grasp or to partially open/close the qb SoftHand Industry. You can also vary the speed through the bottom speed scaling slider if you like a faster/slower motion. No other timing constraints can be set in this mode.

2. API Control

If you need a complex (i.e. real) control application, e.g. the qb SoftHand Industry is mounted on a robot which uses computer vision aid to grasp objects, the previous two control modes don't really help much. What we provide for real applications is the full ROS libraries to manage and control the qb SoftHand Industry.

You can refer to an example of the api available at API Shin Example repository .

Our recommendation is to use as much as possible our resources, classes and macros to help you while developing your application. Don't reinvent the wheel!

At last, if you come up with a something useful for the whole community, it will be amazing if you propose your improvement with a Pull Request in the package of interest on our Bitbucket.

Support, Bugs and Contribution

Since we are not only focused on this project it might happen that you encounter some trouble once in a while. Maybe we have just forget to think about your specific use case or we have not seen a terrible bug inside our code. In such a case, we are really sorry for the inconvenience and we will provide any support you need.

To help you in the best way we can, we are asking you to do the most suitable of the following steps:

  1. It is the first time you are holding a qb product, or the first time you are using ROS, or even both: it is always a pleasure for us to solve your problems, but please consider first to read again the instructions above and the ROS tutorials. If you have ROS related questions the right place to ask is ROS Answers.
  2. You are a beginner user stuck on something you completely don't know how to solve or you are experiencing unexpected behaviour: feel free to contact us at support+ros at qbrobotics.com, you will receive the specific support you need as fast as we can handle it.
  3. You are quite an expert user, everything has always worked fine, but now you have founded something strange and you don't know how to fix it: we will be glad if you open an Issue in the package of interest on our Bitbucket.
  4. You are definitely an expert user, you have found a bug in our code and you have also correct it: it will be amazing if you open a Pull Request in the package of interest on our Bitbucket; we will merge it as soon as possible.
  5. You are comfortable with qbrobotics® products but you are wondering whether is possible to add some additional software features: feel free to open respectively an Issue or a Pull Request in the package of interest on our Bitbucket, according to whether it is just an idea or you have already provided your solution.

In any case, thank you for using qbrobotics® solutions.


If you have just found out our company and you are interested in our products, come to visit us and feel free to ask for a quote.