GithubHelp home page GithubHelp logo

lucidvr / lucidgloves Goto Github PK

View Code? Open in Web Editor NEW
2.0K 86.0 260.0 2.66 MB

Arduino/ESP32 based DIY VR Haptic gloves. Compatible with SteamVR via OpenGloves.

License: MIT License

C++ 90.12% C 9.88%
arduino vrglove diy vr firmware hardware

lucidgloves's Introduction

LucidGloves

LucidGloves - Firmware and 3D Printer Files

This repo contains the arduino firmware as well as the STL files for Prototypes 3 through 4 of the LucidVR glove. This is a finger tracking glove that allows you to use your hands in VR. Follow along with Lucas_VRTech's developments on his Tiktok page: https://www.tiktok.com/@lucas_vrtech

Building your own gloves

Start here at the wiki! https://github.com/LucidVR/lucidgloves/wiki

Support

Join the LucidVR discord server for assistance: https://discord.gg/lucidvr

Firmware

Open the firmware files located in the firmware/lucidgloves-firmware folder. By default the firmware is configured for an arduino nano using serial. To configure the firmware, change the defines in the lucidgloves-firmware.ino file.

Configuration instructions are here: Configuration Instructions.
Firmware Troubleshooting Guide is here: Firmware Troubleshooting Guide.

Tested boards:

  • Arduino Nano
  • ESP-WROOM-32

Supported Communication Methods:

  • USB Serial
  • Bluetooth Serial (On ESP32 boards)
  • BLE (Soon, not up yet)

Hardware

STL files for 3D printing are located in the hardware folder. Prototype 4 models are currently experimental.

The assembly for each hand is as follows:

For Prototypes 3 and 3.1 -

  • Spool (5x)
  • Tensioner (5x)
  • Cover (5x)
  • Holder (5x)
  • GuideRing(Will need to be resized) OR GuideNode(3.1) (2+ per finger, 1+ for thumb)
  • EndCap (1x per finger, will need to be resized to fit)

For Prototypes 4 and 4.1 -

  • HapticSpool (5x)
  • Tensioner_GreenPot (5x) OR Tensioner_WLPot (5x)
  • SpoolCover (5x)
  • RigidMount (1x) (Left or right hand)
  • WLPotSlideHolder OR WLPotElasticHolder OR GreenPotSlideHolder (5x)
  • Quest2_MountSlider OR Vive3.0_MountSlider (1x)
  • GuideRing (Proto 3) (Will need to be resized) OR GuideNode (Proto 3.1) (2+ per finger, 1+ for thumb)
  • EndCap (Proto 3) (1x per finger, will need to be resized to fit)

Guide for printing parts: Printing guide

Required parts for each hand: Parts Lists
Optional:

  • Joysticks for locomotion
    • Will be making a DIY treadmill eventually as well for those who would prefer that
  • Buttons (Most can be replaced with gestures) (One is required for autocalibration)

More information will be available on the LucidVR site very soon.

SteamVR Compatibility (OpenGloves)

This project uses the OpenGloves OpenVR driver for compatibility with SteamVR, which is downloadable on Steam:
https://store.steampowered.com/app/1574050/OpenGloves/

Source code available on GitHub:
https://github.com/LucidVR/opengloves-driver

Other Languages

English | 简体中文

lucidgloves's People

Contributors

0611zman avatar climberj avatar danwillm avatar darthnithin avatar eah1759 avatar hardlite avatar kskoczyk avatar littlenyancat avatar lucas-vrtech avatar minystreem avatar noob247365 avatar ramorade avatar ryanpiao avatar snailedlt avatar sqble avatar technicallyoffbeat avatar twidgevr avatar zach710032 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lucidgloves's Issues

potentionometer wont work?

hi guys i finished my left glove by using all the thinks lucas has. i wired everything to the esp32 wroom-32 v1 mpdul and when i go to the serial port und move my thumb and pint finger the numbers change but when i move my pinky or middle finger the numbers are all the same :( Pls help me and i wired everthing to the pins and change it in the ide to the pins that i use

10 bit analog resolution

Why do we have different analog resolutions on the esp and nano? It would be simpler to just set them both to 10 bits with analogReadResolution(10); in setup

Can't Configure your Driver

I followed all the steps but when I opened Steam and ran the VR gloves, the configration window kept spinning and then I received this message. what should I do?

OpenVR Init Error

Using a Esp32 devkit v1 and following all steps closely it seems something isn't going as planned. Very unsure where the problem might be as I'm not yet so advanced in electronics(but getting better). What catched my eye is my serial output looks way different from what yours showed in one of your videos("How I build CHEAP VR Gloves.")

Mine looks more like this:
A1662B3329C1229D4095E4095F384G0ILM
A112B3994C305D4095E1017F336G34ILM
A2816B4037C3596D4095E1115F469G56ILM
A852B3344C240D4095E4095F349G0ILM

Just to be sure I tried a nano as well with same serial output

Suggestions for the 3D models.

I'm currently printing the parts for the glove and noticed some minor problems with the 3d models that could be improved upon.

  1. The tensioner has this small corner arround it which my prusa mini couldn't handle even on 0.10mm layer height so the casing wouldn't hold. I added a bigger corner to hold on to which was much easier to print even on 0.25mm layer height. So if you'd like you could add this to the tensioner.
    grafik

  2. The overhang on the spool hoder could cause trouble when printing so adding a soother edge here could improve the prints:
    grafik

Other than that the 3D Models are really well designed and I'm really excited to test the glove out!
Thank you so much for comming up with this idea and making it a reality. ❤️

My Hands are not responding to the finger movements in SteamVR home

Hi There,

So I followed all the steps and installed all the drivers required. I've downloaded the latest Driver 0.4 release and changed the values to 1023 because I am using Nano. Also in the Driver settings I made sure the COM ports are the same as my Arduino.

The "Serial Monitor" showed big and small numbers meaning it is working as Lucas has showed in the video. After I linked my Oculus Rift S, and launched SteamVR. It showed the Valve Controllers following my Oculus Controllers. When I am at "Steam HOME" My hands appears but they are not responding to the finger movements and also they are showing only 3 fingers and a Thumb!!

I am not sure what if I am missing something here, Please help :(

[Idea] Linear potentiometers

My idea was to make this work using linear potentiometers
image
(example)
instead of regular ones with a push-back motor attached to make it less bulky.

do you think that would work?

Part tolerance too loose

The couplers on Prototype 4 RigidMount_leftHand and RigidMount_rightHand appear to be too small to appropriately interface with any of the models that are meant to slide on and snap into place.

See photo for example: https://imgur.com/a/Xu4R0Nq

You can see the issue in the part files, as well: https://imgur.com/a/ijAL6ZP

The fit is so loose between parts that the attached part never snap-fits into place, can slide/rotate a large amount, and will simply fall off of the RigidMount if turned sideways.

commulation problesms

​I have made a completely same glove (left) as your Prototype 4, but when I connected it with SteamVR (and vive focus 3) through serial communication, it always failed, and I cannot calibrate servo using the opengloves tools, can you help me with that?

Source file release?

I'm trying to make some experimental changes to the glove mechanism, but it's complicated by the fact that there's no F3D/Solidpart file release. Could you add those to the hardware repo?

Error compiling for board ESP32 Wrover Module.

when I try to download the program after following the steps it says input[size] = NULL;
^
At global scope:
cc1plus.exe: warning: unrecognized command line option '-Wno-frame-address'
c:/users/ /appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory
c:/users/ /appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board ESP32 Wrover Module.

Licensing Agreement

Be sure to update your licencing agreement(s) based on how you'd like your work and contributors' work to continue for the life of this, and future projects. Even if your demands are simple, they can still help spread the word of your project. Props to YouTube pubs like The Mysticle and ThrillSeeker for mentioning the project, but don't let your work go unnoticed.

You don't have to be a lawyer to do this, but at least be cognizant of how your code is shared.

Even at least put some kind of simple clause at the bottom (i.e.):

LICENSE file:

  Any publicly shared use of this code requires at least a mention to its author.

... And go on from there.

Individual analog max values

Hey is there any plan to have an individual analog max value, my gloves grip gesture never works as the analog max is never reached on many of the fingers while one is an outlier, having individual analog max would fix this issue.

Assembly Guide Prototype 3

Do you have a video or a guide to assembly prototype 3? The videos on your channel show one of the older ones, and I printed the parts for the 3.1 and have no idea how to assembly it. Thanks in advance

v4 STL Dimensions?

Something is off. It might be me, I admit. But when I put the STLs in 2 different programs, it doesn't look like the dimensions would work. When I laid out the green pot sliders with the rigid mount, the sliders would occupy the same space:
image

And they look too long:
image

But where they actually slide together (height and width) looks correct.

Am I crazy?

ValueError: could not convert string to float: '511&511&511&511&511&232&164&0&0&0&0&0&0'

I am using the Prototype 1 Code for blender and when I am trying to run the code with a potentiometer as input, I am getting the following error

Read blend: C:\Users\Ruchit\Downloads\lucidgloves-blender-main\lucidgloves-blender-main\VRGloveDemo_Attempt2.blend
b'511&511&511&511&511&232&164&0&0&0&0&0&0\n'
Traceback (most recent call last):
File "C:\Users\Ruchit\Downloads\lucidgloves-blender-main\lucidgloves-blender-main\VRGloveDemo_Attempt2.blend\script.py", line 43, in
ValueError: could not convert string to float: '511&511&511&511&511&232&164&0&0&0&0&0&0'
Error: Python script failed, check the message in the system console

Please help ME!

Arduino IMU Tracking?

Would it be feasible to add Arduino-based tracking with a gyroscope/accelerometer sensor? That would allow for tracking that doesn't require existing VR controllers / trackers, since Vive tracker pucks are kinda pricey.

ESP32s not sending/recieving

I have uploaded the software to both gloves and have connected them to my computer over Bluetooth. The opengloves driver is able to track their position but I have no button inputs, finger tracking or haptic feedback. I am able to perform auto-calibration in the driver but not extend/retract the servos fully, I'm just told the command could not be added to the pipeline.

The configuration in the opengloves driver is as follows:
Both gloves enabled
Communication method Bluetooth serial
Right name: lucidgloves-right (same for firmware and serial number)
Left name: lucidgloves-left (same for firmware and serial number)
Driver emulation: lucid glove
Encoding protocol: Alpha

Any fixes?

Is this the right place to ask questions about parts?

I was looking for discussions, but notice you don't have any, so as a 2nd choice I opted for writing an issue instead, sorry if this is the wrong place to ask.

Anyways, I am looking through the parts list, and I see a few of the items don't have links, and some have amazon links only. I'm a software developer and have no experience with engineering or engineering parts, so please excuse my lack of knowledge in these things :)

Here's a list of the things I'm wondering about specifically:

  1. The velcro straps. I don't know what to get, since I don't know the length or type to get, a link would be very helpful as a guideline.
  2. The crimp set with only an amazon link, which has super expensive shipping and toll here in Norway. I was wondering if this is a good alternative to that: https://a.aliexpress.com/_mtOFRWo
  3. The powerbank. I see the one you recommend is 20000 mAh, but do you really need that much? How long does 20000mAh last usually? Would prefer to have a smaller powerbank if it's viable.
  4. MG90S doesn't have an aliexpress link, but I'm assuming this is the right one: https://a.aliexpress.com/_mL9ymPO
  5. Found these retractable badge reels. Do they look good enough? https://a.aliexpress.com/_mrq9OXe

How to calibrate hand position

Hello teams, I am a Master student, and hope to use your glove to help my future study. However, I am wondering why I start the demo, my hand will show in a different position direction every time, I hope I can have a good method to calibrate hand position. Thanks and best regard.

Vive tracker 1.0/2.0 mounts?

Was wondering if there was anyone who edited the vive tracker 3.0 mount slider file to allow the larger, older trackers to fit better? It seems to press against the servos and bow back a little.

Latency issue and loss of connection when using bluetooth

After building my pair of gloves, I tried testing each of the gloves that I've made. The right glove worked wonderfully. However, when I went to check my left glove, I noticed significant latency issues and after a few seconds it would disconnect and I would have to restart Steam VR to get it to connect again (only to have it repeat the issue that I just mentioned). Any ideas on what's causing this issue?

Code more buttons

Hey, could you add code that allows for adding more buttons? I want to have 9 buttons on my device because I run out of buttons on my index controller that has 3, so adding the ability for people to add more buttons to the gloves natively allows for even better and more customized DIY gloves... I have another friend that wants to add like 12+ buttons to a glove if they ever make them.

No download link for 4.0 RigidMount_rightHand.stl

Something's goofy about RigidMount_rightHand.stl. There's no download link like there is for the left hand. I can view the raw blob, but not sure it would download correctly. I guess I can always try. Anyway, just a heads up.

Spool cover and tensioner not connecting

I printed the tensioner and spool cover pieces and they are not connecting properly. In the video he was able to put them on without issue. I was able to get them together, but they broke in the process. They were printed with a resin printer. Is that the problem? I tried using a 3D printer but it was having issues.

Logo Font

I’m attempting to vectorize the logo, It would be helpful to know what Font the logo uses, and if the hand symbol is bespoke or from a icon pack.

Error while compliling code Look at comment for log

file included from C:\Users\AikoKiss\Downloads\Compressed\FlexiaGloves-main_2\FlexiaGloves-main\firmware\lucidgloves-firmware\lucidgloves-firmware.ino:3:0:
HardwareConfig.hpp:14:1: error: 'LED' does not name a type
LED led(PIN_LED);
^
C:\Users\AikoKiss\Downloads\Compressed\FlexiaGloves-main_2\FlexiaGloves-main\firmware\lucidgloves-firmware\lucidgloves-firmware.ino: In function 'void setup()':
lucidgloves-firmware:77:3: error: 'led' was not declared in this scope
led.setup();
^
C:\Users\AikoKiss\Downloads\Compressed\FlexiaGloves-main_2\FlexiaGloves-main\firmware\lucidgloves-firmware\lucidgloves-firmware.ino: In function 'void loop()':
lucidgloves-firmware:89:5: error: 'led' was not declared in this scope
led.setState(LED::State::BLINK_STEADY);
^
lucidgloves-firmware:92:5: error: 'led' was not declared in this scope
led.setState(LED::State::ON);
^
exit status 1
'LED' does not name a type

Inseam on spool too small

I am a dumb person and would like help. The inseam on the spool stl file isn't showing up on the layer view, apparently it is so small my printer can't see it and so it just skips it. You can see how this is an issue. Please advise.

Add documentation for adding required ESP32 libraries

This is a pretty quick first issue if someone wants to take it,
Currently in order to use the firmware with ESP32, one needs to get the ESP32 libraries from the Arduino IDE package manager,
And in order to use the servos for force feedback, one needs to get the ESP32servo library

Deleting Closed Issues might be a Problem.

I noticed the issues that been made, got closed and deleted. Closing Issues is not a problem but if you delete Issues the users that done the work to write a good issue report get less from doing it, it's like the work of doing a good and detailed report never existed.

Sometimes Users want to do a reference from new report to old issues and sometimes there are solutions in issues or other things that might be useful in this or other projects.

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.