def add_camera_logging(stream, name, filename_prefix): erdos.connect(CameraLoggerOperator, [stream], True, name, FLAGS, filename_prefix, log_file_name=FLAGS.log_file_name)
def main(): """Creates and runs the dataflow graph.""" def add(msg): """Mapping Function passed into MapOp, returns a new Message that sums the data of each message in msg.data.""" total = 0 for i in msg.data: total += i.data return erdos.Message(msg.timestamp, total) (source_stream, ) = erdos.connect(SendOp, erdos.OperatorConfig(name="SendOp"), [], frequency=3) (window_stream, ) = erdos.connect(window.TumblingWindow, erdos.OperatorConfig(), [source_stream], window_size=3) (map_stream, ) = erdos.connect(map.Map, erdos.OperatorConfig(), [window_stream], function=add) extract_stream = erdos.ExtractStream(map_stream) erdos.run_async() while True: recv_msg = extract_stream.read() print("ExtractStream: received {recv_msg}".format(recv_msg=recv_msg))
def add_chauffeur_logging(vehicle_id_stream, can_bus_stream, obstacle_tracking_stream, top_down_camera_stream, top_down_segmentation_stream, top_down_camera_setup): erdos.connect(ChauffeurLoggerOperator, [ vehicle_id_stream, can_bus_stream, obstacle_tracking_stream, top_down_camera_stream, top_down_segmentation_stream ], True, 'chauffeur_logger_operator', FLAGS, top_down_camera_setup)
def add_drive_by_wire_operator(control_stream): op_config = erdos.OperatorConfig(name='drive_by_wire_operator', flow_watermarks=False, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(DriveByWireOperator, op_config, [control_stream], FLAGS)
def add_imu_visualizer(imu_stream, name='imu_visualizer_operator'): from pylot.debug.imu_visualizer_operator import IMUVisualizerOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(IMUVisualizerOperator, op_config, [imu_stream], FLAGS)
def add_imu_logging(imu_stream, name='imu_logger_operator'): from pylot.loggers.imu_logger_operator import IMULoggerOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(IMULoggerOperator, op_config, [imu_stream], FLAGS)
def add_trajectory_logging(obstacles_tracking_stream, name='trajectory_logger_operator'): erdos.connect(TrajectoryLoggerOperator, [obstacles_tracking_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name)
def add_camera_logging(stream, name, filename_prefix): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(CameraLoggerOperator, op_config, [stream], FLAGS, filename_prefix)
def add_multiple_object_tracker_logging( obstacles_stream, name='multiple_object_tracker_logger_operator'): erdos.connect(MultipleObjectTrackerLoggerOperator, [obstacles_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name)
def add_eval_metric_logging(collision_stream, lane_invasion_stream, traffic_light_invasion_stream, imu_stream, pose_stream, obstacle_stream): """ Adds an evaluation metric logging operator to the pipeline. Args: collision_stream (:py:class:`erdos.ReadStream`): Stream on which the collision events are received. lane_invasion_stream (:py:class:`erdos.ReadStream`): Stream on which the lane invasion events are received. traffic_light_invasion_stream (:py:class:`erdos.ReadStream`): Stream on which the traffic light invasion events are received. imu_stream (:py:class:`erdos.ReadStream`): Stream on which the IMU messages are received. """ from pylot.loggers.eval_metric_logger_operator import \ EvalMetricLoggerOperator op_config = erdos.OperatorConfig(name='eval_metric_logger_operator', log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(EvalMetricLoggerOperator, op_config, [ collision_stream, lane_invasion_stream, traffic_light_invasion_stream, imu_stream, pose_stream, obstacle_stream ], FLAGS)
def add_camera_visualizer(camera_stream, name): from pylot.debug.camera_visualizer_operator import CameraVisualizerOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(CameraVisualizerOperator, op_config, [camera_stream])
def add_bounding_box_logging(obstacles_stream, name='bounding_box_logger_operator'): erdos.connect(BoundingBoxLoggerOperator, [obstacles_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name)
def add_prediction_visualizer(obstacle_tracking_stream, prediction_stream, vehicle_id_stream, camera_transform, release_sensor_stream, name='top_down_tracking_visualizer_operator'): from pylot.debug.track_visualizer_operator import TrackVisualizerOperator top_down_transform = pylot.utils.get_top_down_transform( camera_transform, FLAGS.top_down_lateral_view) (top_down_segmented_camera_stream, notify_reading_stream, top_down_segmented_camera_setup) = \ pylot.operator_creator.add_segmented_camera( top_down_transform, vehicle_id_stream, release_sensor_stream, name='top_down_segmented_camera', fov=90) op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(TrackVisualizerOperator, op_config, [ obstacle_tracking_stream, prediction_stream, top_down_segmented_camera_stream ], FLAGS)
def add_pose_visualizer(pose_stream, name='pose_visualizer_operator'): from pylot.debug.pose_visualizer_operator import PoseVisualizerOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(PoseVisualizerOperator, op_config, [pose_stream], FLAGS)
def add_bounding_box_logging(obstacles_stream, name='bounding_box_logger_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(BoundingBoxLoggerOperator, op_config, [obstacles_stream], FLAGS)
def add_lidar_visualizer(point_cloud_stream, name='lidar_visualizer_operator'): from pylot.debug.lidar_visualizer_operator import LidarVisualizerOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(LidarVisualizerOperator, op_config, [point_cloud_stream], FLAGS)
def add_trajectory_logging(obstacles_tracking_stream, name='trajectory_logger_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(TrajectoryLoggerOperator, op_config, [obstacles_tracking_stream], FLAGS)
def add_multiple_object_tracker_logging( obstacles_stream, name='multiple_object_tracker_logger_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(MultipleObjectTrackerLoggerOperator, op_config, [obstacles_stream], FLAGS)
def main(): parser = argparse.ArgumentParser() parser.add_argument('-p', '--payload', default=8, type=int) parser.add_argument('-s', '--scenario', default="dataflow") parser.add_argument('-n', '--name', default="test") parser.add_argument('-t', '--transport', default="tcp") parser.add_argument('-g', '--graph-file') parser.add_argument('-o', '--operators', action='store_true') args = parser.parse_args() # creating Zenoh.net session #session = zenoh.net.open({}) """Creates and runs the dataflow graph.""" if args.operators: (count_stream, ) = erdos.connect(ZenohRecvOp, erdos.OperatorConfig(), [], size=args.payload) erdos.connect(CallbackOp, erdos.OperatorConfig(), [count_stream], size=args.payload, scenario=args.scenario, name=args.name, transport=args.transport) if args.graph_file is not None: erdos.run(args.graph_file) else: erdos.run() else: #creating Zenoh.net session session = zenoh.net.open({}) ingest_stream = erdos.IngestStream() erdos.connect(CallbackOp, erdos.OperatorConfig(), [ingest_stream], size=args.payload, scenario=args.scenario, name=args.name, transport=args.transport) if args.graph_file is not None: erdos.run_async(args.graph_file) else: erdos.run_async() def listener(sample): msg = pickle.loads(sample.payload) ingest_stream.send(msg) # Creating subscriber info sub_info = SubInfo(Reliability.Reliable, SubMode.Push) # declaring subscriber sub = session.declare_subscriber(f'/thr/test/{args.payload}', sub_info, listener) while True: time.sleep(60)
def add_tracking_evaluation(obstacle_tracking_stream, ground_obstacles_stream, name='tracking_eval_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(TrackingEvalOperator, op_config, [obstacle_tracking_stream, ground_obstacles_stream], FLAGS)
def add_lidar_logging(point_cloud_stream, name='lidar_logger_operator', filename_prefix='carla-lidar-'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(LidarLoggerOperator, op_config, [point_cloud_stream], FLAGS, filename_prefix)
def add_carla_collision_logging(vehicle_id_stream, can_bus_stream): from pylot.loggers.carla_collision_logger_operator import \ CarlaCollisionLoggerOperator op_config = erdos.OperatorConfig(name='carla_collision_logger_operator', log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(CarlaCollisionLoggerOperator, op_config, [vehicle_id_stream, can_bus_stream], FLAGS)
def add_segmentation_evaluation(ground_segmented_stream, segmented_stream, name='segmentation_evaluation_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(SegmentationEvalOperator, op_config, [ground_segmented_stream, segmented_stream], FLAGS)
def add_lidar_logging(point_cloud_stream, name='lidar_logger_operator', filename_prefix='carla-lidar-'): erdos.connect(LidarLoggerOperator, [point_cloud_stream], True, name, FLAGS, filename_prefix, log_file_name=FLAGS.log_file_name)
def add_waypoint_visualizer(waypoints_stream, camera_stream, can_bus_stream, name='waypoint_visualizer_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(WaypointVisualizerOperator, op_config, [waypoints_stream, camera_stream, can_bus_stream], FLAGS)
def add_detection_evaluation(obstacles_stream, ground_obstacles_stream, name='detection_eval_operator'): erdos.connect(DetectionEvalOperator, [obstacles_stream, ground_obstacles_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name, csv_file_name=FLAGS.csv_log_file_name)
def add_segmentation_evaluation(ground_segmented_stream, segmented_stream, name='segmentation_evaluation_operator'): erdos.connect(SegmentationEvalOperator, [ground_segmented_stream, segmented_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name, csv_file_name=FLAGS.csv_log_file_name)
def add_prediction_evaluation(can_bus_stream, tracking_stream, prediction_stream, name='prediction_eval_operator'): op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(PredictionEvalOperator, op_config, [can_bus_stream, tracking_stream, prediction_stream], FLAGS)
def add_waypoint_visualizer(waypoints_stream, camera_stream, can_bus_stream, name='waypoint_visualizer_operator'): erdos.connect(WaypointVisualizerOperator, [waypoints_stream, camera_stream, can_bus_stream], True, name, FLAGS, log_file_name=FLAGS.log_file_name)
def add_control_evaluation(pose_stream, waypoints_stream, name='control_eval_operator'): from pylot.control.control_eval_operator import ControlEvalOperator op_config = erdos.OperatorConfig(name=name, log_file_name=FLAGS.log_file_name, csv_log_file_name=FLAGS.csv_log_file_name, profile_file_name=FLAGS.profile_file_name) erdos.connect(ControlEvalOperator, op_config, [pose_stream, waypoints_stream], FLAGS)