locked
Kinect via. USB extended over WIFI (802.11ac) RRS feed

  • Question

  • Hi

    I'm wondering if it's possible to connect the Windows Kinect sensor via. some sort of USB extender over WIFI (Kinect->USB->WIFI->USB->WinPC) such that the local PC can access the Kinect as if it was connected directly via. a normal USB cable?

    I know the Kinect needs a very high throughput (480Mbps) and only a few of the new 802.11ac WIFI routers are able to provide such a bandwith (at least on paper, hopefully also in real life...). But what is required in addition? I guess it requires isochronous transfer, but does it require anything more? like for instance power over USB (even though it receives power via. external AC adapter)? The reason I'm asking is that when we have tested so far we have received an error from the Kinect Explorer test program saying "Kinect not powered". We have seen this exact error before as well when connecting two Kinects to the same USB bus.  

    Our setup is as follows:
    1) We have a robot whit a small embedded Linux PC (which can be used, but ultimately we would like to stream directly to the external PC without going through this embedded PC)
    2) We have a powerful workhorse PC with Windows 8 for Kinect processing. Since we would like to use Windows Kinect drivers and the built in KinectFusion we would like to remote the USB port over WIFI such that the PC sees the remote Kinect as if it was connected directly.
     

    It's quite a challenge to find out whats necessary and what solution to buy and test. If other people have experiences please feel free to chime in with suggestions. And Microsoft, we would love to hear from you if you think this should be possible at all, or if there is some major reasons it would not work.

    Here is what we have tested so far, and the online research we have done to find possible solutions:

    1) Fabulatech USB over Network (http://www.fabulatech.com/usb-over-network.html). We tested the SW (server installed on the embedded Linux PC on the robot and Client on the windows box). The Kinect showed up as an USB device, but when trying to start different test programs (Windows Kinect Explorer, a program we coded ourselves and OpenNI test program with other drivers) nothing happened. The Kinect Explorer program says "NotPowered. ROOT\SYSTEM\0001". In a forum post from one year ago Fabulatech said that version 5.0 should support Kinect and we are using version 5.0. We contacted them about the issues and they said that they are still working on it, so it does not work with the Kinect. Conclusion: Tested and not working.
    By the way it works fine with Microsoft LifeCam HD. 

    2) VirtualHere (http://www.virtualhere.com/). This solution had the same problem with Windows Kinect drivers, but when using OpenNI we got it to work for some seconds before it just failed with "timeout waiting for stream". Conclusion: Might work with more tweaking, don't know (we have contacted the company, but no response as of yet).

    3) We also tested Silex SX-DS-3000WAN since we had it lying around from another project. It did not work. After checking the specs it looks like the Silex DS 3000 doesn't support Isochronous transfers so I guess thats the reason.

    Remark: In the 3 points above we have only tested normal Gigabit ethernet connections, not WIFI. We thought we should make it work on that kind of technolgy first and then move to WIFI.

    Things we are looking into now, that we hope might work?

    4) Ideally we would like a USB to WIFI (802.11ac) to USB again similarly to e.g. the Icron WiRanger (which is now discontinued). The WiRanger would not have worked since it was only 802.11g, but the product is similar to what we are looking for, only for 802.11ac instead. We haven't found such a product yet. If anybody knows of something please tell us!

    5) A workaround we are thinking of is using some of the other CATx extenders from either Icron or Black box (e.g. http://www.blackbox.com/Store/Detail.aspx/USB-2-0-CATx-Extender-1-Port/IC253A) or similar suppliers (the ones listed with 480Mbps capacity), and then buy two 802.11ac Wireless routers and connect the two parts of the Black box extenders via. CATx cables to the routers. Hopefully the black box extender would work even though the cable between them goes via. a WIFI router and not directly via. CATx cable.

    6) We can also make use of the embedded Linux computer to grab data from the Kinect and then stream it to the remote PC, but then we cannot use the Windows Kinect drivers and the built in KinectFusion. We have been considering using the experimental Windows Kinect drivers for the PointCloudLibrary (on Linux) and the KinectFusion implemented on PCL but we would prefer using the Windows version. And also, the embedded Linux PC does not have a GPU so running KinectFusion on the robot is not an option, and the KinectFusion in PCL is created to receive data from the OpenNI usb driver as well.    

    7) Your solution here ;-)

    Saturday, August 31, 2013 4:58 PM

Answers

  • I am sure there are creative and technical solutions to the issue, but this is not something we would support. The Kinect for Windows SDK only supports the sensor device connected to the physical machine your application is running on.

    Keep in mind, any time you add latency to transmit the data, in what is perceived as "real-time", it will see odd to the viewer.


    Carmine Sirignano - MSFT

    Thursday, September 5, 2013 1:02 AM

All replies

  • This is michael from Virtualhere, Could you try connecting the Kinect to a Ubuntu desktop machine and letting me know if that works ok. There is a server for Ubuntu.  If that works then its likely a embedded hub issue.

    Tuesday, September 3, 2013 10:20 AM
  • I am sure there are creative and technical solutions to the issue, but this is not something we would support. The Kinect for Windows SDK only supports the sensor device connected to the physical machine your application is running on.

    Keep in mind, any time you add latency to transmit the data, in what is perceived as "real-time", it will see odd to the viewer.


    Carmine Sirignano - MSFT

    Thursday, September 5, 2013 1:02 AM