Modify gemini2.launch.py to resolve the abnormal program behavior of multiple device reconnection in the Foxy version.

This commit is contained in:
lixiaobin
2023-11-03 18:30:43 +08:00
parent 548f244087
commit 6a7cebe544
+49 -31
View File
@@ -5,6 +5,8 @@ from launch_ros.actions import PushRosNamespace
from launch.actions import GroupAction from launch.actions import GroupAction
from launch_ros.actions import ComposableNodeContainer from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode from launch_ros.descriptions import ComposableNode
from launch_ros.actions import Node
import os
def generate_launch_description(): def generate_launch_description():
@@ -81,36 +83,52 @@ def generate_launch_description():
DeclareLaunchArgument('enable_frame_sync', default_value='true'), DeclareLaunchArgument('enable_frame_sync', default_value='true'),
] ]
# Node configuration # Node configuration
parameters = [{arg.name: LaunchConfiguration(arg.name)} for arg in args] 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 # Define the ComposableNode
compose_node = ComposableNode( else:
package='orbbec_camera', # Define the ComposableNode
plugin='orbbec_camera::OBCameraNodeDriver', compose_node = ComposableNode(
name=LaunchConfiguration('camera_name'), package="orbbec_camera",
namespace='', plugin="orbbec_camera::OBCameraNodeDriver",
parameters=parameters, name=LaunchConfiguration("camera_name"),
) namespace="",
# Define the ComposableNodeContainer parameters=parameters,
container = ComposableNodeContainer( )
name='camera_container', # Define the ComposableNodeContainer
namespace='', container = ComposableNodeContainer(
package='rclcpp_components', name="camera_container",
executable='component_container', namespace="",
composable_node_descriptions=[ package="rclcpp_components",
compose_node, executable="component_container",
], composable_node_descriptions=[
output='screen', compose_node,
) ],
output="screen",
# Launch description )
ld = LaunchDescription( # Launch description
args + ld = LaunchDescription(
[ args
GroupAction([ + [
PushRosNamespace(LaunchConfiguration('camera_name')), GroupAction(
container [PushRosNamespace(LaunchConfiguration("camera_name")), container]
]) )
] ]
) )
return ld return ld