使用kinect时需要root权限
Root privilege is needed when using kinect
我最近遇到一个问题,可以描述为:只要程序需要kinect 到运行,就需要Root 权限。
我的工具链设置是:ubuntu14 + ros indigo + opencv_2.4.11 + openni_1.5.7.10 + primesense_5.1.2.1 + kinect_v1
现象如下:
当我尝试通过 openni NiViewer 查看 kinect 输出时,如果我 运行 NiViewer 没有 'sudo',我将收到以下消息
无法枚举以下一个或多个节点:
设备:PrimeSense/SensorV2/5.1.0.41: 设备未连接!
按任意键继续。 . .
但是在我添加'sudo'打开NiViewer后,kinect功能正常。
我尝试在qt中运行一个opencv示例"openni_capture.cpp",在编译过程中,它显示访问[=48=时权限被拒绝的错误,我检查了属性该文件的一部分,它为所有者以外的用户显示 'none'。所以我给其他用户只读访问权限并编译通过。但是当我 运行 构建的可执行文件时,它显示另一个错误:
无法打开捕获对象。
CvCapture_OpenNI::CvCapture_OpenNI:无法枚举生产树:无法创建请求类型的任何节点!
直到现在我觉得可能所有与 kinect 相关的东西都需要 root 权限,所以我导航到包含可执行文件的文件夹并手动 运行 它和 'sudo',然后 kinect 正在工作再次。
我知道我可以通过以 root 身份登录来避免这个问题(许多人反对),但我真的很想知道发生了什么。而且我记得在我安装ROS之前,我不用'sudo'打开NiViewer。 ROS 是否以某种方式更改了 ubuntu 系统并导致了此问题,还是有其他原因?谢谢!
这可能是一个访问权限问题,可能 运行 在用户模式下,您需要将自己添加到 UNIX ‘video’ 组(参见此 explanation)
sudo adduser $USER video
然后退出并重新登录。不需要重新启动,只需重新插入循环Kinect(如果已经连接,拔下并重新插入),然后重试。希望对您有所帮助!
我最近遇到一个问题,可以描述为:只要程序需要kinect 到运行,就需要Root 权限。
我的工具链设置是:ubuntu14 + ros indigo + opencv_2.4.11 + openni_1.5.7.10 + primesense_5.1.2.1 + kinect_v1
现象如下:
当我尝试通过 openni NiViewer 查看 kinect 输出时,如果我 运行 NiViewer 没有 'sudo',我将收到以下消息
无法枚举以下一个或多个节点:
设备:PrimeSense/SensorV2/5.1.0.41: 设备未连接!
按任意键继续。 . .
但是在我添加'sudo'打开NiViewer后,kinect功能正常。
我尝试在qt中运行一个opencv示例"openni_capture.cpp",在编译过程中,它显示访问[=48=时权限被拒绝的错误,我检查了属性该文件的一部分,它为所有者以外的用户显示 'none'。所以我给其他用户只读访问权限并编译通过。但是当我 运行 构建的可执行文件时,它显示另一个错误:
无法打开捕获对象。 CvCapture_OpenNI::CvCapture_OpenNI:无法枚举生产树:无法创建请求类型的任何节点!
直到现在我觉得可能所有与 kinect 相关的东西都需要 root 权限,所以我导航到包含可执行文件的文件夹并手动 运行 它和 'sudo',然后 kinect 正在工作再次。
我知道我可以通过以 root 身份登录来避免这个问题(许多人反对),但我真的很想知道发生了什么。而且我记得在我安装ROS之前,我不用'sudo'打开NiViewer。 ROS 是否以某种方式更改了 ubuntu 系统并导致了此问题,还是有其他原因?谢谢!
这可能是一个访问权限问题,可能 运行 在用户模式下,您需要将自己添加到 UNIX ‘video’ 组(参见此 explanation)
sudo adduser $USER video
然后退出并重新登录。不需要重新启动,只需重新插入循环Kinect(如果已经连接,拔下并重新插入),然后重试。希望对您有所帮助!