ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

As far as I know, you can't.

OpenNI provides extremely limited access to camera properties. I don't know of any way to change the RGB camera's exposure, gain, or white balance settings through OpenNI.

You can play with the available properties by editing /etc/primesense/GlobalDefaults.ini. This file is read by OpenNI at startup. There are WhiteBalancedEnabled and Gain properties in the [Depth] section, but oddly not in the [Image] section which configures the RGB camera. Note that the openni_kinect driver overrides some properties (e.g. InputFormat/OutputFormat, Resolution, Registration, RegistrationType). The properties are defined in the source code at XnStreamParams.h.

You can try asking this on the openni-dev list.

The libfreenect guys have figured out how to access the registers of the color CMOS sensor to change a variety of settings, including white balance. They don't appear to have added access to these to their API yet, but if you're interesting in hacking, this looks like the easiest path to modify the camera settings.

At WG, for applications where we absolutely require high-quality color images and/or fine control of the camera, we've mounted a Prosilica to the Kinect and calibrated it to the depth sensor. That's a lot of pain for something that should be easy though.

If anyone has more success with this I'm interested to hear about it.