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
+34 -16
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():
@@ -83,34 +85,50 @@ def generate_launch_description():
# 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
else:
# Define the ComposableNode # Define the ComposableNode
compose_node = ComposableNode( compose_node = ComposableNode(
package='orbbec_camera', package="orbbec_camera",
plugin='orbbec_camera::OBCameraNodeDriver', plugin="orbbec_camera::OBCameraNodeDriver",
name=LaunchConfiguration('camera_name'), name=LaunchConfiguration("camera_name"),
namespace='', namespace="",
parameters=parameters, parameters=parameters,
) )
# Define the ComposableNodeContainer # Define the ComposableNodeContainer
container = ComposableNodeContainer( container = ComposableNodeContainer(
name='camera_container', name="camera_container",
namespace='', namespace="",
package='rclcpp_components', package="rclcpp_components",
executable='component_container', executable="component_container",
composable_node_descriptions=[ composable_node_descriptions=[
compose_node, compose_node,
], ],
output='screen', output="screen",
) )
# Launch description # Launch description
ld = LaunchDescription( ld = LaunchDescription(
args + args
[ + [
GroupAction([ GroupAction(
PushRosNamespace(LaunchConfiguration('camera_name')), [PushRosNamespace(LaunchConfiguration("camera_name")), container]
container )
])
] ]
) )
return ld return ld