openNI驅動控制kinect馬達

2022-08-04 08:39:09 字數 1408 閱讀 9909

今日偶見google group的openni-dev上nicolas tisserand的一枚神帖:hit me  「easy way to control kinect motor through openni」。文中他成功的使用xnusb.h(openni標頭檔案之一)完成馬達的控制,他把kinect motor封裝成乙個類再操作,有冗餘的傳送控制資訊的**,只能在kinect沒有初始化開啟的情況下工作,無法在攝像頭已開啟的情況下工作,故修改見如下函式:

1 #include 

2bool _isopen = false;34

bool tilttoangle(int angle) //

angle: -27 to 27

5 19 }

20//

get device path

21 res = xnusbenumeratedevices(0x045e

/*vendorid

*/, 0x02b0

/*productid

*/, &paths, &count);

22if (res != xn_status_ok)

26//

open first found device

27 res = xnusbopendevicebypath(paths[0], &m_dev);

28if (res != xn_status_ok)

32//

send control command

33 res = xnusbsendcontrol(m_dev, xn_usb_control_type_vendor , 0x31, angle, 0x00, null, 0, 0);

34if (res != xn_status_ok)

38 xnusbclosedevice(m_dev);

3940

//shutdown usb

41if (_isopen == false)

42

48 }

4950

return

true;

51 }

5253

//tilttoangle(0) : normal state

54//

tilttoangle(27) : up

55//

tilttoangle(-27) : down

2011/12/15 17:38 重要更新:

剛剛在執行程式時,手持著kinect。發現這個旋轉角度與底座是否水平放置無關(當選擇旋轉0時,它總是能夠讓攝像頭水平向前)。這也證實了kinect內部確實存在乙個陀螺儀。

本作品採用知識共享署名-非商業性使用 2.5 中國大陸許可協議

即可。

linux usb 使用者控制驅動載入,驅動延時載入

當連線的usb裝置需要進行協議或是安全相關認證後才能進行後續通訊,可以採用預設不載入inte ce的驅動的方式。操作方法 將usb 介面的預設授權關閉 echo 0 sys bus usb devices usbx inte ce authorized default 需要載入驅動時再開啟授權 ec...

Linux裝置驅動之控制台驅動

一 前言 我們在之前分析過input子系統和tty裝置驅動架構.今天需要將兩者結合起來.看看linux中的控制台是怎麼樣實現的.二 控制台驅動的初始化 之前在分析tty驅動架構的時候曾分析到.主裝置為4,次裝置為0的裝置節點,即 dev tty0為當前的控制終端.有tty init 中,有以下 段 ...

USB驅動之主機控制器驅動

usb 主機驅動的整體結構 usb 主機控制器有 34種規格 ohci open host controller inte ce uhci universal host controllerinte ce 和 ehci enhanced host controller inte ce ohci 驅動...