BiDexHand
Based on published sources · Not tested by us ·
Overview
BiDexHand V4 is a 16-DoF tendon-driven hand with printed parts, a Servo2040 PWM route and ROS 2 control packages. [S001]
BiDexHand V4 provides a 16-DoF hand mechanism, STEP and STL assets, a bill of materials and ROS 2 packages. Fifteen joints use a cable-and-pulley arrangement, with a four-bar mechanism for the remaining joint. The fingers couple distal motion to the proximal interphalangeal joint; visible joint motion should not be counted as an extra independently driven degree of freedom. [S001] [S013]
This profile selects the V4 PWM build using Servo2040. The alternative SCS bus-servo BOM is a different configuration, and the README sends that route to a V3 fork that was not matched and reviewed here. Neither route was physically assembled or tested for this entry. [S001] [S005]
Specifications
| Detail | Description |
|---|---|
| Type | Tendon-driven dexterous robotic hand Reported by source [S001] · Checked 2026-10-01 |
| Intended users | Robotics builders able to assemble tendon mechanisms and debug ROS 2 integration Editorial assessment [S001] · Checked 2026-10-01 |
| Assembly | Not known |
| Calibration | Calibration code uses AprilTag measurements and configurable motor/tag mappings; complete whole-hand procedure not validated. Reported by source [S011] [S012] · Checked 2026-10-01 |
| Operating system | Not known |
| Computer needed | Computer with ROS 2 Jazzy environment and USB connection Reported by source [S001] [S007] · Checked 2026-10-01 |
3D preview
Preview not available yet. A model has not yet been prepared and approved for display on this page. This does not mean the project lacks CAD files; see Source files and licenses for the reviewed source availability.
Assembly and use
Budget for the mechanism and its integration
The PWM BOM lists 16 FeeTech FT90M servos, one Servo2040 and a 6 V 5 A supply. It also calls for printed components, precision shoulder screws, bushings, springs, inserts, tendon line and PTFE tubing. Those are part of the mechanism, not incidental extras. The BOM also includes a wrist camera; this review has not established that camera as mandatory for basic direct servo commands. No complete current delivered cost was verified. [S005] [S007]
STEP and STL files establish available design artifacts, not dimensional fit or fabrication success. The README links an external Onshape design and demonstrations; those external models and videos were not inspected as an assembly qualification. Tendon routing, tension and individual joint limits still need a builder-specific check. [S001] [S013]
The quickstart and the preserved launch file differ
The README says ROS 2 Jazzy is the primary tested environment and gives rosdep/colcon build steps. Its direct-control quickstart names multi_servo_control.launch.xml, but the archived package supplies multi_servo.launch.xml and installs that filename in setup.py. This is a source-level mismatch, not a launch command verified by this publication. [S001] [S008] [S009] [S013]
The supplied launch file starts the serial-control node unconditionally and starts it again in streaming mode, using the same USB argument. That needs reconciliation before treating the launch as a ready-to-run recipe. The control node opens its port at 115200 and requires exactly 16 streamed positions, mapped to channels 0–15. A successful serial write is what its service reports; it is not measured joint feedback. [S007] [S008]
Controller capacity does not establish joint travel
The firmware initializes and enables all 18 Servo2040 outputs at startup, while the hand and streaming interface use 16. Its position labels span minus to plus 140, but the implementation maps those values linearly to 1000–2000 microsecond pulses. Those labels do not independently establish the travel of the installed servos or the assembled tendon mechanism. Startup centering is a real commanded behavior in the source and needs consideration before attaching a tensioned mechanism. [S006] [S007]
The ROS node formats positions to three decimal places, while the firmware uses integer parsing before the pulse calculation. Fractional command precision is therefore discarded on this inspected path. This finding comes from reading the two implementations; no board communication or physical positioning accuracy was measured. [S006] [S007]
Calibration and licensing are separate checks
The calibration node uses AprilTag measurement services, with configurable motor and tag mappings. The supplied configuration identifies specific MCP and PIP calibration mappings; it is not evidence that every joint in a newly built hand has already been calibrated. Camera setup, tag geometry, tendon adjustment and a complete whole-hand sequence remain unverified here. [S011] [S012]
The root repository provides MIT terms, while hand_servo_control includes an Apache-2.0 license. Package-level notices must remain part of the software assessment rather than being replaced with the root label. Purchased electronics, the alternative bus-servo route, external VR tracking and Franka integration have separate requirements. This entry covers available sources and concrete setup gaps, not a reproduced dexterity or teleoperation result. [S001] [S003] [S005] [S010]
Cost
No current, complete configuration-specific build cost has been established for this profile.
Source files and licenses
Available project sources support research coverage; complete build and commercial qualification remain separate.
| Layer | Availability / license |
|---|---|
| mechanical design | available · MIT Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013] |
| electronics | not found · License not fully assessed BOM uses purchased Servo2040 and servos; no complete custom electronics design established in this reviewed archive. [S005] [S013] |
| firmware | available · MIT Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013] |
| software | available · License not fully assessed Mixed package licensing: root MIT and package-level Apache-2.0, including hand_servo_control. Do not treat root MIT as the sole license for every package. [S003] [S010] [S013] |
| documentation | available · MIT Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013] |
Selected direct PWM servo-control route requires no learned model or dataset; external VR integration is outside this assessment.
References
Links identify the documentation and revisions used in this profile. Access dates record when each source was retrieved.
- S001 · wengmister / project contributors
Upstream project overview
Accessed 2026-10-01 · README.mdSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S002 · wengmister / project contributors
Repository revision and release metadata
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45eSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S003 · wengmister / project contributors
Repository license
Accessed 2026-10-01 · LICENSESource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S004 · wengmister / project contributors
Pinned repository artifact inventory
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e archive file inventorySource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S005 · wengmister / project contributors
BOM.md
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e BOM.mdSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S006 · wengmister / project contributors
scripts/Servo2040/servo2040_controller.cpp
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e scripts/Servo2040/servo2040_controller.cppSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S007 · wengmister / project contributors
src/hand_servo_control/hand_servo_control/servo_control_node.py
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/hand_servo_control/servo_control_node.pySource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S008 · wengmister / project contributors
src/hand_servo_control/launch/multi_servo.launch.xml
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/launch/multi_servo.launch.xmlSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S009 · wengmister / project contributors
src/hand_servo_control/setup.py
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/setup.pySource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S010 · wengmister / project contributors
src/hand_servo_control/LICENSE
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/LICENSESource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S011 · wengmister / project contributors
src/hand_calibration/config/calibration_params.yaml
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_calibration/config/calibration_params.yamlSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S012 · wengmister / project contributors
src/hand_calibration/hand_calibration/motor_calibrator.py
Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_calibration/hand_calibration/motor_calibrator.py lines 1–140Source notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S013 · wengmister / project contributors
Complete archive filenames
Accessed 2026-10-01 · Complete archive file inventory; no geometry validationSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
Correction guidance · Discussion is not enabled · Profile format 0.6.0-draft.1