From 4faf18b9b1f91fbbf99e5a82bd21b50085aadc2b Mon Sep 17 00:00:00 2001 From: lixiaobin Date: Tue, 2 Jan 2024 11:05:48 +0800 Subject: [PATCH] Add astra pro2 launch. --- README.MD | 1 + README_CN.MD | 1 + orbbec_camera/launch/astra_pro2.launch.py | 115 ++++++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 orbbec_camera/launch/astra_pro2.launch.py diff --git a/README.MD b/README.MD index 3bd1fb3a..912c6d8d 100644 --- a/README.MD +++ b/README.MD @@ -387,6 +387,7 @@ The frame fps and resolution of IR must be consistent with the depth. The corres | astra mini pro s | astra.launch.py | | astra2 | astra2.launch.py | | astra stereo s | stereo_s_u3.launch.py | +| astra pro2 | astra_pro2.launch.py | | dabai | dabai.launch.py | | dabai d1 | dabai_d1.launch.py | | dabai dcw | dabai_dcw.launch.py | diff --git a/README_CN.MD b/README_CN.MD index 1454e889..c67993ce 100644 --- a/README_CN.MD +++ b/README_CN.MD @@ -374,6 +374,7 @@ IR的分辨率和帧率必须和深度保持一致。不同模式和分辨率对 | astra mini pro s | astra.launch.py | | astra2 | astra2.launch.py | | astra stereo s | stereo_s_u3.launch.py | +| astra pro2 | astra_pro2.launch.py | | dabai | dabai.launch.py | | dabai d1 | dabai_d1.launch.py | | dabai dcw | dabai_dcw.launch.py | diff --git a/orbbec_camera/launch/astra_pro2.launch.py b/orbbec_camera/launch/astra_pro2.launch.py new file mode 100644 index 00000000..ad8091d4 --- /dev/null +++ b/orbbec_camera/launch/astra_pro2.launch.py @@ -0,0 +1,115 @@ +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 +from launch_ros.actions import Node +import os + + +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='UYVY'), + 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='480'), + 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='480'), + 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'), + DeclareLaunchArgument('ordered_pc', default_value='false'), + ] + + # Node configuration + parameters = [{arg.name: LaunchConfiguration(arg.name)} for arg in args] + # get ROS_DISTRO + ros_distro = os.environ["ROS_DISTRO"] + if ros_distro == "foxy": + return LaunchDescription( + args + + [ + Node( + package="orbbec_camera", + executable="orbbec_camera_node", + name="ob_camera_node", + namespace=LaunchConfiguration("camera_name"), + parameters=parameters, + output="screen", + ) + ] + ) + # Define the ComposableNode + else: + # 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