Skip to article frontmatterSkip to article content

A quick note

If being read on GitHub, please note that this page is better seen at https://smartarmstack.github.io.

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

SAS and ROS2

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.

PackageLicenseDescription
sas_coreLGPLThe part of the library that does not depend on ROS2.
sas_commonLGPLGeneric ROS2 code used throughout the packages.
sas_msgsLGPLA wrapper for ROS messages that were made redundant in ROS2.
sas_conversionsLGPLConvert ROS2 messages into float, int, or dqrobotics elements.
sas_robot_driverLGPLROS2 nodes and libraries for creating servers and clients for robot configuration-space monitoring and control.
sas_robot_kinematicsLGPLROS2 nodes and libraries for creating servers and clients for kinematic-level robot task-space monitoring and control.
sas_robot_driver_densoLGPLA sas_robot_driver implementation for DensoWave’s bCap controlled robots
sas_robot_driver_kukaLGPLA sas_robot_driver implementation for Kuka (Sunrise cabinet, FRI)
sas_robot_driver_urLGPLA sas_robot_driver implementation for UR

Tutorials

Please refer to https://ros2-tutorial.readthedocs.io/en/latest/sas/index.html.

Packaging

LGPL

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 versions

Older (and unsupported) versions are available at:

Acknowledgements

SAS Dependencies

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.

References
  1. 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
  2. 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