Bug fiix import patron.xacro and append packages realsense2
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# Copyright 2023 RealSense, Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
'''
|
||||
Launch realsense2_camera node & a frame latency printer node,
|
||||
This tool allow the user the evaluate the reduction of the frame latency when intra-process communication is used.
|
||||
Run syntax: ros2 launch realsense2_camera rs_intra_process_demo_launch.py intra_process_comms:=true
|
||||
Note:
|
||||
* Running this tool require building with build tools flag on (colcon build --cmake-args '-DBUILD_TOOLS=ON')
|
||||
* Currently default for color stream only
|
||||
'''
|
||||
import sys
|
||||
import subprocess
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import DeclareLaunchArgument
|
||||
from launch.substitutions import LaunchConfiguration
|
||||
from launch_ros.actions import ComposableNodeContainer
|
||||
from launch_ros.descriptions import ComposableNode
|
||||
|
||||
# Make sure required packages can be found
|
||||
process = subprocess.run(['ros2','component', 'types'],
|
||||
stdout=subprocess.PIPE,
|
||||
universal_newlines=True)
|
||||
|
||||
rs_node_class= 'RealSenseNodeFactory'
|
||||
rs_latency_tool_class = 'FrameLatencyNode'
|
||||
|
||||
if process.stdout.find(rs_node_class) == -1 or process.stdout.find(rs_latency_tool_class) == -1 :
|
||||
sys.exit('Cannot locate all required node components (' + rs_node_class + ',' + rs_latency_tool_class + ') on the available component list\n' + process.stdout + \
|
||||
'\nplease make sure you run "colcon build --cmake-args \'-DBUILD_TOOLS=ON\'" command before running this launch file')
|
||||
|
||||
|
||||
realsense_node_params = [{'name': 'serial_no', 'default': "''", 'description': 'choose device by serial number'},
|
||||
{'name': 'usb_port_id', 'default': "''", 'description': 'choose device by usb port id'},
|
||||
{'name': 'device_type', 'default': "''", 'description': 'choose device by type'},
|
||||
{'name': 'log_level', 'default': 'info', 'description': 'debug log level [DEBUG|INFO|WARN|ERROR|FATAL]'},
|
||||
{'name': 'rgb_camera.profile', 'default': '0,0,0', 'description': 'color image width'},
|
||||
{'name': 'enable_color', 'default': 'true', 'description': 'enable color stream'},
|
||||
{'name': 'enable_depth', 'default': 'true', 'description': 'enable depth stream'},
|
||||
{'name': 'enable_infra', 'default': 'false', 'description': 'enable infra stream'},
|
||||
{'name': 'enable_infra1', 'default': 'true', 'description': 'enable infra1 stream'},
|
||||
{'name': 'enable_infra2', 'default': 'true', 'description': 'enable infra2 stream'},
|
||||
{'name': 'enable_gyro', 'default': 'true', 'description': "enable gyro stream"},
|
||||
{'name': 'enable_accel', 'default': 'true', 'description': "enable accel stream"},
|
||||
{'name': 'unite_imu_method', 'default': "1", 'description': '[0-None, 1-copy, 2-linear_interpolation]'},
|
||||
{'name': 'intra_process_comms', 'default': 'true', 'description': "enable intra-process communication"},
|
||||
{'name': 'enable_sync', 'default': 'true', 'description': "'enable sync mode'"},
|
||||
{'name': 'pointcloud.enable', 'default': 'true', 'description': ''},
|
||||
{'name': 'enable_rgbd', 'default': 'true', 'description': "'enable rgbd topic'"},
|
||||
{'name': 'align_depth.enable', 'default': 'true', 'description': "'enable align depth filter'"},
|
||||
{'name': 'publish_tf', 'default': 'true', 'description': '[bool] enable/disable publishing static & dynamic TF'},
|
||||
{'name': 'tf_publish_rate', 'default': '1.0', 'description': '[double] rate in HZ for publishing dynamic TF'},
|
||||
]
|
||||
|
||||
frame_latency_node_params = [{'name': 'topic_name', 'default': '/camera/color/image_raw', 'description': 'topic to which latency calculated'},
|
||||
{'name': 'topic_type', 'default': 'image', 'description': 'topic type [image|points|imu|metadata|camera_info|rgbd|imu_info|tf]'},
|
||||
]
|
||||
|
||||
|
||||
def declare_configurable_parameters(parameters):
|
||||
return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters]
|
||||
|
||||
def set_configurable_parameters(parameters):
|
||||
return dict([(param['name'], LaunchConfiguration(param['name'])) for param in parameters])
|
||||
|
||||
|
||||
def generate_launch_description():
|
||||
|
||||
|
||||
return LaunchDescription(declare_configurable_parameters(realsense_node_params) +
|
||||
declare_configurable_parameters(frame_latency_node_params) +[
|
||||
ComposableNodeContainer(
|
||||
name='my_container',
|
||||
namespace='',
|
||||
package='rclcpp_components',
|
||||
executable='component_container',
|
||||
composable_node_descriptions=[
|
||||
ComposableNode(
|
||||
package='realsense2_camera',
|
||||
namespace='',
|
||||
plugin='realsense2_camera::' + rs_node_class,
|
||||
name="camera",
|
||||
parameters=[set_configurable_parameters(realsense_node_params)],
|
||||
extra_arguments=[{'use_intra_process_comms': LaunchConfiguration("intra_process_comms")}]) ,
|
||||
ComposableNode(
|
||||
package='realsense2_camera',
|
||||
namespace='',
|
||||
plugin='rs2_ros::tools::frame_latency::' + rs_latency_tool_class,
|
||||
name='frame_latency',
|
||||
parameters=[set_configurable_parameters(frame_latency_node_params)],
|
||||
extra_arguments=[{'use_intra_process_comms': LaunchConfiguration("intra_process_comms")}]) ,
|
||||
],
|
||||
output='screen',
|
||||
emulate_tty=True, # needed for display of logs
|
||||
arguments=['--ros-args', '--log-level', LaunchConfiguration('log_level')],
|
||||
)])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user