mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-09-14 20:10:19 +08:00
Modify the py file in the launch to fix the abnormal behavior of multiple device hot-swapping in Foxy ROS2 version.
This commit is contained in:
@@ -5,6 +5,8 @@ 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():
|
||||
@@ -76,34 +78,50 @@ def generate_launch_description():
|
||||
|
||||
# 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
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user