Skip to content

Libfreenect2 not working on Jetson TX1 #581

@menlocaleb

Description

@menlocaleb

I'm trying to run libfreenect2 on an Nvidia Jetson TX1 Developer Kit and can't seem to get it working. Here's the output I'm getting:

$ LIBUSB_DEBUG=3 ./bin/Protonect 
Version: 0.2.0
Environment variables: LOGFILE=<protonect.log>
Usage: ./bin/Protonect [gl | cl | cuda | cpu] [<device serial>]
        [-noviewer] [-norgb | -nodepth] [-help] [-version]
To pause and unpause: pkill -USR1 Protonect
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 18 usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @2:6 with serial 068176734547
[Info] [Freenect2Impl] found 1 devices
[Info] [Freenect2DeviceImpl] opening...
[Info] [Freenect2DeviceImpl] opened
[Info] [Freenect2DeviceImpl] starting...
[Debug] [Freenect2DeviceImpl] status 0x090000: 9855
[Debug] [Freenect2DeviceImpl] status 0x090000: 9855
[Info] [Freenect2DeviceImpl] submitting rgb transfers...
[Info] [Freenect2DeviceImpl] submitting depth transfers...
[Error] [RgbPacketStreamParser] packetsize or sequence doesn't match!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] subpacket too large
[Info] [Freenect2DeviceImpl] started
device serial: 068176734547
device firmware: 4.0.3911.0
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] subpacket too large
[Debug] [DepthPacketStreamParser] image data too short!
[Debug] [DepthPacketStreamParser] not all subsequences received 0

I've ensured that USB 3 is enabled in /boot/extlinux/extlinux.conf and turned off usb autosuspend using for i in /sys/bus/usb/devices/*/power/autosuspend; do echo -1 >$i; done

I've checked dmesg for all of the issues mentioned in the Troubleshooting wiki and couldn't find anything.

$ lspci
00:01.0 PCI bridge: NVIDIA Corporation Device 0fae (rev a1)
01:00.0 PCI bridge: Pericom Semiconductor Device 2608
02:01.0 PCI bridge: Pericom Semiconductor Device 2608
02:02.0 PCI bridge: Pericom Semiconductor Device 2608
02:03.0 PCI bridge: Pericom Semiconductor Device 2608
02:04.0 PCI bridge: Pericom Semiconductor Device 2608
03:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
04:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
$ lsusb -t
/:  Bus 10.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 09.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/5p, 480M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
    |__ Port 1: Dev 5, If 0, Class=Hub, Driver=hub/1p, 5000M
        |__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=, 5000M
        |__ Port 1: Dev 6, If 1, Class=Vendor Specific Class, Driver=, 5000M
        |__ Port 1: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 1: Dev 6, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/1p, 480M

I did succeed in getting the jetsonhacks version of libfreenect2 to work after a few small tweaks so I know it's possible to run on the TX1, I just can't figure out how to get the main version of libfreenect2 to work. I need to do this because I want to use the iai_kinect2 code to integrate with ROS, and that code needs the main version of libfreenect2. Any help would be greatly appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions