Although the R200 hardware is an aesthetically pleasing package, my experience with installation, setup, and testing of the R200 has been purely disappointing. It's unclear why the sensor and SDK would be released even to outside developers at this stage. Although I can imagine there were business reasons for release, I would have been happier waiting 3 - 6 months for a more polished SDK.
Simply put, the R200 package is beautiful. The roughly 13cm x 2cm x 0.8cm housing is lighter than I expected, and though the light weight was a pleasant surprise at first, it also meant some problems during early testing (described below).
The magnet included in the R200 box may be handy if you want to stick the sensor on your laptop lid or some other surface within 25cm of the USB 3 port.
There's also a slot roughly 4mm wide that, while pleasant to look at, is not immediately useful for mounting. A lack of rugged mounting options is common for inexpensive, off-the-shelf 3D sensors, but it's a problem as well. For many 3D applications, and arguably most initial testing, it's desirable to mount a 3D sensor rigidly.
The provided USB cable is short and stiff, which when connected to the lightweight sensor means the cable stiffness rather than the sensor mass is likely to determine how the sensor sits on your desk. When the sensor is placed flat looking upwards, or on an edge looking horizontally, it will settle into position as the cable relaxes. If you are concerned with metrics such as depth accuracy or repeatability, then you'll need to devise some kind of mounting or clamp to hold the sensor in place.
One can certainly buy a longer and more flexible cable, but out of the box the stiffness of the cable is a shortcoming.
The SDK and Depth Camera Manager installs could not proceed until a camera was detected. The installer should indicate clearly that it is necessary to connect the R200 before proceeding with the installation. I found it necessary to cancel the installer entirely rather than simply click the Back button. If device connections are only checked when the install wizard starts up, then this is a design error (and dev shortcut) that should be addressed. It's common enough for other sensor install wizards to prompt the user to connect a sensor and then proceed only when the sensor is connected.
Only at the end of a 1GB+ SDK installation did a warning appear that my system was missing a Depth Camera Manager. It's unclear why this component was not automatically installed, but after a quick googling I was able to find the Depth Camera Manager install page (https://downloadcenter.intel.com/download/25044/Intel-RealSense-Depth-Camera-Manager), install the DCM, and finally see depth and color images in the applications provided with the Intel RealSense SDK Sample Browser. Even if some documentation somewhere mentions the need to install the Depth Camera Manager, the installer itself should make this point clear at the beginning.s I
On several occasions, the R200 wouldn't be recognized by my Win10 laptop. I haven't reproduced the behavior, though I suspect there could be conflicts with other sensor drivers and/or with Windows sleep. If unplugging and replugging the R200 didn't cause the drivers to appear in Device Manager, then a PC reboot generally helps. It's possible that if drivers for other 2D/3D cameras are first loaded, then the PC can't properly load the RealSense R200 drivers. I'm not going to investigate this further, so if you run into difficulties having R200 drivers appear in Device Manager, I can only suggest rebooting your PC, and possibly uninstalling other sensor drivers and SDKs before working with the R200 exclusively.
RealSense SDK Sample Browser
As of 7 December 2016, the samples appear to have been developed in a rush, and with little consistency from app to app, or from one programming language to another. This contributes to my poor overall initial impression of the R200.
Camera Viewer, the app at the top of the scrollable list in the SDK Sample Brower, should display the depth of the pixel under the mouse pointer. Without this simple feature, the app is useful merely to confirm that the sensor is working, and also to confirm how noisy the depth and color video streams are.
There was little consistency in design or interaction modes from one app to the next, and although the current samples do demonstrate certain capabilities, it would have been preferable if they shared a common interface and common controls.
Qualitatively, image quality is poor for both depth and color images. In the apps launched from the SDK Sample Browser it wasn't apparent how to get (r,g,b) color values from the color image or (x,y,z) values from the depth image, so it would appear necessary to develop an app to get this most basic of data. In my experience with other 2D/3D sensor SDKs, provided sample apps are sufficient for early testing and initial estimates of accuracy, repeatability, etc. That is, it's relatively easy to tell if the depth measurement of a wall varies +/- 10mm over a period of a few minutes, and without having to read documentation to determine how to get the pixel data.
For indoor operation with good ambient light (i.e. sunlight through window + lamps), the color image was much noisier than I expected. Although noise can be addressed as a step in pipelined image processing, this is a waste of PC resources unless your image processing needs are limited.
The depth image has many pixel dropouts. Even on non-shiny surfaces (e.g. an uncovered arm, paper, etc.), edges are very rough and noisy. Again, image processing can address this noise to an extent, but the inherent limitations in signal-to-noise limits the number of applications the R200 could address.
For quick demos, and for apps that needn't perform particularly robustly, one might simply accept the noisy color and depth image streams as is and rely on the provided SDK algorithms for segmentation, face tracking, and other image processing. However, developers with experience delivering applications that place high demands on robustness are likely to be disheartened by the image quality from the R200, and the subsequent requirement for image cleanup.
Signing up for this forum required far more steps, page redirections, and email follow-ups than is the norm.
While working on this post, this warning message appeared in a white-on-red popup repeatedly: "Your content could not be saved due an error. You may have been logged out. If this problem persists..."
I've used other forums for years on end without seeing a similar message even once.
There is an open source project for cross-platform R200 support, but it would be difficult to justify spending exploring this option for my applications, given the performance of the sensor out of the box.
In future releases, the R200 and its SDK may allow developers to deliver robust 3D sensing applications. Perhaps that's already possible for those willing to dive into the documentation and grind out some samples. However, as of SDK version 10.0.26.0396 and the R200 delivered in early December 2016, the color and depth images are surprisingly noisy, especially when compared to images from other 3D sensors. The clumsiness of the SDK sample apps also dampens my enthusiasm for the device.e R
The R200 may be targeted to entirely different apps than those of interest to me, but at a price point similar to that of other off-the-shelf 3D sensors with superior performance, the R200's size may be its best feature. Time-of-flight sensors of similar size are in development by other manufactures such as ifm (sensors, networking and control systems ), so I expect the R200 will have serious competition.