THING Tendon Hand
A tendon-driven 7-axis robot hand that mimics the user's hand gestures in real time using MediaPipe vision and ROS 2.
- Other
- Open source
- Works with AI
- ROS 2
- 3D model (URDF)
- 3D printable
Suggested by Robotheca, created by @SeMinKong (opens in a new tab), from github.com/SeMinKong/THING (opens in a new tab). Pinned to commit 4b39eab (opens in a new tab).
- Hardware license
- Apache-2.0 (opens in a new tab)
- Software license
- Apache-2.0 (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (1 file marked executable, 6 scripts)
- exec/reset_safety.ps1 (opens in a new tab)
- exec/rpi_demo_session.sh (opens in a new tab)
- exec/rpi_demo_terminal.ps1 (opens in a new tab)
- exec/start_rpi_demo.ps1 (opens in a new tab)
- exec/stop_rpi_demo.ps1 (opens in a new tab)
- scripts/run_jetson_vision_web.sh (opens in a new tab)
- thing_ws/src/thing_hardware/scripts/estop_gpio_node (opens in a new tab)
Photo and 3D model

3D preview converted from github.com/SeMinKong/THING at 4b39eab, under Apache-2.0. View the original files from GitHub (21 KB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Recognizes the user's hand gestures in real time using MediaPipe Hands on 21 hand landmarks.
- Converts the hand pose into a normalized 7-axis command: four finger flexions and three thumb axes.
- Reproduces the hand gesture on a 7-axis tendon-driven robot hand, including hand mimicry and object grasping.
- Arbitrates between MIMIC, MANUAL and TELEOP command modes, with a command guard and safety state management.
- Provides a React control web with live status, camera stream, control authority handling and manual operation.
- Records sessions as rosbag2 and exports metadata, landmark JSON, and HandCommand and MotorStatus CSV files for upload.
- Uploads sessions over HTTPS to an EC2 data portal with SHA-256 verification.
Works with AI
Found by Robotheca in the project's files at commit 4b39eab, its robot.yaml and Robotheca's notes on its documents. Never guessed; Robotheca doesn't run the code.
Uses computer vision: MediaPipe
In the project files: thing_ws/src/thing_vision/thing_vision/mediapipe_node.py“Recognizes the user's hand gestures in real time using MediaPipe Hands on 21 hand landmarks.”
Robotheca's notes: What it can do
Bill of materials
10 parts10 of 10 parts shown
| # | Component | Quantity | Est. price | Supplier |
|---|---|---|---|---|
| 1 | vision_computer | 1 | – | – |
| 2 | control_computer | 1 | – | – |
| 3 | rgb_camera | 1 | – | – |
| 4 | servo | 8 | – | – |
| 5 | usb_dynamixel | 3 | – | – |
| 6 | u2d2_hub | 3 | – | – |
| 7 | servo_power_supply | 1 | – | – |
| 8 | emergency_stop | 1 | – | – |
| 9 | tendon | 1 | – | – |
| 10 | pin | 1 | – | – |
10 of 10 parts have no price in the source, so there is no parts total. Read from electronics/bom/BOM.csv at the pinned commit.
Build guide
The creator's steps, each with its instructions.
- 1Clone the repository and pull Git LFS files
- 2Print the 3D printable parts from mechanical/stl
- 3Assemble the tendon-driven hand with acrylic brackets, spools and tendons
- 4Wire the DYNAMIXEL XL330-M288-T motors through the U2D2 interface
- 5Build the ROS 2 workspace with colcon
- 6Configure Cyclone DDS and calibrate motor control ranges
The guide appears here as you scroll.
Guide by @SeMinKong (README.md), under Apache-2.0. The English translation is by Robotheca, shared under the same license.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Jetson Orin Nano runs vision (camera and MediaPipe) and recording.
- Raspberry Pi 5 runs command arbitration, safety checks and DYNAMIXEL control.
- Seven DYNAMIXEL XL330-M288-T servo motors actuate the tendons.
- U2D2 serial interface connects the Raspberry Pi to the DYNAMIXEL bus.
- USB RGB camera provides the video frames for hand tracking.
- A GPIO-connected emergency stop is part of the safety path.
- A separate servo power supply powers the motors.
Connections
- Seven XL330-M288-T servos are daisy-chained on one DYNAMIXEL bus through a U2D2 adapter connected to the Raspberry Pi 5.
- The Raspberry Pi 5 uses GPIO for the emergency stop input.
- The servo power supply is separate from the computer power and feeds the DYNAMIXEL motors.
- The Jetson Orin Nano and the Raspberry Pi communicate over ROS 2 with DDS over the network.
- The laptop connects to the Web Bridge over WebSocket and MJPEG.