|
@@ -2,35 +2,77 @@ import os
|
|
|
from ament_index_python.packages import get_package_share_directory
|
|
|
import launch
|
|
|
import launch_ros.actions
|
|
|
+from launch.substitutions import EnvironmentVariable
|
|
|
+from launch_ros.actions import ComposableNodeContainer
|
|
|
+from launch_ros.descriptions import ComposableNode
|
|
|
|
|
|
def generate_launch_description():
|
|
|
+ config = os.path.join(
|
|
|
+ get_package_share_directory('saturn_controller'),
|
|
|
+ 'config',
|
|
|
+ 'saturn_controller.yaml'
|
|
|
+ )
|
|
|
+ print(f"config:{config}" )
|
|
|
|
|
|
- robot_name = os.getenv('ROBOT_NAME', 'default_robot')
|
|
|
- robot_type = os.getenv('ROBOT_TYPE', 'default_type')
|
|
|
-
|
|
|
- print("Robot name: " + robot_name)
|
|
|
- print("Robot type: " + robot_type)
|
|
|
-
|
|
|
- component_manager_node = launch_ros.actions.Node(
|
|
|
+ # 创建组件容器
|
|
|
+ container = ComposableNodeContainer(
|
|
|
+ name='rclcpp_components',
|
|
|
+ namespace='nav',
|
|
|
package='rclcpp_components',
|
|
|
executable='component_container',
|
|
|
- name='component_container',
|
|
|
- output='screen'
|
|
|
- )
|
|
|
-
|
|
|
- composable_node = launch_ros.actions.LoadComposableNodes(
|
|
|
- target_container='/component_container',
|
|
|
composable_node_descriptions=[
|
|
|
- launch_ros.descriptions.ComposableNode(
|
|
|
+ # 添加你的组件
|
|
|
+ ComposableNode(
|
|
|
package='saturn_controller',
|
|
|
plugin='saturn_ros2::SaturnController',
|
|
|
- namespace = robot_name,
|
|
|
- name='saturn_controller'
|
|
|
- ),
|
|
|
- ]
|
|
|
+ name='saturn_controller',
|
|
|
+ namespace='nav',
|
|
|
+ parameters=[config]
|
|
|
+ # remappings=[
|
|
|
+ # ('input_topic', 'new_input_topic'),
|
|
|
+ # ('output_topic', 'new_output_topic')
|
|
|
+ # ]
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ output='screen'
|
|
|
)
|
|
|
|
|
|
- return launch.LaunchDescription([
|
|
|
- component_manager_node,
|
|
|
- composable_node
|
|
|
- ])
|
|
|
+ return launch.LaunchDescription([container])
|
|
|
+
|
|
|
+# def generate_launch_description():
|
|
|
+#
|
|
|
+# robot_name = EnvironmentVariable('ROBOT_NAME', default_value='')
|
|
|
+#
|
|
|
+# # print("Robot name: " + robot_name)
|
|
|
+#
|
|
|
+# config = os.path.join(
|
|
|
+# get_package_share_directory('saturn_controller'),
|
|
|
+# 'config',
|
|
|
+# 'saturn_controller.yaml'
|
|
|
+# )
|
|
|
+# print(R"config:{config}" )
|
|
|
+#
|
|
|
+# component_manager_node = launch_ros.actions.Node(
|
|
|
+# package='rclcpp_components',
|
|
|
+# executable='component_container',
|
|
|
+# name='component_container',
|
|
|
+# namespace = robot_name,
|
|
|
+# output='screen'
|
|
|
+# )
|
|
|
+#
|
|
|
+# composable_node = launch_ros.actions.LoadComposableNodes(
|
|
|
+# target_container='/component_container',
|
|
|
+# composable_node_descriptions=[
|
|
|
+# launch_ros.descriptions.ComposableNode(
|
|
|
+# package='saturn_controller',
|
|
|
+# plugin='saturn_ros2::SaturnController',
|
|
|
+# parameters=[config],
|
|
|
+# name='saturn_controller'
|
|
|
+# ),
|
|
|
+# ]
|
|
|
+# )
|
|
|
+#
|
|
|
+# return launch.LaunchDescription([
|
|
|
+# component_manager_node,
|
|
|
+# composable_node
|
|
|
+# ])
|