Giter Club home page Giter Club logo

3d-hapkit's Introduction

3D Hapkit: A Low-Cost, Open-Source, 3-DOF Haptic Device Based on the Delta Parallel Mechanism

3 DOF Hapkit Overview

The 3D Hapkit is a 3-Degrees-Of-Freedom haptic device that was created as a class project for Haptic Interface Design under Dr. Jeremy Brown in Fall 2022. The 3D Hapkit is based on the Hapkit 3.0 and was presented as WIP Paper and Demo at 2023 IEEE World Haptics. This device is an open-hardware haptic device designed to be low-cost(<$300) and easy to assemble, allowing users to input motions and feel programmed forces in three degrees of freedom.

Moving forward, the 3D Hapkit will be deployed at the Johns Hopkins University Haptic Interface Design Course in Fall 2023!

Build One

Hardware

3 DOF Hapkit Overview

Dependency

Manufacture List

3 DOF Hapkit Overview

Electronics

3 DOF Hapkit Overview

The electronics of the 3D Hapkit consist of three Hapkit 3.0s. The Hapkit board can be purchased from Seeed studio. It is also possible to manufacture your own PCB by combining an Arduino, motor driver and sensors. Here is a good starting point obtained from Seeed Studio(Files).

The three boards are communicating using the I2C protocol. We provid sample Arduino code for follower and leader to get you started porgramming haptic virtual environments with your 3D Hapkit. The code includes the calculation of forward kinematics and all readings values from sensors.

To use

  • Connect the ground and I2C pins (A4/A5) of the three boards together.
  • Choose one board as the leader and load the script(3DHapkit_Leader.ino).(Arduino IDE Download).
    • If want to use the serial monitor in the Arduino IDE, comment out Line 79(3DHapkit_Leader.ino) in the script:
    #define PROCESSING 1 //connect to the processing for visualization
  • Load the script(3DHapkit_Follower.ino) to two other boards.
    • In line 55 (3DHapkit_Follower.ino), assign address #8 to follower #1
    Wire.begin(8);                // join i2c bus with address #8
    • In line 58 (3DHapkit_Follower.ino), assign address #12 to follower #2
    Wire.begin(12);                // join i2c bus with address #12

Software

We have created a sample scene for demo purposes. Users are able to control a ball (shown in green) by moving the handle. The ball is rendered in a virtual environment with a virtual surface. Our 3-DOF Hapkit is designed to simulate the virtual surface and render haptic interactions with the surface. Processing (Download Here) was used to provide a better visualization.

To use

  • Download the Processing.
  • Open Processing and deltaProcessing.pde.
  • Connect the laptop to the leader board.
  • Check the USB port and change to correct one in line 38
    myPort = new Serial(this, "com5", 115200); //change "com5" based on the local port connection 
  • Click 'Run'.
3 DOF Hapkit Overview

Acknowledgement

The development and implementation of the 3D Hapkit was supported by the Haptics and Medical Robotics(HAMR) Laboratory. Special thanks to Dr. Jeremy Brown for this guidance and invaluable advice.

The 3D Hapkit was made possible by the Hapkit: https://hapkit.stanford.edu/about.html

T. K. Morimoto, P. Blikstein and A. M. Okamura, "[D81] Hapkit: An open-hardware haptic device for online education," 2014 IEEE Haptics Symposium (HAPTICS), Houston, TX, USA, 2014, pp. 1-1, doi: 10.1109/HAPTICS.2014.6775560.

Contributors

  • Han Zhang - MSE in Biomedical Engineering, Johns Hopkins University
  • Jan Bartels - MSE in Robotics, Johns Hopkins University
  • Yuting Zhang - MSE in Computer Science, Johns Hopkins University

3d-hapkit's People

Contributors

hanzhang206 avatar ulibartels avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.