This repository contains a Python API for controlling the ARTUS robotic hands by Sarcomere Dynamics Inc.
Please contact the team if there are any issues that arise through the use of the API. See Software License.
Important
Please read through the entire README and the User Manual before using the ARTUS hand
Note
Please see changelog folder for monthly changelogs.
The user manual contains in-depth operational and troubleshooting guidelines for the device.
This repository contains the following:
Below is a list of the ARTUS hand-specific READMEs that are compatible with the API. This includes electrical wiring specifics, joint maps and more:
See the Appendix for additional links and information.
See below the wiring diagram with the circuit connection names and cable colours. You can use either the 8P nano M8 or the 4P nano M8. We recommend a 200W rated 24V power supply, please review the power requirements here: ARTUS Lite Information
Sections
The first step to working with the Artus Lite is to connect to the hand, and achieve joint control and joint feedback. It is highly recommended that this should be done for the first time via the example program provided. In preparation for this example, please follow the subsequent sections step by step, outlining all requirements for working with both the initial example program, as well as the API as a whole.
Below is a list of Requirements for the Artus to be compatible
- Python v3.10+ - Requires Python version >= 3.10 installed on the host system. Please visit the Python website to install Python. Within the setup instructions, there will be a prompt that allows you to "disable PATH length limit". Please continue with this option selected.
- FTDI USB Driver (Windows Only) - Necessary for the Artus Lite to be recognized as a USB device once it is connected over USBC, go to FTDI Driver Download to install the virtual COM port driver.
There are two ways to install the Python API. The first is through Python's package manager, where the API can be imported as a library like any other. The second is through this cloned Github repository, using and importing the local files.
Note
If you have multiple Python installations (different versions) on your PC, ensure that your pip commands apply to the installation/version you intend to use to run the Artus API, and is the same one used later in any IDE used to create your own programs. You can ensure this by adding the path to the to-be-used python executable as a prefix to this command. An example of this is below.
C:\Users\zanem\AppData\Local\Programs\Python\Python311\python.exe -m pip install psutil
Take a look at these steps on creating and using a virtual environment to ensure that you are using the correct python at all times
The ArtusAPI is available via pip here using the following command:
pip install ArtusAPI
Once this is complete, the software dependecies are all met!
Note
Please make sure that the latest version of the pip package is installed.
If you plan to eventually make changes to the source code, you will need to clone the GitHub SARCOMERE_DYNAMICS_RESOURCES repository. Once cloned, you can utilize the requirements.txt included in the package to install the dependencies. With a terminal open, execute the following command:
pip install -r path\to\requirements.txt
Alternatively, if your terminal is open in the cloned repo's folder, you can run the following simpler version of the above command.
pip install -r requirements.txt
- Power and Data Harness connection (options below)
- 4P Nano M8 (Power) + USB-C (COM). These are the harnesses that should be connected when running the general_example.py script below. Out-of-the-box, the hand is set up to use USBC as the communication method.
- 8P Nano M8 (Power + COM). This harness setup is reserved for more advanced use, once you are familiar with the hand. This harness allows for CAN or RS485 communication and power all-in-one.
This section covers very basic usage of the Artus Lite using the Artus API.
Sections
- 2.1 Normal Startup Procedure
- 2.2 Normal Shutdown Procedure
- 2.3 Running general_example.py
- 2.3.1 Video Introduction
There is a standard series of commands that need to be followed before sending target commands or receiving feedback data is possible.
Before any software, ensure that the power connector is secured and connected to the Artus hand and if using a wired connection (Serial or CANbus), ensure the connection/cable is good.
First, to create a communication connection between the API and the Artus hand, ArtusAPI.connect()
must be run to confirm communication is open on the selected communication type.
Second, the ArtusAPI.wake_up()
function must be run to allow the hand to load it's necessary configurations.
Once these two steps are complete, optionally, you can run ArtusAPI.calibrate()
to calibrate the finger joints. Otherwise, the system is now ready to start sending and receiving data!
Note
If running version v1.0.1+, wake_up
is called inside the connect()
function_
When getting ready to power off the device please do the following:
- Send a zero position command to all the joints so that the hand is opened
- Once the hand is in an open position, send the
artus.sleep()
command to save parameters to the SD Card. - Once the LED turns yellow, then the device can be powered off.
Note
This is different than the mk8 where the SD Card would save periodically. Now, saving to SD Card is more intentional.
See the General Example README to complete this task
Please check the Artus GUIV2 README for a GUI setup to control the Artus Lite hand.
Also, check the video below for a demonstration of the GUI setup.
Note
Video is for GUIv1, but GUIv1 is depracated. Please use GUIv2
Please check the Artus ROS2 Node README for a ROS2 node setup to control the Artus Lite hand.
Also, check the video below for a demonstration of the ROS2 node setup.
Please check the Manus Glove README for a Manus Glove setup to control the Artus Lite hand.
Also, check the video below for a demonstration of the Manus Glove setup.
Date | Revision | Description | Pip Release |
---|---|---|---|
Nov. 14, 2023 | v1.0b | Initial release - Artus Lite Mk 5 | NA |
Apr. 23, 2024 | v1.1b | Beta release - Artus Lite Mk 6 | NA |
Oct. 9, 2024 | v1.0 | Artus Lite Release | v1.0 |
Oct. 23, 2024 | v1.0.2 | awake parameter added, wake up function in connect | v1.0.1 |
Nov. 14, 2024 | v1.1 | firmware v1.1 release | v1.1 |
Apr. 22, 2025 | v1.1.1 | readmes/documentation updated | - |
Jun. 2, 2025 | v1.3.10 | changes publish, see changelog | v1.3.10 |