4 from launch 
import LaunchDescription
 
    5 from launch.substitutions 
import TextSubstitution
 
    6 from launch.substitutions 
import LaunchConfiguration
 
    7 from launch_ros.actions 
import Node
 
    8 from launch.actions 
import DeclareLaunchArgument
 
    9 from ament_index_python 
import get_package_share_directory
 
   14     mvsimDir = get_package_share_directory(
"mvsim")
 
   18     world_file_launch_arg = DeclareLaunchArgument(
 
   19         "world_file", default_value=TextSubstitution(
 
   20             text=os.path.join(mvsimDir, 
'mvsim_tutorial', 
'demo_2robots.world.xml')))
 
   21     do_fake_localization_arg = DeclareLaunchArgument(
 
   22         "do_fake_localization", default_value=
'True', description=
'publish tf odom -> base_link')
 
   26         executable=
'mvsim_node',
 
   30             os.path.join(mvsimDir, 
'mvsim_tutorial', 
'mvsim_ros2_params.yaml'),
 
   32                 "world_file": LaunchConfiguration(
'world_file'),
 
   33                 "do_fake_localization": LaunchConfiguration(
'do_fake_localization'),
 
   43                 '-d', [os.path.join(mvsimDir, 
'mvsim_tutorial', 
'demo_2robots_r1_ros2.rviz')]],
 
   45         remappings=[(
'/map', 
'map'),
 
   47                     (
'/tf_static', 
'tf_static'),
 
   48                     (
'/goal_pose', 
'goal_pose'),
 
   49                     (
'/clicked_point', 
'clicked_point'),
 
   50                     (
'/initialpose', 
'initialpose')]
 
   59                 '-d', [os.path.join(mvsimDir, 
'mvsim_tutorial', 
'demo_2robots_r2_ros2.rviz')]],
 
   61         remappings=[(
'/map', 
'map'),
 
   63                     (
'/tf_static', 
'tf_static'),
 
   64                     (
'/goal_pose', 
'goal_pose'),
 
   65                     (
'/clicked_point', 
'clicked_point'),
 
   66                     (
'/initialpose', 
'initialpose')]
 
   69     return LaunchDescription([
 
   70         world_file_launch_arg,
 
   71         do_fake_localization_arg,