New Camera SDK 1.0 Final now available

zzzamarron
Posts: 13
Joined: Thu Jan 04, 2007 11:22 am

Re: New Camera SDK 1.0 beta 2 now available

Post by zzzamarron » Sun Nov 07, 2010 8:59 am

I have compiled the vector Tracking example and SimpleCameraTest and my tracki4 pro is not recogniced, with a nice message box telling No device conected, please connect a camera .

is this a bug or just incompatibility?

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

Re: New Camera SDK 1.0 beta 2 now available

Post by Seth Steiling » Mon Nov 08, 2010 1:56 pm

Hi Malboro,

Currently, the Camera SDK doesn't install the TrackIR device driver. If you install the 5.0 TrackIR software, this will register your driver, which should enable you to use the hardware with software created using the Camera SDK.

TrackIR software installer:
http://media.naturalpoint.com/software/ ... inal.b.exe
Marketing Manager
TrackIR | OptiTrack

zzzamarron
Posts: 13
Joined: Thu Jan 04, 2007 11:22 am

Re: New Camera SDK 1.0 beta 2 now available

Post by zzzamarron » Mon Nov 08, 2010 3:15 pm

Thank you for the advise but i must have missed something because i had already installed trackir 5.0 , but i have reinstalled the copy of your link and still not recogniced, i have also tryied with a different trackir 4 pro camera and still not working. i use windows vista 64, and visual studio 9.0 pro if this helps.

VincentG
Posts: 7728
Joined: Mon Jul 17, 2006 5:00 am
Location: Corvallis, Oregon

Re: New Camera SDK 1.0 beta 2 now available

Post by VincentG » Mon Nov 08, 2010 3:31 pm

Is the TrackIR camera detected in the system device manager?

If the TrackIR camera shows up in the device manager, have you tried performing an "Update Driver" operation on it and pointing the Driver Wizard to the Camera SDK\Drivers folder?

Do you have the TrackIR software running at the same time you are running the test application?

zzzamarron
Posts: 13
Joined: Thu Jan 04, 2007 11:22 am

Re: New Camera SDK 1.0 beta 2 now available

Post by zzzamarron » Tue Nov 09, 2010 3:09 am

Trackir is not detected, but blue led is running and old optitrack sdk explamples are running ok, HID driver si updated with the camera sdk folder, and trackir 5.0. but for example mouse emulation at trackir 5.0 doesnot detect the cameras.

suhl79
Posts: 21
Joined: Thu Mar 18, 2010 7:45 am

Re: New Camera SDK 1.0 beta 2 now available

Post by suhl79 » Tue Nov 09, 2010 12:04 pm

There is an information in FAQ according to imager size as follows:

"For the V100, V100R2 and V120:SLIM cameras, the pixel size is 6 microns square, the imager size is 4.5mm x 2.88mm, and the active pixel area is 752x480 (but is windowed to 640x480)."

I use V120:SLIM camera and in the new SDK I've found folowing functions:

virtual double ImagerWidth() { return 0.0; }
virtual double ImagerHeight() { return 0.0; }

which returns 3.84 for Width and 2.88 for Height. I need this data to be precise as I use it for focal ratio in my own calibration procedure. I thought that the imager pixels are square but according to the data returned by SDK functions they are not.

Another function is: virtual double FocalLength()
It returns 4.61 value. Am I right that this value is fixed for some particular type of lenses you provide for this camera?

I've also found that:
virtual void GetDistortionModel(Core::DistortionModel &Model)

returns some fixed distortion coefficients and data for intrinsic matrix. But this values seem to be fixed, and as I use my own lens distortion calibration procedure is it possible to disable camera built-in calibration routines? I kind of get feeling that this internal built undistortion feature might cause my Heikkila distortion removal algorithm produce inacurrate or divergent results. Is it possible?


Regards
Konrad

beckdo
NaturalPoint Employee
NaturalPoint Employee
Posts: 519
Joined: Tue Jan 02, 2007 2:02 pm

Re: New Camera SDK 1.0 beta 2 now available

Post by beckdo » Tue Nov 09, 2010 12:42 pm

Suhl, I think you'll like my answers:

1. ImagerWidth/ImagerHeight return imager size in millimeters. So divide ImagerWidth by the physical pixel width (640), and divide ImagerHeight by 480 to reveal square pixels ;)

2. FocalLength() returns an approximate effective focal length for the device.

3. GetDistortionModel returns an approximate distortion model for the device with the default lens sold with the camera. It doesn't actually apply this distortion model to any of the data coming out of the camera. It's simply there to provide users with a great starting point to remove distortion that is pretty close to the camera's actual lens distortion. However, you can apply this distortion model manually via methods in corefunctions.h, or you could use your own calculated distortion model. Essentially this library is designed around being able to do what you're talking about.

That said, the best distortion model for a camera will come with an approach to actually measure the lens distortion. Which it sounds like you're working on. You could potentially speed calculation by seeding your solver with the default distortion model from the camera as it's a great starting point.

suhl79
Posts: 21
Joined: Thu Mar 18, 2010 7:45 am

Re: New Camera SDK 1.0 beta 2 now available

Post by suhl79 » Tue Nov 09, 2010 4:13 pm

[quote=NaturalPoint - Doug]Suhl, I think you'll like my answers:
[/quote]
Indeed I like your and Birch answers because you both always provide me with good solutions to my problems :)
[quote=NaturalPoint - Doug]
1. ImagerWidth/ImagerHeight return imager size in millimeters. So divide ImagerWidth by the physical pixel width (640), and divide ImagerHeight by 480 to reveal square pixels ;)
[/quote]
In this case this is "windowed ImagerWidth" I should use in the equation ;)

[quote=NaturalPoint - Doug]
3. GetDistortionModel returns an approximate distortion model for the device with the default lens sold with the camera. It doesn't actually apply this distortion model to any of the data coming out of the camera. It's simply there to provide users with a great starting point to remove distortion that is pretty close to the camera's actual lens distortion. However, you can apply this distortion model manually via methods in corefunctions.h, or you could use your own calculated distortion model. Essentially this library is designed around being able to do what you're talking about.
[/quote]
That is a realy good information. I just can't wait to see good manual to this SDK to understand more about it and how to implement this functionality. At this point maybe you could tell more about tangential component (p1,p1) of imager distortion due to some imager misalignment in OptiTrack cameras? Have you measured it? Is it worth mentioning? Or is it so small I could easly set it to 0?

I use vari focal lenses with OptiTrack camera which requires recalibration of the distortion every time I change the focal length and I'm glad I could use computed coefficients to feed the SDK with it so it does the rest of the job.

Konrad
p.s. as I said before I'm not the only one to see that you guys do great job with providing your clients with such a great technical support. Thanks again.

beckdo
NaturalPoint Employee
NaturalPoint Employee
Posts: 519
Joined: Tue Jan 02, 2007 2:02 pm

Re: New Camera SDK 1.0 beta 2 now available

Post by beckdo » Tue Nov 09, 2010 5:55 pm

Thanks Konrad =)

On The ImagerWidth command try not to think of the actual imager in the device being larger than 640x480 even though it is. The ImagerWidth takes that into account and reports the width as though the imager were 640x480 since that's what is addressed.

Ok, it sounds like you know enough about lens distortion to be dangerous. Basically, we have chosen a simple radial 3rd order distortion model that works well for us and our camera calibration engine. You can certainly utilize our model or your own, the Camera SDK doesn't apply any distortion automatically, but the functions you referenced are simple, provide a good primer, and have been more than enough for anything we've needed.

That said, you may be using some other image processing library that has it's own model. You just need to make sure you have methods that can take you both either way through the lens. And in your case the default distortion model is not going to work because of your variable lenses. You'll need to come up with some way to calibrate and solve via some kind of lens distortion model of your choosing.

Pjotr
Posts: 4
Joined: Mon Jul 05, 2010 5:47 am

Re: New Camera SDK 1.0 beta 2 now available

Post by Pjotr » Mon Nov 15, 2010 2:46 am

Just some nitpicking: In cameralibraryglobals.h there is a define for PI. I already had this defined in anther library I use so I had an error while compiling. I changed the line to

#ifndef PI
#define PI 3.141592654f
#endif

So it compiles fine now but I wonder if this could be changed in the future versions of the library so I do not need to do this every time.

Post Reply