From 105562b4c8f4fd4f0f00b81e54a10335a1767ddd Mon Sep 17 00:00:00 2001 From: Joe Dong Date: Wed, 13 Sep 2023 18:51:12 +0800 Subject: [PATCH] add dcw2 launch --- orbbec_camera/launch/dabai_dcw2.launch.py | 96 +++++++++++++++++++++ orbbec_camera/launch/multi_camera.launch.py | 8 +- 2 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 orbbec_camera/launch/dabai_dcw2.launch.py diff --git a/orbbec_camera/launch/dabai_dcw2.launch.py b/orbbec_camera/launch/dabai_dcw2.launch.py new file mode 100644 index 00000000..3df50837 --- /dev/null +++ b/orbbec_camera/launch/dabai_dcw2.launch.py @@ -0,0 +1,96 @@ +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration +from launch_ros.actions import PushRosNamespace +from launch.actions import GroupAction +from launch_ros.actions import ComposableNodeContainer +from launch_ros.descriptions import ComposableNode + + +def generate_launch_description(): + # Declare arguments + args = [ + DeclareLaunchArgument('camera_name', default_value='camera'), + DeclareLaunchArgument('depth_registration', default_value='false'), + DeclareLaunchArgument('serial_number', default_value=''), + DeclareLaunchArgument('usb_port', default_value=''), + DeclareLaunchArgument('device_num', default_value='1'), + DeclareLaunchArgument('vendor_id', default_value='0x2bc5'), + DeclareLaunchArgument('product_id', default_value=''), + DeclareLaunchArgument('enable_point_cloud', default_value='true'), + DeclareLaunchArgument('enable_colored_point_cloud', default_value='false'), + DeclareLaunchArgument('point_cloud_qos', default_value='default'), + DeclareLaunchArgument('connection_delay', default_value='100'), + DeclareLaunchArgument('color_width', default_value='640'), + DeclareLaunchArgument('color_height', default_value='480'), + DeclareLaunchArgument('color_fps', default_value='10'), + DeclareLaunchArgument('color_format', default_value='MJPG'), + DeclareLaunchArgument('enable_color', default_value='true'), + DeclareLaunchArgument('flip_color', default_value='false'), + DeclareLaunchArgument('color_qos', default_value='default'), + DeclareLaunchArgument('color_camera_info_qos', default_value='default'), + DeclareLaunchArgument('enable_color_auto_exposure', default_value='true'), + DeclareLaunchArgument('depth_width', default_value='640'), + DeclareLaunchArgument('depth_height', default_value='400'), + DeclareLaunchArgument('depth_fps', default_value='10'), + DeclareLaunchArgument('depth_format', default_value='Y11'), + DeclareLaunchArgument('enable_depth', default_value='true'), + DeclareLaunchArgument('flip_depth', default_value='false'), + DeclareLaunchArgument('depth_qos', default_value='default'), + DeclareLaunchArgument('depth_camera_info_qos', default_value='default'), + DeclareLaunchArgument('ir_width', default_value='640'), + DeclareLaunchArgument('ir_height', default_value='400'), + DeclareLaunchArgument('ir_fps', default_value='10'), + DeclareLaunchArgument('ir_format', default_value='Y10'), + DeclareLaunchArgument('enable_ir', default_value='true'), + DeclareLaunchArgument('flip_ir', default_value='false'), + DeclareLaunchArgument('ir_qos', default_value='default'), + DeclareLaunchArgument('ir_camera_info_qos', default_value='default'), + DeclareLaunchArgument('enable_ir_auto_exposure', default_value='true'), + DeclareLaunchArgument('publish_tf', default_value='true'), + DeclareLaunchArgument('tf_publish_rate', default_value='10.0'), + DeclareLaunchArgument('ir_info_url', default_value=''), + DeclareLaunchArgument('color_info_url', default_value=''), + DeclareLaunchArgument('log_level', default_value='none'), + DeclareLaunchArgument('enable_publish_extrinsic', default_value='false'), + DeclareLaunchArgument('enable_d2c_viewer', default_value='false'), + DeclareLaunchArgument('enable_soft_filter', default_value='true'), + DeclareLaunchArgument('enable_ldp', default_value='true'), + DeclareLaunchArgument('enable_soft_filter', default_value='true'), + DeclareLaunchArgument('soft_filter_max_diff', default_value='-1'), + DeclareLaunchArgument('soft_filter_speckle_size', default_value='-1') + ] + + # Node configuration + parameters = [{arg.name: LaunchConfiguration(arg.name)} for arg in args] + # Define the ComposableNode + compose_node = ComposableNode( + package='orbbec_camera', + plugin='orbbec_camera::OBCameraNodeDriver', + name=LaunchConfiguration('camera_name'), + namespace='', + parameters=parameters, + ) + # Define the ComposableNodeContainer + container = ComposableNodeContainer( + name='camera_container', + namespace='', + package='rclcpp_components', + executable='component_container', + composable_node_descriptions=[ + compose_node, + ], + output='screen', + ) + + # Launch description + ld = LaunchDescription( + args + + [ + GroupAction([ + PushRosNamespace(LaunchConfiguration('camera_name')), + container + ]) + ] + ) + return ld diff --git a/orbbec_camera/launch/multi_camera.launch.py b/orbbec_camera/launch/multi_camera.launch.py index 5da52929..220038c2 100644 --- a/orbbec_camera/launch/multi_camera.launch.py +++ b/orbbec_camera/launch/multi_camera.launch.py @@ -20,22 +20,22 @@ def generate_launch_description(): launch_file_dir = os.path.join(package_dir, 'launch') launch1_include = IncludeLaunchDescription( PythonLaunchDescriptionSource( - os.path.join(launch_file_dir, 'dabai_dcw.launch.py') + os.path.join(launch_file_dir, 'dabai_dcw2.launch.py') ), launch_arguments={ 'camera_name': 'camera_01', - 'usb_port': '5-3.4.4.2.1', + 'usb_port': '5-3.4.4.1.1', 'device_num': '2' }.items() ) launch2_include = IncludeLaunchDescription( PythonLaunchDescriptionSource( - os.path.join(launch_file_dir, 'dabai_dcw.launch.py') + os.path.join(launch_file_dir, 'dabai_dcw2.launch.py') ), launch_arguments={ 'camera_name': 'camera_02', - 'usb_port': '5-3.4.3.1', + 'usb_port': '5-3.4.4.3.1', 'device_num': '2' }.items() )