So it seems the Kinect's motor is not currently supported with the
PrimeSense driver for OpenNI. However, there is a way to use the motor
concurrently with the OpenNI api. All that is involved is installing
only the motor portion of the CL-NUI kinect drivers alongside the
PrimeSense camera driver. I attempted this procedure with libfreenect
and it would not allow OpenNI to grab frames, but the NUI-drivers seem
to behave properly in conjunction with the PrimeSense drivers.
*Note* I am using Windows 7 x64 and no problems so far.
1. Remove OpenNI's primesense driver.
2. Install the CL-NUI platform,
http://codelaboratories.com/downloads/
and driver - it will show camera, motor, and audio components in
device manager as NUI-components.
3. Remove all the NUI devices in device manager
4. Install the PrimeSense drivers, device manager will show a camera
and motor driver, but no audio component.
5. Select the PrimeSense motor device in device manager and update its
driver, but point it to the CL-NUI driver which is located in the CL-
NUI install directory (..\Code Laboratories\CL NUI Platform\Driver) -
The NUI driver for the motor will now be installed and device manager
will reflect this.
6. Repeat step 5 for the audio component too if you wish. Device
manager will show the PrimeSense camera driver and the NUI motor &
audio drivers side by side.
7. When you compile your program link to the CLNUIDevice.lib, make
sure to include CLNUIDevice.h in your project as well. CLNUIDevice.dll
must be in your path too.
8. If you already have a working OpenNI code base, just start using
the CLNUI api to signal motor positions. There's an example program
included with the CLNUI platform to help get you started.
The NUI drivers do not seem to interfere with OpenNI's interface to
the camera, they play nice!
Have fun!