読者です 読者をやめる 読者になる 読者になる

OpenNIでKinectのチルトモーターを動かす

OpenNI Kinect

OpenNIでKinectのチルトモーター(首)を動かす | akatukisiden's blog

チルト角を動かすサンプルプログラムを発見したので早速試してみました。
動作環境:MacBookAir (OSX10.7)

Kinect_Tilt.cpp

#include <XnUSB.h>

enum
{
 VID_MICROSOFT = 0x45e,
 PID_NUI_MOTOR = 0x02b0
};

XN_USB_DEV_HANDLE dev;

int main() {

    int angle = キネクトの首の地面からの角度;
    const XnUSBConnectionString* pastrDevicePaths = NULL;
    XnUInt32 nCount = 0;
    XnUChar empty[1];

    xnUSBInit();
      xnUSBEnumerateDevices(VID_MICROSOFT, PID_NUI_MOTOR,&pastrDevicePaths,&nCount);
        xnUSBOpenDeviceByPath(*pastrDevicePaths, &dev);

          xnUSBSendControl
          (
             dev,
             XN_USB_CONTROL_TYPE_VENDOR,
             0x31,(XnUInt16)angle * 2,
             0x0, empty, 0x0, 0
          );

        xnUSBCloseDevice(dev);
      xnUSBFreeDevicesList(pastrDevicePaths);
    xnUSBShutdown();

    return 0;
}
g++ -o a.out -I/usr/include/ni Kinect_Tilt.cpp -lOpenNI
./a.out

ログ
f:id:nikuyoshi:20111212005457p:image

ちなみに、チルトレンジは-30°〜+30°ですのでご注意を。