From 2efbf3f284e405a0f8136165f377f35439d89b84 Mon Sep 17 00:00:00 2001 From: bajingsi Date: Wed, 6 Sep 2023 18:58:58 +0800 Subject: [PATCH] Add Dabai max dabai_max.launch.py --- orbbec_camera/launch/dabai_max.launch.py | 87 +++++++++++++++++++ .../scripts/99-obsensor-libusb.rules | 21 ++++- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 orbbec_camera/launch/dabai_max.launch.py mode change 100755 => 100644 orbbec_camera/scripts/99-obsensor-libusb.rules diff --git a/orbbec_camera/launch/dabai_max.launch.py b/orbbec_camera/launch/dabai_max.launch.py new file mode 100644 index 00000000..d42f3590 --- /dev/null +++ b/orbbec_camera/launch/dabai_max.launch.py @@ -0,0 +1,87 @@ +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('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('point_cloud_qos', default_value='default'), + DeclareLaunchArgument('connection_delay', default_value='100'), + DeclareLaunchArgument('depth_width', default_value='640'), + DeclareLaunchArgument('depth_height', default_value='320'), + DeclareLaunchArgument('depth_fps', default_value='10'), + DeclareLaunchArgument('depth_format', default_value='Y12'), + 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_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('jpeg_decoder', default_value='avdec_mjpeg'), + DeclareLaunchArgument('video_convert', default_value='videoconvert'), + DeclareLaunchArgument('jpeg_parse', default_value='jpegparse'), + ] + + # 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/scripts/99-obsensor-libusb.rules b/orbbec_camera/scripts/99-obsensor-libusb.rules old mode 100755 new mode 100644 index df6ed60c..dab531ea --- a/orbbec_camera/scripts/99-obsensor-libusb.rules +++ b/orbbec_camera/scripts/99-obsensor-libusb.rules @@ -11,7 +11,9 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0660", MODE:="066 SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="060f", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="AstraPlus" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="050f", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="AstraPlus_rgb" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0670", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Orbbec Gemini 2" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0673", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Orbbec Gemini 2 L " +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0671", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Orbbec Gemini 2 XL" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0673", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Orbbec Gemini 2 L" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0675", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Orbbec Gemini 2 VL" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bc5", ATTRS{idProduct}=="0701", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Dabai DCL" # OpenNI Modules @@ -78,5 +80,22 @@ SUBSYSTEM=="usb", ATTR{idProduct}=="065b", ATTR{idVendor}=="2bc5", MODE:="0666", SUBSYSTEM=="usb", ATTR{idProduct}=="065c", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="gemini_e" SUBSYSTEM=="usb", ATTR{idProduct}=="055c", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="gemini_e_rgb" SUBSYSTEM=="usb", ATTR{idProduct}=="065d", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="gemini_e_lite" +SUBSYSTEM=="usb", ATTR{idProduct}=="065e", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="astra_mini_s_pro" SUBSYSTEM=="usb", ATTR{idProduct}=="0698", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="j1" SUBSYSTEM=="usb", ATTR{idProduct}=="069c", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="TB2201" +SUBSYSTEM=="usb", ATTR{idProduct}=="06a0", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="dabai_dcw2" +SUBSYSTEM=="usb", ATTR{idProduct}=="069f", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="dabai_dw2" +SUBSYSTEM=="usb", ATTR{idProduct}=="069a", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="dabai_max" + + + + + + + + + + + + +