Git Product home page Git Product logo

driver_leap's Introduction

Leap Motion Driver for SteamVR

Installation of this driver.

Start SteamVR to see if two additional controllers show up (they should be blinking if your hands are not in the field of view of the Leap Motion, solid otherwise).

Troubleshooting

If you experience frequent crashes of SteamVR on exit and this bothers you, uninstall my driver. I will try to fix this ASAP, but at the moment I have no clue why SteamVR is crashing.

Note about WORK IN PROGRESS

You're seeing an early version of this software. I've got positional tracking established now as well as hand pose tracking. Some experimental mappings of hand gestures to triggers and buttons were added:

Trigger:

  • bending of the index finger maps to the trigger button, like you would fire a gun.

Grip:

  • clenching the middle, ring, pinky finger to a fist maps to the grabbing buttons

Trackpad:

  • the thumbpress gesture (just point the thumb in the direction of your palm) touches and clicks the trackpad, depending on the intensity of your gesture.
  • pointing the index finger towards the are of the other hand's palm will emulate the touchpad. To press the touchpad in the desired position use the tumbpress gesture simultaneously while pointing.

Menu buttons:

  • Flat hand held in front of you, palm towards face is used for application menu button
  • the Timeout pose (as used in sports), registers as the system menu button

Swapped hands?

when SteamVR confuses the left and right controller hands (which will be indicated by little hand icons shown near the bottom of the displayed Wand controllers), simply cross your hands the first time you bring them into view after starting SteamVR. This reverses the hand assignment and can improve the gaming experience for example in Audioshield.

I am working on allowing to freely map gestures to buttons in the steamvr.vrsettings config file in your Steam\config folder. However note that the "leap_gestures" section is currently not parsed yet. It's merely a sign of things to come.

Supported gestures

There are other gestures detected currently, but not mapped to buttons. If you want to try these out, click on the application "gesture_checker.exe" in the directory C:\Program Files (x86)\SteamVR Leap Motion driver\leap\bin\Win32

Then I also recommend that you simultaneously bring up your Leap Motion's settings and from there start the diagnostic visualizer (the windowed version, not the VR one). Press "v" once to switch it to headmount optimized mode.

Now pull both windows side by side and bring a hand into view. The command prompt running the gesture_checker program should output a series of numbers next to the names of the gestures. A "1.0" means confidential detection, a "0.0" means no detection.

You can practise some gestures this way and also cross-check your pose in the Leap Motion diagnostic visualizer against the detection confidence.

    // Finger gestures (these would not throw your hand's orientation off much)
    TriggerFinger,           // bend your index finger as if pulling a trigger
    LowerFist,               // grab with your middle, ring, pinky fingers
    Pinch,                   // pinch with your thumb and index fingers
    Thumbpress,              // point the thumb towards the direction of your pinky

    // Hand gestures (these would significantly change the orientation of your hand)
    FlippingTheBird,         // flip someone off with your middle finger
    ILY,                     // pinky and index finger extended, middle and ring bent
    Victory,                 // V shape with your index, middle fingers, other fingers curled
    FlatHandPalmUp,          // flat hand, palm points upwards (relative to alignment of Leap!)
    FlatHandPalmDown,        // flat hand, palm points downwards (relative to alignment of Leap!)
    FlatHandPalmAway,        // flat hand, palm points away from self (relative to alignment of Leap!)
    FlatHandPalmTowards,     // flat hand, palm points towards self (relative to alignment of Leap!)
    ThumbUp,                 // thumb points up, remaining fingers form a fist
    ThumbInward,             // thumb points towards the left for the right hand and vice versa

    // Two handed gestures
    Timeout,                 // both Hands form a T shape, signals a Timeout in sports
    TouchpadAxisX,           // Touchpad emulation: index finger of other hand points towards palm 
    TouchpadAxisY,           // Touchpad emulation: index finger of other hand points towards palm 

Games/Experiences that work mostly

  • the Blu (all three stages)
  • Irrational Exuberance: Prologue
  • the Rose and I
  • The Lab (some experiences work, others are tricky)
  • Final Approach
  • Audioshield: somehow the controllers are swapped? Control is tricky and not very precise. Semi-playable though.

Games/Experiences that are starting but not quite playable yet.

  • Tilt Brush: starts and you can start doing things, but there is lack of complete trackpad support in my driver.
  • Brookhaven Experiment: tracking only works while SteamVR window is in focus. Why? Gun in right hand needs a 60 degree uptilt angle (define this in steamvr.vrsettings config file in Steam config folder). Trigger gesture detection is way to imprecise, you won't even survive the first wave of Zombies.

Demos that won't work at all

  • n/a

Known Issues

I am seeing SteamVR Server crash on shutdown a lot. This could be related to my driver, but I have not yet found the root cause for the crash.

The Brookhaven experiment seems to steal focus from StreamVR, so that Steam does not get any position tracking. Clicking on the SteamVR window restores tracking, but mutes the audio on Brookhaven. Meh.

Some games work better when no grip angle is added to the controller pose, other games actually require a steep angle to be playable (Brookhaven, Audioshield). We may have to add a feature to chose the preferred default pose at runtime.

Tracking is not quite reliable to always detect my trigger gestures. I think we will have to integrate small handheld controllers like the Wiimote or the Playstation Move Navigation controller in the future.

I do not think I will be able to get animated hands into the 3D view, as the render model you can assign to each controller is mostly a static object. There are some JSON files to map joystick axes and triggers to animated parts of the displayed controller. But the fingers do not directly map to joystick axes directly and hence cannot be shown. Also not all games make use of SteamVR's internal controller visualization.

Building from Sourcecode (Developers only)

Install Dependencies

  1. Install SteamVR. It is under "Tools" in everyone's Steam Library. steam://install/250820
  2. Install "Leap Motion Orion SDK V3.1.2". https://developer.leapmotion.com/get-started
  3. Fetch the OpenVR SDK 1.0.0 from https://github.com/ValveSoftware/openvr .

The solution and project files are for Visual Studio 2015.

Configure Paths

Under "Property Manager" in Visual Studio, expand any of the configurations and find "Paths". Right click and select "Properties" and then "User Macros". Modify the paths to match your setup. InstallDir will be created, and will be configured as an external driver path for SteamVR.

Build

You will probably want to build Release x86. You can also build x64. The post-build step will install the binaries and copy the resources to the configured InstallDir and register that path with SteamVR.

Preapring The Leap Motion Driver for use (Developers only)

After building, the InstallDir should be a complete binary distribution. To use it:

  1. Register it with the SteamVR runtime via "vrpathreg adddriver $(InstallDir)". This is done automatically by a Post-Build step, but if you copy the files elsewhere you will have to do it by hand.
  2. Edit your config/steamvr.vrsettings to enable "activateMultipleDrivers". This is what allows the hydra driver to co-exist with any HMD. Be sure to mind your commas. Check vrserver.txt log to see if there were parse errors. Many of the settings are described at https://developer.valvesoftware.com/wiki/SteamVR/steamvr.vrsettings .
	...
	"steamvr" : {
        "activateMultipleDrivers" : true
   }
}```
3. If you are trying to use the Hydra driver without an HMD, you might want to enable driver_null (no HMD) or set "requireHmd": false.

After starting SteamVR, you should see controllers blinking in the status window until you move your hands into the field of view.

You can use "vrcmd" (with no arguments) to see a list of devices to verify things are working.
use "vrcmd" to verify things are loading:

```...
Driver leap : 2 displays
        leap (Serial number leap0_lefthand)
        leap (Serial number leap0_righthand)
...

You can also use "vrcmd --pollposes" (followed by an index number to limit the output) to see if things are working.

Licenses

The code in this distribution is distributed under the terms of the LICENSE file in the root directory.

The compiled driver and the install directory use the Leap Motion Orion SDK. Use subject to the terms of the Leap Motion SDK Agreement available at https://developer.leapmotion.com/sdk_agreement.

driver_leap's People

Contributors

bjj avatar cbuchner1 avatar connerbrooks 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

driver_leap's Issues

Enhancement: Disable certain/all actions with keyboard shortcuts

Hey there!!! First off, I just want to say how much I LOVE this driver! Would gladly buy you a drink or something if you had a donate button somewhere.

Now, back to the software. I like to play audioshield, and the leap motion does a much better job of tracking where my hands are than I thought! Problem is, it somehow always detects my hands as activating the menu/pause and interrupts my game unfortunately.

I'd like the ability to disable certain/all gestures with a keystroke or so (like the space bar since that's easy to find), or by doing the peace sign or something.

Can this be done?

Cannot uninstall!

I cannot install the new v8 as it will not auto uninstall the current v3 , and for some reason there is no uninstall option for the v3 on my pc (win10) in the program folder or in the apps control panel O__O

Black screen issue again

It's the same problem many people seem to be having with IMU emulation in SteamVR. After a few minutes, the screen goes black and creates an unfortunate disappointment. The only solution was to create an environment variable to disable the 64 bit version of SteamVR. Can someone make a tutorial on how to do so? I'm able to create an environment variable, but what folder/and or file do I target? Any help would be appreciated.

How to get this running from source code?

hello world,
I would like to play around with the code and try to tweak some stuff. I have Visual Studio 15 but no experience with it at all. Just opening the project and hitting compile does obviously not work. I'm a web developer(php, javascript etc.) so excuse my noobish question. I think if I could only get it running from a self compiled source I might be able to find some improvements by trial and error :)
I'd like to tweak gestures and map some actions to hardware buttons (keyboard or gamepad).
Can anyone provide a foolproof step by step guide how to get this running from source?

First steps with DCS (Digital combat simulator)

Hello, I just have make the Alpha Release 0.3 works with the new version of DCS (digital combat simulator) but the hands are rotated.
I am watching the source code to find the portion where you set the controls rotation and at first sight it seems it is in driver_leap.cpp in CLeapHmdLatest::UpdateTrackingState.
Can you help me with this?, I think that a driver compatible with this simulator would be a great boost for this project and for leap motion.
To make it works:

  • Install Alpha Release 0.3 (0.8 not working for me)
  • Download DCS 2.5.0
  • Create a shortcut with the force steam VR parameter
    "C:\Program Files\Eagle Dynamics\DCS World OpenBeta\bin\DCS.exe" --force_steam_VR
  • Launch

Best regards

Error when trying to use source code

I am getting an error on CClientDriver_Leap g_ClientTrackedDeviceProvider; in driver_leap.cpp. Is anyone else?

It is object of abstract class type "CClientDriver_Leap" is not allowed: pure virtual functiion "vr::IClientTrackedDeviceProvider::Init" has no overrider

"Timeout" pose is not recognized in SteamVR

I can´t finish SteamVR tutorial, because I can´t "presss" system menu button with Timeout pose. But when I run "gesture_checker.exe", I am obtaining score 0.95-1 for my Timeout gesture. Where can be problem?
I´m using:

  1. Leap Motion Orion Driver 3.1.3
  2. SteamVR Leap Driver Alpha 8
  3. SteamVR - 14.11.2016 23:50

when I try to run the source code i get "Only Win32 target is supported error"

Hi

I have some ideas to improve the code to suit my needs.
So i don't want to use the standard installation

to give more background
i encountered some errors as you.

i fix the:
#include pch.h by disable precompiled header

the Code 4 by change the settings in driver_leap - preprocessor definitions - to all yes

and SDKDDKVer.h/windows.h by add their location u=in - additional include dirctories

but now i get the
“Only Win32 target is supported!” error

how can i fix it?

Up down left right gestures

It would be amazing if you could add gestures that would move u in games (ex: put hands toghether and point where you want to go) Also, this driver is great, keep up the good work!

Black screen issue

Hi, will start by saying thanks for the great work your doing.

I just wondered if you have heard of this issue.

I currently use your driver with riftcat software, the issue I have is when I start a motion controlled game after a few minutes the screen goes black, head tracking and leap motion still function correctly if I look at the monitor.

It only seems to happen when the leap motion is in use, any other game seems to be fine.

I am just trying to find out whether it is a riftcat or leap motion. Driver issue.

Please add xbox controller support

None of the gestures are consistent at all for me. It does track location quite well though!
This makes it impossible for me to navigate by teleportation even in the simplest of games.

It would be very nice if i could point a direction with one hand and with the other hand hold my xbox controller and press any given button to teleport, grab or click.

ie: i point my right hand in a direction i want to go (this seems to track well in with leap motion) then with my left hand press down on the bumper to activate teleport instead of trying to gesture with my thumbs making accuracy almost impossible.

I don't know how hard this would be to add but it would make it so i can navigate the worlds a lot easier.

i dont know what to do help

so uhh, the title is not wrong here, because I don't know what to do, the attached image is of an error I got trying to uninstall the driver for a newer version ver. 3 to 8 if you must know. and the file it wants does not exist, however, I can't uninstall the driver unless i have the file, so i think i permanently
broke it and may need a new pc
nooooooooooooooooooo

error

I downloaded the #8 and it is saying that I need a new app to open this vrmonitor what now ?

New Skeleton API support?

I know this might be a bit much to ask but it'd be amazing if you could figure out how that new Skeleton API is implemented at a driver level somehow and add skeleton api support, also maybe converting whatever you were doing for vive wand button simulations into their own actions inside the new action system?

No idea how feasible all of this is without having some sort of example to work off of though.

Buttons

If you could make an option to press a key to press the button etc touchpad or grip buttons, that would be great! I have no knowledge in coding

Is it possible to treat my hands as a vive tracker rather than vive controller

I want to use a tracker with controller peripherals. The vive controllers overrides the controls of the tracker, thus not allowing to take any input. When I disconnect the leap monitor, I start receiving input from the tracker. I guess the leap monitor treats my hands as a tracker, it would be possible to get input from my tracker.

not working

Windows 10
DK2
Leapmotion

installed prerequsits not sure if i had to install when steam vr was not running so closed steam vr and reinstalled tried installing all in order 1-4 after uninstalling just 4 that i had orignally installed. using latest orin drivers

https://youtu.be/R-lBBqB1SXc?t=221 here is a video of my trying to get it to run. its kind of frustrating

Support for different mounting positions

Hello,

Firstly got to thank the maintainer of this project for this amazing use for the leap motion, where it works .... it really works well.

So iv been playing with this and an OSVR HDK2 now for a while and the leap itself works fine, but i was seeing that when the leap was attached to the front of the HDK2 my position tracking kept drifting a fair bit, now i verified than non of the HMD LEDs where covered by the leap, but when using the calibration visualiser i noticed that the IR tracking camera was picking up the light emitted by the leap (see image below [Leap on the right of the HDK2])

Image of HDK2

To counter this I tried fixing the leap in the following locations :-

  1. Facing down attached to the bottom of the HMD (this reduced the interference with the HMD LEDs a lot and hands where still tracked close to the body)
  2. Hanging at about chest height from a lanyard (Again reduced interference from with the HMD and tracked .. but obviously lost tracking close above chin level)

In both of the above tests the geometry in game was altered a bit so the hand locations didn't translate properly to controller movement.

I'm happy to attempt implementing this and submitting a PR, however i have no idea where / how to add this.

Regards

Not there yet

I still have the problem with the last 2 releases where the driver isn't installed properly
Since update 3 I have been using the edited method where you put in the actual directory of the steam folder

Release #6 still doesn't fully cover everyone
Edit & #7

Steamvr only detects leap motion under certain cricumstances

If I start steamvr, with with my dk2 off, the only devices that get lit up are the controllers, and they are sensing my hands (putting hands in front of leap and the light goes from flashing to solid, indicating it sees my hand). now if i start steamvr with the hmd on it only detects the dk2 and the camera. if i start steam vr with it off, then turning it on and clickng restart steamvr, it detects just the hmd and camera. I've tried on the last 2 versions of this driver, as far as i can tell, i have visual c++ installed and in my vrconfig file i have multipledrivers set to true and have tried it set to false as well (no difference in behaviour). Please help.

Using a controller/joystick inside a thick glove?

Would it be possible to disable the gestures and use a controller hidden inside a thick glove? Can the leap motion be tricked in this way to maintain the position and the rotation of the hand(so the Controller)? How do I set and map the controller to work with this great driver?

Thanks

ps. It may be difficult for the leapmotion to identify the fingers in a very thick glove, perhaps it would be better to stuff the fingers of a normal glove with cotton and use wire to mold a more neutral pose

left-handed in SteamVR

I'm not sure if this is related to the driver or not, but when I'm in SteamVR, my controllers appear to be set up left-handed. I have to point and click everything with my left hand, not my right.

Something that may contribute to this is that my Leap Motion is installed upside-down to ease with cable routing. Could it be perceiving the controllers as in the opposite hands?

Or if this isn't related to the driver, does anyone know how to switch the handed-ness?

Suggest not make controller go flashing immediately

Steam VR seems to blank out quite a bit if the controllers go offline (flashing), How about adding a delay to how quickly they go offline and just report that the controllers or motionless for the short time it takes Leap to reacquire the your hands. That way Steam VR won't be going blank so often. This is doubly true if you are using revive to run the oculus controllers using this method as oculus will also blank out when steam VR blanks out.

Not lighting "controllers icon" Green in Steam VR

Hello,

I have got the latest version of Orion running, I have double checked I have the Visual C++ redistributables installed. I have leap working in games such as Altspace VR with full tracking of my hands in game.

I have run the #8 version .exe file and installation goes through without apparant issue. Then load up steamVR and it fails to identify any controllers (Neither flashing or green), restarted computer just in case. I have uninstalled that version and tried #3, no different.

I am wondering could it be that steam is not installed on my C: steam is installed on my larger game drive? Could this be an issue? I am not computer illiterate however when it comes to this kind of thing i'm certainly no expert. I have followed the "installation of this driver on the download page" and even the Youtube tutorial by Reality Check VR, The steam VR controllers never "light up" flashing or solid.

Any tips? This is like holding a carrot in-front of my face, CANT WAIT to try it! But I'm out of ideas!

Thanks!!!!

steamvr leap motion

hello I have done all the steps but can not find openvr and it still not working on steamvr can you help thank you

Doesn't seem to work with new SteamVR

Hi!
There is no openVR folder in the "Program Files (x86)\Steam\steamapps\common".
I tried copying the leap drivers to the "Program Files (x86)\Steam\steamapps\common\SteamVR\drivers" but they are not getting recognized.

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.