code-iai / iai_kinect2

Tools for using the Kinect One (Kinect v2) in ROS
Apache License 2.0
874 stars 519 forks source link

High CPU usage, GPU is not recognized, OpenCl works, but CUDA doesn't (Newbie here) #522

Open Aequilibritas opened 5 years ago

Aequilibritas commented 5 years ago

Hey, can you help me out? I am using ROS Rviz, iai_kinect2 and of course Libfreenect2 everything works, but The CPU usage for an HD PointCloud is just abysmal. Also I would like to switch from OpenCL to CUDA and for the life of me, I can't seem to make it work...

Here is what kinect2_bridge comes up with:

SUMMARY

PARAMETERS

NODES / kinect2 (nodelet/nodelet) kinect2_bridge (nodelet/nodelet) kinect2_points_xyzrgb_hd (nodelet/nodelet) kinect2_points_xyzrgb_qhd (nodelet/nodelet) kinect2_points_xyzrgb_sd (nodelet/nodelet)

ROS_MASTER_URI=http://localhost:11311

process[kinect2-1]: started with pid [15667] process[kinect2_bridge-2]: started with pid [15668] process[kinect2_points_xyzrgb_sd-3]: started with pid [15669] [ INFO] [1548265055.535415395]: Loading nodelet /kinect2_bridge of type kinect2_bridge/kinect2_bridge_nodelet to manager kinect2 with the following remappings: [ INFO] [1548265055.537340215]: waitForService: Service [/kinect2/load_nodelet] has not been advertised, waiting... process[kinect2_points_xyzrgb_qhd-4]: started with pid [15674] process[kinect2_points_xyzrgb_hd-5]: started with pid [15681] [ INFO] [1548265055.550430753]: Initializing nodelet with 4 worker threads. [ INFO] [1548265055.557910586]: waitForService: Service [/kinect2/load_nodelet] is now available. [ INFO] [1548265055.632265961]: [Kinect2Bridge::initialize] parameter: base_name: kinect2 sensor: default fps_limit: -1 calib_path: /home/arthur/catkin_ws/src/iai_kinect2/kinect2_bridge/data/ use_png: false jpeg_quality: 90 png_level: 1 depth_method: default depth_device: -1 reg_method: default reg_device: -1 max_depth: 12 min_depth: 0.1 queue_size: 5 bilateral_filter: true edge_aware_filter: true publish_tf: false base_name_tf: kinect2 worker_threads: 4 [Info] [CudaDepthPacketProcessorImpl] device 0: GeForce GTX 1050 Ti @ 1392MHz Memory 4040MB [Info] [CudaDepthPacketProcessorImpl] selected device 0 libva info: VA-API version 1.1.0 libva info: va_getDriverName() returns -1 libva error: va_getDriverName() failed with unknown libva error,driver_name=(null) [Error] [VaapiRgbPacketProcessorImpl] vaInitialize(display, &major_ver, &minor_ver): unknown libva error [Info] [Freenect2Impl] enumerating devices... [Info] [Freenect2Impl] 11 usb devices connected [Info] [Freenect2Impl] found valid Kinect v2 @4:3 with serial 004788164147 [Info] [Freenect2Impl] found 1 devices [ INFO] [1548265055.759779299]: [Kinect2Bridge::initDevice] Kinect2 devices found: [ INFO] [1548265055.759822860]: [Kinect2Bridge::initDevice] 0: 004788164147 (selected) [Info] [Freenect2DeviceImpl] opening... [Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 2016384 ir: 608*33792 [Info] [Freenect2DeviceImpl] opened [ INFO] [1548265055.865033969]: [Kinect2Bridge::initDevice] starting kinect2 [Info] [Freenect2DeviceImpl] starting... [Info] [Freenect2DeviceImpl] submitting rgb transfers... [Info] [Freenect2DeviceImpl] submitting depth transfers... [Info] [Freenect2DeviceImpl] started [ INFO] [1548265056.208114434]: [Kinect2Bridge::initDevice] device serial: 004788164147 [ INFO] [1548265056.208208605]: [Kinect2Bridge::initDevice] device firmware: 2.3.3913.0 [Info] [Freenect2DeviceImpl] stopping... [Info] [Freenect2DeviceImpl] canceling rgb transfers... [Info] [Freenect2DeviceImpl] canceling depth transfers... [Info] [Freenect2DeviceImpl] stopped DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) [ WARN] [1548265056.547601176]: [Kinect2Bridge::initCalibration] using sensor defaults for color intrinsic parameters. [ WARN] [1548265056.547654240]: [Kinect2Bridge::initCalibration] using sensor defaults for ir intrinsic parameters. [ WARN] [1548265056.547674805]: [Kinect2Bridge::initCalibration] using defaults for rotation and translation. [ WARN] [1548265056.547692468]: [Kinect2Bridge::initCalibration] using defaults for depth shift. [ INFO] [1548265056.631000216]: [DepthRegistration::New] Using OpenCL registration method! [ INFO] [1548265056.631130261]: [DepthRegistration::New] Using OpenCL registration method! DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) [ INFO] [1548265056.645676660]: [DepthRegistrationOpenCL::init] devices: [ INFO] [1548265056.646097336]: [DepthRegistrationOpenCL::init] 0: GeForce GTX 1050 Ti [ INFO] [1548265056.646231256]: [DepthRegistrationOpenCL::init] selected device: GeForce GTX 1050 Ti DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) [ INFO] [1548265056.776736866]: [DepthRegistrationOpenCL::init] devices: [ INFO] [1548265056.776920668]: [DepthRegistrationOpenCL::init] 0: GeForce GTX 1050 Ti [ INFO] [1548265056.777031101]: [DepthRegistrationOpenCL::init] selected device: GeForce GTX 1050 Ti [ INFO] [1548265056.876252730]: [Kinect2Bridge::main] waiting for clients to connect

I already copied this into my bashrc: export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" export PATH="/usr/local/cuda/bin:${PATH}"

also I used the sudo prime-select nvidia order to switch, but it doesn't seem to work

I should also mention that my CPU is a Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz

Any ideas what I can do?