Well, if you run lsusb -t, you get a hierarchy. The astra pro devices appear to be under an internal usb hub:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
|__ Port 1: Dev 35, If 0, Class=Hub, Driver=hub/4p, 480M
–>Port 1: Dev 36, If 0, Class=Video, Driver=uvcvideo, 480M
→ Port 1: Dev 36, If 1, Class=Video, Driver=uvcvideo, 480M
→ Port 2: Dev 37, If 0, Class=Vendor Specific Class, Driver=, 480M
→ Port 2: Dev 37, If 1, Class=Audio, Driver=snd-usb-audio, 480M
→ Port 2: Dev 37, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 3: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 5: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 6: Dev 41, If 0, Class=Hub, Driver=hub/4p, 480M
→ Port 1: Dev 42, If 0, Class=Video, Driver=uvcvideo, 480M
→ Port 1: Dev 42, If 1, Class=Video, Driver=uvcvideo, 480M
→ Port 2: Dev 43, If 0, Class=Vendor Specific Class, Driver=, 480M
→ Port 2: Dev 43, If 1, Class=Audio, Driver=snd-usb-audio, 480M
→ Port 2: Dev 43, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 7: Dev 15, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 15, If 1, Class=Wireless, Driver=btusb, 12M
Again, here is my lsusb output:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 015: ID 8087:0a2a Intel Corp.
Bus 001 Device 043: ID 2bc5:0403
Bus 001 Device 042: ID 2bc5:0501
Bus 001 Device 041: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 048d:8350 Integrated Technology Express, Inc.
Bus 001 Device 003: ID 04f3:2070 Elan Microelectronics Corp.
Bus 001 Device 002: ID 1bcf:2c7d Sunplus Innovation Technology Inc.
Bus 001 Device 037: ID 2bc5:0403
Bus 001 Device 036: ID 2bc5:0501
Bus 001 Device 035: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
So, in a clunky way, I could get the available devices by vendor id, then look at the lsusb tree view to pair camera device numbers with the sensor device numbers.
Also, I have a feeling that the Uri I get from OpenNI is not the same as the Uri expected by astra. I tried running the following:
astra::StreamSet streamSet(“2bc5/0403@1/40”)
…but it didn’t seem to work. There must be a couple things I’m missing.