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

104 lines
14 KiB
Plaintext
Raw Normal View History

2025-09-15 06:27:21 +00:00
€•6Œdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ Multi-Camera”h]”hŒText”“”Œ Multi-Camera”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ
attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”uŒtagname”hhKhh hŒ\/home/runner/work/OrbbecSDK_ROS2/OrbbecSDK_ROS2/docs/source/5_advanced_guide/multi_camera.md”ubhŒ bullet_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hŒdTo get the usb_port of the camera, plug in the camera and run the following command in the terminal:”h]”(hŒ To get the ”…”�”}”(hh8hhhNhNubhŒliteral”“”)�”}”(hŒusb_port”h]”hŒusb_port”…”�”}”(hhBhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hh8hhhh+hKubhŒQ of the camera, plug in the camera and run the following command in the terminal:”…”�”}”(hh8hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKhh3hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKhh.hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKhh hhhh+ubhŒ
literal_block”“”)�”}”(hŒ(ros2 run orbbec_camera list_devices_node”h]”hŒ(ros2 run orbbec_camera list_devices_node”…”�”}”hhhsbah}”(h ]”h"]”h$]”h&]”h(]”Œ xml:space”Œpreserve”Œforce”‰Œlanguage”Œbash”Œhighlight_args”}”uh*hfhh+hKhh hhubh-)�”}”(hhh]”(h2)�”}”(hhh]”h7)�”}”(hŒ?Set the device_num parameter to the number of cameras you have.”h]”(hŒSet the ”…”�”}”(hhƒhhhNhNubhA)�”}”(hŒ
device_num”h]”hŒ
device_num”…”�”}”(hh‹hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hhƒhhhh+hKubhŒ- parameter to the number of cameras you have.”…”�”}”(hhƒhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hK hh€hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hK hh}hhhh+ubh2)�”}”(hhh]”h7)�”}”(hŒQGo to the OrbbecSDK_ROS2/launch/multi_xxx.launch.py file and change the usb_port.”h]”(hŒ
Go to the ”…”�”}”(hh¬hhhNhNubhA)�”}”(hŒ)OrbbecSDK_ROS2/launch/multi_xxx.launch.py”h]”hŒ)OrbbecSDK_ROS2/launch/multi_xxx.launch.py”…”�”}”(hh´hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hh¬hhhh+hKubhŒ file and change the ”…”�”}”(hh¬hhhNhNubhA)�”}”(hŒusb_port”h]”hŒusb_port”…”�”}”(hhÆhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hh¬hhhh+hKubhŒ.”…”�”}”(hh¬hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hK
hh©hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hK
hh}hhhh+ubh2)�”}”(hhh]”h7)�”}”(hŒ‡Don't forget to put the include tag inside the group tag.
Otherwise, the parameter values of different cameras may become contaminated.”h]”(hŒDon”…”�”}”(hhçhhhNhNubhŒ’”…”�”}”(hhçhhhNhNubhŒt forget to put the ”…”�”}”(hhçhhhNhNubhA)�”}”(hŒinclude”h]”hŒinclude”…”�”}”(hh÷hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hhçhhhh+hKubhŒ tag inside the ”…”�”}”(hhçhhhNhNubhA)�”}”(hŒgroup”h]”hŒgroup”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hhçhhhh+hKubhŒ tag.”…”�”}”(hhçhhhNhNubhŒ
”…”�”}”(hhçhhhNhNubhŒMOtherwise, the parameter values of different cameras may become contaminated.”…”�”}”(hhçhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hK hhähhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hK hh}hhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK hh hhhh+ubhg)�”}”(hXÇfrom launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, GroupAction, ExecuteProcess
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
# Include launch files
package_dir = get_package_share_directory('orbbec_camera')
launch_file_dir = os.path.join(package_dir, 'launch')
launch1_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(launch_file_dir, 'gemini2L.launch.py')
),
launch_arguments={
'camera_name': 'camera_01',
'usb_port': '6-2.4.4.2', # replace your usb port here
'device_num': '2'
}.items()
)
launch2_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(launch_file_dir, 'gemini2L.launch.py')
),
launch_arguments={
'camera_name': 'camera_02',
'usb_port': '6-2.4.1', # replace your usb port here
'device_num': '2'
}.items()
)
# If you need more cameras, just add more launch_include here, and change the usb_port and device_num
# Launch description
ld = LaunchDescription([
GroupAction([launch1_include]),
GroupAction([launch2_include]),
])
return ld
”h]”hXÇfrom launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, GroupAction, ExecuteProcess
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
# Include launch files
package_dir = get_package_share_directory('orbbec_camera')
launch_file_dir = os.path.join(package_dir, 'launch')
launch1_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(launch_file_dir, 'gemini2L.launch.py')
),
launch_arguments={
'camera_name': 'camera_01',
'usb_port': '6-2.4.4.2', # replace your usb port here
'device_num': '2'
}.items()
)
launch2_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(launch_file_dir, 'gemini2L.launch.py')
),
launch_arguments={
'camera_name': 'camera_02',
'usb_port': '6-2.4.1', # replace your usb port here
'device_num': '2'
}.items()
)
# If you need more cameras, just add more launch_include here, and change the usb_port and device_num
# Launch description
ld = LaunchDescription([
GroupAction([launch1_include]),
GroupAction([launch2_include]),
])
return ld
”…”�”}”hj5sbah}”(h ]”h"]”h$]”h&]”h(]”hvhwhx‰hyŒpython”h{}”uh*hfhh+hKhh hhubh-)�”}”(hhh]”h2)�”}”(hhh]”h7)�”}”(hŒ1To launch the cameras, run the following command:”h]”hŒ1To launch the cameras, run the following command:”…”�”}”(hjKhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hK=hjHhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hK=hjEhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hK=hh hhhh+ubhg)�”}”(hŒ0ros2 launch orbbec_camera multi_camera.launch.py”h]”hŒ0ros2 launch orbbec_camera multi_camera.launch.py”…”�”}”hjesbah}”(h ]”h"]”h$]”h&]”h(]”hvhwhx‰hyŒbash”h{}”uh*hfhh+hKhh hhubh
)�”}”(hhh]”(h)�”}”(hŒ$No Data Stream from Multiple Cameras”h]”hŒ$No Data Stream from Multiple Cameras”…”�”}”(hjxhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhKChjuhh+ubh7)�”}”(hŒInsufficient Power Supply:”h]”(hŒstrong”“”)�”}”(hŒInsufficient Power Supply”h]”hŒInsufficient Power Supply”…”�”}”(hjŒhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*jŠhj†hhhh+hKubhŒ:”…”�”}”(hj†hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKEhjuhhhh+ubh-)�”}”(hhh]”(h2)�”}”(hhh]”h7)�”}”(hŒ7Ensure that each camera is connected to a separate hub.”h]”hŒ7Ensure that each camera is connected to a separate hub.”…”�”}”(hjªhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKGhj§hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKGhj¤hhhh+ubh2)�”}”(hhh]”h7)�”}”(hŒ=Use a powered hub to provide sufficient power to each camera.”h]”hŒ=Use a powered hub to provide sufficient power to each camera.”…”�”}”(hjÁhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKHhj¾hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKHhj¤hhhh+ubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKGhjuhhhh+ubh7)�”}”(hŒHigh Resolution:”h]”(j‹)�”}”(hŒHigh Resolution”h]”hŒHigh Resolution”…”�”}”(hjßhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*jŠhjÛhhhh+hKubhŒ:”…”�”}”(hjÛhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKJhjuhhhh+ubh-)�”}”(hhh]”h2)�”}”(hhh]”h7)�”}”(hŒ:Try lowering the resolution to resolve data stream issues.”h]”hŒ:Try lowering the resolution to resolve data stream issues.”…”�”}”(hjýhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKLhjúhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKLhj÷hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKLhjuhhhh+ubh7)�”}”(hŒIncrease usbfs_memory_mb Value:”h]”(j‹)�”}”(hŒIncrease usbfs_memory_mb Value”h]”(hŒIncrease usbfs”…”�”}”(hjhhhNhNubhŒ_”…”�”}”(hjhhhNhNubhŒmemory”…”�”}”(hjhhhNhNubhŒ_”…”�”}”(hjhhhh+hKubhŒmb Value”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*jŠhjhhhh+hKubhŒ:”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKNhjuhhhh+ubh-)�”}”(hhh]”h2)�”}”(hhh]”h7)�”}”(hŒœIncrease the usbfs_memory_mb value to 128MB (this is a reference value and can be adjusted based on your system’s needs)
by running the following command:”h]”(hŒ
Increase the ”…”�”}”(hjIhhhNhNubhA)�”}”(hŒusbfs_memory_mb”h]”hŒusbfs_memory_mb”…”�”}”(hjQhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*h@hjIhhhh+hKubhŒ^ value to 128MB (this is a reference value and can be adjusted based on your system’s needs)”…”�”}”(hjIhhhNhNubhŒ
”…”�”}”(hjIhhhNhNubhŒ!by running the following command:”…”�”}”(hjIhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKPhjFhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKPhjChhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKPhjuhhhh+ubhg)�”}”(hŒF echo 128 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb”h]”hŒF echo 128 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb”…”�”}”hj}sbah}”(h ]”h"]”h$]”h&]”h(]”hvhwhx‰hyŒbash”h{}”uh*hfhh+hKChjuhhubh-)�”}”(hhh]”h2)�”}”(hhh]”h7)�”}”(hŒ/To make this change permanent, check this link.”h]”(hŒ%To make this change permanent, check ”…”�”}”(hj“hhhNhNubhŒ reference”“”)�”}”(hŒ this link”h]”hŒ this link”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”Œrefuri”Œ5https://github.com/OpenKinect/libfreenect2/issues/807”uh*j›hKWhj“hhhh+ubhŒ.”…”�”}”(hj“hhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hKWhj�hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h1hKWhj�hhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”uh*h,hKWhjuhhhh+ubeh}”(h ]”Œ$no-data-stream-from-multiple-cameras”ah"]”h$]”Œ$no data stream from multiple cameras”ah&]”h(]”uh*h hKChh hhhh+ubh
)�”}”(hhh]”(h)�”}”(hŒ4Image topic frame rate too low from Multiple Cameras”h]”hŒ4Image topic frame rate too low from Multiple Cameras”…”�”}”(hjÎhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”uh*hhKYhjËhh+ubh7)�”}”(hŒ)Refer to the Fast DDS Configuration file.”h]”(hŒ
Refer to the ”…”�”}”(hjÜhhhNhNubŒsphinx.addnodes”Œ pending_xref”“”)�”}”(hhh]”jœ)�”}”(hŒFast DDS Configuration”h]”hŒFast DDS Configuration”…”�”}”(hjêhhhNhNubah}”(h ]”h"]”h$]”h&]”h(]”j«Œ./fastdds_tuning”uh*j›hK[hjçubah}”(h ]”h"]”h$]”h&]”h(]”Œ reftarget”jøŒreftype”Œany”Œ refdomain”NŒ refexplicit”ˆŒrefwarn”ˆuh*jåhK[hjÜhhhh+ubhŒ file.”…”�”}”(hjÜhhhNhNubeh}”(h ]”h"]”h$]”h&]”h(]”uh*h6hK[hjËhhhh+ubeh}”(h ]”Œ4image-topic-frame-rate-too-low-from-multiple-cameras”ah"]”h$]”Œ4image topic frame rate too low from multiple cameras”ah&]”h(]”uh*h hKYhh hhhh+ubeh}”(h ]”Œ multi-camera”ah"]”h$]”Œ multi-camera”ah&]”h(]”uh*h hKhhhhhh+ubah}”(h ]”h"]”h$]”h&]”h(]”Œsource”h+Œtranslation_progress”}”(Œtotal”KŒ
translated”Kuuh*hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œoutput”NhNŒ generator”NŒ datestamp”NŒ root_prefix”Œ/”Œ source_link”NŒ
source_url”NŒ