|Note: This tutorial assumes that you have completed the previous tutorials: qb SoftHand Installation, qbmove Installation.|
|Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.|
BasicsDescription: Basic knowledge of the qbrobotics control Nodes
Keywords: qbrobotics SoftHand qbmove control
Tutorial Level: BEGINNER
Next Tutorial: Details Communication Handler
As shown in the following picture there are two distinct configurations to control several qbrobotics® devices connected to the system:
The first (and recommended) groups all the Hardware Interfaces together (thanks to the combined_robot_hw) and exploits them as a unique robot system. We have called it "synchronous" just to point out that every sequence of reads and writes is always done in the same predefined order.
The second mode threats every device as an independent Hardware Interface with its dedicated ROS Node which executes the control loop independently w.r.t. the rest of the system, i.e. "asynchronously".
Mixed configurations can be also achieved through a proper setup. In such a case we can think of synchronous sub-systems which execute asynchronously w.r.t. each other.
Note that in a single-device system the synchronous mode is a nonsense.
Note that in the previous picture are shown qbmoves, but the same concept applies to any other qbrobotics device.
In both cases there is always one central Node which manages the shared resources for the serial communication (e.g. one or many USB ports) and which provides several ROS services to whom wants to interact with the connected devices. This Node is called Communication Handler and it is usually started in a separate terminal.
Please remember that in a multi-device configuration, each qbrobotics® device connected to your system must have a unique ID.