Files
OrbbecSDK_ROS2/source/6_benchmark/performance/lower_cpu_usage.html
T

541 lines
38 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Reducing CPU Usage with Orbbec ROS Package &mdash; OrbbecSDK V2 ROS2 Wrapper documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=a2eacb60" />
<link rel="shortcut icon" href="../../../_static/orbbec_footerlogo_3d_world.svg"/>
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
OrbbecSDK V2 ROS2 Wrapper
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../1_overview/overview.html">1. Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../1_overview/introduction.html">1.1. Introduction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/introduction.html#support-hardware-products">1.1.1. Support Hardware Products</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/introduction.html#orbbec-camera-datasheet">1.1.2. Orbbec camera datasheet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/introduction.html#support-platforms">1.1.3. Support Platforms</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../1_overview/orbbecsdk_overview.html">1.2. Orbbec SDK Overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/orbbecsdk_overview.html#terms">1.2.1. Terms</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/orbbecsdk_overview.html#orbbec-sdk-v2-architecture-overview">1.2.2. Orbbec SDK v2 Architecture Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/orbbecsdk_overview.html#sdk-concept-overview">1.2.3. SDK Concept Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../1_overview/orbbecsdk_overview.html#sdk-programming-model">1.2.4. SDK Programming Model</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../2_installation/installation.html">2. Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../2_installation/build_the_package.html">2.1. Build from Source</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../2_installation/build_the_package.html#environment">2.1.1. Environment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../2_installation/build_the_package.html#linux-ros2-wrapper-compilation">2.1.2. Linux ROS2 Wrapper Compilation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../2_installation/registration_script.html">2.2. Registration script (required)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../3_quickstarts/quickstarts.html">3. Quickstarts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../3_quickstarts/quickstart.html">3.1. QuickStarts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/quickstart.html#introduction">3.1.1. Introduction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/quickstart.html#build-your-first-camera-application">3.1.2. Build your First Camera Application</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#step-1-source-ros-2-and-workspace">3.1.2.1. Step 1: Source ROS 2 and Workspace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#step-2-launch-the-camera-node">3.1.2.2. Step 2: Launch the Camera Node</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#step-3-visualize-in-rviz2">3.1.2.3. Step 3: Visualize in RViz2</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/quickstart.html#sample-features">3.1.3. Sample Features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#list-available-topics-services-parameters">3.1.3.1. List available topics / services/ parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#echo-a-topic">3.1.3.2. Echo a topic</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#call-a-service">3.1.3.3. Call a service</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../3_quickstarts/quickstart.html#record-with-rosbag2">3.1.3.4. Record with rosbag2</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../3_quickstarts/orbbecviewer.html">3.2. OrbbecViewer tutorial</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/orbbecviewer.html#download">3.2.1. Download</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/orbbecviewer.html#connect-the-device">3.2.2. Connect the device</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/orbbecviewer.html#camera-control">3.2.3. Camera Control</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../3_quickstarts/orbbecviewer.html#device-information-and-firmware-upgrade">3.2.4. Device information and firmware upgrade</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../4_application_guide/application_guide.html">4. Application Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/launch_parameters.html">4.1. Launch parameters</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#core-stream-configuration">4.1.1. Core &amp; Stream Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#sensor-controls">4.1.2. Sensor Controls</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#color-stream">4.1.2.1. Color Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#depth-stream">4.1.2.2. Depth Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#ir-stream">4.1.2.3. IR Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#laser-ldp">4.1.2.4. Laser / LDP</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#device-sync-advanced-features">4.1.3. Device, Sync &amp; Advanced Features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#multi-camera-synchronization">4.1.3.1. Multi-Camera Synchronization</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#network-cameras">4.1.3.2. Network Cameras</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#device-specific">4.1.3.3. Device-Specific</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#disparity">4.1.3.4. Disparity</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#interleave-ae-mode">4.1.3.5. Interleave AE Mode</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#basic-general-parameters">4.1.4. Basic &amp; General Parameters</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#firmware-backend">4.1.4.1. Firmware &amp; Backend</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#tf-extrinsics-calibration">4.1.4.2. TF, Extrinsics &amp; Calibration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#time-synchronization">4.1.4.3. Time Synchronization</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#logging-diagnostics">4.1.4.4. Logging &amp; Diagnostics</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#miscellaneous">4.1.4.5. Miscellaneous</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#imu">4.1.5. IMU</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#depth-filters">4.1.6. Depth Filters</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/services.html">4.2. All available services for camera control</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#stream-control">4.2.1. Stream Control</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#color-stream">4.2.1.1. Color Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#depth-stream">4.2.1.2. Depth Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#ir-stream">4.2.1.3. IR Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#all-streams">4.2.1.4. All Streams</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#sensor-emitter-control">4.2.2. Sensor &amp; Emitter Control</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#device-information-management">4.2.3. Device Information &amp; Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#synchronization-triggering">4.2.4. Synchronization &amp; Triggering</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#depth-filter-configuration">4.2.5. Depth Filter Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#data-capture-calibration-management">4.2.6. Data Capture &amp; Calibration Management</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/topics.html">4.3. Available Topics</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/topics.html#image-streams">4.3.1. Image Streams</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/topics.html#point-cloud-topics">4.3.2. Point Cloud Topics</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/topics.html#imu-topics">4.3.3. IMU Topics</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/topics.html#device-status-diagnostics">4.3.4. Device Status &amp; Diagnostics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/coordinate_systems.html">4.4. ROS2(Robot) vs Optical(Camera) Coordination Systems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/camera_sensor_structure.html">4.5. Camera sensor structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/tf_transformations.html">4.6. TF from coordinate A to coordinate B:</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/compressed_image.html">4.7. Compressed Image</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../4_application_guide/point_cloud.html">4.8. Enabling and Visualizing Point Cloud in ROS 2</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/point_cloud.html#enabling-depth-point-cloud">4.8.1. Enabling Depth Point Cloud</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/point_cloud.html#command-to-enable-depth-point-cloud">4.8.1.1. Command to Enable Depth Point Cloud</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/point_cloud.html#visualizing-depth-point-cloud-in-rviz2">4.8.1.2. Visualizing Depth Point Cloud in RViz2</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/point_cloud.html#enabling-colored-point-cloud">4.8.2. Enabling Colored Point Cloud</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/point_cloud.html#command-to-enable-colored-point-cloud">4.8.2.1. Command to Enable Colored Point Cloud</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/point_cloud.html#visualizing-colored-point-cloud-in-rviz2">4.8.2.2. Visualizing Colored Point Cloud in RViz2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../5_advanced_guide/advanced_guide.html">5. Advanced Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../5_advanced_guide/advanced_guide.html#multi-camera">5.1. Multi-Camera</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera.html">5.1.1. Multi-Camera</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera.html#no-data-stream-from-multiple-cameras">5.1.1.1. No Data Stream from Multiple Cameras</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera.html#image-topic-frame-rate-too-low-from-multiple-cameras">5.1.1.2. Image topic frame rate too low from Multiple Cameras</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced.html">5.1.2. Multi_camera synced Instructions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced.html#setup-instructions">5.1.2.1. Setup instructions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced.html#checking-camera-port-with-orbbecsdk-ros2">5.1.2.2. Checking camera port with OrbbecSDK_ROS2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced.html#orbbecsdk-ros2-multi-camera-synced-configuration">5.1.2.3. OrbbecSDK_ROS2 multi-camera synced configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced.html#run-the-following-command-to-start-the-multi-camera-synced">5.1.2.4. Run the following command to start the multi-camera synced</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html">5.1.3. Multi_camera_synced_verification_tool</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#directory-structure">5.1.3.1. Directory Structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#preparation-for-operation">5.1.3.2. Preparation for operation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#run-this-example">5.1.3.3. Run this example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#files-that-need-to-be-changed">5.1.3.4. Files that need to be changed</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/multi_camera/gmsl_camera.html">5.1.4. GMSL_camera</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/gmsl_camera.html#single-gmsl-camera">5.1.4.1. Single GMSL camera</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/gmsl_camera.html#multi-gmsl-camera">5.1.4.2. Multi GMSL camera</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/multi_camera/gmsl_camera.html#multi-gmsl-camera-synced">5.1.4.3. Multi GMSL camera synced</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../5_advanced_guide/advanced_guide.html#configuration-modes">5.2. Configuration &amp; Modes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/align_depth_color.html">5.2.1. Aligning Depth to Color in ROS 2</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/align_depth_color.html#commands-to-align-and-view-depth-and-color-images">5.2.1.1. Commands to Align and View Depth and Color Images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/align_depth_color.html#selecting-topics-in-rviz2">5.2.1.2. Selecting Topics in RViz2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/align_depth_color.html#example-of-depth-to-color-overlay">5.2.1.3. Example of Depth to Color Overlay</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/configuration_of_depth_NFOV_and_WFOV_modes.html">5.2.2. Configuration of depth NFOV and WFOV modes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/depth_work_mode_switch.html">5.2.3. Depth work mode switch</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/disparity_search_offset.html">5.2.4. Disparity_search_offset</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/disparity_search_offset.html#function-introduction">5.2.4.1. Function Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/disparity_search_offset.html#parameter-introduction">5.2.4.2. Parameter Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/disparity_search_offset.html#run-the-launch">5.2.4.3. Run the launch</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/interleave_ae_mode.html">5.2.5. Using interleave_ae with Gemini330 series cameras</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/interleave_ae_mode.html#parameter-introduction">5.2.5.1. Parameter Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/interleave_ae_mode.html#run-the-launch">5.2.5.2. Run the launch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/interleave_ae_mode.html#multi-camera-synced-interleave-ae">5.2.5.3. Multi_camera_synced + Interleave_ae</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/predefined_presets.html">5.2.6. Predefined presets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../5_advanced_guide/configuration/net_camera.html">5.2.7. Net_camera</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/net_camera.html#femto-mega-gemini-435le">5.2.7.1. Femto Mega &amp; Gemini 435Le</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/net_camera.html#gemini-335le">5.2.7.2. Gemini 335Le</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../5_advanced_guide/configuration/net_camera.html#multi-net-camera">5.2.7.3. Multi Net camera</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../benchmark.html">6. Benchmark</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../introduction.html">6.1. Introduction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../introduction.html#common-benchmark-node">6.1.1. common benchmark node</a></li>
<li class="toctree-l3"><a class="reference internal" href="../introduction.html#service-benchmark-node">6.1.2. service benchmark node</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../benchmark_usage.html">6.2. Benchmark Usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../benchmark_usage.html#using-common-benchmark-node">6.2.1. Using common benchmark node</a></li>
<li class="toctree-l3"><a class="reference internal" href="../benchmark_usage.html#using-service-benchmark-node">6.2.2. Using service benchmark node</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../benchmark_usage.html#ros2-c">6.2.2.1. ROS2 C++</a></li>
<li class="toctree-l4"><a class="reference internal" href="../benchmark_usage.html#ros2-python">6.2.2.2. ROS2 Python</a></li>
<li class="toctree-l4"><a class="reference internal" href="../benchmark_usage.html#example-yaml-configuration">6.2.2.3. <strong>Example YAML configuration</strong></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../benchmark_data.html">6.3. Benchmark Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../performance.html">6.4. Performance &amp; Optimization</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../performance.html#ob-benchmark-tool">6.4.1. Ob_benchmark tool</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#tool-configuration-start-benchmark-params-json">6.4.1.1. Tool Configuration (start_benchmark_params.json)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#camera-configuration-launch-files">6.4.1.2. Camera configuration (launch files)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#running-the-ob-benchmark-tool">6.4.1.3. Running the ob_benchmark tool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#output-data-files">6.4.1.4. Output Data Files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../performance.html#reducing-cpu-usage-with-orbbec-ros-package">6.4.2. Reducing CPU Usage with Orbbec ROS Package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#recommended-settings-for-lower-cpu-usage">6.4.2.1. Recommended Settings for Lower CPU Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#launch-files-used-for-testing">6.4.2.2. Launch Files Used for Testing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#test-environment">6.4.2.3. Test environment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#test-setup">6.4.2.4. Test Setup</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#test-results">6.4.2.5. Test Results</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#further-optimizationa">6.4.2.6. Further Optimizationa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../performance.html#efficient-intra-process-communication">6.4.3. Efficient intra-process communication</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#introduction">6.4.3.1. Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#example">6.4.3.2. Example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../performance.html#fast-dds-optimization-for-orbbec-camera-with-ros2">6.4.4. Fast DDS Optimization for Orbbec Camera with ROS2</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#adjusting-system-parameters">6.4.4.1. Adjusting System Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../performance.html#fast-dds-configuration">6.4.4.2. Fast DDS Configuration</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../7_developer_guide/developer_guide.html">7. Developer Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../7_developer_guide/building_a_Debian_Package.html">7.1. Building a Debian Package</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../7_developer_guide/building_a_Debian_Package.html#preparing-the-environment">7.1.1. Preparing the Environment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../7_developer_guide/building_a_Debian_Package.html#configuring-ros-dependencies">7.1.2. Configuring ROS Dependencies</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../7_developer_guide/building_a_Debian_Package.html#building-the-package">7.1.3. Building the Package</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../8_FAQ/FAQ.html">8. Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../8_FAQ/FAQ.html#unexpected-crash">8.1. Unexpected Crash</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../8_FAQ/FAQ.html#no-data-stream-from-multiple-cameras">8.2. No Data Stream from Multiple Cameras</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../8_FAQ/FAQ.html#additional-troubleshooting">8.3. Additional Troubleshooting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../8_FAQ/FAQ.html#why-are-there-so-many-launch-files">8.4. Why Are There So Many Launch Files?</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">OrbbecSDK V2 ROS2 Wrapper</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Reducing CPU Usage with Orbbec ROS Package</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/source/6_benchmark/performance/lower_cpu_usage.md.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="reducing-cpu-usage-with-orbbec-ros-package">
<h1>Reducing CPU Usage with Orbbec ROS Package<a class="headerlink" href="#reducing-cpu-usage-with-orbbec-ros-package" title="Link to this heading"></a></h1>
<p>You can find example usage code in the <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples">example</a>.</p>
<p>This document outlines strategies for minimizing CPU usage in the <strong>OrbbecSDK_ROS2 v2</strong> environment when using <strong>Gemini 330 series cameras</strong>. The firmware version must be <strong>no lower than 1.4.10</strong>, and <code class="docutils literal notranslate"><span class="pre">device</span></code> should be set to <strong>Default</strong>.</p>
<section id="recommended-settings-for-lower-cpu-usage">
<h2>Recommended Settings for Lower CPU Usage<a class="headerlink" href="#recommended-settings-for-lower-cpu-usage" title="Link to this heading"></a></h2>
<p>To achieve the lowest possible CPU usage in OrbbecSDK_ROS2, it is recommended to configure the following parameters.</p>
<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>uvc_backend</code></td>
<td style="text-align: center;"><code>v4l2</code></td>
<td style="text-align: center;">Lower CPU usage compared to <code>libuvc</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>color_format</code></td>
<td style="text-align: center;"><code>RGB</code></td>
<td style="text-align: center;">Lower CPU usage than <code>MJPG</code></td>
</tr>
<tr>
<td style="text-align: center;"><code>filter</code></td>
<td style="text-align: center;">Only <code>hardware_noise_removal_filter</code></td>
<td style="text-align: center;">Other filters significantly increase CPU usage</td>
</tr>
</tbody>
</table></section>
<section id="launch-files-used-for-testing">
<h2>Launch Files Used for Testing<a class="headerlink" href="#launch-files-used-for-testing" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">gemini_330_series_lower_cpu_usage.launch.py</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">multi_camera_lower_cpu_usage.launch.py</span></code></p></li>
</ul>
</section>
<section id="test-environment">
<h2>Test environment<a class="headerlink" href="#test-environment" title="Link to this heading"></a></h2>
<p><strong>Hardware Configuration</strong></p>
<ul class="simple">
<li><p><strong>CPU</strong>: Intel i7-8700 &#64; 3.20GHz</p></li>
<li><p><strong>Memory</strong>: 24 GB</p></li>
<li><p><strong>Storage</strong>: Micron 2200S NVMe 256GB</p></li>
<li><p><strong>GPU</strong>: NVIDIA GeForce GTX 1660Ti</p></li>
<li><p><strong>OS</strong>: Ubuntu22.04</p></li>
</ul>
<p><strong>ROS Configuration</strong></p>
<ul class="simple">
<li><p><strong>ROS Version</strong>: ROS2 Humble</p></li>
<li><p><strong>SDK Version</strong>: OrbbecSDK_ROS2 v2.2.1</p></li>
</ul>
<p><strong>Camera Setup</strong></p>
<ul class="simple">
<li><p>Devices: 2x Gemini 335, 1x Gemini 336, 1x Gemini 336L</p></li>
<li><p>Firmware Version: 1.4.10</p></li>
</ul>
</section>
<section id="test-setup">
<h2>Test Setup<a class="headerlink" href="#test-setup" title="Link to this heading"></a></h2>
<p><strong>Stream Settings:</strong></p>
<ul class="simple">
<li><p>Depth / IR Left / IR Right: 848×480 &#64; 30fps</p></li>
<li><p>Color: 848×480 &#64; 30fps</p></li>
</ul>
<p>Note: The following CPU usage data focuses on <code class="docutils literal notranslate"><span class="pre">uvc_backend</span></code>, <code class="docutils literal notranslate"><span class="pre">color_format</span></code> and various filter combinations.</p>
</section>
<section id="test-results">
<h2>Test Results<a class="headerlink" href="#test-results" title="Link to this heading"></a></h2>
<p><strong><code class="docutils literal notranslate"><span class="pre">uvc_backend</span></code> Comparison (RGB format)</strong></p>
<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">libuvc CPU Usage</th>
<th style="text-align: center;">v4l2 CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-64.0%</td>
</tr>
</tbody>
</table><p>The CPU usage can be significantly reduced with v4l2 backend. In our implementation, v4l2 works without requiring any patches to the Linux kernel, allowing users to easily switch between v4l2 and libuvc and maintaining full compatibility with standard Linux distributions.</p>
<p><strong><code class="docutils literal notranslate"><span class="pre">color_format</span></code> Comparison (MJPG vs RGB)</strong></p>
<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Backend</th>
<th style="text-align: center;">MJPG CPU Usage</th>
<th style="text-align: center;">RGB CPU Usage</th>
<th style="text-align: center;">Absolute Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">libuvc</td>
<td style="text-align: center;">347.7%</td>
<td style="text-align: center;">182.8%</td>
<td style="text-align: center;">-164.9%</td>
</tr>
<tr>
<td style="text-align: center;">v4l2</td>
<td style="text-align: center;">170.0%</td>
<td style="text-align: center;">118.8%</td>
<td style="text-align: center;">-51.2%</td>
</tr>
</tbody>
</table><p>The CPU usage can be reduced if the RGB format is selected instead of MJPG, since the decoding of MJPG image will consume the host CPU resource.</p>
<p><strong>Filter Configuration Impact</strong></p>
<table border="1" class="docutils">
<thead>
<tr>
<th>Filters Applied</th>
<th>libuvc CPU Usage</th>
<th>CPU Usage Increase</th>
<th>v4l2 CPU Usage</th>
<th>CPU Usage Increase</th>
</tr>
</thead>
<tbody>
<tr>
<td>No Filter (benchmark)</td>
<td>182.8%</td>
<td>0.0%(benchmark)</td>
<td>118.8%</td>
<td>0.0%(benchmark)</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter</code></td>
<td>218.0%</td>
<td>+35.2%</td>
<td>128.5%</td>
<td>+9.7%</td>
</tr>
<tr>
<td><code>(software)noise_removal_filter + spatial_filter</code></td>
<td>469.6%</td>
<td>+286.8%</td>
<td>336.7%</td>
<td>+217.9%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter</code></td>
<td>186.3%</td>
<td>+3.5%</td>
<td>115.4%</td>
<td>-3.4%</td>
</tr>
<tr>
<td><code>hardware_noise_removal_filter + spatial_filter</code></td>
<td>251.3%</td>
<td>+68.5%</td>
<td>152.5%</td>
<td>+33.7%</td>
</tr>
</tbody>
</table><p>Based on the test results, using only the <code class="docutils literal notranslate"><span class="pre">hardware_noise_removal_filter</span></code> results in a negligible change in CPU usage for both <code class="docutils literal notranslate"><span class="pre">libuvc</span></code> (+3.5%) and <code class="docutils literal notranslate"><span class="pre">v4l2</span></code> (-3.4%) compared to the no-filter benchmark, as this filter runs internally on the camera hardware. In contrast, other filters execute on the host system. Adding the <code class="docutils literal notranslate"><span class="pre">spatial_filter</span></code> to the hardware filter leads to a moderate increase in CPU usage, while applying the software-based <code class="docutils literal notranslate"><span class="pre">noise_removal_filter</span></code> —either alone or combined with <code class="docutils literal notranslate"><span class="pre">spatial_filter</span></code> —significantly increases CPU load. To maintain low CPU usage, it is recommended to avoid software-based filters and rely solely on the <code class="docutils literal notranslate"><span class="pre">hardware_noise_removal_filter</span></code>.</p>
</section>
<section id="further-optimizationa">
<h2>Further Optimizationa<a class="headerlink" href="#further-optimizationa" title="Link to this heading"></a></h2>
<table border="1" class="docutils">
<thead>
<tr>
<th style="text-align: center;">Parameter</th>
<th style="text-align: center;">Recommendation</th>
<th style="text-align: center;">Note</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><code>depth_registration</code></td>
<td style="text-align: center;"><code>false</code> or <code>true</code> with <code>align_mode=HW</code></td>
<td style="text-align: center;">Software alignment consumes more CPU</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling point cloud reduces CPU usage</td>
</tr>
<tr>
<td style="text-align: center;"><code>enable_colored_point_cloud</code></td>
<td style="text-align: center;"><code>false</code></td>
<td style="text-align: center;">Disabling colored point cloud reduces CPU usage</td>
</tr>
</tbody>
</table></section>
</section>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, ORBBEC INC. www.orbbec.com..
<span class="lastupdated">Last updated on 2025-09-25 13:04:17.
</span></p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>