A quick note¶
If being read on GitHub, please note that this page is better seen at https://
Quickstart¶
Docker¶
You can explore a readily-made image as follows
docker run -it murilomarinho/sas_ros_jazzy:latest
Installation¶
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-*
Update¶
After installing, you’ll be able to update normally with apt-get
.
sudo apt-get update
Overview¶

Figure 1:SAS and ROS2
The SmartArmStack has been developed in support of the SmartArm robot described in Marinho et al. (2020).
It has then been used in dozens of publications and updated in Marinho et al. (2024). Please cite one
of these references if you use SAS
in your own work.
The current version of SAS
supports ROS 2
.
About¶
SAS
is a C++ framework with Python bindings to enable fast prototyping on ROS 2. Focus on your application.
The concept of SAS
is to split away ROS 2
code into client
and server
classes, allowing your code to use
ROS 2
interfaces without any need to create publishers
or subscribers
manually.
License¶
Most of the library is licensed in LGPLv3. Some packages are licensed as Research Only, with no commercial use allowed.
Package Summary¶
Research only packages cannot be used for commercial use.
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 |
Tutorials¶
Please refer to https://
Packaging¶
LGPL¶
The PPA for the LGPL version is available at https://
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
Acknowledgements¶

Figure 2: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.
- Marinho, M. M., Harada, K., Morita, A., & Mitsuishi, M. (2020). SmartArm: Integration and validation of a versatile surgical robotic system for constrained workspaces. The International Journal of Medical Robotics and Computer Assisted Surgery, 16(2). 10.1002/rcs.2053
- Marinho, M. M., Quiroz-Omaña, J. J., & Harada, K. (2024). A Multiarm Robotic Platform for Scientific Exploration: Its Design, Digital Twins, and Validation. IEEE Robotics & Automation Magazine, 31(4), 10–20. 10.1109/mra.2023.3336472