Skip to main content

A Python library for communicating with RH56DFTP devices (tactile hand)

Project description

RH56DFTP Python Library

A Python library for communicating with RH56DFTP devices (tactile hand) via Modbus TCP.

Features

  • Easy-to-use API for communicating with RH56DFTP tactile hand devices
  • Support for reading and writing registers
  • Built-in logging system for monitoring all operations
  • Comprehensive register definitions including force, current, temperature, and error data
  • Support for tactile data acquisition from all fingers and palm
  • Modular design for easy extension

Installation

From Source

You can install the library from the GitHub repository:

git clone https://github.com/plus-m-r/RH56DFTP_teach.git
cd RH56DFTP_teach
pip install -e .

From Local Package

After building the package, you can install it from the generated wheel file:

pip install dist/rh56dftp-0.1.0-py3-none-any.whl

Requirements

  • Python 3.7 or higher
  • pymodbus 3.11.3

Usage

Basic Usage

from RH56DFTP.RH56DFTP_TCP import RH56DFTP_TCP

# Initialize connection to the tactile hand
try:
    # Replace with your device's IP address and port
    client = RH56DFTP_TCP(host="192.168.123.210", port=6000)
    print("✅ Connected successfully to tactile hand")
    
    # Read device ID
    hand_id = client.get("HAND_ID")
    print(f"🤖 Hand ID: {hand_id}")
    
    # Write to a register (if supported)
    success = client.set("HAND_ID", 2)
    print(f"🔧 Set HAND_ID to 2: {success}")
    
    # Read force values from fingers
    for finger in range(6):
        force = client.get(f"FORCE_ACT({finger})")
        print(f"✋ Finger {finger} force: {force} g")
    
    # Close connection properly
    client.close()
    print("👋 Connection closed")
except Exception as e:
    print(f"❌ Error: {e}")

Register Categories

The library provides predefined register names organized by function:

Device Configuration

  • HAND_ID: Device ID (1-254)
  • REDU_RATIO: Baud rate setting
  • CLEAR_ERROR: Clear errors command
  • SAVE: Save configuration to flash
  • RESET_PARA: Restore factory settings

Finger Force Data (Read-only)

  • FORCE_ACT(0): Pinky finger force
  • FORCE_ACT(1): Ring finger force
  • FORCE_ACT(2): Middle finger force
  • FORCE_ACT(3): Index finger force
  • FORCE_ACT(4): Thumb bending force
  • FORCE_ACT(5): Thumb rotation force

Actuator Data (Read-only)

  • CURRENT(0-5): Actuator current values (mA)
  • ERROR(0-5): Actuator error codes
  • TEMP(0-5): Actuator temperature values (°C)

Tactile Data (Read-only)

  • Various tactile data registers for all fingers and palm
  • 3x3, 12x8, and 10x8 matrix configurations
  • 16-bit integer values (0-4096)

Register Configuration

Register definitions are located in the Register/config/configFTP directory:

  • ftp_registers.py: Main register configuration
  • ftp_registers_keys.py: Register name constants

The library automatically loads these configurations during initialization.

Logging

The library includes a built-in logging system that records:

  • All get and set operations with timestamps
  • Connection status and errors
  • Register addresses and values

Logs are saved to rh56dftp.log and also printed to the console with the format:

YYYY-MM-DD HH:MM:SS - RH56DFTP - LEVEL - MESSAGE

Project Structure

RH56DFTP_teach/
├── RH56DFTP/              # Main library code
│   ├── RH56DFTP_base.py   # Abstract base class
│   └── RH56DFTP_TCP.py    # TCP implementation
├── Register/              # Register configuration
│   ├── config/            # Configuration files
│   │   └── configFTP/     # FTP register configs
│   ├── RegisterKey/       # Register name constants
│   └── RegisterSet/       # Register classes
├── connect.py             # Example connection script
├── README.md              # This file
├── setup.py               # Package setup
└── requirements.txt       # Dependencies

Development

Building the Package

To build the package for distribution:

python setup.py sdist bdist_wheel

This will generate:

  • dist/rh56dftp-0.1.0.tar.gz (source distribution)
  • dist/rh56dftp-0.1.0-py3-none-any.whl (wheel distribution)

Testing

Run the example script to test the connection:

python connect.py

License

MIT License

Repository

https://github.com/plus-m-r/RH56DFTP_teach

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rh56dftp-0.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rh56dftp-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file rh56dftp-0.1.0.tar.gz.

File metadata

  • Download URL: rh56dftp-0.1.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rh56dftp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 07a55315b00ed50cccd9e1695f625eb49680d71d4173b38229b412138ece6214
MD5 661501934951f102d5f236d6744cd02e
BLAKE2b-256 a4e4d6190b2db81254742801e8bf3544688fc44f6bcd5de5c2c4de77ed8ac238

See more details on using hashes here.

File details

Details for the file rh56dftp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rh56dftp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rh56dftp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d62e5fcc9d5a03a0362d45d814b85a64d4fb061e321ba20a1819c32d94d8cd60
MD5 6a56c818060ff1870194e352b7a2cca0
BLAKE2b-256 54351e3bdf2991066cff08227841dd1fffbc27c2afb61806fafeb611b3667ac9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page