PDA

View Full Version : Head Tracking problem with Cap



RobfromME
Feb-12-2017, 14:09
Good afternoon, all,

While waiting for my upcoming doctor's appointment for new computer glasses (thanks to ATAG_Lolsav and ATAG_Snapper on the forum for this recommendation!), I thought I'd try setting up my head tracking.
I have a ball cap I made 5-6 years ago that I used with FreeTrack on Wings over Flanders Fields and it worked quite well. I tried using the ball cap with both Factracknoir and OpenTrack 2.2 using the Pointracker1.0 Tracker Source and either my hat is unusable, or there's something I'm missing in the setup, or both! FreeTrack won't work on my Windows 10 computer, so that's no longer an option. Here's the problems:

Head
tracker jumps around 20 to 30 degrees in pitch yaw with no apparent input.
With 5-10 degree input / zero output before movement setting on curves, it still is not stable, and will zoom in / out in translation along the fuselage axis
If I pitch my head down, out put is greater than 90 degrees and I'm looking at the bottom back side of the seat.
If I pitch my head up, I get only 10 degrees or so output and then it won't move any more
If I use Headtracking as the input, it's much more stable, but yaw becomes jittery and then messes up completely if I try to look much behind the trailing edge of the wing.


I've zeroed, re-zeroed, and so forth but to no avail.

I'm at a bit of a loss what to do. I'm playing with settings, but I'm afraid I really don't know what the heck I'm doing and that's why nothing is apparently changing.

If any of you folks have run into this and could offer some suggestions, I'd sure appreciate it. I thought of making a tracking clip instead, but the hat seemed to work so well before.

Thanks so much!

Warmest regards,
Rob

Perfesser
Feb-12-2017, 15:58
If you're getting any tracking at all it isn't your hat. Matter of fact a hat will track more precisely than a clip simply because the points are farther apart.
If I look too far up with Opentrack it also "flips over" - I use a hotkey to restart tracking.

I'll post my Opentrack profile here if you want to try pasting parts of that into a profile.
You'll want to keep your numbers in the [tracker-pt] section - that seems to deal with the physical dimensions of my LED's and camera settings.
Also my entries for hotkeys button-center and button-restart-tracking won't be the same

[migrations]
last-migration-at=20160917_00~

[proto-freetrack]
used-interfaces=0

[tracker-pt]
active-model-panel=1
camera-fps=60
camera-name=PS3Eye Camera
cap-x=125
cap-y=130
cap-z=160
model-centroid-x=0
model-centroid-y=-146
model-centroid-z=-52
threshold-primary=66
automatic-threshold=false

[accela-sliders]
rotation-deadzone=@Variant(\0\0\0\x7f\0\0\0\x16options::sli der_value\0?\xb4z\xe1G\xae\x14{\0\0\0\0\0\0\0\0@\0 \0\0\0\0\0\0)

[opentrack-ui]
centering-method=1
keycode-center=
compensate-translation=true
keycode-restart-tracking=
use-system-tray=false
yaw-invert-sign=false
pitch-invert-sign=false
roll-invert-sign=false
x-invert-sign=false
y-invert-sign=false
z-invert-sign=false
button-center=20
button-restart-tracking=22
guid-center={2EA57D60-BE30-11E0-8001-444553540000}
guid-restart-tracking={2EA57D60-BE30-11E0-8001-444553540000}

[spline-X]
points="@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x2@\x12\0\0\0\0\0\0?\xf0\0\0\0\0\0\0@=\x8 0\0\0\0\0\0@R\x80\0\0\0\0\0)"

[spline-Y]
points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x2@\x1a\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-Z]
points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3@\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\x12\0\ 0\0\0\0\0\0\0\0\0\0\0\0\0@>\0\0\0\0\0\0@R\x80\0\0\0\0\0)

[spline-yaw]
points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x2@@\x80\0\0\0\0\0@c`\0\0\0\0\0@f@\0\0\0\ 0\0@e\x90\0\0\0\0\0)

[spline-pitch]
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@H\0\0\ 0\0\0\0@d\xa0\0\0\0\0\0@f`\0\0\0\0\0@e@\0\0\0\0\0)

[spline-roll]
points=@Variant(\0\0\0\x7f\0\0\0\xfQList<QPointF>\0\0\0\0\x3@5\0\0\0\0\0\0@)\0\0\0\0\0\0@T\0\0\0\0\ 0\0@^\0\0\0\0\0\0@f`\0\0\0\0\0@e\x90\0\0\0\0\0)

RobfromME
Feb-12-2017, 19:10
Good evening, Professer,

Thanks so much for the info, and your time to put it together! I'll try it out later tonight or tomorrow and let you know what I discover. I also appreciate the feedback on the hat vs other methods of LED mounting.

Once again, thank you. I do appreciate the help!

All my best, Rob

Pans
Feb-12-2017, 19:50
Hi Rob,

Hopefully Perfesser's settings will help you out, but if not, just a couple of things that might worth checking. I apologise if any or all of these are issues you've already considered:



Are your IR emitters / LEDs spaced correctly on your cap? Presuming you've got a 3-point model, the middle one has to have sufficient horizontal and vertical separation from the other two for the software to be able to interpret the changing shape of the triangle as head movement. If this is an arrangement that previously worked, have any of the IR emitters moved or stopped working?

Have you set up your "model" in either opentrack or FTnoIR? It might be worth double-checking that the numbers in there are about right. From my experience they don't need to be exactly perfect, but the more accurate they are, the more accurate your head tracking will be.

Have you got nice flat IR emitters or do they have a domed lens like normal LEDs? If you've got the latter you can sand the ends flat and this will make them more directional and consequently much more effective for head tracking.

In your preferred tracking software, is it detecting and following all of the IR points when you move your head around? If not, adjust the point extraction threshold, min and max diameters.

Is there any interference? Any bright windows behind you or overhead lighting in the camera view? Any strong light source can interfere with your tracking. Make sure the software isn't picking up interference because any rogue points it locks onto will immediately break your tracking.

Lastly, don't set your dead zones too high in your curves, preferably not at all; you'll soon train yourself to sit still!


For what it's worth, I get better mileage with FacetrackNoIR 1.70 (with hotfix) using the point tracker plugin than I do with Opentrack, despite it being more or less the same thing. I also prefer to kill the Y axis in the translations tab and make the X and Z axes less responsive.

I hope some of this might help you!

Baffin
Feb-13-2017, 10:11
This behavior sounds to me as though there is some sort of light source aimed at or being reflected onto the camera. Typically this happens when morning or evening light courses through a window when the sun is low.

To prove this wrong, test your TIR5 in a totally dark room at night. If it still occurs, you know that I am wrong. :goodluck:

RobfromME
Feb-13-2017, 19:25
Good evening, guys,

I'm still having trouble, but I had a chance to try some of the suggestions out this evening with the following results:

Baffin's check:
Backround lighting - completely off in a dark room (dark outside, too). No change in behavior of tracking. (Thanks, Baffin...this was helpful in eliminating what I've learned is a fundamental problem with IR tracking)

Panser's checks:
Are your IR emitters / LEDs spaced correctly on your cap? Presuming you've got a 3-point model, the middle one has to have sufficient horizontal and vertical separation from the other two for the software to be able to interpret the changing shape of the triangle as head movement. If this is an arrangement that previously worked, have any of the IR emitters moved or stopped working?
Here's my setup. I hope you can see it...it's a screen capture of the page:
26755
I can see all three LEDs in the camera's view window in the FTnoIR and Opentrack GUI.

Have you set up your "model" in either opentrack or FTnoIR? It might be worth double-checking that the numbers in there are about right. From my experience they don't need to be exactly perfect, but the more accurate they are, the more accurate your head tracking will be.
I just finished checking and they are correct (but I'm going to check again as the hat's not the easiest to measure!)

Have you got nice flat IR emitters or do they have a domed lens like normal LEDs? If you've got the latter you can sand the ends flat and this will make them more directional and consequently much more effective for head tracking.
They are flat faced emitters.

In your preferred tracking software, is it detecting and following all of the IR points when you move your head around? If not, adjust the point extraction threshold, min and max diameters.
The image in the "input" window of my IR points move in the expected direction, but the output face or octopus jumps around and sometimes is right and other times is way off.

Is there any interference? Any bright windows behind you or overhead lighting in the camera view? Any strong light source can interfere with your tracking. Make sure the software isn't picking up interference because any rogue points it locks onto will immediately break your tracking.
I tried this evening with the lights in the room off, but it didn't help the problem.

Lastly, don't set your dead zones too high in your curves, preferably not at all; you'll soon train yourself to sit still!
I just tried this after eliminating my dead zones, but it's still acting up.

For what it's worth, I get better mileage with FacetrackNoIR 1.70 (with hotfix) Forgive my ignorance, Panser, but what is the "hotfix"? I'm using FTnoIR 1.70 like you suggested for the FTnoIR tracker.

Perfesser,

I compared your opentrack ini file to my opentrack ini file, but it really looks quite different and I'm not sure how to incorporate it correctly. I'll try and post mine here, and let me know if it appears.

[Tracking]
Smooth=50
NeutralZone=3
sensYaw=500
sensPitch=500
sensRoll=500
sensX=500
sensY=500
sensZ=500
invertYaw=false
invertPitch=true
invertRoll=false
invertX=true
invertY=false
invertZ=false
useEWMA=true
redYaw=100
redPitch=100
redRoll=100
redX=100
redY=100
redZ=100
minSmooth=1
powCurve=25
maxSmooth=40

[GameProtocol]
Selection=2
DLL=FTNoIR_Protocol_FT.dll

[KB_Shortcuts]
Keycode_Center=199
Shift_Center=false
Ctrl_Center=false
Alt_Center=false
Keycode_StartStop=79
Shift_StartStop=false
Ctrl_StartStop=false
Alt_StartStop=false
Keycode_GameZero=199
Shift_GameZero=false
Ctrl_GameZero=true
Alt_GameZero=false
SetZero=true
SetEngineStop=true
Keycode_Inhibit=0
Shift_Inhibit=false
Ctrl_Inhibit=false
Alt_Inhibit=false
Inhibit_Pitch=false
Inhibit_Yaw=false
Inhibit_Roll=false
Inhibit_X=false
Inhibit_Y=false
Inhibit_Z=false
Enable_ReverseAxis=false
RA_Yaw=40
RA_ZPos=-20
RA_ToZPos=50
MouseKey_Center=0
Disable_Beep=false
MouseKey_GameZero=0
MouseKey_StartStop=1
MouseKey_Inhibit=0

[FTIR]
useTIRViews=false
useDummyExe=true

[TrackerSource]
Selection=1
DLL=FTNoIR_Tracker_PT.dll
2ndDLL=None

[Curves]
Yaw_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0)
Yaw_point2=@Variant(\0\0\0\x1a@B\0\0\0\0\0\0@I\0\0 \0\0\0\0)
Yaw_point3=@Variant(\0\0\0\x1a@`@\0\0\0\0\0@7\0\0\ 0\0\0\0)
Yaw_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0 \0\0\0\0\0)
Pitch_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0)
Pitch_point2=@Variant(\0\0\0\x1a@B\x80\0\0\0\0\0@I \0\0\0\0\0\0)
Pitch_point3=@Variant(\0\0\0\x1a@`\x80\0\0\0\0\0@7 \0\0\0\0\0\0)
Pitch_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I \0\0\0\0\0\0)
Roll_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0)
Roll_point2=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@:\ 0\0\0\0\0\0)
Roll_point3=@Variant(\0\0\0\x1a@B\0\0\0\0\0\0@?\0\ 0\0\0\0\0)
Roll_point4=@Variant(\0\0\0\x1a@S\0\0\0\0\0\0@I\0\ 0\0\0\0\0)
X_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0)
X_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@>\0\0\0\0\0\0)
X_point3=@Variant(\0\0\0\x1a@\\\x80\0\0\0\0\0@&\0\0\0\0\0\0)
X_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0 \0\0\0\0)
Y_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0)
Y_point2="@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@,\0\0\0\0\0\0)"
Y_point3=@Variant(\0\0\0\x1a@\\\x80\0\0\0\0\0@8\0\ 0\0\0\0\0)
Y_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0 \0\0\0\0)
Z_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0)
Z_point2=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@*\0\0 \0\0\0\0)
Z_point3=@Variant(\0\0\0\x1a@\\\x80\0\0\0\0\0@9\0\ 0\0\0\0\0)
Z_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0 \0\0\0\0)

[SMTracker]
FilterLevel=2
EnableRoll=true
EnablePitch=true
EnableYaw=true
EnableX=true
EnableY=true
EnableZ=true

[Curves-Yaw]
point-count=3
point-0-x=0
point-0-y=0
point-1-x=25
point-1-y=90
point-2-x=50
point-2-y=180

[Curves-PitchUp]
point-count=3
point-0-x=5.5
point-0-y=59
point-1-x=10.75
point-1-y=124
point-2-x=20.25
point-2-y=180

[Curves-PitchDown]
point-count=3
point-0-x=8.75
point-0-y=6.5
point-1-x=25
point-1-y=22.5
point-2-x=49.25
point-2-y=41.5

[Curves-Roll]
point-count=3
point-0-x=0
point-0-y=0
point-1-x=25
point-1-y=90
point-2-x=50
point-2-y=180

[Curves-X]
point-count=2
point-0-x=6.25
point-0-y=6
point-1-x=50
point-1-y=180
point-2-x=50
point-2-y=0

[Curves-Y]
point-count=2
point-0-x=4.75
point-0-y=7
point-1-x=50
point-1-y=180
point-2-x=50
point-2-y=0

[Curves-Z]
point-count=2
point-0-x=5.25
point-0-y=8
point-1-x=50
point-1-y=180

[Filter]
DLL=FTNoIR_Filter_EWMA2.dll

[PointTracker]
CameraId=0
CameraF=@Variant(\0\0\0\x87?\x80\0\0)
CameraResX=640
CameraResY=480
CameraFPS=30
CameraPitch=0
PointExtractThreshold=128
PointExtractMinSize=2
PointExtractMaxSize=50
PointModelM01x=@Variant(\0\0\0\x87\xc2\x8a\0\0)
PointModelM01y=@Variant(\0\0\0\x87\xc2\xbe\0\0)
PointModelM01z=@Variant(\0\0\0\x87\xc2\xa2\0\0)
PointModelM02x=@Variant(\0\0\0\x87\x42\x8a\0\0)
PointModelM02y=@Variant(\0\0\0\x87\xc2\xbe\0\0)
PointModelM02z=@Variant(\0\0\0\x87\xc2\xa2\0\0)
tMHx=@Variant(\0\0\0\x87\x41\xfd\xa3\xe6)
tMHy=@Variant(\0\0\0\x87\xc2h\xae\xc8)
tMHz=@Variant(\0\0\0\x87\x41\x9d\xde\x9d)
DynamicPoseResolution=true
VideoWidget=true
SleepTime=10
ResetTime=1000
EnableRoll=false
EnablePitch=true
EnableYaw=true
EnableX=true
EnableY=true
EnableZ=true

[PointTrackerDialog]
ActiveModelPanel=1
CustomM01x=0
CustomM01y=40
CustomM01z=-30
CustomM02x=0
CustomM02y=-70
CustomM02z=-80
ClipTopHeight=40
ClipTopLength=30
ClipBottomHeight=70
ClipBottomLength=80
CapHalfWidth=69
CapHeight=95
CapLength=81

[FT]
UsedInterface=2

[VJoy]
Selection=1

[Accela]
Reduction=100

[Curves-Accela-Scaling-Rotation]
point-count=12
point-0-x=0
point-0-y=0
point-1-x=0.308900523560209
point-1-y=0.0666666666666667
point-2-x=0.565445026178011
point-2-y=0.226666666666667
point-3-x=0.769633507853403
point-3-y=0.506666666666667
point-4-x=0.994764397905759
point-4-y=1
point-5-x=1.23560209424084
point-5-y=1.61333333333333
point-6-x=1.47643979057592
point-6-y=2.37333333333333
point-7-x=1.66492146596859
point-7-y=3.12
point-8-x=1.80628272251309
point-8-y=3.92
point-9-x=1.91623036649215
point-9-y=4.70666666666667
point-10-x=2.00523560209424
point-10-y=5.44
point-11-x=2.07329842931937
point-11-y=6

[Curves-Accela-Scaling-Translation]
point-count=10
point-0-x=0
point-0-y=0
point-1-x=0.282722513089005
point-1-y=0.08
point-2-x=0.492146596858639
point-2-y=0.306666666666667
point-3-x=0.764397905759162
point-3-y=0.84
point-4-x=1.00523560209424
point-4-y=1.62666666666667
point-5-x=1.17277486910995
point-5-y=2.78666666666667
point-6-x=1.25130890052356
point-6-y=3.6
point-7-x=1.31937172774869
point-7-y=4.29333333333333
point-8-x=1.38219895287958
point-8-y=4.90666666666667
point-9-x=1.43455497382199
point-9-y=5.65333333333333



Once again, I REALLY appreciate you folks taking the time to help me sort through this. I'm sorry to be so ignorant of what seems to work so well for others. I'm quite certain it's something in my setup, but I'm a blind mouse looking for cheese in the maze. My only saving grace is I'm a stubborn mouse! :)

Thanks again guys.

All my best,
Rob

RobfromME
Feb-13-2017, 19:50
Hi again, gents,

I did find something interesting that may be a problem with FTnoIR....when I pitch down, it reads that as pitching down. When I pitch up, it reads it as pitching down also! I tried the "invert pitch axis" and it still does it like I never changed it! Is this a FTnoIR glitch?

On another note, I corrected one dimension on my hat model and tried the file in OpenTrack and now it works!!! Horray! (after three checks, I DID find an error as you guys thought might be a problem) Thanks, guys. I'm still fiddling with the zoom in/zoom out axis (forward / aft) but that I'm sure is a settings issue. I'll keep you updated, but for now, I think I've got the headtracking working with OpenTrack!

Once again........Thanks!

All my best,
Rob

Stormrider
Feb-13-2017, 23:14
Hi again, gents,

I did find something interesting that may be a problem with FTnoIR....when I pitch down, it reads that as pitching down. When I pitch up, it reads it as pitching down also! I tried the "invert pitch axis" and it still does it like I never changed it! Is this a FTnoIR glitch?

On another note, I corrected one dimension on my hat model and tried the file in OpenTrack and now it works!!! Horray! (after three checks, I DID find an error as you guys thought might be a problem) Thanks, guys. I'm still fiddling with the zoom in/zoom out axis (forward / aft) but that I'm sure is a settings issue. I'll keep you updated, but for now, I think I've got the headtracking working with OpenTrack!

Once again........Thanks!

All my best,
Rob
On the website is also a hotfix download what fixes this issue in ftnoir 1.7



sent from my Cat S50

RobfromME
Feb-14-2017, 08:09
On the website is also a hotfix download what fixes this issue in ftnoir 1.7



sent from my Cat S50

Good morning, Stormrider,

Do you know another source of the ftnoir 1.7 hotfix? I can't find it on their website. It appears that they no longer show it now that the later version of their software is out.

Even though I got it to work with OpenTrack, I'd like to get FTnoIR running too as a backup and just to finish what I started!:)

Thanks!

All my best,
Rob

Stormrider
Feb-14-2017, 14:08
Good morning, Stormrider,

Do you know another source of the ftnoir 1.7 hotfix? I can't find it on their website. It appears that they no longer show it now that the later version of their software is out.

Even though I got it to work with OpenTrack, I'd like to get FTnoIR running too as a backup and just to finish what I started!:)

Thanks!

All my best,
Rob

I also did not find an other source of that hotfix.I think you are right about it that it is removed because of that new version.
I've send you a pm.

RobfromME
Feb-14-2017, 14:15
Thanks, Stormrider!

I appreciate your PM. Makes sense now that they've gone commercial to remove the older versions. Once again, thanks for letting me know!

All my best,
Rob

Pans
Feb-14-2017, 18:37
Rob, did the 170 hotfix make any difference to your problems?

RobfromME
Feb-15-2017, 07:23
Rob, did the 170 hotfix make any difference to your problems?

Good morning, Panser!

Thanks for checking in! I'd not had a chance last night to try it like I'd hoped...Since, with the help of the forum here, OpenTrack was working so well, I thought I'd fly a bit...and a bit turned into an hour and a half!! :)

'll get it set up this evening, though, and I'll let you know.

I really appreciate all your help...thanks so much!

Warmest regards,
Rob

RobfromME
Feb-15-2017, 07:26
Hi guys,

I just wanted to post a big thanks to you all for your help with this tracking problem. Your suggestions, advice, and sharing of information was vital to me getting it to work correctly.

Great forum because of great people. :thumbsup:

Thank you!
Rob

RobfromME
Feb-15-2017, 09:02
Rob, did the 170 hotfix make any difference to your problems?

Good morning, Panzer!

Yes!!! Just tried it....works like a charm!! Thanks again to everyone!

Pans
Feb-16-2017, 07:15
That's great to hear. Whichever method you prefer to use, at least it is working for you now. Happy flying!