Ubuntu 使用kinect时需要Root权限

Ubuntu 使用kinect时需要Root权限,ubuntu,kinect,ros,openni,Ubuntu,Kinect,Ros,Openni,我最近遇到了一个问题,可以描述为:每当程序需要kinect运行时,都需要Root权限 我的工具链设置为:ubuntu14+ros indigo+opencv_2.4.11+openni_1.5.7.10+primesense_5.1.2.1+kinect_v1 现象如下: 当我尝试通过openni NiViewer检查kinect输出时,如果我在没有“sudo”的情况下运行NiViewer,我将得到以下消息 无法枚举以下一个或多个节点: 设备:PrimeSense/SensorV2/5.1.0.

我最近遇到了一个问题,可以描述为:每当程序需要kinect运行时,都需要Root权限

我的工具链设置为:ubuntu14+ros indigo+opencv_2.4.11+openni_1.5.7.10+primesense_5.1.2.1+kinect_v1

现象如下:

  • 当我尝试通过openni NiViewer检查kinect输出时,如果我在没有“sudo”的情况下运行NiViewer,我将得到以下消息

    无法枚举以下一个或多个节点:

    设备:PrimeSense/SensorV2/5.1.0.41:设备未连接

    按任意键继续

    但是,一旦我将“sudo”添加到打开NiViewer中,kinect就会正常工作

  • 我尝试在qt中运行一个opencv示例“openni_capture.cpp”,在编译期间,它显示访问libopenni时权限被拒绝的错误。因此,我检查了该文件的属性,对于除所有者以外的用户,它显示“无”。因此,我给其他用户提供只读访问权限,并对其进行编译。但当我运行构建的可执行文件时,它会显示另一个错误:

    无法打开捕获对象。 CvCapture\u OpenNI::CvCapture\u OpenNI:枚举生产树失败:无法创建所请求类型的任何节点

    到目前为止,我一直觉得可能与kinect相关的所有内容都需要root权限,因此我导航到包含可执行文件的文件夹,并使用“sudo”手动运行它,然后kinect又开始工作了


  • 我知道我可以通过以root身份登录来避免这个问题(很多人都反对这样做),但我真的想知道发生了什么。我记得在安装ROS之前,我不必使用“sudo”打开NiViewer。ROS是否以某种方式改变了ubuntu系统并导致了这种情况,还是有其他原因?谢谢

    这可能是一个访问权限问题,可能要在用户模式下运行,您需要将自己添加到UNIX“视频”组(请参见此)


    然后注销并重新登录。无需重新启动,只需插入Kinect(如果已连接,请拔下并重新插入),然后重试。希望有帮助

    多亏了Vtik,我用一种残酷的方法解决了这个问题,我只需搜索usr/lib中与openni相关的所有文件,并集体给予它们只读访问权限,然后问题就消失了。尽管如此,我还是会接受你的答案,希望它能帮助其他有同样问题的人。
    sudo adduser $USER video