Ich habe kürzlich ein Problem festgestellt, das wie folgt beschrieben werden kann: Root-Berechtigung wird benötigt, wenn ein Programm kinect ausführen muss.Root-Berechtigung wird benötigt, wenn kinect verwendet
Mein Werkzeugkette Setup ist: ubuntu14 + ros indigo + opencv_2.4.11 + openni_1.5.7.10 + primesense_5.1.2.1 + kinect_v1
Die Phänomene sind wie folgt:
Wenn ich versuche, die kinect Ausgabe über OpenNI NiViewer zu überprüfen, ob ich NiViewer ohne ‚sudo‘ laufen, werde ich die folgende Meldung erhalten
eine oder mehrere der folgenden Knoten nicht aufgezählt werden:
Gerät: PrimeSense/SensorV2/5.1.0.41: Das Gerät ist nicht angeschlossen!
Drücken Sie eine beliebige Taste, um fortzufahren. . .
Aber kinect funktioniert normal, sobald ich die 'sudo' hinzufügen, um NiViewer zu öffnen.
Ich versuche, eine Opencv-Beispiel "openni_capture.cpp" in Qt, während der Kompilierung zeigt Fehler, dass die Berechtigung verweigert beim Zugriff auf libopenni.so, überprüfe ich die Eigenschaften dieser Datei und es zeigt "keine" für Benutzer andere als Besitzer. Also gebe ich anderen Benutzern nur Lesezugriff und Kompilierung ging durch. Aber wenn ich die ausführbare Datei ausführe, zeigt es einen anderen Fehler:
Kann ein Capture-Objekt nicht öffnen. CvCapture_OpenNI :: CvCapture_OpenNI: Produktionsbäume konnten nicht aufgelistet werden: Es konnte kein Knoten des angeforderten Typs erstellt werden!
Bis jetzt habe ich das Gefühl, dass alles, was mit kinect zu tun hat, root-Rechte benötigt, also navigiere ich zu dem Ordner, der die ausführbare Datei enthält und führe es manuell mit 'sudo' aus, dann funktioniert kinect wieder.
Ich weiß, dass ich dieses Problem, indem Sie sich als root vermeiden kann (was gegen die von vielen Menschen ist), aber ich möchte wirklich wissen, was los ist. Und ich erinnere mich, dass ich vor der Installation von ROS nicht "sudo" verwenden musste, um NiViewer zu öffnen. Ändert ROS das ubuntu System irgendwie und verursacht das, oder gibt es andere Gründe? VIELEN DANK!
Dank Vtik, löste ich dies mit einer brutalen Methode, ich suchte einfach nach allen Dateien in der usr/lib, die mit Openni verwandt sind, und ihnen Lesezugriff gemeinsam geben, dann verschwand das Problem. Dennoch werde ich Ihre Antwort akzeptiert, hoffe, es kann anderen mit dem gleichen Problem helfen. –