openNI驱动控制kinect马达
来源:互联网 发布:spring高级编程 pdf 编辑:程序博客网 时间:2024/04/28 23:11
以下代码对(http://www.cnblogs.com/lucantang/archive/2011/12/15/2288982.html)稍作修改
1 #include <XnUSB.h>
2 bool _isOpen =false;
4 bool tiltToAngle(int angle)// angle: -27 to 27
5 {
6 XN_USB_DEV_HANDLE m_dev;
7 const XnUSBConnectionString *paths;
8 XnUInt32count;
9 XnStatus res;
10
11 // _isOpen is theglobal camera open status of kinect. If kinect camera is open, we should notcall xnUSBInit() again.
12 if (_isOpen ==false)
13 {
14 res = xnUSBInit();
15 if (res != XN_STATUS_OK) {
16 xnPrintError(res, "xnUSBInit failed");
17 returnfalse;
18 }
19 }
20 // Get device path
21 res = xnUSBEnumerateDevices(0x045E/* VendorID */,0x02B0/*ProductID*/, &paths, &count);
22 if (res != XN_STATUS_OK) {
23 xnPrintError(res, "xnUSBEnumerateDevices failed");
24 return false;
25 }
26 // Open firstfound device
27 res = xnUSBOpenDeviceByPath(paths[0], &m_dev);
28 if (res != XN_STATUS_OK) {
29 xnPrintError(res, "xnUSBOpenDeviceByPath failed");
30 return false;
31 }
32 // Send controlcommand
33 res = xnUSBSendControl(m_dev, XN_USB_CONTROL_TYPE_VENDOR ,0x31, angle,0x00, NULL,0,0);
34 if (res != XN_STATUS_OK) {
35 xnPrintError(res, "xnUSBSendControl failed");
36 return false;
37 }
38 xnUSBCloseDevice(m_dev);
39
40 // Shutdown usb
41 if (_isOpen ==false)
42 {
43 res = xnUSBShutdown();
44 if (res != XN_STATUS_OK) {
45 xnPrintError(res, "xnUSBShutdown failed");
46 returnfalse;
47 }
48 }
49
50 return true;
51 }
52
53 // tiltToAngle(0) : Normal state
54 // tiltToAngle(27) : Up
55 // tiltToAngle(-27) : Down
发现这个旋转角度与底座是否水平放置无关(当选择旋转0时,它总是能够让摄像头水平向前)。这也证实了kinect内部确实存在一个陀螺仪。这也让我想起上篇文章中的提到的unity3D中的Gyroscope类,它不就是陀螺仪么?是不是我把它注释掉,我就不能用陀螺仪设置俯仰角度了呢?
另外发现程序有个bug: direct3D窗口 过一段时间(大约3分钟),就不动了。刷新也停止了,鼠标也不能控制模型了。Mark一下
- openNI驱动控制kinect马达
- 使用OpenNI 控制Kinect 的马达
- Kinect openni 驱动
- OpenNI架构-微软Kinect驱动
- ros&kinect的openni驱动
- ubuntu kinect openni驱动安装
- OpenNI的生产链-微软Kinect驱动
- OpenNI的生产节点-微软Kinect驱动
- OpenNI抽象分层视图-微软Kinect驱动
- Kinect sdk与OpenNi驱动的区别
- ubuntu14.04配置kinect驱动(openni+nite+sensor)+freenect驱动
- ubuntu14.04配置kinect驱动(openni+nite+sensor)+freenect驱动
- Kinect SDK包与Openni包切换驱动
- 树莓派3B驱动Kinect for windows(OpenNI)
- Kinect OPENNI 安装
- Kinect+OpenNI+OpenCV+VS2010
- Kinect+OpenNI+OpenCV使用
- kinect+openni手势识别
- c++ 头文件的作用
- 关于ubuntu12.04中出现乱码的解决
- js中的preventDefault和stopPropagation
- 目标检测的图像特征提取之(二)LBP特征
- tomcat内存溢出
- openNI驱动控制kinect马达
- Spring事务的传播行为和隔离级别
- 【菜鸟】ruby attr_reader的困惑
- 调用打印机,js
- MFC控件ComboBox(一)
- Write a function to find the depth of a binary tree
- 一个总经理的11个经典面试问题
- js鼠标滚轴控制文本框值
- 《Iphone开发基础教程》第五章 自动旋转和调整大小