mouse cursor rotation compensation

Post Reply
PhoenixBvo
Posts: 2
Joined: Tue May 01, 2007 4:14 am
Location: Germany

mouse cursor rotation compensation

Post by PhoenixBvo » Wed Feb 02, 2011 4:18 am

Dear Naturalpoint Devs,

as a loyal (owned TrackIR 2, 3 Pro, 4 Pro & 5) and frequent user of your head tracking technology, I would finally like to post the following request:

It's an idea I've had for a long time and applies primarily to sims with clickable cockpits.
In these cases the user has the task of operating some switch or knob in the 3D-cockpit. To accomplish this, the viewport in the cockpit axes being controlled by the head position has to be coordinated with the mouse pointer location on the screen.
Although training together with a good TrackIR profile and IR-noise free environment will allow fairly efficient operation, it remains fairly unnatural.
In practice, any viewport (head) movement will cause the mouse cursor to drift off the desired cockpit location and has to be actively compensated by the mouse.

Consider the human body: the mouse cursor simulates the human hand. The hand is attached to the arm which, in most humans, is not directly attached to the head. The neck primarily provides us with three rotational degrees of freedom with respect to the torso. This means any head rotations don't influence the hand position. This as opposed to translations which are effected by moving the upper torso which also moves the arms/hands.

Considering the above anatomical facts, it would be more natural if the TrackIR software had an additional mode which would compensate any cursor movement due rotation of the viewport. Movement due to translations would be unaffected.

I would like to implement this myself, but I lack the time and knowledge of the required interfaces with the TrackIR software, plus it would be much more elegant if such a feature were to be integrated in the software itself.

Just hoping to make TrackIR even better. Thank you for your consideration.

Best regards,
Mark

Seth Steiling
Posts: 1366
Joined: Fri Jun 27, 2008 11:29 am
Location: Corvallis, Oregon

Re: mouse cursor rotation compensation

Post by Seth Steiling » Wed Feb 02, 2011 1:51 pm

Hi Phoenix. Thanks for the well thought-out suggestion. You've honed in on a key trade-off with scaled VR. If you want to see 180+ degrees in-game, while still looking at the monitor, you have to scale the motion. But, if you scale the motion, it makes it more difficult to rest on a viewpoint outside of the deadzone.

Integrating situational mouse control with TrackIR view control is unfortunately something that's outside of our scope. Game developers will often scale the 6 DOF after they receive it from the TrackIR API. This fact alone makes it impossible for us to offset mouse movement from head rotations, because we never really know what 6 DOF data will end up driving your view.

I think we can potentially address this issue with a more dynamic, adaptive smoothing mechanism--something that we've discussed internally a few times before. I'll ping the devs on this idea and see where we stand.
Marketing Manager
TrackIR | OptiTrack

PhoenixBvo
Posts: 2
Joined: Tue May 01, 2007 4:14 am
Location: Germany

Re: mouse cursor rotation compensation

Post by PhoenixBvo » Thu Feb 03, 2011 2:23 am

Thank you for the quick response Seth,

I understand the difficulty you're describing. That would make it application specific. I'll ask Eagle Dynamics, but they have little time for new ideas with the heaps of items on their todo-lists. I fear my request will end up somewhere way at the bottom.

Like I said, this problem is quite universal throughout applications combining TrackIR and mouse operation.
A NaturalPoint-side solution might still work though, if one were to assume a linear scaling factor being applied to the raw 6DOF data. Either the user would have to manually adjust this scaling factor until the movement is fully compensated or you might grab a small number of pixels around the mouse pointer, apply a feature tracking algorithm (e.g. Lucas-Kanade) to that and automatically adjust the gains to compensate for the rotation. A problem there is that this would require zero translation and rotation in all 3 axes. The trackIR software might give a predefined motion output during the tuning process, which would take only a few seconds. The identified gains may be stored in a profile. I believe the application detection might allow the TrackIR software to automatically choose the correct compensation for a supported application.

Having the predefined motion input would even allow nonlinear motion scaling factors applied by the application to be identified and compensated for by the TrackIR software. OR, you could work together with game developers to get the correct scaling.

Just some thoughts...

Cheers, Mark

Post Reply