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') ], )
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
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
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)
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
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
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, )
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
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
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
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))
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)
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
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
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)
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