-
-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
General idea. Want to help develop? Want to be paid to help develop? #1
Comments
I would like to support this as "contributing funds for a developer" |
@pottedmeat7 or @r57zone both have projects on github and related experience. Would either of you be interested in contributing or being paid to work on this by the community? |
I see @SuperEvenSteven did some similar work, any interest here or know of anyone I might contact? |
Hello, I would be willing to help out. Might be a little busy with my day job. Also would take me some time to fully understand the requirements of a motion compensation system. |
I have very low income, but having working motion compensation is critical to one of the things that matters most to me so I will definitely chip in what I can. |
In! I would trust my Money to Noorbeast any time! Also i can offer to do testings for new Versions and Changes. @rosskevin I would like to extend the concept: Reduce the surface area of the original code, limit it to motion compensation only and support this limited use case FOR ALL MAJOR VR HMDs! |
I guess you saw my other post as well eh? =) What you suggest sounds very much like what @rosskevin suggested. I know that making Oculus headsets work can be an issue because of those evil Facebook bastards and their closed ecosystem. I think the reasonable request would be "guaranteed" functionality for lighthouse (native SteamVR/OpenVR) systems, and "best effort" on making alternative equipment work. I say this only because asking too much often results in getting nothing at all. By the way, this is absolutely the reason I went with Index. Native SteamVR/OpenVR equipment means almost guaranteed functionality for any working SteamVR plugins etc. I still want that Pimax 5K, but I had to play it safe. |
I have less knowledge of motion compensation itself. However I would say one of the larger development issues with motion compensation, is that currently it's not natively supported by openvr. |
Might you look at the OVRIE functionality and see how that goes about modifying the HMD pose? You should be able to install it and fiddle with it even if you want, just set one controller as the motion compensation device and move it around with your hand. |
Thanks for that explanation @pottedmeat7. With this codebase, is it possible to replace the We are looking to drop all extraneous functionality - input mapping etc, we only need to support selecting the reference device, the algorithms applied, and try to supply the manipulation through Please correct any misunderstanding I have - I've just started researching it (and collecting links in the wiki). @JoeLudwig if you would be willing to advise or confirm the proper course of action, I would very much appreciate your opinion. |
I've created a gitter room to chat in and discuss https://gitter.im/OpenVR-MotionCompensation/community# |
@pottedmeat7 - fyi have been collecting points of interest in the wiki https://github.com/rosskevin/OpenVR-MotionCompensation/wiki/Background-issues-commits |
Very good idea, thanks. I'm a (soon to be) user of OVRIE and unfortunately can't contribute much apart from money and maybe some ideas. But count me in when it comes to that! |
OpenVR Input Emulator and it's ilk (basically anything that hooks vrserver to intercept calls from other drivers) cause many, many crashes on end user machines. They prevent the driver back-compatibility code in vrserver from working properly whenever changes are made to the driver interface. Then they cause vrserver to crash in ways that users don't tend to understand. If you hear someone complaining about "safe mode" in SteamVR it's almost always because of one of these drivers. I strongly suggest that you come up with some way to accomplish these goals without taking that approach. Many of the tools you need are likely already present in the input system. What are you missing? See also ValveSoftware/openvr#1153 (which I'm working on a fix for.) |
@JoeLudwig Thank you for joining the conversation. Though I have been using OVRIE for quite some time and only once had a short stretch where I was getting crashes your point is well taken. It seems you have significant knowledge of the system. Do you understand what it is that we require? I'll try to give a very brief explanation just in case you are coming in from outside without knowledge of the problem: We need to subtract the movements of the motion simulator from the movements of the HMD and controllers so that the head and hand tracking is relative to the moving cockpit rather than relative to the real world. This must be done on all 6 DOF, three positional axes, and three rotational axes. OVRIE works for many of us, but as a general rule we are unable to use our bass shaker systems because the vibration confuses the tracking on the device we are using to measure the movements of the motion simulator. Do you have any suggestions on how this could be tackled using the "tools already present" that you mentioned? If you have any questions please ask! |
Hi @JoeLudwig what motion compensation needs is the pose updates. |
I'm mainly a VR sim-racer and will be adding motion to my rig soon. I have been reading about the motion cancellation stuff for a while and I'm a real noob at this stuff, but I would GLADLY donate to have a dev work on it and get a working system for motion rigs and for motion cancellation. |
↑↑↑ Me too, |
I don't mean to throw a wrench into the works, and I totally understand you aren't going to change the scope of the project just for me but tonight I had a very very successful proof of concept test that requires the OVRIE functionality for swapping controllers and setting offsets. Going forward, I'm really going to need that functionality for my sim unless Valve adds the ability to fully customize the tracker offset in their software. Here is a (REALLY CRAPPY!) video. Don't mind the mess around the sim, parts, sawdust, and tools everywhere.... For this video to really be worth anything I'd need to have captured the gameplay to put up side by side. I'll try to get that done later in the week. For the first bit of the video you can (just barely) see the monitor in the background so you can see my DCS hand. Explanation: For several years on and off I've been trying to find a satisfactory solution to using VR in a full simulator cockpit. I find that my immersion is completely ruined by having to fumble blindly to find the buttons and switches that are right in front of me because I can't see my hands. In this video, I have the beginning of my Huey sim cockpit, an (unfinished) complete forward console. I'm wearing the VR headset thorughout the video. I have used OVRIE to have a tracker attached to my hand emulate an Index controller, and I've used the OVRIE offsets functionality to get my hands orientation and position matched up pretty precisely. The hand is not animated at all, but the 3D model is in a pretty standard relaxed hand pose so it's easy to just relax my hand so it matches. I have aligned the real switches and knobs so that when I put the middle knuckle of my VIRTUAL index finger on the right side of the switch or knob the same joint of the same REAL finger is in the same place. In the video I demonstrate how quickly and accurately I can find my knobs and switches. It's very satisfactory. Now the only problem is I have to worry about OVRIE getting broken. =( |
@TripRodriguez that sounds very cool - your video is unavailable for me in the U.S.. That is not within the scope of OVRIE was very ambitious in scope, and I believe that is one reason why it was interesting and developed at first, then subsequently abandoned. As such, I support the creation of an OpenVR contrib or extras or ? github organization to collect these purpose built projects, but I definitely want to reduce each project to a minimal amount of code for the designated purpose. If any particular project fails, I wouldn't want to see all of them fail (or fall into disrepair). |
@TripRodriguez I agree with @rosskevin . If you require modifications to controller poses, or controller input, it is much more flexible to create simulated input or simulated poses with a another driver devoted to that purpose. Think of another device that renders two hands where your index controllers are, and can supply any input that you'd like. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Let's keep this issue on topic to keep information and attention on motion compensation. Some people cc'd here get a lot of notifications, let's hope they stay engaged and don't ignore due to off topic messages. Please feel free to to use discord or I can create a separate channel on request. |
Hi @JoeLudwig! That would allow for so many useful applications:
|
Personally I like the idea of having a compensation mechanism. However, I think that overriding the intended/default values originating from official drivers will lead to much headache, for developers and users alike. The history of matzman666 project speaks to this scenario with multiple devices/software breaking without any warning or heads up. Would it not be better to just use the Input system as it is basically architected to allow for this scenario? A user would then have a proper "motion compensation device" in a driver, which is able to take input from any controller/action and then output the compensation as a new action. The user would then bind to the compensated data/action in the intended application. This way users would clearly know that it is compensated data that they are using. Consider the "motion compensation device" to be analogues to a derived class where the base class is whatever openvr officially supports. Personally I'd not be too happy if someone did motion compensation on the Omnideck by all of a sudded making the hardware run 3 times faster while maintaining the in game speed - causing a major discrepancy between the physical and virtual speed. |
Updates:
I have had trouble building/testing due to work constraints, so if there are other technical users that can review/build/test it will be a welcome role to help @pottedmeat7 verify changes. |
This comment has been minimized.
This comment has been minimized.
@ilimo we have not put out a release and this is not a support channel for past releases from a different repository. You might chat with others on discord to see if you can get help. Please keep focus on the issue topic. |
This comment has been minimized.
This comment has been minimized.
@ilimo - your comment was a personal support request for something we did not release. Github is a for developers, we focus on the issue defined by the subject When we have updates for the general user community, you will see them on the main page. Feel free to watch but this issue is targeted at gathering developer support, please don't create additional noise here. |
I'm going to close this issue now.
If you would like to create a PR, be a maintainer, or chip in with technical work (must be able to create your own builds and hopefully test), please connect with us on https://discord.gg/r7krmSd For other issues/discussions/research, please open a new dedicated issue on a well defined topic. |
Summary
I have no idea what I'm doing in this realm but I am an experienced software developer and entrepreneur with plenty of experience in open source (check my profile).
I'm looking to put together, in any way possible, something stable for the community to use for all of us using SteamVR with motion compensation. Whether it is to try and organize several people to contribute, or to try and raise funds to pay someone, let's get this done.
Problem
The original OpenVR-InputEmulator project has been abandoned, and while the old compiled code is currently still working with the runtime, it is compiled against
IVRControllerComponent
which has been removed (in https://github.com/ValveSoftware/openvr/releases/tag/v1.0.12). At any time the SteamVR runtime can drop support because this api has been deprecated for quite some time, and everyone with motion simulators could no longer use their VR headsets with openvr/steamvr.Concept
Reduce the surface area of the original code, limit it to motion compensation only and support this limited use case.
More than you might want to know
I am actively seeking to shrink the scope and get a minimal motion cancellation project maintained with up-to-date dependencies. If you are interested in:
to support this work, please comment or contact me via email to discuss. I am not looking to get paid, but I am looking to get the right people motivated to work on the project.
I'm an experienced developer but not with c++ for quite some time, and not with the ms tools or openvr libraries. It may be best for me to try and organize the project or pay to get the right people working on the project. @matzman666 is certainly welcome to contact me - I would love to collect support funds and pay him - but it seems like he is no longer active. Regardless, it is important functionality that many of us with motion simulators need.
Want to discuss?
Comment here or
The text was updated successfully, but these errors were encountered: