<liclass="toctree-l3"><aclass="reference internal"href="../1_overview/introduction.html#support-hardware-products">1.1.1. Support Hardware Products</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../1_overview/introduction.html#orbbec-camera-datasheet">1.1.2. Orbbec camera datasheet</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../1_overview/introduction.html#support-platforms">1.1.3. Support Platforms</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../3_quickstarts/quickstart.html#build-your-first-camera-application">3.1.2. Build your First Camera Application</a><ul>
<liclass="toctree-l4"><aclass="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>
<liclass="toctree-l4"><aclass="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>
<liclass="toctree-l4"><aclass="reference internal"href="../3_quickstarts/quickstart.html#step-3-visualize-in-rviz2">3.1.2.3. Step 3: Visualize in RViz2</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../3_quickstarts/quickstart.html#list-available-topics-services-parameters">3.1.3.1. List available topics / services/ parameters</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../3_quickstarts/quickstart.html#echo-a-topic">3.1.3.2. Echo a topic</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../3_quickstarts/quickstart.html#call-a-service">3.1.3.3. Call a service</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../3_quickstarts/quickstart.html#record-with-rosbag2">3.1.3.4. Record with rosbag2</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../3_quickstarts/orbbecviewer.html#connect-the-device">3.2.2. Connect the device</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../3_quickstarts/orbbecviewer.html#camera-control">3.2.3. Camera Control</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../3_quickstarts/orbbecviewer.html#device-information-and-firmware-upgrade">3.2.4. Device information and firmware upgrade</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/launch_parameters.html#basic-general-parameters">4.1.4. Basic & General Parameters</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/launch_parameters.html#firmware-backend">4.1.4.1. Firmware & Backend</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/launch_parameters.html#tf-extrinsics-calibration">4.1.4.2. TF, Extrinsics & Calibration</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/launch_parameters.html#time-synchronization">4.1.4.3. Time Synchronization</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/launch_parameters.html#logging-diagnostics">4.1.4.4. Logging & Diagnostics</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/services.html#ir-stream">4.2.1.3. IR Stream</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/services.html#all-streams">4.2.1.4. All Streams</a></li>
</ul>
</li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/services.html#sensor-emitter-control">4.2.2. Sensor & Emitter Control</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/services.html#device-information-management">4.2.3. Device Information & Management</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/services.html#synchronization-triggering">4.2.4. Synchronization & Triggering</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/services.html#data-capture-calibration-management">4.2.6. Data Capture & Calibration Management</a></li>
</ul>
</li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/topics.html">4.3. Available Topics</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/topics.html#device-status-diagnostics">4.3.4. Device Status & Diagnostics</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html">4.4. ROS2 Robot vs Camera Optical Coordination Systems</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#using-ros2-tf-tools">4.5. Using ROS2 TF Tools</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#viewing-the-tf-tree-structure">4.5.1. Viewing the TF Tree Structure</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#visualizing-tf-tree-with-rviz2">4.5.2. Visualizing TF Tree with rviz2</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#camera-tf-calculation-and-publishing-mechanism">4.6. Camera TF Calculation and Publishing Mechanism</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#quaternion-initialization-and-coordinate-system-transformation">4.6.2. Quaternion Initialization and Coordinate System Transformation</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#obtaining-device-information-and-base-stream">4.6.3. Obtaining Device Information and Base Stream</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#iterating-through-all-streams-and-calculating-relative-transformations">4.6.4. Iterating Through All Streams and Calculating Relative Transformations</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#special-handling-for-left-and-right-ir-cameras">4.6.6. Special Handling for Left and Right IR Cameras</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/coordinate_systems.html#publishing-extrinsics-from-depth-to-other-sensors">4.6.7. Publishing Extrinsics from Depth to Other Sensors</a></li>
</ul>
</li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/camera_sensor_structure.html">4.7. Camera sensor structure</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/tf_transformations.html">4.8. TF from coordinate A to coordinate B:</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../4_application_guide/point_cloud.html">4.10. Enabling and Visualizing Point Cloud in ROS 2</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/point_cloud.html#enabling-depth-point-cloud">4.10.1. Enabling Depth Point Cloud</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/point_cloud.html#command-to-enable-depth-point-cloud">4.10.1.1. Command to Enable Depth Point Cloud</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/point_cloud.html#visualizing-depth-point-cloud-in-rviz2">4.10.1.2. Visualizing Depth Point Cloud in RViz2</a></li>
</ul>
</li>
<liclass="toctree-l3"><aclass="reference internal"href="../4_application_guide/point_cloud.html#enabling-colored-point-cloud">4.10.2. Enabling Colored Point Cloud</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/point_cloud.html#command-to-enable-colored-point-cloud">4.10.2.1. Command to Enable Colored Point Cloud</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../4_application_guide/point_cloud.html#visualizing-colored-point-cloud-in-rviz2">4.10.2.2. Visualizing Colored Point Cloud in RViz2</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../5_advanced_guide/advanced_guide.html#performance-optimization">5.1. Performance & Optimization</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html">5.1.1. Reducing CPU Usage with Orbbec ROS Package</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#recommended-settings-for-lower-cpu-usage">5.1.1.1. Recommended Settings for Lower CPU Usage</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#launch-files-used-for-testing">5.1.1.2. Launch Files Used for Testing</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#test-environment">5.1.1.3. Test environment</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#test-setup">5.1.1.4. Test Setup</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#test-results">5.1.1.5. Test Results</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/lower_cpu_usage.html#further-optimizationa">5.1.1.6. Further Optimizationa</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/performance/fastdds_tuning.html">5.1.3. Fast DDS Optimization for Orbbec Camera with ROS2</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/fastdds_tuning.html#adjusting-system-parameters">5.1.3.1. Adjusting System Parameters</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/performance/fastdds_tuning.html#fast-dds-configuration">5.1.3.2. Fast DDS Configuration</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera.html#no-data-stream-from-multiple-cameras">5.2.1.1. No Data Stream from Multiple Cameras</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera.html#image-topic-frame-rate-too-low-from-multiple-cameras">5.2.1.2. Image topic frame rate too low from Multiple Cameras</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera_synced.html#checking-camera-port-with-orbbecsdk-ros2">5.2.2.2. Checking camera port with OrbbecSDK_ROS2</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera_synced.html#run-the-following-command-to-start-the-multi-camera-synced">5.2.2.4. Run the following command to start the multi-camera synced</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#preparation-for-operation">5.2.3.2. Preparation for operation</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#run-this-example">5.2.3.3. Run this example</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/multi_camera_synced_verification_tool.html#files-that-need-to-be-changed">5.2.3.4. Files that need to be changed</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/gmsl_camera.html#single-gmsl-camera">5.2.4.1. Single GMSL camera</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/gmsl_camera.html#multi-gmsl-camera">5.2.4.2. Multi GMSL camera</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/multi_camera/gmsl_camera.html#multi-gmsl-camera-synced">5.2.4.3. Multi GMSL camera synced</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../5_advanced_guide/advanced_guide.html#configuration-modes">5.3. Configuration & Modes</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/configuration/align_depth_color.html">5.3.1. Aligning Depth to Color in ROS 2</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/align_depth_color.html#commands-to-align-and-view-depth-and-color-images">5.3.1.1. Commands to Align and View Depth and Color Images</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/align_depth_color.html#selecting-topics-in-rviz2">5.3.1.2. Selecting Topics in RViz2</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/align_depth_color.html#example-of-depth-to-color-overlay">5.3.1.3. Example of Depth to Color Overlay</a></li>
</ul>
</li>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/configuration/configuration_of_depth_NFOV_and_WFOV_modes.html">5.3.2. Configuration of depth NFOV and WFOV modes</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/configuration/depth_work_mode_switch.html">5.3.3. Depth work mode switch</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/disparity_search_offset.html#function-introduction">5.3.4.1. Function Introduction</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/disparity_search_offset.html#run-the-launch">5.3.4.3. Run the launch</a></li>
</ul>
</li>
<liclass="toctree-l3"><aclass="reference internal"href="../5_advanced_guide/configuration/interleave_ae_mode.html">5.3.5. Using interleave_ae with Gemini330 series cameras</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/interleave_ae_mode.html#run-the-launch">5.3.5.2. Run the launch</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/net_camera.html#femto-mega-gemini-435le-gemini-335le">5.3.7.1. Femto Mega & Gemini 435Le & Gemini 335Le</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../5_advanced_guide/configuration/net_camera.html#force-ip-function">5.3.7.3. Force IP Function</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../7_developer_guide/migration_guide.html">7.1. Migrating from main to Open-Source v2-main</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../7_developer_guide/migration_guide.html#advantages-of-migrating-from-main-to-v2-main">7.1.2. Advantages of Migrating from main to v2-main</a><ul>
<liclass="toctree-l4"><aclass="reference internal"href="../7_developer_guide/migration_guide.html#transparency-and-extensibility">7.1.2.2. <strong>Transparency and Extensibility</strong></a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../7_developer_guide/migration_guide.html#advantages-in-maintenance-and-updates">7.1.2.3. Advantages in Maintenance and Updates</a></li>
<liclass="toctree-l4"><aclass="reference internal"href="../7_developer_guide/migration_guide.html#community-and-ecosystem-support">7.1.2.4. <strong>Community and Ecosystem Support</strong></a></li>
</ul>
</li>
<liclass="toctree-l3"><aclass="reference internal"href="../7_developer_guide/migration_guide.html#comparison-between-main-and-v2-main-branches">7.1.3. Comparison Between main and v2-main Branches</a><ul>
<liclass="toctree-l2"><aclass="reference internal"href="../7_developer_guide/building_a_Debian_Package.html">7.2. Building a Debian Package</a><ul>
<liclass="toctree-l3"><aclass="reference internal"href="../7_developer_guide/building_a_Debian_Package.html#preparing-the-environment">7.2.1. Preparing the Environment</a></li>
<liclass="toctree-l3"><aclass="reference internal"href="../7_developer_guide/building_a_Debian_Package.html#building-the-package">7.2.3. Building the Package</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../8_FAQ/FAQ.html#no-data-stream-from-multiple-cameras">8.2. No Data Stream from Multiple Cameras</a></li>
<liclass="toctree-l2"><aclass="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>
<h2><spanclass="section-number">6.4.1. </span>Ob_benchmark tool<aclass="headerlink"href="#ob-benchmark-tool"title="Link to this heading"></a></h2>
<blockquote>
<div><p>The goal of this tool is to benchmark the performance of various OrbbecSDK_ROS2 camera configurations. The benchmark results depend on the camera and settings used.(Currently only works with ROS2 Humble)</p>
</div></blockquote>
<p>You can find example usage code in the <aclass="reference external"href="https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples">example</a>.</p>
<h3><spanclass="section-number">6.4.1.1. </span>Tool Configuration (<aclass="reference external"href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/config/tools/startbenchmark/start_benchmark_params.json">start_benchmark_params.json</a>)<aclass="headerlink"href="#tool-configuration-start-benchmark-params-json"title="Link to this heading"></a></h3>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">camera_name</span></code>: Names of the cameras to be configured. Example: <codeclass="docutils literal notranslate"><spanclass="pre">"camera_01"</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">"camera_02"</span></code>, etc.</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">process_name</span></code>: The name of the process to be monitored. For example, <codeclass="docutils literal notranslate"><spanclass="pre">"component_conta"</span></code> will monitor the data of the container process.</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">switch_cycle</span></code>: The cycle time for switching configurations, in seconds. For example, setting it to <codeclass="docutils literal notranslate"><spanclass="pre">300</span></code> means the configuration will switch every 300 seconds.</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">test_cycle</span></code>: The testing cycle, in seconds. For example, setting it to <codeclass="docutils literal notranslate"><spanclass="pre">1</span></code> means the tool will collect data for the monitored process every 1 second.</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">skip_number</span></code>: The number of data points to skip. For example, setting it to <codeclass="docutils literal notranslate"><spanclass="pre">30</span></code> means that the first 30 data points will be ignored.</p></li>
</ul>
</section>
<sectionid="camera-configuration-launch-files">
<h3><spanclass="section-number">6.4.1.2. </span>Camera configuration (launch files)<aclass="headerlink"href="#camera-configuration-launch-files"title="Link to this heading"></a></h3>
<p>In the launch folder, there are multiple.launch.py files (<codeclass="docutils literal notranslate"><spanclass="pre">ob_benchmark_0.launch.py</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">ob_benchmark_1.launch.py</span></code>, …, <codeclass="docutils literal notranslate"><spanclass="pre">ob_benchmark_19.launch.py</span></code>). Each file corresponds to a different camera configuration.</p>
</section>
<sectionid="running-the-ob-benchmark-tool">
<h3><spanclass="section-number">6.4.1.3. </span>Running the ob_benchmark tool<aclass="headerlink"href="#running-the-ob-benchmark-tool"title="Link to this heading"></a></h3>
<p>To run the tool, use the following commands:</p>
<h3><spanclass="section-number">6.4.1.4. </span>Output Data Files<aclass="headerlink"href="#output-data-files"title="Link to this heading"></a></h3>
<p>The output data files will be stored in the ob_benchmark folder with filenames like <codeclass="docutils literal notranslate"><spanclass="pre">0.csv</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">1.csv</span></code>, …, 19.csv. For example:</p>
<ulclass="simple">
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">0.csv</span></code> contains data from the <codeclass="docutils literal notranslate"><spanclass="pre">ob_benchmark_0.launch.py</span></code> configuration.</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">1.csv</span></code> contains data from the <codeclass="docutils literal notranslate"><spanclass="pre">ob_benchmark_1.launch.py</span></code> configuration.</p></li>