I'm running a 3D SLAM application (RTAB-Map) on my Raspberry Pi 3 with Raspbian Jessie. The sensor I'm using is a Kinect v1 (Xbox 360) camera connected to one of the USB ports.
I've installed libfreenect from source, following this tutorial. After the tutorial, I was able to run the sample tests normally, but after I've installed OpenCV from source, the problem started. Most times (~90%) I try to start the mapping process on RTAB-Map (or when I try one of the demos from libfreenect) I get one of the following errors:
send_cmd: Output control transfer failed (-1)
freenect_fetch_reg_pad_info: send_cmd read -1 bytes (expected 8)
freenect_camera_init(): Failed to fetch registration pad info for device
or
send_cmd: Input control transfer failed (18)
freenect_fetch_reg_pad_info: send_cmd read 18 bytes (expected 118)
Every now and then, libfreenect actually starts working and I manage to run the application.
What is causing this behavior? How can I fix it?
Thanks in advance. I'll provide any additional details necessary.
UPDATE
Here's part of the output from dmesg
:
[ 2137.035095] usb 1-1.5.3: USB disconnect, device number 13
[ 2140.086494] usb 1-1.5.3: new high-speed USB device number 14 using dwc_otg
[ 2140.189807] usb 1-1.5.3: New USB device found, idVendor=045e, idProduct=02ae
[ 2140.189831] usb 1-1.5.3: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 2140.189845] usb 1-1.5.3: Product: Xbox NUI Camera
[ 2140.189857] usb 1-1.5.3: Manufacturer: Microsoft
[ 2140.189869] usb 1-1.5.3: SerialNumber: A00366814383041A
[ 2140.190947] gspca_main: kinect-2.14.0 probing 045e:02ae
[ 2972.032617] gspca_main: kinect-2.14.0 probing 045e:02ae
[ 2972.036198] gspca_main: kinect-2.14.0 probing 045e:02ae
[ 2972.218569] usb 1-1.5.3: USB disconnect, device number 14
[ 2975.012840] usb 1-1.5.3: new high-speed USB device number 15 using dwc_otg
[ 2975.116115] usb 1-1.5.3: New USB device found, idVendor=045e, idProduct=02ae
[ 2975.116138] usb 1-1.5.3: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 2975.116152] usb 1-1.5.3: Product: Xbox NUI Camera
[ 2975.116165] usb 1-1.5.3: Manufacturer: Microsoft
[ 2975.116177] usb 1-1.5.3: SerialNumber: A00366814383041A
[ 2975.117261] gspca_main: kinect-2.14.0 probing 045e:02ae
Things I've tried:
- Reserving memory:
vm.min_free_kbytes = 32768
in/etc/sysctl.conf
- Copying
udev
rules:sudo cp /libfreenect/platform/linux/udev/51-kinect.rules /etc/udev/rules.d
ln -s /home/[my username]/.Xauthority /root/.Xauthority
- Blacklisting
gspca_kinect
driver:sudo nano /etc/modprobe.d/raspi-blacklist.conf > blacklist gspca_kinect