Skip to content
EmroessPublic

About

Train robot policies on real-world rotational tasks — with real force feedback.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

159 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRISM Logo

License C/STM32 Python GitHub Stars

Train robot policies on real-world rotational tasks — with real force feedback.

What is PRISM?

PRISM (Programmable Rotary Impedance Suite for Manipulation) is a flexible, hardware-based haptic control system designed to help practitioners train policies on real-world rotational tasks. Unlike purely virtual simulations, PRISM can replicate the tactile force feedback of valves, handles, knobs, and fasteners. It delivers realistic haptic feedback to the policy through a modular, motor-driven interface.

PRISM Render PRISM Render2

Explore PRISM

Build Guide
BOM, assembly, firmware
User Guides
CLI, REST API, Web GUI, Streaming
Rotation Library
Printable handles and haptic profiles
Firmware
STM32H7 open-source firmware
Python Client
PyPRISM API and examples
Quick Start
Get building in 5 steps

Key Capabilities

Feature Description
1 kHz Task Telemetry Real-time TCP streaming of θ, τ, and velocity for policy training
Self-Resetting Tasks Automated return-to-start for continuous training loops
Programmable Haptics Tune damping, friction, stiffness, and torque per-episode
Multi-Interface CLI, Web GUI, REST API, and data streaming — all on-device
Sim Integration Experimental Isaac Sim & MuJoCo support (in development)
Modular Handles Swap 3D-printed attachments to emulate any rotational task

Real-time Task Telemetry

PRISM streams (1 kHz) real-time TCP telemetry about the task over ethernet. This enables robotic policies to autonomously monitor task progress in real time. Practitioner-written scripts can also determine task success or failure by reading theta_on, theta_off, torque, or velocity thresholds.

Task Self-Resetting

PRISM's fully programmable API allows the rotational task to automatically reset to its starting state or other programmed positions. Practitioners can use this feature to fast track expert demonstrations or make a continuous policy training loop with PRISM API control scripts.

Programmable Characteristics

Practitioners define a software "profile" by configuring physically meaningful parameters such as viscous damping, Coulomb friction coefficient, smoothing parameter ϵ, virtual wall stiffness, torque limits, and others. These parameters define how each rotational task will "feel" and lets PRISM emulate the spring-back of a lever door handle to the hard to turn quarter-turn valve found in naval ships.

Practitioners can also instantly randomize these parameters for the next episode to train ML polices to adapt to task changes.

Multi-interface Support

PRISM has a CLI, Web-GUI, REST API, Data Streaming interfaces. Each interface lets the practitioner configure or use certain features.

Every user-interface is locally hosted by the main micro-controller.

Simulation Integration (Under Development)

Experimental support for reinforcement learning environments (Isaac Sim, MuJoCo) and sim2real transfer.

Specifications

Spec Value
Controller STM32H7 microcontroller
Motor Driver ODrive S1
Telemetry Rate 1 kHz over TCP/Ethernet
Interfaces CLI, Web GUI, REST API, Data Stream
Build Cost ~$400 – $500
Print Volume ≥ 180 × 180 × 180 mm
Software Python 3.10+, GNU ARM Toolchain
License MIT

Architecture

graph LR
    A[Robot Arm] -->|Grasps| B[PRISM Handle]
    B -->|Shaft Encoder + Motor| C[STM32H7]
    C -->|1 kHz TCP| D[Host PC]
    D -->|PyPRISM API| E[Policy Training]
    D -->|REST / CLI / Web| C
    C -->|Haptic Feedback| B
Loading

Quick Start

Total build time: ~2-5 hours | Cost: ~$400-500 | Difficulty: Intermediate

Step Action Link
1 Order the Bill of Materials BOM
2 Print structural mounts and handles Handles
3 Assemble the mechanical and electrical system Assembly Guide
4 Configure the ODrive S1 motor controller ODrive Config
5 Flash firmware onto the STM32 Firmware Guide
6 Verify haptic response via the onboard CLI CLI Guide

Rotation Library

PRISM's modular handle system allows for custom haptic emulations. Each attachment mounts to the same motor shaft interface, letting practitioners swap between task types in seconds.

See the Rotation Library for 3D-printable designs and parameter configurations.

Handle Range of Motion
Hydrant Handwheel 4-turn
Quarter-turn Valve 90 degrees
Door Handle +/- 45 degrees
Wrench Tightening Continuous
More to come --

Contributing

PRISM is open source and contributions are welcome.


Citation

If you use PRISM in your research, please cite:

@misc{prism2026,
  title={PRISM: Programmable Rotary Impedance Suite for Manipulation},
  author={},
  year={2026},
  url={https://github.com/Emroess/PRISM}
}

License

MIT License

About

Train robot policies on real-world rotational tasks — with real force feedback.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages