The SmartArmStack (sas
) has been developed (with this name) in support of the SmartArm robot described in http://doi.org/10.1002/rcs.2053,
at the University of Tokyo.
It has then been used in dozens of projects and updated in http://doi.org/10.1109/MRA.2023.3336472 for the AI Science Platform. Please cite one
of these references if you use sas
in your own work.
::::{grid} 1 1 2 3
:::{card}
:header: Focus on your application🔍
sas
is a C++ framework with Python bindings to enable fast prototyping using ROS 2
toolchain.
:::
:::{card}
:header: ROS 2
where it shines✨
Split away ROS 2
code into client
and server
classes, communicate via ROS 2
without ROS 2
code.
:::
:::{card}
:header: Multiple robots🤖
Enjoy drivers for DensoWave
, UR
, and KUKA
. With ongoing developments for Franka Emika
and Unitree
robots.
:::
::::
Please note that sas
is originally based on developments circa 2013 by Murilo M. Marinho.
Affiliation with the University of Tokyo has ceased on December 2023 and this project is currently affiliated with
the University of Manchester.
docker run -it murilomarinho/sas:jazzy
:class: dropdown
#### Click here for the pre-requisites
#### ROS 2 Jazzy
- You can refer to the official documentation at https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
- A softer explanation is available in https://ros2-tutorial.readthedocs.io/en/latest/installation.html.
#### DQ Robotics Development Version
##### C++
:::{important}
The `development` version is needed.
:::
:::commandline
sudo add-apt-repository ppa:dqrobotics-dev/development
sudo apt-get update
sudo apt-get install libdqrobotics libdqrobotics-interface-json11 libdqrobotics-interface-coppeliasim libdqrobotics-interface-coppeliasim-zmq
:::
##### Python
:::{important}
Because `ROS 2` does not currently support `venv`, it is recommended
to install this system-wide.
:::
:::commandline
python3 -m pip install dqrobotics --pre --break-system-packages
:::
The command below will add and install the sas
packages via apt-get
.
curl -s --compressed "https://smartarmstack.github.io/smart_arm_stack_ROS2/KEY.gpg" \
| gpg --dearmor \
| sudo tee /etc/apt/trusted.gpg.d/smartarmstack_lgpl.gpg >/dev/null
sudo curl -s --compressed -o /etc/apt/sources.list.d/smartarmstack_lgpl.list \
"https://smartarmstack.github.io/smart_arm_stack_ROS2/smartarmstack_lgpl.list"
sudo apt update
sudo apt-get install ros-jazzy-sas-*
:class: dropdown
# Click here for update instructions.
After installing the packages with the command above, you can update them with
:::bash
sudo apt-get update && sudo apt-get upgrade ros-jazzy-sas-*
:::
:label: sas_and_ros2
:width: 300px
:align: left
SAS and ROS2
sas
has worked in a dual-licensing scheme, described in the dropdown boxes below.
:class: dropdown
### Click here for the LGPL packages information
| Package | License | Description |
|--------------------------|---------|--------------------------------------------------------------------------------------------------------------------------|
| `sas_core` | LGPL | The part of the library that does not depend on `ROS2`. |
| `sas_common` | LGPL | Generic `ROS2` code used throughout the packages. |
| `sas_msgs` | LGPL | A wrapper for `ROS` messages that were made redundant in `ROS2`. |
| `sas_conversions` | LGPL | Convert `ROS2` messages into `float`, `int`, or `dqrobotics` elements. |
| `sas_robot_driver` | LGPL | `ROS2` nodes and libraries for creating servers and clients for robot configuration-space monitoring and control. |
| `sas_robot_kinematics` | LGPL | `ROS2` nodes and libraries for creating servers and clients for kinematic-level robot task-space monitoring and control. |
| `sas_robot_driver_denso` | LGPL | A `sas_robot_driver` implementation for DensoWave's bCap controlled robots |
| `sas_robot_driver_kuka` | LGPL | A `sas_robot_driver` implementation for Kuka (Sunrise cabinet, FRI) |
| `sas_robot_driver_ur` | LGPL | A `sas_robot_driver` implementation for UR |
:class: dropdown
### Click here for the Noncommercial packages information
Currently being ported and packaged to `ROS 2` jazzy.
Please refer to https://ros2-tutorial.readthedocs.io/en/latest/sas/index.html.
The PPA for the LGPL version is available at https://smartarmstack.github.io/smart_arm_stack_ROS2/.
The archive is available at https://github.com/SmartArmStack/smart_arm_stack_ROS2/releases in case you need to rely on older versions.
Older (and unsupported) versions are available at:
- https://github.com/SmartArmStack/smart_arm_stack
- https://github.com/SmartArmStack/smart_arm_stack_lgpl
- https://github.com/SmartArmStack/smart_arm_stack_researchonly
:label: sas_dependencies
:width: 300px
:align: left
SAS Dependencies
The main dependencies to note are ros2, dqrobotics, eigen3, and pybind11.
Packaging was made possible by intructive resources such as Hosting your own PPA repository on GitHub.