#ubuntu #kinect #ros #openni
#ubuntu #kinect #ros #openni
Вопрос:
Недавно я столкнулся с проблемой, которую можно описать следующим образом: привилегия Root требуется всякий раз, когда программе требуется kinect для запуска.
Моя настройка цепочки инструментов: ubuntu14 ros indigo opencv_2.4.11 openni_1.5.7.10 primesense_5.1.2.1 kinect_v1
Явления заключаются в следующем:
-
Когда я пытаюсь проверить вывод kinect через openni NIViewer, если я запускаю NIViewer без «sudo», я получу следующее сообщение
Не удалось перечислить один или несколько из следующих узлов:
Устройство: PrimeSense / SensorV2 / 5.1.0.41: устройство не подключено!
Нажмите любую клавишу, чтобы продолжить . . .
Но kinect работает нормально, как только я добавляю ‘sudo’ для открытия NIViewer.
-
Я пытаюсь запустить образец opencv «openni_capture.cpp » в qt во время компиляции отображается ошибка, в которой отказано в разрешении при доступе libopenni.so , я проверяю свойства этого файла, и он показывает «нет» для пользователей, отличных от владельца. Поэтому я предоставляю другим пользователям доступ только для чтения, и компиляция прошла. Но когда я запускаю встроенный исполняемый файл, он показывает другую ошибку:
Не удается открыть объект захвата. CvCapture_OpenNI::CvCapture_OpenNI : не удалось перечислить производственные деревья: не удается создать ни одного узла запрошенного типа!
до сих пор у меня было ощущение, что, возможно, все, что связано с kinect, нуждается в привилегиях root, поэтому я перехожу к папке, содержащей исполняемый файл, и вручную запускаю его с помощью «sudo», после чего kinect снова работает.
Я знаю, что могу избежать этой проблемы, войдя в систему с правами root (против чего выступают многие люди), но я действительно хочу знать, что происходит. И я помню, что перед установкой ROS мне не нужно было использовать ‘sudo’ для открытия NIViewer. ROS каким-то образом изменяет систему Ubuntu и вызывает это, или есть другая причина? Спасибо!
Ответ №1:
Это может быть проблемой с правами доступа, и, возможно, для запуска в пользовательском режиме вам нужно добавить себя в группу UNIX ‘video’ (см. Это объяснение)
sudo adduser $USER video
Затем выйдите из системы и снова войдите. Перезагрузка не требуется, просто подключите Kinect (если он уже подключен, отключите и снова подключите) и повторите попытку. Надеюсь, это поможет!
Комментарии:
1. Спасибо Vtik, я решил это жестоким методом, я просто искал все файлы в usr / lib, которые связаны с openni, и коллективно предоставлял им доступ только для чтения, после чего проблема исчезла. Тем не менее, я отмечу, что ваш ответ принят, надеюсь, он поможет другим с той же проблемой.