Exemple #1
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'object_analytics_rviz'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='marker_publisher'),
        ],
        name='marker_publisher',
        exit_handler=default_exit_handler,
    )
    package = 'object_analytics_rviz'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='image_publisher'),
        ],
        name='image_publisher',
        exit_handler=default_exit_handler,
    )
    package = 'rviz2'
    default_rviz = os.path.join(
        get_package_share_directory('object_analytics_launch'), 'launch',
        'default.rviz')
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='rviz2'),
            '--display-config',
            default_rviz,
        ],
        name='object_rviz',
        exit_handler=default_exit_handler,
    )
    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'ydlidar_ros2_driver'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='ydlidar_ros2_driver_node')
        ],
        name='ydlidar_ros2_driver_node',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        # The XYZ/Quat numbers for base_link -> laser_frame are taken from the
        # turtlebot URDF in
        # https://github.com/turtlebot/turtlebot/blob/931d045/turtlebot_description/urdf/sensors/astra.urdf.xacro
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='static_transform_publisher'),
            '0', '0', '0.02', '0', '0', '0', '1', 'base_link', 'laser_frame'
        ],
        name='static_tf_pub_laser',
        exit_handler=restart_exit_handler,
    )
    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'detection'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='detection'),
        '-r', '0', '-s', '0'],
        name='detector',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='static_transform_publisher'),
        '-1.58','0.95','1.11','0.0','0.0','0.0','1.0','map','external_camera'],
        name='static_tf_pub_map_external',
        exit_handler=restart_exit_handler,
    )
    package = 'detection'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='unified_target_publisher'),
        '-r', '1'],
        name='target_publisher',
        exit_handler=restart_exit_handler,
    )

    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'pid'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='controller')
        ],
        name='controller',
        exit_handler=restart_exit_handler,
    )
    package = 'pid'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='setpoint')
        ],
        name='setpoint',
        exit_handler=restart_exit_handler,
    )
    package = 'pid'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='servo_sim')
        ],
        name='servo_sim',
        # The joy node is required, die if it dies
        exit_handler=restart_exit_handler,
    )

    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'cartographer_ros'
    turtlebot3_cartographer_prefix = get_package_share_directory(
        'turtlebot3_cartographer')
    cartographer_config_dir = '/root/scripts/cartographer_config/'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='cartographer_node'),
            '-configuration_directory',
            cartographer_config_dir,
            '-configuration_basename',
            'turtlebot2.lua'  #'turtlebot3_lds_2d.lua'
        ],
        name='cartographer_node',
    )

    ld.add_process(
        cmd=[
            get_executable_path(package_name='rviz2', executable_name='rviz2'),
            '-d', '/root/scripts/visualization/turtlebot.rviz'
        ],
        name='rviz2_node',
    )

    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'dummy_map_server'
    ld.add_process(cmd=[
        get_executable_path(package_name=package,
                            executable_name='dummy_map_server')
    ], )

    package = 'robot_state_publisher'
    ld.add_process(cmd=[
        get_executable_path(package_name=package,
                            executable_name='robot_state_publisher'),
        os.path.join(get_package_share_directory('dummy_robot_bringup'),
                     'launch', 'single_rrbot.urdf')
    ], )

    package = 'dummy_sensors'
    ld.add_process(cmd=[
        get_executable_path(package_name=package,
                            executable_name='dummy_laser')
    ], )

    ld.add_process(cmd=[
        get_executable_path(package_name=package,
                            executable_name='dummy_joint_states')
    ], )
Exemple #7
0
def launch(launch_descriptor, argv):
    process = launch_descriptor

    #    package = 'tf2_ros'
    #    process.add_process(
    #        cmd=[
    #            get_executable_path(
    #                package_name=package, executable_name='static_transform_publisher'),
    #            '0', '0', '0',
    #            '0', '0', '1', '0',
    #            'base_link',
    #            'laser'
    #        ],
    #        name='tf_pub_base_to_laserA',
    #        exit_handler=restart_exit_handler,
    #    )
    package = 'tf2_ros'
    process.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='static_transform_publisher'),
            '0.505', '0.259', '0.0', '0', '0', '0.382683', '0.92388',
            'base_link', 'laser'
        ],
        name='tf_pub_base_to_laser_1',
        exit_handler=restart_exit_handler,
    )

    package = 'tf2_ros'
    process.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='static_transform_publisher'),
            '-0.505', '-0.259', '0.0', '0', '0', '-0.92388', '0.382683',
            'base_link', 'laser_1'
        ],
        name='tf_pub_base_to_laser_2',
        exit_handler=restart_exit_handler,
    )

    package = 'cartographer_ros'
    # cartographer_prefix = '/home/adayimaxiga/mine_ws/src/bring_up'
    cartographer_prefix = get_package_share_directory('bring_up')
    cartographer_config_dir = os.path.join(cartographer_prefix,
                                           'configuration_files')
    process.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='cartographer_node'),
            '-configuration_directory', cartographer_config_dir,
            '-configuration_basename', 'my_cart.lua'
        ],
        name='cartographer_node',
        exit_handler=restart_exit_handler,
    )

    return process
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'turtlebot2_drivers'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='kobuki_node')
        ],
        name='kobuki_node',
        exit_handler=restart_exit_handler,
    )
    package = 'astra_camera'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='astra_camera_node'), '-dw',
            '320', '-dh', '240', '-C', '-I'
        ],
        name='astra_camera_node',
        exit_handler=restart_exit_handler,
    )
    package = 'turtlebot2_follower'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='follower')
        ],
        name='follower',
        exit_handler=restart_exit_handler,
    )
    package = 'teleop_twist_joy'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='teleop_node')
        ],
        name='teleop_node',
        # The teleop node is optional, we don't care if it actually launches
        exit_handler=ignore_exit_handler,
    )
    package = 'joy'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='joy_node')
        ],
        name='joy',
        # The joy node is optional, we don't care if it actually launches
        exit_handler=ignore_exit_handler,
    )

    return ld
Exemple #9
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    ld.add_process(
        cmd=[get_executable_path(package_name="talker_cpp", executable_name="talker")],
        name="talker",
    )
    ld.add_process(
        cmd=[
            get_executable_path(package_name="listener_py", executable_name="listener")
        ],
        name="listener",
    )

    return ld
Exemple #10
0
def main():
    launcher = DefaultLauncher()
    launch_descriptor = LaunchDescriptor()

    package = 'topic_monitor'
    executable = get_executable_path(package_name=package, executable_name='data_publisher')

    os.environ['PYTHONUNBUFFERED'] = '1'  # force unbuffered output to get prints to sync correctly

    name = 'small'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '1', '--period', '4'],
        name=name,
    )
    name = 'medium'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '50000', '--period', '4'],
        name=name,
    )
    name = 'large'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '100000', '--period', '4'],
        name=name,
    )
    name = 'xlarge'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '150000', '--period', '4'],
        name=name,
    )
    launcher.add_launch_descriptor(launch_descriptor)

    rc = launcher.launch()
    if rc != 0:
        print('Something went wrong. Return code: ' + str(rc), file=sys.stderr)
        exit(rc)
def main():
    launcher = DefaultLauncher()
    launch_descriptor = LaunchDescriptor()

    package = 'topic_monitor'
    executable = get_executable_path(package_name=package,
                                     executable_name='data_publisher')

    name = 'small'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '1', '--period', '4'],
        name=name,
    )
    name = 'medium'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '50000', '--period', '4'],
        name=name,
    )
    name = 'large'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '100000', '--period', '4'],
        name=name,
    )
    name = 'xlarge'
    launch_descriptor.add_process(
        cmd=[executable, name, '--payload-size', '150000', '--period', '4'],
        name=name,
    )
    launcher.add_launch_descriptor(launch_descriptor)

    rc = launcher.launch()
    if rc != 0:
        print('Something went wrong. Return code: ' + str(rc), file=sys.stderr)
        exit(rc)
Exemple #12
0
def main():
    launcher = DefaultLauncher()
    launch_descriptor = LaunchDescriptor()
    package = 'topic_monitor'
    executable = get_executable_path(package_name=package,
                                     executable_name='data_publisher')

    # Strip the logger name from the message format in favor of the shorter executable name
    os.environ['RCUTILS_CONSOLE_OUTPUT_FORMAT'] = '[{severity}] {message}'
    os.environ[
        'PYTHONUNBUFFERED'] = '1'  # force unbuffered output to get prints to sync correctly

    launch_descriptor.add_process(
        cmd=[executable, 'sensor', '--best-effort'],
        name='sensor',
    )
    launch_descriptor.add_process(
        cmd=[executable, 'critical'],
        name='critical',
    )
    launcher.add_launch_descriptor(launch_descriptor)

    rc = launcher.launch()
    if rc != 0:
        print('Something went wrong. Return code: ' + str(rc), file=sys.stderr)
        exit(rc)
def launch(launch_descriptor, argv):
    package = 'movidius_ncs_image'
    launch_descriptor.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='movidius_ncs_image')],
        name='movidius_ncs_image',
        exit_handler=default_exit_handler,)
    return launch_descriptor
def get_cmd(package, executable, required, *args):
    cmd = [
        get_executable_path(package_name=package, executable_name=executable)
    ]
    for arg in args:
        cmd.append(arg)

    return cmd
Exemple #15
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'image_tools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='showimage'),
        '-t', '/opencv_tests/images'],
        name='showimage',
        exit_handler=restart_exit_handler,
    )
    package = 'opencv_tests'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='source.py')],
        name='source.py',
        exit_handler=restart_exit_handler,
    )

    return ld
Exemple #16
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'lifecycle'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='lifecycle_talker')],
    )

    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='lifecycle_listener')],
    )

    ld.add_process(
        cmd=[get_executable_path(
            package_name=package, executable_name='lifecycle_service_client')],
        exit_handler=primary_exit_handler,
    )
Exemple #17
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    ld.add_process(
        cmd=[
            get_executable_path(package_name="talker_cpp",
                                executable_name="talker")
        ],
        name="talker",
    )
    ld.add_process(
        cmd=[
            get_executable_path(package_name="listener_py",
                                executable_name="listener")
        ],
        name="listener",
    )

    return ld
Exemple #18
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    ld.add_process(
        cmd=[
            get_executable_path(package_name='talker_cpp',
                                executable_name='talker')
        ],
        name='talker',
    )
    ld.add_process(
        cmd=[
            get_executable_path(package_name='listener_py',
                                executable_name='listener')
        ],
        name='listener',
    )

    return ld
Exemple #19
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='throughput'),
        '-r','0','-m','image','-t','image'],
        name='nettools_throughput',
        exit_handler=restart_exit_handler,
    )
    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='nettools_plotter.py'),
         '-t', 'image','-s', 'throughput'],
        name='throughput_plotter',
        exit_handler=restart_exit_handler,
    )
    
    return ld
Exemple #20
0
 def execute(self):
     """Call the executable."""
     msg = 'Running executable {} of package {}'
     self.node.get_logger().info(
         msg.format(self.executable_name, self.package_name))
     path = get_executable_path(package_name=self.package_name,
                                executable_name=self.executable_name)
     if path is None:
         raise FileNotFoundError(
             f'{self.package_name}/{self.executable_name}')
     self.process = asyncio.run(self._execute(path))
Exemple #21
0
def find_executable(package_name, executable_name):
    """Locate the path to a node within a package.

    Locate the path to a node within a package.

    * package_name -- is the name of the package
    * executable_name -- is the name of the executable

    """
    return get_executable_path(package_name=package_name,
                               executable_name=executable_name)
Exemple #22
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    # package = 'nettools'
    # ld.add_process(
    #     cmd=[get_executable_path(package_name=package, executable_name='latency'),
    #     '-r','0','-m','image','-t','image'],
    #     name='nettools_latency',
    #     exit_handler=restart_exit_handler,
    # )
    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='nettools_plotter.py'),
        '-s', 'latency','-t', 'image'],
        name='latency_plotter',
        exit_handler=restart_exit_handler,
    )
    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='nettools_plotter.py'),
        '-s', 'msg_loss', '-t', 'image'],
        name='msg_loss_plotter',
        exit_handler=restart_exit_handler,
    )
    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='nettools_plotter.py'),
        '-s', 'frequency', '-t', 'image'],
        name='freq_plotter',
        exit_handler=restart_exit_handler,
    )
    package = 'nettools'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='nettools_plotter.py'),
        '-s', 'jitter', '-t', 'image'],
        name='jitter_plotter',
        exit_handler=restart_exit_handler,
    )

    return ld
Exemple #23
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    arr = [("pi_camera", "camera_node_sequence", True),
            ("dagu_car", "inverse_kinematics_node", True),
            ("dagu_car", "wheels_driver_node", True),
            ("line_detector", "line_detector_node", True),
            ("ground_projection", "ground_projection_node", True),
            ("lane_filter", "lane_filter_node", True),
            ("lane_control", "lane_controller_node", True),
            #("dagu_car", "car_cmd_switch_node", True),
            ("joy", "joy_node", True)]

    for package, executable, required in arr:
        ld.add_process(
            cmd=[get_executable_path(package_name=package, executable_name=executable)],
            name=executable,
            # die if required, restart otherwise
            exit_handler=default_exit_handler if required else restart_exit_handler,
        )
    ld.add_process(
        cmd=[get_executable_path(package_name="joy_mapper", executable_name="joy_mapper_node"),
             "--publish_topic", "/joy_mapper_node/car_cmd"],
        name="joy_mapper_node",
        # die if required, restart otherwise
        exit_handler=default_exit_handler if required else restart_exit_handler,
    )
    package, executable, required = "dagu_car", "car_cmd_switch_node", True
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name=executable),
            "--subscribe_topic1", "/joy_mapper_node/car_cmd",
            "--subscribe_topic2", "/lane_controller_node/car_cmd",
            "--subscribe_topic_switch", "/joystick_override",
            "--publish_topic", "/car_cmd"],
        name=executable,
        # die if required, restart otherwise
        exit_handler=default_exit_handler if required else restart_exit_handler,
    )


    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'object_analytics_node'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='composition'),
            '--localization',                     # enable localization feature, optional
            '--tracking',                         # enable tracking feature, optional
        ],
        name='oa_composition',
    )
    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'turtlebot2_drivers'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='kobuki_node')],
        name='kobuki_node',
        exit_handler=restart_exit_handler,
    )
    package = 'astra_camera'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='astra_camera_node'),
            '-dw', '320', '-dh', '240', '-C', '-I'],
        name='astra_camera_node',
        exit_handler=restart_exit_handler,
    )
    package = 'turtlebot2_follower'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='follower')],
        name='follower',
        exit_handler=restart_exit_handler,
    )
    package = 'teleop_twist_joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='teleop_node')],
        name='teleop_node',
        # The teleop node is optional, we don't care if it actually launches
        exit_handler=ignore_exit_handler,
    )
    package = 'joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='joy_node')],
        name='joy',
        # The joy node is optional, we don't care if it actually launches
        exit_handler=ignore_exit_handler,
    )

    return ld
def add_process_to_descriptor(launch_descriptor, size, depth):
    name = '{0}_depth_{1}'.format(size, depth)
    payload = 0 if size == 'small' else 100000
    package = 'topic_monitor'
    executable = get_executable_path(package_name=package,
                                     executable_name='data_publisher')
    launch_descriptor.add_process(
        cmd=[
            executable, name, '--depth',
            str(depth), '--payload-size',
            str(payload)
        ],
        name=name,
    )
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'turtlebot2_drivers'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='kobuki_node')],
        name='kobuki_node',
        exit_handler=restart_exit_handler,
    )
    package = 'teleop_twist_joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='teleop_node')],
        name='teleop_node',
        exit_handler=restart_exit_handler,
    )
    package = 'joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='joy_node')],
        name='joy_node',
        # The joy node is required, die if it dies
        exit_handler=default_exit_handler,
    )

    return ld
Exemple #28
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor

    package = 'joy'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='joy_node')
        ],
        name='joy_node',
        # The joy node is required, die if it dies
        exit_handler=default_exit_handler,
    )

    return ld
def launch(descriptor, argv):
    """Launch the slam gmapping node.

    * ld -- the launch descriptor object
    * argv -- the command line arguments

    """
    args = []

    # TODO: Eventually support input arguments

    slamGmappingExecutable = get_executable_path(
        package_name="gmapping", executable_name="slam_gmapping")

    descriptor.add_process([slamGmappingExecutable] + args)
def launch(launch_descriptor, argv):
    package = 'movidius_ncs_stream'
    plugin = 'movidius_ncs_stream::NCSComposition'

    # run composition by api_composition_cli
    launch_descriptor.add_process(
        cmd=[
            get_executable_path(package_name='composition',
                                executable_name='api_composition_cli'),
            package, plugin
        ],
        name='movidius_ncs_stream',
        exit_handler=default_exit_handler,
    )
    return launch_descriptor
 def main(self, *, parser, args):
     try:
         path = get_executable_path(package_name=args.package_name,
                                    executable_name=args.executable_name)
     except PackageNotFound:
         raise RuntimeError(f"Package '{args.package_name}' not found")
     except MultipleExecutables as e:
         msg = 'Multiple executables found:'
         for p in e.paths:
             msg += f'\n- {p}'
         raise RuntimeError(msg)
     if path is None:
         return 'No executable found'
     prefix = shlex.split(args.prefix) if args.prefix is not None else None
     return run_executable(path=path, argv=args.argv, prefix=prefix)
Exemple #32
0
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'detection'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='detection'), '-r', '0', '-s',
            '0'
        ],
        name='detection_node',
        exit_handler=restart_exit_handler,
    )
    package = 'image_tools'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package,
                                executable_name='cam2image'), '-x', '352',
            '-y', '288', '-r', '0', '-f', '2'
        ],
        name='cam2image_node',
        exit_handler=restart_exit_handler,
    )

    return ld
def launch(launch_descriptor, argv):
    parser = argparse.ArgumentParser(description='launch amcl turtlebot demo')
    parser.add_argument(
        '--map',
        help='path to map (will be passed to map_server)')
    args = parser.parse_args(argv)

    ld = launch_descriptor

    package = 'turtlebot2_drivers'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='kobuki_node')],
        name='kobuki_node',
        exit_handler=restart_exit_handler,
    )
    package = 'astra_camera'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='astra_camera_node'),
            '-dw', '320', '-dh', '240', '-C', '-I'],
        name='astra_camera_node',
        exit_handler=restart_exit_handler,
    )
    package = 'depthimage_to_laserscan'
    ld.add_process(
        cmd=[
            get_executable_path(
                package_name=package, executable_name='depthimage_to_laserscan_node')],
        name='depthimage_to_laserscan_node',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        # The XYZ/Quat numbers for base_link -> camera_rgb_frame are taken from the
        # turtlebot URDF in
        # https://github.com/turtlebot/turtlebot/blob/931d045/turtlebot_description/urdf/sensors/astra.urdf.xacro
        cmd=[
            get_executable_path(
                package_name=package, executable_name='static_transform_publisher'),
            '-0.087', '-0.0125', '0.287',
            '0', '0', '0', '1',
            'base_link',
            'camera_rgb_frame'
        ],
        name='static_tf_pub_base_rgb',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        # The XYZ/Quat numbers for camera_rgb_frame -> camera_depth_frame are taken from the
        # turtlebot URDF in
        # https://github.com/turtlebot/turtlebot/blob/931d045/turtlebot_description/urdf/sensors/astra.urdf.xacro
        cmd=[
            get_executable_path(
                package_name=package, executable_name='static_transform_publisher'),
            '0', '0.0250', '0',
            '0', '0', '0', '1',
            'camera_rgb_frame',
            'camera_depth_frame'
        ],
        name='static_tf_pub_rgb_depth',
        exit_handler=restart_exit_handler,
    )
    package = 'joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='joy_node')],
        name='joy_node',
        exit_handler=restart_exit_handler,
    )
    package = 'teleop_twist_joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='teleop_node')],
        name='teleop_node',
        exit_handler=restart_exit_handler,
    )
    turtlebot2_amcl_share = get_package_share_directory('turtlebot2_amcl')
    map_path = os.path.join(turtlebot2_amcl_share, 'examples', 'osrf_map.yaml')
    if args.map:
        map_path = args.map
    package = 'map_server'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='map_server'), map_path],
        name='map_server',
    )
    package = 'amcl'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='amcl'), '--use-map-topic'],
        name='amcl',
        exit_handler=restart_exit_handler,
        output_handlers=[ConsoleOutput()],
    )

    return ld
def launch(launch_descriptor, argv):
    ld = launch_descriptor
    package = 'turtlebot2_drivers'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='kobuki_node')],
        name='kobuki_node',
        exit_handler=restart_exit_handler,
    )
    package = 'astra_camera'
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='astra_camera_node'),
            '-dw', '320', '-dh', '240', '-C', '-I'],
        name='astra_camera_node',
        exit_handler=restart_exit_handler,
    )
    package = 'depthimage_to_pointcloud2'
    ld.add_process(
        cmd=[
            get_executable_path(
                package_name=package, executable_name='depthimage_to_pointcloud2_node')],
        name='depthimage_to_pointcloud2_node',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        # The XYZ/Quat numbers for base_link -> camera_rgb_frame are taken from the
        # turtlebot URDF in
        # https://github.com/turtlebot/turtlebot/blob/931d045/turtlebot_description/urdf/sensors/astra.urdf.xacro
        cmd=[
            get_executable_path(
                package_name=package, executable_name='static_transform_publisher'),
            '-0.087', '-0.0125', '0.287',
            '0', '0', '0', '1',
            'base_link',
            'camera_rgb_frame'
        ],
        name='static_tf_pub_base_rgb',
        exit_handler=restart_exit_handler,
    )
    package = 'tf2_ros'
    ld.add_process(
        # The XYZ/Quat numbers for camera_rgb_frame -> camera_depth_frame are taken from the
        # turtlebot URDF in
        # https://github.com/turtlebot/turtlebot/blob/931d045/turtlebot_description/urdf/sensors/astra.urdf.xacro
        cmd=[
            get_executable_path(
                package_name=package, executable_name='static_transform_publisher'),
            '0', '0.0250', '0',
            '0', '0', '0', '1',
            'camera_rgb_frame',
            'openni_depth_optical_frame'
        ],
        name='static_tf_pub_rgb_depth',
        exit_handler=restart_exit_handler,
    )
    package = 'joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='joy_node')],
        name='joy_node',
        exit_handler=restart_exit_handler,
    )
    package = 'teleop_twist_joy'
    ld.add_process(
        cmd=[get_executable_path(package_name=package, executable_name='teleop_node')],
        name='teleop_node',
        exit_handler=restart_exit_handler,
    )
    package = 'cartographer_ros'
    turtlebot2_cartographer_prefix = get_package_share_directory('turtlebot2_cartographer')
    cartographer_config_dir = os.path.join(turtlebot2_cartographer_prefix, 'configuration_files')
    ld.add_process(
        cmd=[
            get_executable_path(package_name=package, executable_name='cartographer_node'),
            '-configuration_directory', cartographer_config_dir,
            '-configuration_basename', 'turtlebot_2d.lua'
        ],
        name='cartographer_node',
        exit_handler=restart_exit_handler,
    )

    return ld