15"""This is all-in-one launch script intended for use by nav2 developers."""
19from ament_index_python.packages
import get_package_share_directory
21from launch
import LaunchDescription
22from launch.actions
import DeclareLaunchArgument, IncludeLaunchDescription
23from launch.conditions
import IfCondition
24from launch.launch_description_sources
import PythonLaunchDescriptionSource
25from launch.substitutions
import LaunchConfiguration
26from launch_ros.actions
import Node
31 sm_dance_bot_strikes_back_dir = get_package_share_directory(
"sm_dance_bot_strikes_back")
32 sm_dance_bot_strikes_back_launch_dir = os.path.join(sm_dance_bot_strikes_back_dir,
"launch")
35 slam = LaunchConfiguration(
"slam")
36 namespace = LaunchConfiguration(
"namespace")
37 use_namespace = LaunchConfiguration(
"use_namespace")
38 map_yaml_file = LaunchConfiguration(
"map")
39 use_sim_time = LaunchConfiguration(
"use_sim_time")
40 params_file = LaunchConfiguration(
"params_file")
41 default_nav_to_pose_bt_xml = LaunchConfiguration(
"default_nav_to_pose_bt_xml")
42 autostart = LaunchConfiguration(
"autostart")
43 show_gz_lidar = LaunchConfiguration(
"show_gz_lidar")
46 rviz_config_file = LaunchConfiguration(
"rviz_config_file")
48 use_robot_state_pub = LaunchConfiguration(
"use_robot_state_pub")
49 use_rviz = LaunchConfiguration(
"use_rviz")
51 urdf = os.path.join(sm_dance_bot_strikes_back_dir,
"urdf",
"turtlebot3_waffle.urdf")
59 remappings = [(
"/tf",
"tf"), (
"/tf_static",
"tf_static")]
62 declare_namespace_cmd = DeclareLaunchArgument(
63 "namespace", default_value=
"", description=
"Top-level namespace"
66 declare_use_namespace_cmd = DeclareLaunchArgument(
68 default_value=
"false",
69 description=
"Whether to apply a namespace to the navigation stack",
72 declare_show_gz_lidar = DeclareLaunchArgument(
75 description=
"Whether to apply a namespace to the navigation stack",
78 declare_slam_cmd = DeclareLaunchArgument(
79 "slam", default_value=
"True", description=
"Whether run a SLAM"
82 declare_use_sim_time_cmd = DeclareLaunchArgument(
83 "use_sim_time", default_value=
"true", description=
"Use simulation (Gazebo) clock if true"
86 declare_params_file_cmd = DeclareLaunchArgument(
88 default_value=os.path.join(
89 sm_dance_bot_strikes_back_dir,
"params",
"nav2z_client",
"nav2_params.yaml"
91 description=
"Full path to the ROS2 parameters file to use for all launched nodes",
94 declare_bt_xml_cmd = DeclareLaunchArgument(
95 "default_nav_to_pose_bt_xml",
96 default_value=os.path.join(
97 sm_dance_bot_strikes_back_dir,
"params",
"nav2z_client",
"navigation_tree.xml"
99 description=
"Full path to the behavior tree xml file to use",
102 declare_autostart_cmd = DeclareLaunchArgument(
103 "autostart", default_value=
"true", description=
"Automatically startup the nav2 stack"
106 declare_rviz_config_file_cmd = DeclareLaunchArgument(
108 default_value=os.path.join(
109 sm_dance_bot_strikes_back_dir,
"rviz",
"nav2_default_view.rviz"
111 description=
"Full path to the RVIZ config file to use",
114 declare_use_robot_state_pub_cmd = DeclareLaunchArgument(
115 "use_robot_state_pub",
116 default_value=
"True",
117 description=
"Whether to start the robot state publisher",
120 declare_use_rviz_cmd = DeclareLaunchArgument(
121 "use_rviz", default_value=
"True", description=
"Whether to start RVIZ"
124 declare_map_yaml_cmd = DeclareLaunchArgument(
126 default_value=os.path.join(
127 sm_dance_bot_strikes_back_launch_dir,
"maps",
"turtlebot3_world.yaml"
129 description=
"Full path to map file to load",
132 start_robot_state_publisher_cmd = Node(
133 condition=IfCondition(use_robot_state_pub),
134 package=
"robot_state_publisher",
135 executable=
"robot_state_publisher",
136 name=
"robot_state_publisher",
139 parameters=[{
"use_sim_time": use_sim_time}],
140 remappings=remappings,
144 rviz_cmd = IncludeLaunchDescription(
145 PythonLaunchDescriptionSource(
146 os.path.join(sm_dance_bot_strikes_back_launch_dir,
"rviz_launch.py")
148 condition=IfCondition(use_rviz),
151 "use_namespace":
"False",
152 "rviz_config": rviz_config_file,
156 bringup_cmd = IncludeLaunchDescription(
157 PythonLaunchDescriptionSource(
158 os.path.join(sm_dance_bot_strikes_back_launch_dir,
"bringup_launch.py")
161 "namespace": namespace,
162 "use_namespace": use_namespace,
163 "autostart": autostart,
164 "params_file": params_file,
166 "map": map_yaml_file,
167 "use_sim_time": use_sim_time,
168 "default_nav_to_pose_bt_xml": default_nav_to_pose_bt_xml,
172 gazebo_simulator = IncludeLaunchDescription(
173 PythonLaunchDescriptionSource(
174 os.path.join(sm_dance_bot_strikes_back_launch_dir,
"gazebo_launch.py")
176 launch_arguments={
"show_gz_lidar": show_gz_lidar}.items(),
179 xtermprefix =
"xterm -xrm 'XTerm*scrollBar: true' -xrm 'xterm*rightScrollBar: true' -hold -geometry 1000x600 -sl 10000 -e"
181 sm_dance_bot_strikes_back_node = Node(
182 package=
"sm_dance_bot_strikes_back",
183 executable=
"sm_dance_bot_strikes_back_node",
184 name=
"SmDanceBotStrikesBack",
189 get_package_share_directory(
"sm_dance_bot_strikes_back"),
190 "params/sm_dance_bot_strikes_back_config.yaml",
198 arguments=[
"--ros-args",
"--log-level",
"INFO"],
201 led_action_server_node = Node(
202 package=
"sm_dance_bot_strikes_back",
203 executable=
"led_action_server_node",
208 temperature_action_server = Node(
209 package=
"sm_dance_bot_strikes_back",
210 executable=
"temperature_sensor_node",
215 service3_node = Node(
216 package=
"sm_dance_bot_strikes_back",
217 executable=
"service_node_3.py",
221 {
"autostart":
True,
"node_names": [
"ss",
"dfa"]},
226 ld = LaunchDescription()
229 ld.add_action(declare_namespace_cmd)
230 ld.add_action(declare_use_namespace_cmd)
231 ld.add_action(declare_slam_cmd)
232 ld.add_action(declare_map_yaml_cmd)
233 ld.add_action(declare_use_sim_time_cmd)
234 ld.add_action(declare_params_file_cmd)
235 ld.add_action(declare_bt_xml_cmd)
236 ld.add_action(declare_autostart_cmd)
237 ld.add_action(declare_map_yaml_cmd)
238 ld.add_action(declare_show_gz_lidar)
240 ld.add_action(declare_rviz_config_file_cmd)
241 ld.add_action(declare_use_robot_state_pub_cmd)
242 ld.add_action(declare_use_rviz_cmd)
243 ld.add_action(gazebo_simulator)
245 ld.add_action(sm_dance_bot_strikes_back_node)
246 ld.add_action(service3_node)
247 ld.add_action(temperature_action_server)
248 ld.add_action(led_action_server_node)
251 ld.add_action(start_robot_state_publisher_cmd)
252 ld.add_action(rviz_cmd)
253 ld.add_action(bringup_cmd)
def generate_launch_description()