5.2.1. Multi-Camera
To get the
usb_portof the camera, plug in the camera and run the following command in the terminal:
ros2 run orbbec_camera list_devices_node
Set the
device_numparameter to the number of cameras you have.Go to the
OrbbecSDK_ROS2/launch/multi_xxx.launch.pyfile and change theusb_port.Don’t forget to put the
includetag inside thegrouptag. Otherwise, the parameter values of different cameras may become contaminated.
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
To launch the cameras, run the following command:
ros2 launch orbbec_camera multi_camera.launch.py
5.2.1.1. No Data Stream from Multiple Cameras
Insufficient Power Supply:
Ensure that each camera is connected to a separate hub.
Use a powered hub to provide sufficient power to each camera.
High Resolution:
Try lowering the resolution to resolve data stream issues.
Increase usbfs_memory_mb Value:
Increase the
usbfs_memory_mbvalue to 128MB (this is a reference value and can be adjusted based on your system’s needs) by running the following command:
echo 128 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb
To make this change permanent, check this link.
5.2.1.2. Image topic frame rate too low from Multiple Cameras
Refer to the Fast DDS Configuration file.