17 .robot_description(file_path=
"config/panda.urdf.xacro")
22 launch_as_standalone_node = LaunchConfiguration(
23 "launch_as_standalone_node", default=
"true"
28 "moveit_servo": ParameterBuilder(
"moveit_servo")
29 .yaml(
"config/test_config_panda.yaml")
34 acceleration_filter_update_period = {
"update_period": 0.01}
35 planning_group_name = {
"planning_group_name":
"panda_arm"}
38 ros2_controllers_path = os.path.join(
39 get_package_share_directory(
"moveit_resources_panda_moveit_config"),
41 "ros2_controllers.yaml",
43 ros2_control_node = launch_ros.actions.Node(
44 package=
"controller_manager",
45 executable=
"ros2_control_node",
46 parameters=[ros2_controllers_path],
48 (
"/controller_manager/robot_description",
"/robot_description"),
53 joint_state_broadcaster_spawner = launch_ros.actions.Node(
54 package=
"controller_manager",
57 "joint_state_broadcaster",
58 "--controller-manager-timeout",
60 "--controller-manager",
61 "/controller_manager",
66 panda_arm_controller_spawner = launch_ros.actions.Node(
67 package=
"controller_manager",
69 arguments=[
"panda_arm_controller",
"-c",
"/controller_manager"],
73 container = launch_ros.actions.ComposableNodeContainer(
74 name=
"moveit_servo_demo_container",
76 package=
"rclcpp_components",
77 executable=
"component_container_mt",
78 composable_node_descriptions=[
81 launch_ros.descriptions.ComposableNode(
82 package=
"moveit_servo",
83 plugin=
"moveit_servo::ServoNode",
87 acceleration_filter_update_period,
89 moveit_config.robot_description,
90 moveit_config.robot_description_semantic,
91 moveit_config.robot_description_kinematics,
93 condition=UnlessCondition(launch_as_standalone_node),
95 launch_ros.descriptions.ComposableNode(
96 package=
"robot_state_publisher",
97 plugin=
"robot_state_publisher::RobotStatePublisher",
98 name=
"robot_state_publisher",
99 parameters=[moveit_config.robot_description],
101 launch_ros.descriptions.ComposableNode(
103 plugin=
"tf2_ros::StaticTransformBroadcasterNode",
104 name=
"static_tf2_broadcaster",
105 parameters=[{
"child_frame_id":
"/panda_link0",
"frame_id":
"/world"}],
112 servo_node = launch_ros.actions.Node(
113 package=
"moveit_servo",
114 executable=
"servo_node",
118 acceleration_filter_update_period,
120 moveit_config.robot_description,
121 moveit_config.robot_description_semantic,
122 moveit_config.robot_description_kinematics,
125 condition=IfCondition(launch_as_standalone_node),
128 servo_gtest = launch_ros.actions.Node(
129 executable=launch.substitutions.PathJoinSubstitution(
131 launch.substitutions.LaunchConfiguration(
"test_binary_dir"),
132 "moveit_servo_ros_integration_test",
138 return launch.LaunchDescription(
142 launch.actions.TimerAction(period=3.0, actions=[ros2_control_node]),
143 launch.actions.TimerAction(
144 period=5.0, actions=[joint_state_broadcaster_spawner]
146 launch.actions.TimerAction(
147 period=7.0, actions=[panda_arm_controller_spawner]
152 launch.actions.RegisterEventHandler(
154 target_action=panda_arm_controller_spawner,
155 on_exit=[servo_gtest],
158 launch_testing.actions.ReadyToTest(),
161 "servo_gtest": servo_gtest,
test_gtest_pass(self, proc_info, servo_gtest)