[650][adas] 更新红绿灯PB,新增融合数据
This commit is contained in:
@@ -20,7 +20,7 @@ public enum MessageType {
|
||||
TYPE_RECEIVE_VEHICLE_STATE(MessagePad.MessageType.MsgTypeVehicleState, "老底盘状态"),
|
||||
TYPE_RECEIVE_AUTOPILOT_STATE(MessagePad.MessageType.MsgTypeAutopilotState, "自动驾驶状态"),
|
||||
TYPE_RECEIVE_REPORT_MESSAGE(MessagePad.MessageType.MsgTypeReportMessage, "监控事件报告"),
|
||||
TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, "感知红绿灯"),
|
||||
TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, "融合感知红绿灯"),
|
||||
TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY(MessagePad.MessageType.MsgTypePredictionObstacleTrajectory, "他车轨迹预测"),
|
||||
TYPE_RECEIVE_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, "点云透传"),
|
||||
TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "Planning障碍物"),
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
syntax = "proto2";
|
||||
package perception;
|
||||
|
||||
import "header.proto";
|
||||
|
||||
enum FusionLightType {
|
||||
TYPE_DEFAULT_FUSION = 0;
|
||||
TYPE_VEHICLE_FUSION = 1;
|
||||
TYPE_BICYLE_FUSION = 2;
|
||||
TYPE_PEDSTRIAN_FUSION = 3;
|
||||
TYPE_LANE_FUSION = 5;
|
||||
}
|
||||
|
||||
enum FusionLightState {
|
||||
STATE_OFF_FUSION = 0;
|
||||
STATE_RED_FUSION = 1;
|
||||
STATE_YELLOW_FUSION = 2;
|
||||
STATE_GREEN_FUSION = 3;
|
||||
STATE_FLASH_FUSION = 4;
|
||||
}
|
||||
|
||||
message FusionTrafficLight {
|
||||
optional int64 id = 1;
|
||||
optional FusionLightType type = 2 [default = TYPE_DEFAULT_FUSION];
|
||||
optional FusionLightState state = 3 [default = STATE_OFF_FUSION];
|
||||
optional float duration = 4; // seconds since the last state changed
|
||||
optional FusionLightState next_state = 5 [default = STATE_OFF_FUSION];
|
||||
optional float next_duration = 6 [default = -1.0]; // seconds since the last state changed
|
||||
optional FusionLightState next_two_state = 7 [default = STATE_OFF_FUSION];
|
||||
optional float next_two_duration = 8 [default = -1.0]; // seconds since the last state changed
|
||||
}
|
||||
|
||||
message FusionTrafficLights {
|
||||
optional common.Header header = 1;
|
||||
|
||||
optional FusionTrafficLight straight = 2;
|
||||
optional FusionTrafficLight left = 3;
|
||||
optional FusionTrafficLight right = 4;
|
||||
optional FusionTrafficLight u_turn = 5;
|
||||
|
||||
optional bool shield = 6 [default = false];//wheather the traffic lights are shield
|
||||
optional uint32 source = 7 [default = 0]; // 0: vehicle, 1:V2I, 2: V2N
|
||||
}
|
||||
@@ -24,7 +24,7 @@ enum MessageType
|
||||
MsgTypeVehicleState = 0x10003; //底盘信息, 透传底盘状态,pb参考底盘 定频20hz
|
||||
MsgTypeAutopilotState = 0x10004; //自动驾驶状态 定频20hz
|
||||
MsgTypeReportMessage = 0x10005; //系统事件 不定频
|
||||
MsgTypePerceptionTrafficLight = 0x10006; //感知红绿灯 定频10hz
|
||||
MsgTypePerceptionTrafficLight = 0x10006; //融合感知红绿灯 定频10hz
|
||||
MsgTypePredictionObstacleTrajectory = 0x10007; //他车轨迹预测 定频10hz
|
||||
MsgTypePointCloud = 0x10008; //点云透传 定频1hz
|
||||
MsgTypePlanningObjects = 0x10009; //planning障碍物 定频10hz
|
||||
@@ -356,7 +356,7 @@ message AutopilotState
|
||||
// refer to mogo_report_msg.proto
|
||||
|
||||
// message definition for MessageType: MsgTypePerceptionTrafficLight
|
||||
// refer to traffic_light.proto
|
||||
// refer to fusion_traffic_light.proto
|
||||
|
||||
// message definition for MessageType: MsgTypePredictionObstacleTrajectory
|
||||
// refer to prediction.proto
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
syntax = "proto2";
|
||||
package perception;
|
||||
|
||||
import "header.proto";
|
||||
|
||||
enum LightType {
|
||||
TYPE_DEFAULT = 0;
|
||||
TYPE_VEHICLE = 1;//机动车道
|
||||
TYPE_BICYLE = 2;//自行车道
|
||||
TYPE_PEDSTRIAN = 3;//行人道
|
||||
TYPE_LANE = 5;//车道
|
||||
}
|
||||
|
||||
enum LightState {
|
||||
STATE_OFF = 0;//没检测到灯
|
||||
STATE_RED = 1;
|
||||
STATE_YELLOW = 2;
|
||||
STATE_GREEN = 3;
|
||||
STATE_FLASH = 4;//闪烁
|
||||
STATE_OFF_FUSION = 5;
|
||||
}
|
||||
|
||||
message TrafficLight {
|
||||
optional int64 id = 1;
|
||||
optional LightType type = 2 [default = TYPE_DEFAULT];//灯所处的车道类型
|
||||
optional LightState state = 3 [default = STATE_OFF];//灯态
|
||||
optional float duration = 4; // seconds since the last state changed
|
||||
optional LightState next_state = 5 [default = STATE_OFF_FUSION];
|
||||
}
|
||||
|
||||
//触发方式:120m以内会有信号,但远的时候可能不准,越近越准
|
||||
//straight left right u_turn 同一时间只有会有一个触发
|
||||
message TrafficLights {
|
||||
optional common.Header header = 1;
|
||||
|
||||
optional TrafficLight straight = 2;//直行灯
|
||||
optional TrafficLight left = 3;//左转灯
|
||||
optional TrafficLight right = 4;//右转灯
|
||||
optional TrafficLight u_turn = 5;//掉头灯
|
||||
|
||||
optional bool shield = 6 [default = false];//wheather the traffic lights are shield
|
||||
optional uint32 source = 7 [default = 0]; // 0: vehicle, 1:V2I, 2: V2N
|
||||
}
|
||||
@@ -38,7 +38,7 @@ import mogo.v2x.MogoV2X;
|
||||
import mogo.v2x.RoadOverviewEvents;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
import perception.TrafficLightOuterClass;
|
||||
import perception.FusionTrafficLightOuterClass;
|
||||
import planning.RoboSweeperTaskIndexOuterClass;
|
||||
import prediction.Prediction;
|
||||
import record_cache.RecordPanelOuterClass;
|
||||
@@ -128,12 +128,12 @@ public interface OnAdasListener {
|
||||
void onReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage mogoReportMessage);
|
||||
|
||||
/**
|
||||
* 感知红绿灯
|
||||
* 融合感知红绿灯
|
||||
*
|
||||
* @param header 头
|
||||
* @param trafficLights 感知红绿灯
|
||||
*/
|
||||
void onPerceptionTrafficLight(MessagePad.Header header, TrafficLightOuterClass.TrafficLights trafficLights);
|
||||
void onPerceptionTrafficLight(MessagePad.Header header, FusionTrafficLightOuterClass.FusionTrafficLights trafficLights);
|
||||
|
||||
/**
|
||||
* 他车轨迹预测
|
||||
|
||||
@@ -8,23 +8,24 @@ import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
|
||||
import perception.TrafficLightOuterClass;
|
||||
import perception.FusionTrafficLightOuterClass;
|
||||
|
||||
|
||||
/**
|
||||
* 感知红绿灯
|
||||
* 融合感知红绿灯
|
||||
*/
|
||||
public class PerceptionTrafficLightMessage extends MyAbstractMessageHandler {
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
TrafficLightOuterClass.TrafficLights trafficLights = TrafficLightOuterClass.TrafficLights.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("感知红绿灯", raw.receiveTime);
|
||||
FusionTrafficLightOuterClass.FusionTrafficLights trafficLights = FusionTrafficLightOuterClass.FusionTrafficLights.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("融合感知红绿灯", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
adasListener.onPerceptionTrafficLight(raw.getHeader(), trafficLights);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("感知红绿灯", nowTime);
|
||||
AdasChannel.calculateTimeConsumingBusiness("融合感知红绿灯", nowTime);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user