Virtual machine Kinect/Primesense(Xtion)通过虚拟机(VMware)访问Ubuntu

Virtual machine Kinect/Primesense(Xtion)通过虚拟机(VMware)访问Ubuntu,virtual-machine,kinect,vmware,ros,primesense,Virtual Machine,Kinect,Vmware,Ros,Primesense,因为我花了很长时间才弄明白如何让Xtion(Primesense)在VMware上工作,所以我想在这里与大家分享一下。(使用Kinect时,即使VMware已成功连接,我也无法让ROS看到该设备) 运行上述命令时出现错误: Warning: USB events thread - failed to set priority. This might cause loss of data... 运行“rviz”并添加-->图像-->图像主题-->/camera/rgb/Image\u raw时,

因为我花了很长时间才弄明白如何让Xtion(Primesense)在VMware上工作,所以我想在这里与大家分享一下。(使用Kinect时,即使VMware已成功连接,我也无法让ROS看到该设备)

运行上述命令时出现错误:

Warning: USB events thread - failed to set priority. This might cause loss of data...
运行“rviz”并添加-->图像-->图像主题-->/camera/rgb/Image\u raw时,我得到了一帧或没有帧

那么,在使用虚拟机(VMware)时,如何从Primesense设备获取Ubuntu中的视频帧呢

我的规格
  • 运行VMware 10.0.4 build-2249910的Windows 7
  • Ubuntu 12.04.5在VMware中的精确版本
  • ROS Hydro

    • 以下问题为我指明了正确的方向:

      在暴雪投资回报的回答中(非选定答案),他/她提到USBInterface应为0。我推断,由于我的主计算机是Windows,我应该将UsbInterface设置为1,这确实解决了这个问题

      解决方案 转到/etc/openni2/(从系统文件夹,而不是主文件夹)并使用管理员权限打开PS1080.ini(例如sudo gedit PS1080.ini)。搜索USB接口,删除;并将该值更改为1。它应该如下所示:

      ; USB interface to be used. 0 - FW Default, 1 - ISO endpoints (default on Windows), 2 - BULK endpoints (default on Linux/Mac/Android machines)
      UsbInterface=1
      
      附加的 根据以前的经验,您的Windows系统也可能需要kinect驱动程序。如果上述操作不起作用,请尝试安装以下组件:

      • (Kinect SDK)
      • (OpenNI2窗口)
      p、 别忘了你的Ubuntu驱动程序(用你的ROS版本取代hydro)

      重要的 它不能解决下面的错误,但rviz返回视频,这意味着我们可以读取Primesense设备发布的数据

      Warning: USB events thread - failed to set priority. This might cause loss of data...
      

      从opennni(一开始由位于Tools/PSLinkConsole的二进制文件发出)和另一个传感器收到相同的警告

      通过将进程启动为sudo来解决-我猜:要设置USB事件线程的优先级,您需要根访问权限。:)

      sudo apt-get install ros-hydro-openni*
      
      Warning: USB events thread - failed to set priority. This might cause loss of data...