mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-03 19:47:46 +08:00
501 lines
43 KiB
HTML
501 lines
43 KiB
HTML
|
|
|
|
<!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>5.1.3. Fast DDS Optimization for Orbbec Camera with ROS2 — 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" />
|
|
<link rel="next" title="5.2.1. Multi-Camera" href="../multi_camera/multi_camera.html" />
|
|
<link rel="prev" title="5.1.2. Efficient intra-process communication:" href="efficient_intra_process_communication.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 class="current">
|
|
<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. ROS Package 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 QuickStarts</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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & Management</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html#synchronization-triggering">4.2.4. Synchronization & 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 & 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 & 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 Camera Optical 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 current"><a class="reference internal" href="../advanced_guide.html">5. Advanced Guide</a><ul class="current">
|
|
<li class="toctree-l2 current"><a class="reference internal" href="../advanced_guide.html#performance-optimization">5.1. Performance & Optimization</a><ul class="current">
|
|
<li class="toctree-l3"><a class="reference internal" href="lower_cpu_usage.html">5.1.1. Reducing CPU Usage with Orbbec ROS Package</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#recommended-settings-for-lower-cpu-usage">5.1.1.1. Recommended Settings for Lower CPU Usage</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#launch-files-used-for-testing">5.1.1.2. Launch Files Used for Testing</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#test-environment">5.1.1.3. Test environment</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#test-setup">5.1.1.4. Test Setup</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#test-results">5.1.1.5. Test Results</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="lower_cpu_usage.html#further-optimizationa">5.1.1.6. Further Optimizationa</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="efficient_intra_process_communication.html">5.1.2. Efficient intra-process communication:</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="efficient_intra_process_communication.html#introduction">5.1.2.1. Introduction</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="efficient_intra_process_communication.html#example">5.1.2.2. Example</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3 current"><a class="current reference internal" href="#">5.1.3. Fast DDS Optimization for Orbbec Camera with ROS2</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="#adjusting-system-parameters">5.1.3.1. Adjusting System Parameters</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="#fast-dds-configuration">5.1.3.2. Fast DDS Configuration</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../advanced_guide.html#multi-camera">5.2. Multi-Camera</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../multi_camera/multi_camera.html">5.2.1. Multi-Camera</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera.html#no-data-stream-from-multiple-cameras">5.2.1.1. No Data Stream from Multiple Cameras</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../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>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../multi_camera/multi_camera_synced.html">5.2.2. Multi_camera synced Instructions</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced.html#setup-instructions">5.2.2.1. Setup instructions</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced.html#checking-camera-port-with-orbbecsdk-ros2">5.2.2.2. Checking camera port with OrbbecSDK_ROS2</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced.html#orbbecsdk-ros2-multi-camera-synced-configuration">5.2.2.3. OrbbecSDK_ROS2 multi-camera synced configuration</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../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>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../multi_camera/multi_camera_synced_verification_tool.html">5.2.3. Multi_camera_synced_verification_tool</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced_verification_tool.html#directory-structure">5.2.3.1. Directory Structure</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced_verification_tool.html#preparation-for-operation">5.2.3.2. Preparation for operation</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/multi_camera_synced_verification_tool.html#run-this-example">5.2.3.3. Run this example</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../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>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../multi_camera/gmsl_camera.html">5.2.4. GMSL_camera</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/gmsl_camera.html#single-gmsl-camera">5.2.4.1. Single GMSL camera</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/gmsl_camera.html#multi-gmsl-camera">5.2.4.2. Multi GMSL camera</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../multi_camera/gmsl_camera.html#multi-gmsl-camera-synced">5.2.4.3. Multi GMSL camera synced</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../advanced_guide.html#configuration-modes">5.3. Configuration & Modes</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/align_depth_color.html">5.3.1. Aligning Depth to Color in ROS 2</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../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>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/align_depth_color.html#selecting-topics-in-rviz2">5.3.1.2. Selecting Topics in RViz2</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../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>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/configuration_of_depth_NFOV_and_WFOV_modes.html">5.3.2. Configuration of depth NFOV and WFOV modes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/depth_work_mode_switch.html">5.3.3. Depth work mode switch</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/disparity_search_offset.html">5.3.4. Disparity_search_offset</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/disparity_search_offset.html#function-introduction">5.3.4.1. Function Introduction</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/disparity_search_offset.html#parameter-introduction">5.3.4.2. Parameter Introduction</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/disparity_search_offset.html#run-the-launch">5.3.4.3. Run the launch</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/interleave_ae_mode.html">5.3.5. Using interleave_ae with Gemini330 series cameras</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/interleave_ae_mode.html#parameter-introduction">5.3.5.1. Parameter Introduction</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/interleave_ae_mode.html#run-the-launch">5.3.5.2. Run the launch</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/interleave_ae_mode.html#multi-camera-synced-interleave-ae">5.3.5.3. Multi_camera_synced + Interleave_ae</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/predefined_presets.html">5.3.6. Predefined presets</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../configuration/net_camera.html">5.3.7. Net_camera</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/net_camera.html#femto-mega-gemini-435le">5.3.7.1. Femto Mega & Gemini 435Le</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/net_camera.html#gemini-335le">5.3.7.2. Gemini 335Le</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../configuration/net_camera.html#multi-net-camera">5.3.7.3. Multi Net camera</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../6_benchmark/benchmark.html">6. Benchmark</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../6_benchmark/introduction.html">6.1. Introduction</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/introduction.html#common-benchmark-node">6.1.1. common benchmark node</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/introduction.html#service-benchmark-node">6.1.2. service benchmark node</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../6_benchmark/benchmark_usage.html">6.2. Benchmark Usage</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/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="../../6_benchmark/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="../../6_benchmark/benchmark_usage.html#ros2-c">6.2.2.1. ROS2 C++</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../6_benchmark/benchmark_usage.html#ros2-python">6.2.2.2. ROS2 Python</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../6_benchmark/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="../../6_benchmark/benchmark_data.html">6.3. Benchmark Data</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/benchmark_data.html#common-benckmark-data">6.3.1. Common Benckmark Data</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/benchmark_data.html#service-benchmark-data">6.3.2. Service Benchmark Data</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="../../6_benchmark/othertools.html">6.4. Other Tools</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="../../6_benchmark/othertools.html#ob-benchmark-tool">6.4.1. Ob_benchmark tool</a><ul>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../6_benchmark/othertools.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="../../6_benchmark/othertools.html#camera-configuration-launch-files">6.4.1.2. Camera configuration (launch files)</a></li>
|
|
<li class="toctree-l4"><a class="reference internal" href="../../6_benchmark/othertools.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="../../6_benchmark/othertools.html#output-data-files">6.4.1.4. Output Data Files</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"><a href="../advanced_guide.html"><span class="section-number">5. </span>Advanced Guide</a></li>
|
|
<li class="breadcrumb-item active"><span class="section-number">5.1.3. </span>Fast DDS Optimization for Orbbec Camera with ROS2</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
<a href="../../../_sources/source/5_advanced_guide/performance/fastdds_tuning.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="fast-dds-optimization-for-orbbec-camera-with-ros2">
|
|
<h1><span class="section-number">5.1.3. </span>Fast DDS Optimization for Orbbec Camera with ROS2<a class="headerlink" href="#fast-dds-optimization-for-orbbec-camera-with-ros2" title="Link to this heading"></a></h1>
|
|
<p>When operating with the default configuration, Fast DDS exhibits suboptimal transmission efficiency, resulting in
|
|
significant image transmission delays when used with the Orbbec camera in ROS2. This document provides guidance on
|
|
optimizing Fast DDS to enhance image transfer efficiency.</p>
|
|
<section id="adjusting-system-parameters">
|
|
<h2><span class="section-number">5.1.3.1. </span>Adjusting System Parameters<a class="headerlink" href="#adjusting-system-parameters" title="Link to this heading"></a></h2>
|
|
<p><strong>IP Fragmentation Time</strong></p>
|
|
<ul>
|
|
<li><p><strong>Path</strong>: <code class="docutils literal notranslate"><span class="pre">/proc/sys/net/ipv4/ipfrag_time</span></code> (default: 30 seconds)</p></li>
|
|
<li><p><strong>Purpose</strong>: Defines the duration that IP fragments are kept in memory.</p></li>
|
|
<li><p><strong>Adjustment</strong>: Decrease this value to reduce the time window where no fragments are received, which can help reduce
|
|
delays. Consider the specific needs of your environment as this setting affects all incoming fragments.</p>
|
|
<p><strong>Example</strong>: Set to 3 seconds.</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>sysctl<span class="w"> </span>net.ipv4.ipfrag_time<span class="o">=</span><span class="m">3</span>
|
|
</pre></div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<p><strong>IP Fragmentation Memory Threshold</strong></p>
|
|
<ul>
|
|
<li><p><strong>Path</strong>: <code class="docutils literal notranslate"><span class="pre">/proc/sys/net/ipv4/ipfrag_high_thresh</span></code> (default: 262144 bytes)</p></li>
|
|
<li><p><strong>Purpose</strong>: Sets the maximum memory used to reassemble IP fragments.</p></li>
|
|
<li><p><strong>Adjustment</strong>: Increase this value to allow more memory for fragment reassembly, which can improve handling of larger
|
|
data packets.</p>
|
|
<p><strong>Example</strong>: Increase to 128 MB.</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>sysctl<span class="w"> </span>net.ipv4.ipfrag_high_thresh<span class="o">=</span><span class="m">134217728</span>
|
|
</pre></div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<p><strong>Maximum Buffer Sizes</strong></p>
|
|
<ul>
|
|
<li><p><strong>Purpose</strong>: Configures the maximum buffer sizes for receiving and sending data, which is critical for high-throughput
|
|
data transmission.</p></li>
|
|
<li><p><strong>Adjustment</strong>: Set the maximum buffer sizes for both receiving and sending operations.</p>
|
|
<p><strong>Commands</strong>:</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>sysctl<span class="w"> </span>-w<span class="w"> </span>net.core.rmem_max<span class="o">=</span><span class="m">2147483647</span>
|
|
sudo<span class="w"> </span>sysctl<span class="w"> </span>-w<span class="w"> </span>net.core.rmem_default<span class="o">=</span><span class="m">2147483647</span>
|
|
sudo<span class="w"> </span>sysctl<span class="w"> </span>-w<span class="w"> </span>net.core.wmem_max<span class="o">=</span><span class="m">2147483647</span>
|
|
sudo<span class="w"> </span>sysctl<span class="w"> </span>-w<span class="w"> </span>net.core.wmem_default<span class="o">=</span><span class="m">2147483647</span>
|
|
</pre></div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<p>Alternatively, make these settings permanent by adding them to the <code class="docutils literal notranslate"><span class="pre">/etc/sysctl.d/10-fastrtps-max.conf</span></code> file.</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>gedit<span class="w"> </span>/etc/sysctl.d/10-fastrtps-max.conf
|
|
</pre></div>
|
|
</div>
|
|
<p>add blow lines to the file:</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>net.core.rmem_max<span class="o">=</span><span class="m">2147483647</span>
|
|
net.core.rmem_default<span class="o">=</span><span class="m">2147483647</span>
|
|
net.core.wmem_max<span class="o">=</span><span class="m">2147483647</span>
|
|
net.core.wmem_default<span class="o">=</span><span class="m">2147483647</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>then save and exit the file. run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">sysctl</span> <span class="pre">-p</span></code> to apply the changes.</p>
|
|
<p>For detailed guidance, refer
|
|
to <a class="reference external" href="https://docs.ros.org/en/foxy/How-To-Guides/DDS-tuning.html">ROS 2 DDS Tuning Documentation</a>.</p>
|
|
</section>
|
|
<section id="fast-dds-configuration">
|
|
<h2><span class="section-number">5.1.3.2. </span>Fast DDS Configuration<a class="headerlink" href="#fast-dds-configuration" title="Link to this heading"></a></h2>
|
|
<p>Below is an example of a Fast DDS configuration file optimized for ROS2 usage with the Orbbec camera. This configuration
|
|
enhances the overall data transmission by adjusting buffer sizes and transport settings.</p>
|
|
<p><strong>Configuration File:</strong> <code class="docutils literal notranslate"><span class="pre">shm_fastdds.xml</span></code></p>
|
|
<p>Place this file in the <code class="docutils literal notranslate"><span class="pre">$HOME</span></code> directory.</p>
|
|
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
|
|
<span class="nt"><profiles</span><span class="w"> </span><span class="na">xmlns=</span><span class="s">"http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles"</span><span class="nt">></span>
|
|
<span class="w"> </span><span class="nt"><transport_descriptors></span>
|
|
<span class="w"> </span><span class="nt"><transport_descriptor></span>
|
|
<span class="w"> </span><span class="nt"><transport_id></span>UDP_transport<span class="nt"></transport_id></span>
|
|
<span class="w"> </span><span class="nt"><type></span>UDPv4<span class="nt"></type></span>
|
|
<span class="w"> </span><span class="nt"><maxInitialPeersRange></span>10<span class="nt"></maxInitialPeersRange></span>
|
|
<span class="w"> </span><span class="nt"><maxMessageSize></span>65000<span class="nt"></maxMessageSize></span>
|
|
<span class="w"> </span><span class="nt"><sendBufferSize></span>1048576<span class="nt"></sendBufferSize></span>
|
|
<span class="w"> </span><span class="nt"><receiveBufferSize></span>1048576<span class="nt"></receiveBufferSize></span>
|
|
<span class="w"> </span><span class="nt"></transport_descriptor></span>
|
|
<span class="w"> </span><span class="nt"></transport_descriptors></span>
|
|
<span class="w"> </span><span class="nt"><participant</span><span class="w"> </span><span class="na">profile_name=</span><span class="s">"participant_profile_ros2"</span><span class="w"> </span><span class="na">is_default_profile=</span><span class="s">"true"</span><span class="nt">></span>
|
|
<span class="w"> </span><span class="nt"><rtps></span>
|
|
<span class="w"> </span><span class="nt"><name></span>profile_for_ros2_context<span class="nt"></name></span>
|
|
<span class="w"> </span><span class="nt"><userTransports></span>
|
|
<span class="w"> </span><span class="nt"><transport_id></span>UDP_transport<span class="nt"></transport_id></span>
|
|
<span class="w"> </span><span class="nt"></userTransports></span>
|
|
<span class="w"> </span><span class="nt"><useBuiltinTransports></span>false<span class="nt"></useBuiltinTransports></span>
|
|
<span class="w"> </span><span class="nt"><sendSocketBufferSize></span>1048576<span class="nt"></sendSocketBufferSize></span>
|
|
<span class="w"> </span><span class="nt"><listenSocketBufferSize></span>1048576<span class="nt"></listenSocketBufferSize></span>
|
|
<span class="w"> </span><span class="nt"><builtin></span>
|
|
<span class="w"> </span><span class="nt"><initialPeersList></span>
|
|
<span class="w"> </span><span class="nt"><locator></span>
|
|
<span class="w"> </span><span class="nt"><udpv4></span>
|
|
<span class="w"> </span><span class="nt"><address></span>127.0.0.1<span class="nt"></address></span>
|
|
<span class="w"> </span><span class="nt"></udpv4></span>
|
|
<span class="w"> </span><span class="nt"></locator></span>
|
|
<span class="w"> </span><span class="nt"></initialPeersList></span>
|
|
<span class="w"> </span><span class="nt"></builtin></span>
|
|
<span class="w"> </span><span class="nt"></rtps></span>
|
|
<span class="w"> </span><span class="nt"></participant></span>
|
|
<span class="w"> </span><span class="nt"><data_writer</span><span class="w"> </span><span class="na">profile_name=</span><span class="s">"default publisher profile"</span><span class="w"> </span><span class="na">is_default_profile=</span><span class="s">"true"</span><span class="nt">></span>
|
|
<span class="w"> </span><span class="nt"><qos></span>
|
|
<span class="w"> </span><span class="nt"><publishMode></span>
|
|
<span class="w"> </span><span class="nt"><kind></span>ASYNCHRONOUS<span class="nt"></kind></span>
|
|
<span class="w"> </span><span class="nt"></publishMode></span>
|
|
<span class="w"> </span><span class="nt"><latencyBudget></span>
|
|
<span class="w"> </span><span class="nt"><duration></span>
|
|
<span class="w"> </span><span class="nt"><sec></span>0<span class="nt"></sec></span>
|
|
<span class="w"> </span><span class="nt"><nanosec></span>1000000<span class="nt"></nanosec></span>
|
|
<span class="w"> </span><span class="nt"></duration></span>
|
|
<span class="w"> </span><span class="nt"></latencyBudget></span>
|
|
<span class="w"> </span><span class="nt"></qos></span>
|
|
<span class="w"> </span><span class="nt"><historyMemoryPolicy></span>PREALLOCATED_WITH_REALLOC<span class="nt"></historyMemoryPolicy></span>
|
|
<span class="w"> </span><span class="nt"></data_writer></span>
|
|
<span class="w"> </span><span class="nt"><data_reader</span><span class="w"> </span><span class="na">profile_name=</span><span class="s">"default subscription profile"</span><span class="w"> </span><span class="na">is_default_profile=</span><span class="s">"true"</span><span class="nt">></span>
|
|
<span class="w"> </span><span class="nt"><qos></span>
|
|
<span class="w"> </span><span class="nt"><data_sharing></span>
|
|
<span class="w"> </span><span class="nt"><kind></span>AUTOMATIC<span class="nt"></kind></span>
|
|
<span class="w"> </span><span class="nt"></data_sharing></span>
|
|
<span class="w"> </span><span class="nt"><latencyBudget></span>
|
|
<span class="w"> </span><span class="nt"><duration></span>
|
|
<span class="w"> </span><span class="nt"><sec></span>0<span class="nt"></sec></span>
|
|
<span class="w"> </span><span class="nt"><nanosec></span>1000000<span class="nt"></nanosec></span>
|
|
<span class="w"> </span><span class="nt"></duration></span>
|
|
<span class="w"> </span><span class="nt"></latencyBudget></span>
|
|
<span class="w"> </span><span class="nt"></qos></span>
|
|
<span class="w"> </span><span class="nt"><historyMemoryPolicy></span>PREALLOCATED_WITH_REALLOC<span class="nt"></historyMemoryPolicy></span>
|
|
<span class="w"> </span><span class="nt"></data_reader></span>
|
|
<span class="nt"></profiles></span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Environment Variables</strong></p>
|
|
<p>Set the following environment variables to use the custom Fast DDS profile:</p>
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">export</span><span class="w"> </span><span class="nv">RMW_IMPLEMENTATION</span><span class="o">=</span>rmw_fastrtps_cpp
|
|
<span class="nb">export</span><span class="w"> </span><span class="nv">FASTRTPS_DEFAULT_PROFILES_FILE</span><span class="o">=</span><span class="nv">$HOME</span>/shm_fastdds.xml
|
|
<span class="nb">export</span><span class="w"> </span><span class="nv">RMW_FASTRTPS_USE_QOS_FROM_XML</span><span class="o">=</span><span class="m">1</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>This configuration aims to optimize the data flow and reduce transmission delays, improving the responsiveness and
|
|
reliability of the Orbbec camera system in a ROS2 environment.</p>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
<a href="efficient_intra_process_communication.html" class="btn btn-neutral float-left" title="5.1.2. Efficient intra-process communication:" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
<a href="../multi_camera/multi_camera.html" class="btn btn-neutral float-right" title="5.2.1. Multi-Camera" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>© Copyright 2025, ORBBEC INC. www.orbbec.com..
|
|
<span class="lastupdated">Last updated on 2025-09-26 06:11:25.
|
|
</span></p>
|
|
</div>
|
|
|
|
|
|
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<script>
|
|
jQuery(function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |