2016-10-13 3 views
2

J'ai récemment rencontré un problème qui peut être décrit comme suit: Le privilège de racine est nécessaire chaque fois qu'un programme a besoin de kinect pour s'exécuter.Le privilège root est nécessaire lors de l'utilisation de kinect

Ma configuration de la chaîne d'outils est: ubuntu14 + ros indigo + opencv_2.4.11 + openni_1.5.7.10 + primesense_5.1.2.1 + kinect_v1

Les phénomènes sont les suivantes:

  1. Lorsque J'essaie de vérifier la sortie kinect par OpenNI NiViewer, si je lance NiViewer sans sudo, je vais faire passer le message suivant

    Un ou plusieurs des nœuds suivants ne pourraient pas être dénombrés:

    Appareil: PrimeSense/SensorV2/5.1.0.41: L'appareil n'est pas connecté!

    Appuyez sur une touche pour continuer. . .

    Mais kinect fonctionne normalement une fois que j'ajoute le 'sudo' pour ouvrir NiViewer. J'essaie d'exécuter un exemple opencv "openni_capture.cpp" en qt, lors de la compilation, il montre l'erreur que l'autorisation refusée lors de l'accès à libopenni.so, je vérifie les propriétés de ce fichier et il montre «aucun» pour les utilisateurs autre que le propriétaire. Donc, je donne aux autres utilisateurs un accès en lecture seule et la compilation est passée. Mais quand j'exécute l'exécutable construit, il montre une autre erreur:

    Impossible d'ouvrir un objet de capture. CvCapture_OpenNI :: CvCapture_OpenNI: Echec de l'énumération des arborescences de production: impossible de créer un nœud du type demandé!

    Jusqu'à présent, j'ai l'impression que tout ce qui concerne kinect a besoin de privilèges root, je navigue donc dans le dossier qui contient l'exécutable et l'exécute manuellement avec 'sudo', puis kinect fonctionne à nouveau.

Je sais que je peux éviter ce problème en vous connectant en tant que root (qui est par contre beaucoup de gens), mais je veux vraiment savoir ce qui se passe. Et je me souviens qu'avant d'installer ROS, je n'avais pas besoin d'utiliser 'sudo' pour ouvrir NiViewer. Est-ce que ROS change le système d'ubuntu d'une manière ou d'une autre et a provoqué ceci, ou est-ce qu'il y a une autre raison? MERCI!

Répondre

0

Cela pourrait être un problème de privilèges d'accès et peut-être de fonctionner en mode utilisateur, vous devez vous ajouter au groupe « video » UNIX (voir ce explanation)

sudo adduser $USER video 

puis déconnectez et avant. Redémarrez n'est pas nécessaire, il suffit de brancher le Kinect (s'il est déjà connecté, débranchez et rebranchez-le), et réessayez. J'espère que cela aide !

+0

Merci Vtik, j'ai résolu cela avec une méthode brutale, j'ai simplement cherché tous les fichiers dans l'usr/lib qui sont liés à openni, et leur donner un accès en lecture seule collectivement, puis le problème a disparu. Pourtant, je vais marquer votre réponse acceptée, j'espère que cela peut aider les autres avec le même problème. –