由于我花了相当长的时间来弄清楚如何让Xtion(Primesense)在威睿上工作,我想在这里与您分享。(使用Kinect,即使威睿已经成功连接,我也无法让ROS看到设备)。
roslaunch openni2_launch openni2.launch
运行上面的命令给我一个错误:
Warning: USB events thread - failed to set priority. This might cause loss of data...
运行“rviz”和添加时,我要么得到单帧,要么没有帧——
那么,如何在使用虚拟机(威睿)时从Primesense设备在Ubuntu中获取视频帧呢?
下面的问题为我指明了正确的方向:http://answers.ros.org/question/77651/asus-xtion-on-usb-30-ros-hydro-ubuntu-1210/?answer=143206#post-id-143206
在popzzardroi的答案(未选择答案)中,他/她提到USBInterface应该为0。我推断,由于我的主机器是Windows,我应该将UsbInterface设置为1,这确实解决了它。
转到 /etc/openni2/(从系统文件夹,而不是主页)并打开具有管理员权限的PS1080. ini(例如sudo gedit PS1080.ini)。搜索UsbInterface,删除;并将值更改为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驱动程序。如果上述不起作用,请尝试安装以下内容:
附言:不要忘记你的Ubuntu驱动程序(用你的ROS版本替换水电)
sudo apt-get install ros-hydro-openni*
它不能解决下面的错误,但是rviz返回视频,这意味着我们可以读取Primesense设备发布的数据!
Warning: USB events thread - failed to set priority. This might cause loss of data...
从opennni收到相同的警告(由位于Tools/PSLinkConsole的二进制文件在启动时发出)与另一个传感器。
通过将进程作为sudo启动来解决-我的猜测:要将优先级设置为USB事件线程,您需要root访问权限。:)