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
ちなみに、チルトレンジは-30°〜+30°ですのでご注意を。