Hardware for use with InstantVision
Keywords:
hardware,
camera,
vision
Author(s): Mario Becker
Date: 2009-01-10
Summary: This is not exactly a tutorial more like a hardware compability list.
Hardware
here comes a short (most likely incomplete) description of hardware we prefere to use.
- Cameras
- Optics
- Hubs (Firewire, USB)
Cameras
most of the pro cameras have C-Mount or CS-Mount optics. The difference is the 5mm larger distance beween optics and chip in the C-Mount. Thus C-Mounts optics can be used on CS-Mount cameras with an 5mm distance ring, other way around is a no go.
There are standards for the software API, which are supported by some vendors.
- DC1394 - (firewire, digital camera) the best standard definition so far, supported by PtGrey, ImagingSource, some Sony cameras and Apple iSight. Documentation for this is on projects/VisionLib/doc. On linux these run with libdc1394 and coriander. On windows there is a free API and test program CMU
- USB-camera - (USB Video Class, http://linux-uvc.berlios.de) can run with Windows DirectShow, Linux-V4L2, MacOSX-quicktime
- GigE - new standard for ethernet based cameras, not yet supported by InstantVision
Optics - most pro cameras do not come with optics, these have to be ordered independently ! Read below.
Point-Grey Cameras
All PtGrey (alias PGR or Point-Grey) cameras ptgrey.com come with firewire connection. All can be triggered externally and provide some GPIO's (general purpose io-pins). PGR cams work as standard dc1394 cameras on all real operating systems. For windows there is a driver/software/developer pack, make sure to install the PGR driver for the cameras.- Dragonfly: :
- "low" end (at ptgrey scale) VGA camera, the image quality is so lala. An advantage is the small seperate camera head which can be positioned at difficult places.
- Firefly: :
- low end (at ptgrey scale) but still good VGA camera, had some trouble with shutter/gain adjustment when running in trigger mode.
- Flea (Flea2): :
- CS-Mount (C-Mount) compact high quality camera, resulution 1024x768. The Flea2 also supports Firewire 800, the new fast firewire connection available on some Mac's, or with a FW PCIe card.
- Scorpion: :
- CS-Mount high end camera, supporting high resolutions like 1280x960.
IDS-Imaging
Are similar high quality cameras like PtGrey but use USB bus, which can cause problems (with more then one camera on a bus) due to missing bandwidth allocation support. IDS They need a vendor driver/API on Linux and Windows, which is available on the website, MacOS is not supported. They are available in 3 different casings:- Cheep plastik (LE version): :
- Good for playing around, not recommended for customer apps due to the rickety usb connector. CS-Mount. These are also available as OEM version without casing and with the small 12mm lens mount.
- Standard alu: :
- CS-mount alu/plastic casing. Screwable cable (also with trigger and io lines) available and highly recommended.
- Rugget metal casing (RE version): :
- Casing is made of one piece of milled aluminum, fairly solid, no technical difference to standard version.
Also there are different (quite a lot) resolutions and chip sizes available, different filters can also be ordered. We made good experience with the 1024x768 CCD version (UI-2230) and also with the 768x480 CCD version (UI-1220). For IR tracking we usualy use a monochrome UI-1220 with IR filter.
Prices for these cameras range from 250€ for the plastic (-LE) cameras to about 800€ for XGA alu versions. The support and salesteam is in Germany and usually quite helpfull.
Imaging Source
Less pricy cameras with dc1394 firewire or USB. We only got one DMK 21BF04 so far for 390€ which is ok. imaging source
VRmagic
We have a VRmC-3 somewhere, it's small, quality is good, we have implemented this only for Windows.
low budget
Most of the "standard" web cams do not support real parameter adjustment, they usually come with "user-friendly" automatic image adjustment, the few sliders in the driver software are mostly useless crap. Also there is a crappy marketing trend to sell "high res" cameras where "high res" refers to some extrapolated fantasy image resolution, the real resolution is barely documented and mostly worse then VGA.
Needless to say that features like trigger or synchronisation you can forget with these.
- Apply iSight :
- No longer available in europe due to RoHS. For 150€ it's a quite good dc1394 firewire camera. No trigger, no IO.
- Philips ToYouCam :
- Webcam, kind of useable, can do IR too, our camera of choise for as longe as it lived.
- Logitech Quick Cam Pro 9000 :
- USB-UVC/V4L2 compatible camera with 640x480@15fps and 960x720@5 fps resolution. Image quality is good but it comes with rolling shutter which is visible. The parameters are not realy adjustable over the v4l2 api -> or maybe I did not understand how. Under linux these devices are supported by kernel >= 2.6.26 or an external module (uvc video) for earlier versions.
Optics
sizes, adjustablesIris / Blende:
First act in adjusting something should be open/adjust the iris, this regulates the amount of light getting through. A closed iris will also make the image sharper because the system becomes closer to an idea pinhole camera.
Focus:
There are some optics without a focus adjustment, even the more expensive ones. To get the focus right you can unscrew the optics and insert one or more distance rings which will increase the distance to the chip by 0.5mm. And as mentioned above... most of the pro cameras have C-Mount or CS-Mount optics. The difference is the 5mm larger distance beween optics and chip in the C-Mount. Thus C-Mounts optics can be used on CS-Mount cameras with an 5mm distance ring, other way around is a no go.
Zoom / Variable focal length:
Some optics come with a zoom, play around with that.
How to calc focal length
One day you might be asked "which optics do I need for this and that", time to start a little calculation. It's just a bit rule of three (Dreisatz) like (distance / objectsize) = (f / chip size) chip size is usually in inch! There are calculators around the web, focal length calculator.
IntrinsicData
Is a descriptor in our VisionLib for the optical system (chip + optics). Each camera plus optics needs to be calibrated before you use it for some serious tracking tasks.
For calibration see the tutorial "CameraCalibration".