> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Coordinate Frames

Wuji Glove is an intelligent data glove designed for robot teleoperation and human-computer interaction research, equipped with three sensor systems: tactile matrix, EMF spatial tracking, and IMU inertial measurement. For integration with the ROS ecosystem and robot control systems, Wuji Glove's coordinate frame design follows the ROS community standards [REP-103](https://www.ros.org/reps/rep-0103.html), [REP-120](https://www.ros.org/reps/rep-0120.html), and [REP-155](https://www.ros.org/reps/rep-0155.html).

This document describes the coordinate frame conventions, axis orientation definitions, and frame tree structure of Wuji Glove.

## Data streams and their frames

If you came here asking "which frame is this data stream expressed in", start with this table:

| Data stream | Frame (`frame_id`) |
| - | - |
| `emf_poses` (EMF poses) | Back-of-hand transmitter coil frame `l_hand_emf_tx` / `r_hand_emf_tx` |
| `hand_skeleton`, `tip_poses` (skeleton / fingertip poses) | Calibrated wrist frame `l_wrist` / `r_wrist` |
| `hand_joint_angles` (joint angles) | Joint-angle values — not tied to a spatial frame. The header `frame_id` carries over from the source EMF frame and has no meaning here |
| `tf_static` | Publishes the fixed wrist → emf\_tx and wrist → palm\_imu\_link transforms connecting the frames above |

The origin and axis definitions of each frame follow below.

## Coordinate frame conventions

### Right-hand rule

All coordinate frames in Wuji Glove follow the right-hand coordinate system (REP-103):

* Extend your right hand, curl your fingers from the X-axis toward the Y-axis — your thumb points in the Z-axis direction
* The same applies to rotations: the curl direction of your fingers is the positive rotation direction

### Axis definitions

#### Body Root Node

REP-155 human body root frame. Origin at the midpoint between left and right hip joints. All skeletal joint frames are child nodes.

| Axis | Direction | Description |
| - | - | - |
| X | Anterior (Forward) | Facing direction of the human body |
| Y | Left | Right-hand rule |
| Z | Superior (Up) | Vertically upward when standing |

#### Wrist Node

Terminal node of the arm kinematic chain, serving as Wuji Glove's reference origin — all sensor frames on the glove are mounted under this node.

| Axis | Direction | Anatomical Meaning | T-pose World Direction |
| - | - | - | - |
| X | Radial | From ulnar side toward radial side (thumb direction) | Left hand: forward<br />Right hand: forward |
| Z | Proximal | From distal toward proximal, along the bone (for wrist: from wrist toward elbow) | Left hand: right<br />Right hand: left |
| Y | Right-hand rule | Left hand: dorsal (back of hand)<br />Right hand: ventral (palm) | Left hand: up<br />Right hand: down |

<Info>
  **Left/right Y-axis mirroring**: The X (radial) and Z (proximal) definitions are identical for both hands, but the right-hand rule causes the Y-axis to mirror — left hand Y+ points toward the back of the hand, right hand Y+ points toward the palm.
</Info>

<div className="img-light-bg">
  <img src="https://mintcdn.com/wuji-0bbde051/dyEhwe8CJy9DHyJb/assets/source/images/en/wuji-glove/ros-frames.png?fit=max&auto=format&n=dyEhwe8CJy9DHyJb&q=85&s=7df7f7cb45ef718a97910e5eb562fe6d" alt="REP-155 Frame Tree Structure" width="1057" height="729" data-path="assets/source/images/en/wuji-glove/ros-frames.png" />
</div>

## Frame tree structure

### Full Body Frame Hierarchy

Wuji Glove's frame system follows the REP-155 human skeleton model, defining a complete kinematic chain from the body root node to the fingertips. The glove currently uses the arm chain portion (from wrist downward).

Frame definitions:

| Frame | Definition |
| - | - |
| world | Root frame of the frame tree, located at the world origin. X-axis points forward (facing direction), Z-axis points toward the head (upward when standing). |
| waist | Waist frame. Intermediate node connecting the torso to the legs. |
| l\_wrist / r\_wrist | Left/right wrist frame. Terminal node of the arm kinematic chain, serving as Wuji Glove's reference origin — all sensor frames on the glove are mounted under this node. |
| l\_hand\_emf\_tx / r\_hand\_emf\_tx | back-of-hand transmitter coil frame, serving as the reference origin for EMF spatial tracking. |
| l\_palm\_imu\_link / r\_palm\_imu\_link | Palm IMU frame, used for orientation estimation. |

```text theme={null}
world                                       ← Root node
└── waist                                   ← Waist
    └── l_wrist / r_wrist                   ← Wrist ★
        ├── l_hand_emf_tx / r_hand_emf_tx   ← back-of-hand transmitter coil
        └── l_palm_imu_link / r_palm_imu_link ← Palm IMU
```

Nodes marked with ★ are the starting frames for the glove's actual data output.

### Glove Sensor Frame Hierarchy

Below the wrist node, the glove mounts two child frames:

* **emf\_tx**: back-of-hand transmitter coil frame, serving as the reference origin for EMF spatial tracking
* **palm\_imu\_link**: Palm IMU frame, used for orientation estimation

Both transforms are published via the `tf_static` data stream at 1Hz, with parent frame `{l/r}_wrist`.

## Coil Coordinate Frames

### Definition

EMF spatial tracking uses two types of coils:

* **Back-of-hand transmitter coil**: housed inside the back-of-hand module enclosure, corresponding to the `emf_tx` frame (published via `tf_static` at 1 Hz), serving as the reference origin for EMF spatial tracking.
* **Finger receiver coils**: one set embedded in each fingertip enclosure (5 sets total). These are not published as standalone frames. Their positions are computed by EMF pose estimation (`emf_poses`) and reported in the `emf_tx` frame.

Both frame origins are located at the **geometric center** of the corresponding coil, with axis orientation identical to the parent frame (transmitter follows `wrist`, receivers follow the corresponding fingertip frame) — only a translational component exists relative to the parent, with no rotation.

### Coil Position Parameters

The following measurements reference the **right-hand** design, with values rounded to account for manufacturing tolerances. From the wearer's perspective, with the hand naturally open:

#### Back-of-Hand Transmitter Coil

| Direction | Reference | Distance | Description |
| - | - | - | - |
| Z- (distal) | Enclosure front edge | 17.3 mm | Fingertip direction |
| Z+ (proximal) | Enclosure rear edge | 13.7 mm | Wrist direction |
| X+ (radial) | Enclosure left edge | 15.6 mm | Thumb direction |
| X- (ulnar) | Enclosure right edge | 15.4 mm | Pinky direction |
| Y- (palm normal) | Enclosure top surface | 9.0 mm | Outward along the back-of-hand normal |

#### Finger Receiver Coil

| Direction | Reference | Distance | Description |
| - | - | - | - |
| Z- (distal) | Enclosure front edge | 9.4 mm | Fingertip direction |
| Z+ (proximal) | Enclosure rear edge | 5.9 mm | Wrist direction |
| X (radial / ulnar) | Enclosure left / right edge | 5.5 mm each | Centered in width |
| Y- (palm normal) | Enclosure top surface | 2.9 mm | Outward along the finger-back normal |

<Info>
  "Left/right" is defined with the thumb fully extended pointing left. Left-hand glove data is mirrored from the right hand, with the Y direction inverted.
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.