Skip to main content

Python ARTUS Robotic Hand API

A Python API for controlling the ARTUS family of robotic hands (Lite, Lite+, Talos, Scorpion, Dex) by Sarcomere Dynamics Inc., over RS485/Modbus RTU or TCP.

Please contact the team if any issues arise through use of the API. See Software License.

[!IMPORTANT] Please read through this entire README and the User Manual before using the ARTUS hand. See the changelog folder for release notes and updates.

Table of Contents

Quick Start

For readers who already know their way around Python and just want the shortest path from clone to a moving joint:

  1. Install Python 3.10–3.13.
  2. Connect the hand's power harness and USB-C data cable (see 1.3).
  3. Set your hand model/port in examples/config/robot_config.yaml.
  4. Run examples/general_example/general_example.py and follow the prompts.

Everyone else, continue with Getting Started below — it walks through each of these steps in detail.

Supported Hardware

Every hand variant supported by the API has its own README covering wiring, joint maps, and calibration requirements specific to that model. Start there once your hand is connected.

Hand Left/Right Calibration required Hardware README
ARTUS Lite Both No ARTUS_LITE.md
ARTUS Lite+ Both No ARTUS_LITE_PLUS.md
ARTUS Talos Both Yes ARTUS_TALOS.MD
ARTUS Scorpion N/A (single DOF gripper) Yes ARTUS_SCORPION.md
ARTUS Dex Both No hardware README pending — see ArtusAPI/robot/artus_dex/ source

[!IMPORTANT] Talos and Scorpion will not enter an active targeting state until calibrate() has been run. See 2.1 Normal Startup Procedure.

Before updating firmware or the API package, check docs/COMPATIBILITY.md for which versions are known to work together.

Documentation Map

Short guides for navigating the tree — useful if you are new to robotics or to this repo:

Area README
Python library layout ArtusAPI/README.md
Supported hand models (code + datasheets) ArtusAPI/robot/README.md
Runnable sample programs examples/README.md
Configuration file (robot_config.yaml) examples/config/README.md
Images and saved pose JSON data/README.md
Experimental / internal scripts test_workspace/README.md
API notes, CLI / flash docs, firmware compatibility docs/README.md
Release-style notes changelog/README.md
URDF ↔ real joint mapping urdf/README.md

1. Getting Started

The first step to working with an ARTUS hand is connecting to it and achieving joint control and feedback. It is highly recommended that this be done for the first time via the general example program. The sections below walk through everything needed to get there.

1.1 Software Requirements

  • Python 3.10–3.13 — download here. On Windows, enable "disable PATH length limit" during setup.
  • FTDI USB driver (Windows only) — required for the hand to be recognized as a USB device over USB-C. Download here.

[!NOTE] If you have multiple Python installations, make sure your pip commands target the same interpreter you'll use to run the API. Prefix commands with the full path to the intended python.exe/python3, or use a virtual environment.

1.2 Installing the Python API

There are two ways to install, depending on whether you plan to modify the source.

Use the cloned repository (for contributors / source changes)

git clone <this-repo>
cd Sarcomere_Dynamics_Resources
pip install -r requirements_v2.txt

1.3 Hardware Requirements

Connect power and data using the supplied cables. Please see robot's exact documentation pages for specific wiring.

[!NOTE] Wiring may vary by model — always check the hardware README for your specific hand.

Example wiring diagram Example wiring for Artus Lite: The diagram above shows the required wiring layout for the Artus Lite hand, including power, ground, and data connections. Always reference your hand model’s specific documentation for any model-specific differences before wiring.

2. Basic Usage

This section covers basic usage via ArtusAPI_V2 (see ArtusAPI/artus_api_new.py), the only supported entry point in this repository.

2.1 Normal Startup Procedure

  1. Check hardware — confirm the power connector is secure and, if using a wired connection (Serial or CANbus), that the cable is good.
  2. Connect — creating an ArtusAPI_V2 instance calls connect() internally. If you disconnect manually, call connect() again before continuing.
  3. Wake up — call wake_up() with the control mode appropriate for your application so the hand loads its configuration and enters a ready state.
  4. Calibrate (if required) — run calibrate() if your model requires it (see Supported Hardware). Otherwise the hand is ready to accept targets and report feedback.

[!NOTE] Exact wake_up() parameters (e.g. position vs. velocity control) depend on your script — see examples/general_example/general_example.py and docs/API Functionality.md.

2.2 Normal Shutdown Procedure

  1. Send a zero position command to all joints so the hand opens.
  2. Once open, call sleep() to save parameters to the SD card (if applicable).
  3. Wait for the ACK — once received, the device can be powered off.

[!NOTE] Unlike the Artus Lite mk8 (which saved to SD card periodically), saving is now intentional and only happens on sleep().

2.3 LED States

See the hardware README for your specific hand.

2.4 Running general_example.py

See the General Example README for full instructions.

3. Control Examples

3.1 GUI

Desktop UI for interactive testing. See the Artus GUI README.

3.2 Manus Glove Teleoperation

Drive an ARTUS hand from a Manus glove in real time. See the Manus Glove README.

3.3 MediaPipe Teleoperation

Drive an ARTUS hand from a webcam using Google MediaPipe hand tracking. See the MediaPipe Control README.

Revision Control

Date Revision Changelog Pip Release
Jul. 20, 2026 v2.1 2026-07.md -
Dec. 31, 2025 v2.0 2025-12.md -
Jun. 2, 2025 v1.3.10 2025-06.md v1.3.10
Apr. 22, 2025 v1.1.1 readmes/documentation updated -
Nov. 14, 2024 v1.1 firmware v1.1 release v1.1
Oct. 23, 2024 v1.0.2 awake parameter added, wake up function in connect v1.0.1
Oct. 9, 2024 v1.0 Artus Lite Release v1.0
Apr. 23, 2024 v1.1b Beta release - Artus Lite Mk 6 -
Nov. 14, 2023 v1.0b Initial release - Artus Lite Mk 5 -

Appendix

  • Artus API (ArtusAPI_V2) — Main Python class that talks to ARTUS hands (Lite, Lite+, Talos, Scorpion, Dex, and related variants). The legacy v1 artus_api.py entry point has been removed from this repository.
  • API Docs — Background on the reasoning behind the API's functions.

Metadata

Release files for artusapi 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for artusapi 2.0.0
File Size Uploaded
artusapi-2.0.0.tar.gz 52.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for artusapi 2.0.0
File Interpreter ABI Platform
artusapi-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.9 kB

Release files / artusapi-2.0.0.tar.gz

Download URL artusapi-2.0.0.tar.gz
Size 52.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1debee9685422289756a0fc9cb788b33f6353a1c02c2de055a50334de89a6cd0
BLAKE2b-256 checksum
How to use checksums
354f22cccafb30f604c2d2eba824346d161e5f9601e03c55a95b197a88686988
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.12

Release files / artusapi-2.0.0-py3-none-any.whl

Download URL artusapi-2.0.0-py3-none-any.whl
Size 77.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
727e0981953d09e0779194700e9b63ae1c9015ddfb7ad4a4c39a478ce4dd330a
BLAKE2b-256 checksum
How to use checksums
05ba2f27f77ca5eebf715fc47e1b302fffe268e8a3d749e6047836376adea01d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.12

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.3.17

2 release files

1.3.16

2 release files

1.3.15

2 release files

1.3.14

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page