• June 29, 2022, 12:35:20 AM
• Welcome, Guest

Pages: [1]   Go Down

### AuthorTopic: Head Tracking - how are you set up?  (Read 1085 times)

0 Members and 1 Guest are viewing this topic.

#### SAS~Ghost129er

• SAS Team
• member
• Offline
• Posts: I am a geek!!
• SAS Certified Nuisance
##### Head Tracking - how are you set up?
« on: June 17, 2020, 03:26:23 AM »

So I've done of of them DIY head tracking set ups using a PS3 eye that's modified and my own IR clip, it's working 'alright' but I wonder how people have place their camera, their clip how offset the camera is on the monitor and if it's in level with your head, above you a little, etc kind of a thing... Reason I'm asking is when I look back I get a stupidly high input in the X translation (not rotation) and I /have/ set curves for this, but it's when rotate my head left, that it only takes X translation to the left - looking right, I have little to no translation input being detected, maybe I mounted my clip wrong/offset to the camera..?

Logged

#### Stainless

• Modder
• member
• Offline
• Posts: 1518
##### Re: Head Tracking - how are you set up?
« Reply #1 on: June 17, 2020, 06:52:02 AM »

Well I have added head tracking to a hell of a lot of games, though not IL2

The hardware I was supporting is the Tobii eye tracker that mounts on the bottom of your monitor(s)

In the game code I combine the estimated head orientation from the tracker with the gaze point to create a yaw and pitch value. This is then applied to the camera.

The two values are combined using a curve defined by the user.

How it is applied to the camera depends on the game, but in general it is very easy.

What are you having a problem with?

Logged

#### sniperton

• member
• Offline
• Posts: 1222
##### Re: Head Tracking - how are you set up?
« Reply #2 on: June 17, 2020, 09:10:12 AM »

I, too, have a DIY cap with PS3 camera. It's positioned on a shelf above my monitor, ca. 100 cm apart and ca. 30 cm above eye level. It's fully centered, but directed slightly downward, pointing exactly to my forehead. No offset for the camera was needed.

If you use a clip, however, the rotation point of your virtual head has to be offset both vertically and horizontally to correctly simulate neck movement. If you use OpenTrack, check PointTracker settings > model > model position.
Logged

#### SAS~Ghost129er

• SAS Team
• member
• Offline
• Posts: I am a geek!!
• SAS Certified Nuisance
##### Re: Head Tracking - how are you set up?
« Reply #3 on: June 17, 2020, 09:16:47 AM »

I've used a digital vernier to get the offset position of the correct LED and what not for the clip, but I'm still messing around with camera offset, and offsetting the camera and seeing if I can resolve this transformation issue I'm having.

I mean I don't blame the app because either my design is fuck all cause when I look left, I can even see the middle LED MOVING on a TRANSFORM axis rather than a rotate, so me thinks my mounting sprue/how I've made it might be wrong to begin with...

Which is one of the many reason why I want a 3d printer lol.
Logged

#### sektorao

• member
• Offline
• Posts: 19
##### Re: Head Tracking - how are you set up?
« Reply #4 on: June 17, 2020, 11:07:04 AM »

I use Aruco tracker, it's the best option i tried. I tried Facetracknoir and Edtracer. Aruco tracker needs only Opentrack software, camera and a tracker marker you put on your head. It is excellent.

Logged

#### sniperton

• member
• Offline
• Posts: 1222
##### Re: Head Tracking - how are you set up?
« Reply #5 on: June 17, 2020, 12:47:26 PM »

I know it's somewhat banal to ask, but have you tried disabling translation at all and see how your head behaves?
Logged

#### SAS~Ghost129er

• SAS Team
• member
• Offline
• Posts: I am a geek!!
• SAS Certified Nuisance
##### Re: Head Tracking - how are you set up?
« Reply #6 on: June 17, 2020, 01:27:11 PM »

I have and it works fine, but I really get a kick out of sticking my head out of the cockpit and being able to look where I'm taxing as well as being able to look behind by moving out of the way of the seat and not just staring at the armored plate..

It works perfect on Yaw Pitch and Roll, I mean, it does with everything except that little bug in the translation, but I've gotten used to living with it. I just wanted to see if maybe there's a trick to making it perfect, but from how it's made and how I made it, it's as good as it gets unless I 3d print it or something I guess. -shruggie-
Logged

#### sniperton

• member
• Offline
• Posts: 1222
##### Re: Head Tracking - how are you set up?
« Reply #7 on: June 17, 2020, 03:53:49 PM »

As a last resort, check Options > relative translation. You should prefer rotation before translation.

Here are my OpenTrack settings. Comparing them to yours might perhaps help you find the tiny detail that makes your life hard.

Code: [Select]
[Curves-tx]point-count=1point-0-x=100point-0-y=100[opentrack-ui]button-center=3button-start-tracking=-1button-stop-tracking=-1button-toggle=-1button-toggle-tracking=-1button-zero=-1camera-pitch=-24camera-roll=7camera-yaw=-6center-at-startup=truecentering-method=1compensate-translation=truecompensate-translation-disable-z-axis=falsefilter-dll=Accelaguid-center={4F7ABBD0-3360-11E7-8001-444553540000}guid-start-tracking=guid-stop-tracking=guid-toggle=guid-toggle-tracking=guid-zero=keycode-center=keycode-start-tracking=keycode-stop-tracking=keycode-toggle=keycode-toggle-tracking=Shift+F10keycode-zero=Shift+F9pitch-alt-axis-sign=falsepitch-invert-sign=falsepitch-source-index=4pitch-zero-pos=0protocol-dll=freetrack 2.0 Enhancedroll-alt-axis-sign=falseroll-invert-sign=falseroll-source-index=6roll-zero-pos=0tracker-dll=PointTracker 1.1use-system-tray=truex-alt-axis-sign=falsex-invert-sign=falsex-source-index=0x-zero-pos=0y-alt-axis-sign=falsey-invert-sign=falsey-source-index=1y-zero-pos=0yaw-alt-axis-sign=falseyaw-invert-sign=falseyaw-source-index=3yaw-zero-pos=0z-alt-axis-sign=falsez-invert-sign=falsez-source-index=2z-zero-pos=0start-in-tray=trueuse-camera-offset-from-centering=truecompensate-translation-disable-source-pitch=falsecompensate-translation-disable-source-yaw=falsecompensate-translation-disable-x-axis=falsecompensate-translation-disable-source-roll=falsecompensate-translation-disable-y-axis=falsekeycode-disable-translation-compensation-while-held=Alt+F8relative-translation-mode=1neck-depth=10neck-enable=truekeycode-center-alt=F12[Curves-tx_alt]point-count=1point-0-x=100point-0-y=100[Curves-ty]point-count=1point-0-x=100point-0-y=100[Curves-ty_alt]point-count=1point-0-x=100point-0-y=100[Curves-tz]point-count=1point-0-x=100point-0-y=100[Curves-tz_alt]point-count=1point-0-x=100point-0-y=100[Curves-rx]point-count=1point-0-x=180point-0-y=180[Curves-rx_alt]point-count=1point-0-x=180point-0-y=180[Curves-ry]point-count=1point-0-x=180point-0-y=180[Curves-ry_alt]point-count=1point-0-x=180point-0-y=180[Curves-rz]point-count=1point-0-x=180point-0-y=180[Curves-rz_alt]point-count=1point-0-x=180point-0-y=180[proto-freetrack]use-memory-hacks=falseused-interfaces=0[tracker-pt]active-model-panel=1automatic-threshold=falsecamera-fov=56camera-fps=60camera-name=USB2.0 Cameracamera-res-height=480camera-res-width=640cap-x=65cap-y=130cap-z=130clip-by=70clip-bz=80clip-ty=40clip-tz=30dynamic-pose-resolution=trueinit-phase-timeout=500m_01-x=0m_01-y=0m_01-z=0m_02-x=0m_02-y=0m_02-z=0max-point-size=10min-point-size=1.7model-centroid-x=0model-centroid-y=-267model-centroid-z=0threshold-primary=128threshold-slider=@Variant(\0\0\0\x7f\0\0\0\x18::options::slider_value\0@W@\0\0\0\0\0\0\0\0\0\0\0\0\0@o\xe0\0\0\0\0\0)blob-color=2[migrations]last-migration-at=20180118_00~[modules]filter-dll=Accelaprotocol-dll=freetrack 2.0 Enhancedtracker-dll=PointTracker 1.1[opentrack-mappings]pitch-alt-axis-sign=falseroll-alt-axis-sign=falsex-alt-axis-sign=falsey-alt-axis-sign=falseyaw-alt-axis-sign=falsez-alt-axis-sign=falsepitch-max-output-value=-180y-max-value=15yaw-max-value=30pitch-max-value=25x-max-value=30z-max-value=30roll-max-value=25[spline-X]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3?\xe0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\x12\0\0\0\0\0\0@1\0\0\0\0\0\0@&\0\0\0\0\0\0@R\xc0\0\0\0\0\0)[alt-spline-X]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x1@>\0\0\0\0\0\0@R\xc0\0\0\0\0\0)[spline-Y]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3?\xe0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\b\0\0\0\0\0\0@*\0\0\0\0\0\0@\x18\0\0\0\0\0\0@R\xc0\0\0\0\0\0)[alt-spline-Y]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@H\0\0\0\0\0\0@\x4\0\0\0\0\0\0@R\x80\0\0\0\0\0)[spline-Z]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x2@\0\0\0\0\0\0\0@(\0\0\0\0\0\0@\x1e\0\0\0\0\0\0@R\xc0\0\0\0\0\0)[alt-spline-Z]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x2?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@>\0\0\0\0\0\0@R\xc0\0\0\0\0\0)[spline-yaw]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@>\0\0\0\0\0\0@f\x80\0\0\0\0\0@D@\0\0\0\0\0@f\0\0\0\0\0)[alt-spline-yaw]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x1@f\x80\0\0\0\0\0@f\x80\0\0\0\0\0)[spline-pitch]points="@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x4?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\x12\0\0\0\0\0\0@7\0\0\0\0\0\0@9\0\0\0\0\0\0@f\x80\0\0\0\0\0@;\0\0\0\0\0\0@f0\0\0\0\0\0)"[alt-spline-pitch]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3@\x4\0\0\0\0\0\0@\x10\0\0\0\0\0\0@\x10\0\0\0\0\0\0@A\0\0\0\0\0\0@\x1a\0\0\0\0\0\0@[\x80\0\0\0\0\0)[spline-roll]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3@9\0\0\0\0\0\0@K\x80\0\0\0\0\0@Q\xc0\0\0\0\0\0@b\xa0\0\0\0\0\0@f\x80\0\0\0\0\0@c\xb0\0\0\0\0\0)[alt-spline-roll]points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x1@f\x80\0\0\0\0\0@f\x80\0\0\0\0\0)[accela-sliders]ewma=@Invalid()rotation-deadzone=@Variant(\0\0\0\x7f\0\0\0\x18::options::slider_value\0?\x84z\xe1G\xae\x14{\0\0\0\0\0\0\0\0?\xc9\x99\x99\x99\x99\x99\x9a)rotation-nonlinearity=@Invalid()translation-sensitivity=@Variant(\0\0\0\x7f\0\0\0\x18::options::slider_value\0?\xe4\xcc\xcc\xcc\xcc\xcc\xcd?\xa9\x99\x99\x99\x99\x99\x9a?\xf8\0\0\0\0\0\0)translation-deadzone=@Invalid()rotation-sensitivity=@Variant(\0\0\0\x7f\0\0\0\x18::options::slider_value\0@\x3\x99\x99\x99\x99\x99\x9a?\xa9\x99\x99\x99\x99\x99\x9a@\x4\0\0\0\0\0\0)`
Logged
Pages: [1]   Go Up

Page created in 0.175 seconds with 28 queries.