PROJEKT // SOFT-ROBOTICS DYNAMIXEL XL330-M288

ROBOTHAND // ELASTISCHE ROBOTERHAND

Steuerung einer nachgiebigen, kraft- und positionsgeregelten bionischen Roboterhand mit Dynamixel XL330-M288 Servomotoren, Stromüberwachung, Posen-Manager und Tkinter GUI.

KRAFTREGELUNG & TELEMETRIE

CURRENT-BASED POSITION MODE

Verformt sich bei mechanischem Widerstand elastisch, anstatt empfindliche Objekte zu beschädigen.

01. KONZEPT & REGLER

WARUM ELASTISCHE ROBOTERHÄNDE?

Entwickelt für das Projekt „Soft!-robotic Hands“ (SoSe 2026) zur Erforschung passiver Nachgiebigkeit (Compliance) und feinfühliger Greifstrategien.

PASSIVE NACHGIEBIGKEIT

CURRENT-BASED MODE

Klassische Industrieroboter sind starr. Die RobotHand nutzt den Current-Based Position Mode der Dynamixel XL330 Servos.

Wird ein mechanischer Widerstand erreicht, federt der Finger nachgiebig ein. Die maximale Kraft wird hardwareseitig über das Stromlimit (z. B. 600 mA) begrenzt.

GREIF-ERKENNUNG

AUTOMATISCHER SOFT-GRIP

Die Software erkennt Berührungen in Echtzeit über den Stromanstieg an den einzelnen Fingersehnen.

Sobald ein Finger Kontakt mit einem Gegenstand hat, friert der Regler die Zielposition ein – perfekt zum Greifen empfindlicher Gegenstände wie Früchte oder Werkstücke.

FLEXIBLE ANSTEUERUNG

3 BETRIEBSMODI

  • 1. Joint Mode: Präzise Winkelregelung (0–360°).
  • 2. Wheel Mode: Endlose Drehungen mit kontinuierlicher Geschwindigkeitsregelung.
  • 3. Current-Position: Winkelregelung mit aktiver Drehmomentbegrenzung.
02. HARDWARE & MECHANIK

AUFBAU & PROTOTYP

3D-gedruckte Fingerglieder, Sehnenzug-Mechanismus (Tendon-driven) und digitale Dynamixel-Bus-Kommunikation.

KOMPONENTEN

DYNAMIXEL XL330-M288 SERVO-SPEZIFIKATIONEN

Prozessor / MCU ARM Cortex-M3 (32-Bit Microcontroller)
Encoder-Auflösung Contactless Magnetic Absolute Encoder (4096 Schritte / 360°)
Protokoll Dynamixel Protocol 2.0 (Half-Duplex Asynchron UART / TTL)
Betriebsspannung 3.7 V – 6.0 V (Nominal: 5.0 V VCC)
Feedback & Telemetrie Position, Geschwindigkeit, Strom (mA), Spannung (V), Temperatur (°C)
Interface / Adapter Robotis U2D2 / USB-TTL Konverter am Raspberry Pi / PC

Die Finger werden über reißfeste Sehnenzüge (Dyneema-Schnüre) bewegt, die direkt auf die Servohörner der Dynamixel-Motoren gewickelt sind. Eine Rückstellfeder sorgt für die elastische Öffnung.

TKINTER GUI

TKINTER STEUERUNG IM LABOR

Laptop mit Tkinter-Bedienoberfläche am Roboterprüfstand 🔍 VERGRÖSSERN

Die eigens entwickelte Python/Tkinter-Bedienoberfläche im Praxiseinsatz am Roboterarm-Prüfstand zur direkten Kontrolle von Position, Geschwindigkeit und Stromlimits.

FOTO-DOKUMENTATION DES PROTOTYPS

3D-Druck Chassis mit Sehnenzug-Führung 🔍 VERGRÖSSERN
3D-DRUCK & VERKABELUNG
Sehnenzug-Führung & Feder-Rückstellung
3D-Druck Fingerglieder und Gelenke 🔍 VERGRÖSSERN
FOTO // MECHANIK
3D-Druck Fingerglieder & Gelenke
03. CAD & DIGITALER ZWILLING

DIGITALER ZWILLING (SOLIDWORKS)

3D-Modellierung, Baugruppen-Hierarchie und Konstruktion der elastischen Roboterhand in SolidWorks.

SolidWorks CAD Baugruppe Gesamtansicht 🔍 VERGRÖSSERN
SolidWorks CAD Fingerglieder Detailansicht 🔍 VERGRÖSSERN
SolidWorks CAD Schnittmodell 🔍 VERGRÖSSERN

🛡️ HARDWARE-SCHUTZ & SAFETY FEATURES

🛑 NOT-AUS (EMERGENCY STOP)

Sofortiges Abschalten des Drehmoments aller Servos per GUI-Button oder Schnelltaste Esc.

🔥 TEMPERATUR-WATCHDOG

Visuelle Warnung bei Überhitzung (> 55 °C) und Ein-Klick-Motor-Reboot bei Überlastungsabschaltung.

🔒 MUTEX-WATCHDOG

Selbstheilender Lock-Manager (löst blockierte COM-Ports nach ~1s automatisch auf) verhindert Thread-Hänger.

04. INBETRIEBNAHME

INTELLIGENTE REKALIBRIERUNG

So lernt die Software die exakten Endpunkte jedes Fingers an:

01
OFFEN-POSITION

Finger in die maximal geöffnete Position bringen und in der GUI "Set Zero" anklicken.

02
SCHLIESS-POSITION

Finger in die geschlossene Greifposition führen und "Set Limit" anklicken.

03
SPEICHERN

Klick auf das Disketten-Symbol speichert die Kalibrierung dauerhaft in der calibration.json.

04
AUTO-SHIFT

Wird ein Punkt nachjustiert, berechnet die Software den Offset automatisch und passt alle Posen & Sequenzen an!

05. INSTALLATION & QUELLTEXT

QUICK START & PYTHON CODE

In 2 Minuten einsatzbereit auf Windows, Linux und Raspberry Pi OS.

1. VIRTUAL ENVIRONMENT & SETUP

TERMINAL / BASH
# 1. Repository klonen
git clone https://github.com/NoNameTechnology/RobotHand.git
cd RobotHand

# 2. Virtuelle Python-Umgebung erstellen & aktivieren
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/Mac: source .venv/bin/activate

# 3. Abhängigkeiten installieren
pip install -r requirements.txt

# 4. GUI-Controller starten
python motor_control.py
PYTHON-KERN

DYNAMIXEL SDK EINBINDUNG

Beispielhafter Python-Code zur Aktivierung des Current-Based Position Mode (Operating Mode 5) über das Dynamixel Protocol 2.0:

PYTHON
from dynamixel_sdk import *

# Dynamixel Control Table Adressen (XL330)
ADDR_OPERATING_MODE = 11  # 5 = Current-Based Position
ADDR_TORQUE_ENABLE  = 64
ADDR_GOAL_CURRENT   = 102 # Stromlimit (z.B. 600mA)
ADDR_GOAL_POSITION  = 116 # 0 bis 4095

# Port & PacketHandler initialisieren
portHandler = PortHandler('/dev/ttyUSB0')
packetHandler = PacketHandler(2.0)

portHandler.openPort()
portHandler.setBaudRate(57600)

# Motor in Current-Based Position Mode versetzen
packetHandler.write1ByteTxRx(portHandler, 1, ADDR_TORQUE_ENABLE, 0)
packetHandler.write1ByteTxRx(portHandler, 1, ADDR_OPERATING_MODE, 5)
packetHandler.write1ByteTxRx(portHandler, 1, ADDR_TORQUE_ENABLE, 1)

# Nachgiebig greifen mit 400 mA Strombegrenzung
packetHandler.write2ByteTxRx(portHandler, 1, ADDR_GOAL_CURRENT, 400)
packetHandler.write4ByteTxRx(portHandler, 1, ADDR_GOAL_POSITION, 2048)
06. MEDIEN & DEMOS

PROTOTYP IN AKTION

Videoaufnahmen der Sehnen-gesteuerten Roboterhand beim Greif- und Bewegungstest.

RobotHand Greiftest & Dynamixel-Ansteuerung PRAXISTEST