diff --git a/modules/prediction/proto/BUILD b/modules/prediction/proto/BUILD index 985beef0c94b87dddb8a6d73711d1290bd2129a2..4fcaa31aa9df0bcdc93788094b6e04e4e8b39f7f 100644 --- a/modules/prediction/proto/BUILD +++ b/modules/prediction/proto/BUILD @@ -23,6 +23,16 @@ cc_proto_library( ], ) +cc_proto_library( + name = "feature_proto", + protos = [ + "feature.proto", + ], + deps = [ + "//modules/prediction/proto:lane_graph_proto", + ], +) + py_proto_compile( name = "prediction_proto_pylib", protos = [ diff --git a/modules/prediction/proto/feature.proto b/modules/prediction/proto/feature.proto new file mode 100644 index 0000000000000000000000000000000000000000..94e045df008076f9ff4a0e890a1460e06ae7434d --- /dev/null +++ b/modules/prediction/proto/feature.proto @@ -0,0 +1,64 @@ +syntax = "proto2"; + +package apollo.prediction; + +import "modules/prediction/proto/lane_graph.proto"; + +message Lane { + // Features of all possible current lanes + repeated LaneFeature current_lane_feature = 1; + + // Features of the most possible current lane + optional LaneFeature lane_feature = 2; + + // Features of all nearby lanes + repeated LaneFeature nearby_lane_feature = 3; + + // Lane graph + optional LaneGraph lane_graph = 4; + + // For modeling + optional double label_update_time_delta = 26; +} + +message LaneFeature { + optional string lane_id = 1; + optional uint32 lane_turn_type = 2; + optional double lane_s = 3; + optional double lane_l = 4; + optional double angle_diff = 5; + optional double dist_to_left_boundary = 6; + optional double dist_to_right_boundary = 7; +} + +message Feature { + // Obstacle ID + optional uint32 id = 1; + + // Obstacle features + optional Vec3d position = 2; + optional Vec3d velocity = 3; + optional double velocity_heading = 4; + optional double speed = 5; + optional Vec3d vec_acc = 6; + optional double acc = 7; + optional double theta = 8; + optional double length = 9; + optional double width = 10; + optional double height = 11; + optional double tracking_time = 12; + optional double timestamp = 13; + + // Obstacle type-specific features + optional Lane lane = 14; + + // Obstacle tracked features + optional Vec3d t_position = 16; + optional Vec3d t_velocity = 17; + optional double t_velocity_heading = 18; + optional double t_speed = 19; + optional Vec3d t_vec_acc = 20; + optional double t_acc = 21; + + optional bool is_still = 22 [default = true]; +}