Author: Zhengyang Kris Weng
arXiv | OnShape | Blogpost
Open source release of BiDexHand. This guide will help you build your own hand and get your started on the setup.
This is the open source release of the BiDexHand V4, a robotic hand featuring 16 degrees of freedom. It utilizes a cable-and-pulley system, with 15 servos arranged in N configuration to drive its 15 joints with tenden, and a 4-bar linkage driven 16th joint.
Each finger provides three degrees of freedom: metacarpal (MCP) adduction/abduction, MCP flexion/extension, and proximal interphalangeal (PIP) flexion/extension. A custom four-bar linkage at the distal end of each phalanx converts the PIP motion into a coupled movement at the distal interphalangeal (DIP) joint. The thumb is designed with four degrees of freedom, including carpometacarpal (CMC) adduction/abduction and flexion/extension, as well as MCP adduction/abduction and flexion/extension.
The hand is controlled through provided ROS2 packages found in /src. It provides several modes to interface with the robot - motion shadowing and servo input streaming through ROS2 topic, or direct servo input control through CLI. See packages in /src for more details.
V4 Updates in a nutshell:
- Updated single shear phalanx
- Added servo calibration modules
- Now using unified FeeTech servos (see BOM update)
- Now using servo2040 for PWM builds
- Franka whole arm VR teleoperation (see this repo for more details)
STEP file for the cad asset can be found under /cad_asset/_stp, and individual STL file under /cad_asset/_stl. Additionally, you can find CAD hosted online on OnShape.
See BOM.md for more details.
For V4, build, flash and deploy /scripts/Servo2040/servo2040_controller to controller for the PWM version. Alternatively, use script from V3 fork for SCS bus builds.
- You'll need
pico-sdkandpimoroni-picomodules to build the PWM project.
This project is primarily tested on ROS2-JAZZY. To build locally, run:
git clone https://github.com/wengmister/BiDexHand.git
cd BiDexHand
rosdep install --from-paths src -y --ignore-src
Finally,
colcon build
. install/setup.bash
If you plan to use Meta Quest for the motion shadowing demo, you can follow the build and deployment steps in this repo.
For motion shadowing:
ros2 launch hand_motion_shadowing shadowing.launch.xml usb:=/dev/ttyACM0
For direct servo control:
ros2 launch hand_servo_control multi_servo_control.launch.xml usb:=/dev/ttyACM0
Change usb port based on your device setting.
For Franka MoveIT! config demo:
ros2 launch combined_fer_moveit_config demo.launch.py
For deploying on real Franka Fer, copy and build the following packages to your robot station:
- hand_rviz
- combined_fer_moveit_config
On station, run:
ros2 launch combined_fer_moveit_config real.launch.py use_rviz:=false robot_ip:=[YOUR_ROBOT_IP]
On your laptop, run:
ros2 launch combined_fer_moveit_config moveit_rviz.launch.py robot_ip:=[YOUR_ROBOT_IP]
See this repo on details about whole arm teleoperation!
If you find this work helpful for your work or research, please consider citing as:
@misc{weng2025bidexhand,
title={BiDexHand: Design and Evaluation of an Open-Source 16-DoF Biomimetic Dexterous Hand},
author={Zhengyang Kris Weng},
year={2025},
eprint={2504.14712},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2504.14712},
}
MIT