Metadata-Version: 2.4
Name: hand_tracking_teleop
Version: 0.1.3
Summary: Hand tracking system for robot teleoperation using MediaPipe
Home-page: https://github.com/yourusername/hand_tracking_teleop
Author: Bruk Gebregziabher
Author-email: Bruk Gebregziabher <bruk@signalbotics.com>
License: MIT
Project-URL: Homepage, https://github.com/yourusername/hand_tracking_teleop
Project-URL: Documentation, https://github.com/yourusername/hand_tracking_teleop#readme
Project-URL: Repository, https://github.com/yourusername/hand_tracking_teleop
Project-URL: Bug Tracker, https://github.com/yourusername/hand_tracking_teleop/issues
Keywords: hand-tracking,teleoperation,robotics,mediapipe,computer-vision
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: opencv-python>=4.5.0
Requires-Dist: mediapipe>=0.10.32
Requires-Dist: numpy>=1.20.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: vis
Requires-Dist: matplotlib>=3.5.0; extra == "vis"
Provides-Extra: rerun
Requires-Dist: rerun-sdk>=0.18.0; extra == "rerun"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: isort>=5.0; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# Hand Tracking Teleop

Real-time hand tracking for robot teleoperation using MediaPipe.

## Features

- 21 hand landmarks per hand at 30fps
- Calibrated metric-space normalization
- Multiple visualization modes (2D, 3D, Rerun)
- Finger articulation tracking with curl detection
- Temporal smoothing for stable tracking

## Installation

```bash
pip install hand-tracking-teleop
```

With visualization support:

```bash
pip install hand-tracking-teleop[vis]
```

## Quick Start

### CLI

```bash
# Interactive mode (choose visualization)
hand-track

# Direct visualization modes
hand-track --mode 2d      # OpenCV window
hand-track --mode 3d      # Matplotlib 3D view
hand-track --mode rerun   # Rerun viewer
```

### Python API

```python
from hand_tracking import HandDetector
import cv2

detector = HandDetector()
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    if not ret:
        break

    hands = detector.detect_hands(frame)
    for hand in hands:
        # Pixel coordinates
        pixels = hand.landmarks           # (21, 3) in pixels
        # 3D metric coordinates
        meters = hand.landmarks_3d        # (21, 3) in meters
        print(f"{hand.handedness}: wrist at {meters[0]}")
```

## Controls

- **q**: Quit (2D view)
- **Mouse drag**: Rotate 3D view
- **Scroll**: Zoom
- **Right-click drag**: Pan

## License

Apache 2.0
