![]() |
qb_move repositoryqb_move qb_move_control qb_move_description qb_move_gazebo qb_move_hardware_interface |
|
Repository Summary
Checkout URI | https://bitbucket.org/qbrobotics/qbmove-ros.git |
VCS Type | git |
VCS Version | production-kinetic |
Last Updated | 2021-08-27 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
qb_move | 2.2.1 |
qb_move_control | 2.2.1 |
qb_move_description | 2.2.1 |
qb_move_gazebo | 2.2.1 |
qb_move_hardware_interface | 2.2.1 |
README
qbmove is a muscle-like building block actuator, small and lightweight, and based on the Variable Stiffness Actuation (VSA) principle, designed for constructing innovative robot structures and soft manipulators. It is unique in its ability to endow robots with Natural Motion, i.e. that resembles the elegance and deftness of human motion.
The qbmove can be real-time tuned to be soft or rigid, depending on the given task. If the robot needs to guarantee safety during unpredictable impacts, it can be configured with a low stiffness value. On the contrary if precision is the main goal, a higher stiffness - i.e. non-soft behavior - is required to follow a position trajectory with accuracy. Optimizing energy or speed performance can be achieved by alternating between soft and rigid settings during the whole motion.
Its mechanical interface provides a single motor shaft mounted in the center of one of the 66mm-side faces of a 3D-stamped cube.
Table of Contents
- Installation
- Usage
- Demo Applications
- ROS Packages Overview
- Support, Bugs and Contribution
- Purchase
- Roadmap
This
README
is basically a mirror of the qbmove ROS wiki and it is supplied only for offline documentation. Please, refer to the online wiki whenever you can; it is our main and most updated reference for qbmove ROS related application.
Installation
At the moment the qbmove related ROS packages have been tested only on Ubuntu Xenial 16.04. We are currently working to improve the compatibility with the major distributions of linux, this requires time though. We apologize for the inconvenience and we will be glad if you report any problem encountered with not yet supported distros.
Requirements
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-kinetic-qb-move
Sources
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 qbmove source packages for a ROS user is straightforward. Nonetheless the following are the detailed steps which should be easy to understand even for ROS beginners:
- Clone both the
qb_device
andqb_move
packages to your Catkin Workspace, e.g.~/catkin_ws
:
cd `~/catkin_ws/src`
git clone https://bitbucket.org/qbrobotics/qbdevice-ros.git
git clone https://bitbucket.org/qbrobotics/qbmove-ros.git
- Compile the packages using
catkin
:
cd `~/catkin_ws`
catkin_make
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-kinetic-ros-controllers
, ros-kinetic-transmission-interface
, ros-kinetic-joint-limits-interface
, ros-kinetic-combined-robot-hw
, and their dependencies (e.g. use sudo apt install <ros-pkg>
).
- 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
Connect a qbmove to your system is basically a matter of plugging in a USB cable. Nonetheless, read carefully the manual to understand all the requirements and advices about either single-device or chained configurations.
Usage
As shown in the following picture there are two distinct configurations to control several qbmove 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.
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.
Details
To understand what is hiding under the hood, have a look at the C++ classes overview which sums up all the main concepts of our ROS packages:
Communication Handler
The Communication Handler Node has no parameters to be set, therefore it is always launched like this:
roslaunch qb_device_driver communication_handler.launch
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
qb_move repositoryqb_move qb_move_control qb_move_description qb_move_gazebo qb_move_hardware_interface |
|
Repository Summary
Checkout URI | https://bitbucket.org/qbrobotics/qbmove-ros.git |
VCS Type | git |
VCS Version | production-melodic |
Last Updated | 2023-04-26 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
qb_move | 3.0.2 |
qb_move_control | 3.0.2 |
qb_move_description | 3.0.2 |
qb_move_gazebo | 3.0.2 |
qb_move_hardware_interface | 3.0.2 |
README
qbmove is a muscle-like building block actuator, small and lightweight, and based on the Variable Stiffness Actuation (VSA) principle, designed for constructing innovative robot structures and soft manipulators. It is unique in its ability to endow robots with Natural Motion, i.e. that resembles the elegance and deftness of human motion.
The qbmove can be real-time tuned to be soft or rigid, depending on the given task. If the robot needs to guarantee safety during unpredictable impacts, it can be configured with a low stiffness value. On the contrary if precision is the main goal, a higher stiffness - i.e. non-soft behavior - is required to follow a position trajectory with accuracy. Optimizing energy or speed performance can be achieved by alternating between soft and rigid settings during the whole motion.
Its mechanical interface provides a single motor shaft mounted in the center of one of the 66mm-side faces of a 3D-stamped cube.
Table of Contents
- Installation
- Usage
- Demo Applications
- ROS Packages Overview
- Support, Bugs and Contribution
- Purchase
- Roadmap
This
README
is basically a mirror of the qbmove ROS wiki and it is supplied only for offline documentation. Please, refer to the online wiki whenever you can; it is our main and most updated reference for qbmove ROS related application.
Installation
At the moment the qbmove related ROS packages have been tested only on Ubuntu Xenial 16.04. We are currently working to improve the compatibility with the major distributions of linux, this requires time though. We apologize for the inconvenience and we will be glad if you report any problem encountered with not yet supported distros.
Requirements
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-kinetic-qb-move
Sources
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 qbmove source packages for a ROS user is straightforward. Nonetheless the following are the detailed steps which should be easy to understand even for ROS beginners:
- Clone both the
qb_device
andqb_move
packages to your Catkin Workspace, e.g.~/catkin_ws
:
cd `~/catkin_ws/src`
git clone https://bitbucket.org/qbrobotics/qbdevice-ros.git
git clone https://bitbucket.org/qbrobotics/qbmove-ros.git
- Compile the packages using
catkin
:
cd `~/catkin_ws`
catkin_make
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-kinetic-ros-controllers
, ros-kinetic-transmission-interface
, ros-kinetic-joint-limits-interface
, ros-kinetic-combined-robot-hw
, and their dependencies (e.g. use sudo apt install <ros-pkg>
).
- 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
Connect a qbmove to your system is basically a matter of plugging in a USB cable. Nonetheless, read carefully the manual to understand all the requirements and advices about either single-device or chained configurations.
Usage
As shown in the following picture there are two distinct configurations to control several qbmove 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.
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.
Details
To understand what is hiding under the hood, have a look at the C++ classes overview which sums up all the main concepts of our ROS packages:
Communication Handler
The Communication Handler Node has no parameters to be set, therefore it is always launched like this:
roslaunch qb_device_driver communication_handler.launch
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
qb_move repositoryqb_move qb_move_control qb_move_description qb_move_gazebo qb_move_hardware_interface |
|
Repository Summary
Checkout URI | https://bitbucket.org/qbrobotics/qbmove-ros.git |
VCS Type | git |
VCS Version | production-noetic |
Last Updated | 2023-07-10 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
qb_move | 3.0.3 |
qb_move_control | 3.0.3 |
qb_move_description | 3.0.3 |
qb_move_gazebo | 3.0.3 |
qb_move_hardware_interface | 3.0.3 |
README
qbmove is a muscle-like building block actuator, small and lightweight, and based on the Variable Stiffness Actuation (VSA) principle, designed for constructing innovative robot structures and soft manipulators. It is unique in its ability to endow robots with Natural Motion, i.e. that resembles the elegance and deftness of human motion.
The qbmove can be real-time tuned to be soft or rigid, depending on the given task. If the robot needs to guarantee safety during unpredictable impacts, it can be configured with a low stiffness value. On the contrary if precision is the main goal, a higher stiffness - i.e. non-soft behavior - is required to follow a position trajectory with accuracy. Optimizing energy or speed performance can be achieved by alternating between soft and rigid settings during the whole motion.
Its mechanical interface provides a single motor shaft mounted in the center of one of the 66mm-side faces of a 3D-stamped cube.
Table of Contents
- Installation
- Usage
- Demo Applications
- ROS Packages Overview
- Support, Bugs and Contribution
- Purchase
- Roadmap
This
README
is basically a mirror of the qbmove ROS wiki and it is supplied only for offline documentation. Please, refer to the online wiki whenever you can; it is our main and most updated reference for qbmove ROS related application.
Installation
At the moment the qbmove related ROS packages have been tested only on Ubuntu Xenial 16.04. We are currently working to improve the compatibility with the major distributions of linux, this requires time though. We apologize for the inconvenience and we will be glad if you report any problem encountered with not yet supported distros.
Requirements
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-kinetic-qb-move
Sources
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 qbmove source packages for a ROS user is straightforward. Nonetheless the following are the detailed steps which should be easy to understand even for ROS beginners:
- Clone both the
qb_device
andqb_move
packages to your Catkin Workspace, e.g.~/catkin_ws
:
cd `~/catkin_ws/src`
git clone https://bitbucket.org/qbrobotics/qbdevice-ros.git
git clone https://bitbucket.org/qbrobotics/qbmove-ros.git
- Compile the packages using
catkin
:
cd `~/catkin_ws`
catkin_make
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-kinetic-ros-controllers
, ros-kinetic-transmission-interface
, ros-kinetic-joint-limits-interface
, ros-kinetic-combined-robot-hw
, and their dependencies (e.g. use sudo apt install <ros-pkg>
).
- 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
Connect a qbmove to your system is basically a matter of plugging in a USB cable. Nonetheless, read carefully the manual to understand all the requirements and advices about either single-device or chained configurations.
Usage
As shown in the following picture there are two distinct configurations to control several qbmove 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.
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.
Details
To understand what is hiding under the hood, have a look at the C++ classes overview which sums up all the main concepts of our ROS packages:
Communication Handler
The Communication Handler Node has no parameters to be set, therefore it is always launched like this:
roslaunch qb_device_driver communication_handler.launch
File truncated at 100 lines see the full file