Files
OrbbecSDK_ROS2/.doctrees/source/5_advanced_guide/multi_camera_synced.doctree
T

95 lines
18 KiB
Plaintext
Raw Normal View History

2025-09-15 06:27:21 +00:00
€• HŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ Multi_camera synced Instructions”h]”(hŒText”“”ŒMulti”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubhŒ_”…”�”}”(hhhhhNhNubhŒcamera synced Instructions”…”�”}”(hhhhhNhNubeŒ
attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”uŒtagname”hhKhh hŒc/home/runner/work/OrbbecSDK_ROS2/OrbbecSDK_ROS2/docs/source/5_advanced_guide/multi_camera_synced.md”ubhŒ block_quote”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hŒ]The purpose of this document is to explain how to use multi-camera synced with OrbbecSDK_ROS2”h]”(hŒXThe purpose of this document is to explain how to use multi-camera synced with OrbbecSDK”…”�”}”(hh;hhhNhNubhŒ_”…”�”}”(hh;hhhNhNubhŒROS2”…”�”}”(hh;hhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhh6hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h4hKhh hhhh3ubh
)�”}”(hhh]”(h)�”}”(hŒSetup instructions”h]”hŒSetup instructions”…”�”}”(hhZhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hhKhhWhh3ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hhh]”h:)�”}”(hŒ[Please read the Multi-Camera Synchronization Setup Guide:Multi-Camera Synchronization Setup”h]”(hŒ9Please read the Multi-Camera Synchronization Setup Guide:”…”�”}”(hhrhhhNhNubhŒ reference”“”)�”}”(hŒ"Multi-Camera Synchronization Setup”h]”hŒ"Multi-Camera Synchronization Setup”…”�”}”(hh|hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”Œrefuri”ŒMhttps://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/”uh2hzhKhhrhhhh3ubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhhohhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhhjhhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒMMake sure the camera is correctly connected to the multi-camera synchronizer.”h]”hŒMMake sure the camera is correctly connected to the multi-camera synchronizer.”…”�”}”(hh›hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhh˜hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhhjhhhh3ubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2hhhKhhWhhhh3ubh:)�”}”(hŒDepth Point Cloud Visualization”h]”hŒimage”“”)�”}”(hh·h]”hh…”�”}”(hh»hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”Œuri”Œ9source/image/multi_camera_synced/multi_camera_synced1.png”Œalt”h·Œ
candidates”}”Œ*”hÈsŒ original_uri”Œ5../image/multi_camera_synced/multi_camera_synced1.png”uh2h¹hhµhhhh3hKubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hK
hhWhhhh3ubh
)�”}”(hhh]”(h)�”}”(hŒ(Checking camera port with OrbbecSDK_ROS2”h]”(hŒ#Checking camera port with OrbbecSDK”…”�”}”(hhØhhhNhNubhŒ_”…”�”}”(hhØhhhNhNubhŒROS2”…”�”}”(hhØhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2hhK hhÕhh3ubhŒ
literal_block”“”)�”}”(hŒ(ros2 run orbbec_camera list_devices_node”h]”hŒ(ros2 run orbbec_camera list_devices_node”…”�”}”hhðsbah&}”(h(]”h*]”h,]”h.]”h0]”Œ xml:space”Œpreserve”Œforce”‰Œlanguage”Œbash”Œhighlight_args”}”uh2hîhh3hK hhÕhhubeh&}”(h(]”Œ(checking-camera-port-with-orbbecsdk-ros2”ah*]”h,]”Œ(checking camera port with orbbecsdk_ros2”ah.]”h0]”uh2h hK hhWhhhh3ubh
)�”}”(hhh]”(h)�”}”(hŒ0OrbbecSDK_ROS2 multi-camera synced configuration”h]”(hŒ OrbbecSDK”…”�”}”(hjhhhNhNubhŒ_”…”�”}”(hjhhhNhNubhŒ&ROS2 multi-camera synced configuration”…”�”}”(hjhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2hhKhj
hh3ubh:)�”}”(hŒUOpen multi_camera_synced.launch.py, and configure the camera settings as shown below:”h]”(hŒ
Open multi”…”�”}”(hj&hhhNhNubhŒ_”…”�”}”(hj&hhhNhNubhŒcamera”…”�”}”(hj&hhhNhNubhŒ_”…”�”}”(hj&hhhh3hKubhŒCsynced.launch.py, and configure the camera settings as shown below:”…”�”}”(hj&hhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhj
hhhh3ubh:)�”}”(hŒDepth Point Cloud Visualization”h]”hº)�”}”(hjFh]”hh…”�”}”(hjHhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”hÇŒ9source/image/multi_camera_synced/multi_camera_synced2.png”hÉjFhÊ}”hÌjTshÍŒ5../image/multi_camera_synced/multi_camera_synced2.png”uh2h¹hjDhhhh3hKubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhj
hhhh3ubhŒenumerated_list”“”)�”}”(hhh]”(hn)�”}”(hhh]”h:)�”}”(hŒGgemini_330_series.launch.py is the launch file for starting the camera.”h]”(hŒliteral”“”)�”}”(hŒgemini_330_series.launch.py”h]”hŒgemini_330_series.launch.py”…”�”}”(hjkhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjehhhh3hKubhŒ, is the launch file for starting the camera.”…”�”}”(hjehhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhjbhhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒhSet camera_name to G330_0. For example, the published color image topic will be /G330_0/color/image_raw.”h]”(hŒSet ”…”�”}”(hjŒhhhNhNubjj)�”}”(hŒ camera_name”h]”hŒ camera_name”…”�”}”(hj”hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjŒhhhh3hKubhŒ to ”…”�”}”(hjŒhhhNhNubjj)�”}”(hŒG330_0”h]”hŒG330_0”…”�”}”(hj¦hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjŒhhhh3hKubhŒ7. For example, the published color image topic will be ”…”�”}”(hjŒhhhNhNubjj)�”}”(hŒ/G330_0/color/image_raw”h]”hŒ/G330_0/color/image_raw”…”�”}”(hj¸hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjŒhhhh3hKubhŒ.”…”�”}”(hjŒhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhj‰hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒ°Set usb_port to 2-2, indicating that the camera device on port 2-2 is being used. This value can be found in the output of the ros2 run orbbec_camera list_devices_node command.”h]”(hŒSet ”…”�”}”(hjÙhhhNhNubjj)�”}”(hŒusb_port”h]”hŒusb_port”…”�”}”(hjáhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÙhhhh3hKubhŒ to ”…”�”}”(hjÙhhhNhNubjj)�”}”(hŒ2-2”h]”hŒ2-2”…”�”}”(hjóhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÙhhhh3hKubhŒ,, indicating that the camera device on port ”…”�”}”(hjÙhhhNhNubjj)�”}”(hŒ2-2”h]”hŒ2-2”…”�”}”(hjhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÙhhhh3hKubhŒ= is being used. This value can be found in the output of the ”…”�”}”(hjÙhhhNhNubjj)�”}”(hŒ(ros2 run orbbec_camera list_devices_node”h]”hŒ(ros2 run orbbec_camera list_devices_node”…”�”}”(hjhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÙhhhh3hKubhŒ command.”…”�”}”(hjÙhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhjÖhhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒ6Set device_num to 2, meaning two cameras will be used.”h]”(hŒSet ”…”�”}”(hj8hhhNhNubjj)�”}”(hŒ
device_num”h]”hŒ
device_num”…”�”}”(hj@hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihj8hhhh3hKubhŒ to ”…”�”}”(hj8hhhNhNubjj)�”}”(hŒ2”h]”hŒ2”…”�”}”(hjRhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihj8hhhh3hKubhŒ#, meaning two cameras will be used.”…”�”}”(hj8hhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKhj5hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKhj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒ˜Set sync_mode to primary to indicate that the 2-7 camera device is in primary mode. The multi-camera sync mode options can be found in the figure below.”h]”(hŒSet ”…”�”}”(hjshhhNhNubjj)�”}”(hŒ sync_mode”h]”hŒ sync_mode”…”�”}”(hj{hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjshhhh3hKubhŒ to ”…”�”}”(hjshhhNhNubjj)�”}”(hŒprimary”h]”hŒprimary”…”�”}”(hj�hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjshhhh3hKubhŒ to indicate that the ”…”�”}”(hjshhhNhNubjj)�”}”(hŒ2-7”h]”hŒ2-7”…”�”}”(hjŸhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjshhhh3hKubhŒg camera device is in primary mode. The multi-camera sync mode options can be found in the figure below.”…”�”}”(hjshhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hK hjphhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhK hj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒoParameters from the config_file_path can override the parameters set in gemini_330_series.launch.py (optional).”h]”(hŒParameters from the ”…”�”}”(hjÀhhhNhNubjj)�”}”(hŒconfig_file_path”h]”hŒconfig_file_path”…”�”}”(hjÈhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÀhhhh3hKubhŒ$ can override the parameters set in ”…”�”}”(hjÀhhhNhNubjj)�”}”(hŒgemini_330_series.launch.py”h]”hŒgemini_330_series.launch.py”…”�”}”(hjÚhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjÀhhhh3hKubhŒ (optional).”…”�”}”(hjÀhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hK"hj½hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhK"hj_hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒ4For slave cameras, set trigger_out_enabled to false.”h]”(hŒFor slave cameras, set ”…”�”}”(hjûhhhNhNubjj)�”}”(hŒtrigger_out_enabled”h]”hŒtrigger_out_enabled”…”�”}”(hjhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2jihjûhhhh3hKubhŒ
to false.”…”�”}”(hjûhhhNhNubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hK$hjøhhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhK$hj_hhhh3ubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2j]hKhj
hhhh3ubhŒraw”“”)�”}”(hX<
<table border="1" class="docutils">
<thead>
<tr>
<th><strong>Pattern Nam</strong>e</th>
<th><strong>Setting effect description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>free_run</td>
<td>-Support different frame rate settings<br />The -8-pin synchronization interface does not support external output of synchronization-related signals</td>
</tr>
<tr>
<td>standalone(default)</td>
<td>â—� Same as Primary by default<br />â—� Built-in RGBD frame synchronization<br />â—� 8-pin synchronous interface does not output signals to the outside by default</td>
</tr>
<tr>
<td>primary</td>
<td>â—� Set as primary camera<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>secondary</td>
<td>â—� Set as secondary (passive synchronization; When there is a hardware continuous trigger signal input from the outside and the continuous trigger signal matches the currently set frame rate, the image is collected according to the external trigger signal; When there is no external trigger signal, the flow is stopped)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>secondary_synced</td>
<td>â—� Set to secondary synchronization (passive synchronization; When there is a hardware continuous trigger signal input from the outside and the continuous trigger signal matches the currently set frame rate, the image is collected according to the external trigger signal; When there is no external trigger signal, the image is collected according to the internal trigger signal at the set frame rate)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>hardware_triggering</td>
<td>â—� Set as hardware trigger (passive trigger; When there is a hardware trigger signal input from the outside and the trigger signal time interval is not less than the current upper limit, the image is collected according to the external trigger signal; When there is no external trigger signal, the image is not collected)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>software_triggering</td>
<td>â—� Set as software trigger (passive trigger; When there is a trigger command input from the host computer and the trigger command time interval is not less than the current upper limit, the image is collected according to the trigger command; When there is no trigger command, the image is not collected)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
</tbody>
</table>”h]”hX<
<table border="1" class="docutils">
<thead>
<tr>
<th><strong>Pattern Nam</strong>e</th>
<th><strong>Setting effect description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>free_run</td>
<td>-Support different frame rate settings<br />The -8-pin synchronization interface does not support external output of synchronization-related signals</td>
</tr>
<tr>
<td>standalone(default)</td>
<td>â—� Same as Primary by default<br />â—� Built-in RGBD frame synchronization<br />â—� 8-pin synchronous interface does not output signals to the outside by default</td>
</tr>
<tr>
<td>primary</td>
<td>â—� Set as primary camera<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>secondary</td>
<td>â—� Set as secondary (passive synchronization; When there is a hardware continuous trigger signal input from the outside and the continuous trigger signal matches the currently set frame rate, the image is collected according to the external trigger signal; When there is no external trigger signal, the flow is stopped)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>secondary_synced</td>
<td>â—� Set to secondary synchronization (passive synchronization; When there is a hardware continuous trigger signal input from the outside and the continuous trigger signal matches the currently set frame rate, the image is collected according to the external trigger signal; When there is no external trigger signal, the image is collected according to the internal trigger signal at the set frame rate)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>hardware_triggering</td>
<td>â—� Set as hardware trigger (passive trigger; When there is a hardware trigger signal input from the outside and the trigger signal time interval is not less than the current upper limit, the image is collected according to the external trigger signal; When there is no external trigger signal, the image is not collected)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
<tr>
<td>software_triggering</td>
<td>â—� Set as software trigger (passive trigger; When there is a trigger command input from the host computer and the trigger command time interval is not less than the current upper limit, the image is collected according to the trigger command; When there is no trigger command, the image is not collected)<br />â—� 8-pin synchronous interface output signal to external device</td>
</tr>
</tbody>
</table>”…”�”}”hj)sbah&}”(h(]”h*]”h,]”h.]”h0]”Œformat”Œhtml”hþhÿuh2j'hK&hj
hhhh3ubhi)�”}”(hhh]”(hn)�”}”(hhh]”h:)�”}”(hŒ*The master camera should be launched last.”h]”hŒ*The master camera should be launched last.”…”�”}”(hj?hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKMhj<hhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKMhj9hhhh3ubhn)�”}”(hhh]”h:)�”}”(hŒGIdeally, there should be a 2-second delay between starting each camera.”h]”hŒGIdeally, there should be a 2-second delay between starting each camera.”…”�”}”(hjVhhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2h9hKNhjShhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hmhKNhj9hhhh3ubeh&}”(h(]”h*]”h,]”h.]”h0]”uh2hhhKMhj
hhhh3ubeh&}”(h(]”Œ0orbbecsdk-ros2-multi-camera-synced-configuration”ah*]”h,]”Œ0orbbecsdk_ros2 multi-camera synced configuration”ah.]”h0]”uh2h hKhhWhhhh3ubh
)�”}”(hhh]”(h)�”}”(hŒ:Run the following command to start the multi-camera synced”h]”hŒ:Run the following command to start the multi-camera synced”…”�”}”(hj{hhhNhNubah&}”(h(]”h*]”h,]”h.]”h0]”uh2hhKPhjxhh3ubhï)�”}”(hŒ7ros2 launch orbbec_camera multi_camera_synced.launch.py”h]”hŒ7ros2 launch orbbec_camera multi_camera_synced.launch.py”…”�”}”hj‰sbah&}”(h(]”h*]”h,]”h.]”h0]”hþhÿj‰jŒbash”j}”uh2hîhh3hKPhjxhhubeh&}”(h(]”Œ:run-the-following-command-to-start-the-multi-camera-synced”ah*]”h,]”Œ:run the following command to start the multi-camera synced”ah.]”h0]”uh2h hKPhhWhhhh3ubeh&}”(h(]”Œsetup-instructions”ah*]”h,]”Œsetup instructions”ah.]”h0]”uh2h hKhh hhhh3ubeh&}”(h(]”Œ multi-camera-synced-instructions”ah*]”h,]”Œ multi_camera synced instructions”ah.]”h0]”uh2h hKhhhhhh3ubah&}”(h(]”h*]”h,]”h.]”h0]”Œsource”h3Œtranslation_progress”}”(Œtotal”KŒ