Python API/SDK for Nibotics NI-PRVS01 Dexterous Hand
Project description
Nibotics NI-PRVS01 Python SDK
Python API/SDK for the Nibotics NI-PRVS01 — a 7-DOF dexterous robotic hand with 24-channel pressure sensing, 14-channel microphone array, and IMU.
Hardware Overview
| Feature | Specification |
|---|---|
| DOF | 7 actuated (11 joints) |
| Fingers | 5 (Pinky, Ring, Middle, Index, Thumb) |
| Pressure sensors | 24 channels |
| Temperature sensors | 24 channels |
| Microphones | 14 channels (mic1: 8ch, mic2: 6ch) |
| IMU | 3-axis accelerometer + gyroscope |
| Interface | USB Serial (115200 baud) |
| Firmware | Auto-detected (19 or 24 channel) |
Installation
pip install nibotics-hand
Or install from source:
git clone https://github.com/nibotics/nibotics-hand-python.git
cd nibotics-hand-python
pip install -e .
Quick Start
from nibotics import NI_PRVS01
# Connect to hand
# Windows: use COM port e.g. COM3, COM6, COM7
# Linux: use /dev/ttyACM* e.g. /dev/ttyACM0, /dev/ttyACM1
hand = NI_PRVS01('COM6') # Windows
hand = NI_PRVS01('/dev/ttyACM0') # Linux
hand.connect()
# Move a single finger
hand.move('pinky', position=4095, speed=100)
# Move all fingers
hand.move_all(
positions=[4095, 4095, 4095, 4095, 2000, 2000, 2000],
speeds=[100] * 7
)
# Read sensors
data = hand.read_sensors()
print(data.pressure) # dict per finger
print(data.temperature) # dict per finger
print(data.imu.accel) # {'x': ..., 'y': ..., 'z': ...}
# Disconnect
hand.disconnect()
Gestures
hand.open() # all fingers open (position=0)
hand.close_all() # all fingers closed (position=4095)
hand.fist() # full fist
hand.pinch() # pinch grasp
hand.point() # index finger extended
hand.thumbs_up() # thumb extended, fingers closed
Motor Control
The hand has 7 motors:
| Index | Motor | Range |
|---|---|---|
| 0 | Pinky | 0 – 4095 |
| 1 | Ring | 0 – 4095 |
| 2 | Middle | 0 – 4095 |
| 3 | Index | 0 – 4095 |
| 4 | Thumb radial extension | 0 – 4095 |
| 5 | Thumb flexion | 0 – 4095 |
| 6 | Thumb grasp | 0 – 4095 |
Speed range: 0 – 250
Sensor Data
data = hand.read_sensors()
# Pressure (hPa) per finger
data.pressure['pinky'] # list of sensor values
data.pressure['ring']
data.pressure['middle']
data.pressure['index']
data.pressure['thumb_radial_extension']
# Temperature (°C) per finger
data.temperature['pinky']
# Motor feedback
data.positions # list of 7 current positions
data.speeds # list of 7 current speeds
# IMU
data.imu.accel # {'x': ..., 'y': ..., 'z': ...}
data.imu.gyro # {'x': ..., 'y': ..., 'z': ...}
Sensor Callbacks
def on_data(sensor_data):
print(sensor_data.pressure)
hand.on_sensor_update = on_data
hand.connect()
Context Manager
with NI_PRVS01('/dev/ttyACM0') as hand:
hand.fist()
hand.open()
Repository Structure
nibotics-hand-python/
├── nibotics/
│ ├── __init__.py # Public API
│ ├── hand.py # NI_PRVS01 main class
│ ├── protocol.py # Binary serial protocol parser
│ ├── definitions.py # Protocol constants & PAGE_MAP
│ └── sensor_data.py # SensorData / IMUData dataclasses
├── tests/
│ ├── unit/ # Unit tests
│ └── integration/ # Hardware integration tests
├── examples/ # Usage examples
├── pyproject.toml
└── setup.py
Requirements
- Python ≥ 3.8
- pyserial ≥ 3.5
License
BSD-3-Clause © Nibotics GmbH
Contact
Rohith Anju Nath Vadigineni- rohith.vadigineni@nibotics.com
- Website: nibotics.com
- Email: rohith.vadigineni@nibotics.com
- Repository: github.com/nibotics/nibotics-hand-python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nibotics_hand-0.1.0.tar.gz.
File metadata
- Download URL: nibotics_hand-0.1.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9d6595b9fb8d9817ba3fa5aa3b4e5774a73484955018dae7d20f5aec83fde0d
|
|
| MD5 |
b981922309066453e072487d299ec8ef
|
|
| BLAKE2b-256 |
dd4d8d223592a03542aa502dd1208217cfe25cffc84e31683d7e97960dc1006d
|
File details
Details for the file nibotics_hand-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nibotics_hand-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c83be618d66dab28496ced1b2b1d12c9aa3afb7a9c313ab5310e3e78cd00bcce
|
|
| MD5 |
e9dd63c406d1ebbd29da98156c09a87d
|
|
| BLAKE2b-256 |
9156a277b508e3de9ba8e71b9559fa7ce5b547a85119c019287005756734d4a6
|