Exemple #1
0
def add_camera_logging(stream, name, filename_prefix):
    erdos.connect(CameraLoggerOperator, [stream],
                  True,
                  name,
                  FLAGS,
                  filename_prefix,
                  log_file_name=FLAGS.log_file_name)
Exemple #2
0
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))
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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])
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #18
0
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)
Exemple #19
0
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)
Exemple #20
0
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)
Exemple #21
0
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)
Exemple #22
0
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)
Exemple #23
0
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)
Exemple #24
0
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)
Exemple #25
0
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)
Exemple #26
0
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)
Exemple #27
0
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)
Exemple #28
0
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)
Exemple #29
0
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)
Exemple #30
0
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)