microsoft / Azure_Kinect_ROS_Driver

A ROS sensor driver for the Azure Kinect Developer Kit.
MIT License
295 stars 220 forks source link

High CPU Load on default setting #266

Open MightyMirko opened 1 year ago

MightyMirko commented 1 year ago

Ubuntu 20.04 current foxy-devel branch

Description

I have set up the Azure Kinect ROS driver on my machine (16GiB System memory | AMD Ryzen 5 3600 6-Core Processor) and when running the driver node using the command ros2 launch azure_kinect_ros_driver driver.launch.py

I noticed that all 12 threads are being used up to 80% to 90%. However, on a student's laptop with an i7 7300 processor and 4 cores, the CPU usage was only around 30%. Steps to Reproduce

Clone the Azure Kinect ROS driver repository.
Set up the repository on your machine.
Run the command ros2 launch azure_kinect_ros_driver driver.launch.py to start the driver/node.

Expected Result

I expect the CPU usage to be similar to that of the student's laptop, around 30%. Actual Result

The CPU usage on my machine is significantly higher, around 80% to 90%. System Configuration

Operating System: Ubuntu 20.04
Processor: AMD Ryzen 5 3600 6-Core Processor
System Memory: 16GiB
Azure Kinect ROS driver version: latest foxy-devel

Additional Information

It is possible that the high CPU usage is due to the difference in system specifications, such as processor architecture, number of cores, memory, and operating system. I have not noticed any anomalies or spikes in the system performance data.

ooeygui commented 1 year ago

@mightymirko Thank you for the report. The Azure Kinect SDK (which is what the ROS node uses under the covers) has specific optimizations for Intel processors which likely impacts the difference in performance you are observing.

Could you try just using the SDK directly to see if that manifests? (You can use the kinect application for this test)