From dd63f6f47a77ecf8d4f3a14923aac91e2a77a670 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 5 Jan 2023 17:57:39 +0800 Subject: [PATCH] [2.13.2] add pb and track obj remove unuse --- .../function/business/identify/TrackObj.java | 56 ++++++------- .../src/main/proto/SocketDownDataProto3.proto | 78 +++++++++++++++++++ 2 files changed, 103 insertions(+), 31 deletions(-) create mode 100644 libraries/mogo-adas-data/src/main/proto/SocketDownDataProto3.proto diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java index 4efa56ce58..b715d16ebf 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java @@ -23,9 +23,8 @@ public class TrackObj { private S2CellId s2CellId; //s2 id权重 private S2LatLng s2LatLng; //s2 经纬度 private double recentlyTime; //用于缓存帧数判断,暂定缓存1秒数据,中间如果有物体未出现,1秒后删除 - private double roadAngle; //道路航向 - private int[] typeArray = new int[3]; - private int typeWeight; //类型权重 +// private int[] typeArray = new int[3]; +// private int typeWeight; //类型权重 private double lat; private double lon; private double speedAverage; @@ -37,11 +36,6 @@ public class TrackObj { lon = data.getLongitude(); s2LatLng = S2LatLng.fromDegrees(data.getLatitude(), data.getLongitude()); s2CellId = S2CellId.fromLatLng(s2LatLng).parent(22); //需要验证22前后 - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, -1); - if (centerLine != null && centerLine.getAngle() != 0) { - roadAngle = centerLine.getAngle(); - } - } private MessagePad.TrackedObject cacheData; @@ -68,20 +62,20 @@ public class TrackObj { objQueueList.sort(Comparator.comparing(ObjQueue::getSpeed)); speedAverage = objQueueList.get(1).getSpeed(); //计算类型 - typeArray[0] = objQueueList.get(0).getType(); - typeArray[1] = objQueueList.get(1).getType(); - typeArray[2] = objQueueList.get(2).getType(); +// typeArray[0] = objQueueList.get(0).getType(); +// typeArray[1] = objQueueList.get(1).getType(); +// typeArray[2] = objQueueList.get(2).getType(); } else { double cal = 0; List objQueueList = circleQueue.getPreFrame(); for (int i = 0; i < objQueueList.size() - 1; i++) { cal += objQueueList.get(i).getSpeed(); - typeArray[i] = objQueueList.get(i).getType(); +// typeArray[i] = objQueueList.get(i).getType(); } speedAverage = cal / objQueueList.size(); } - typeArray = Arrays.stream(typeArray).sorted().toArray(); - typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; +// typeArray = Arrays.stream(typeArray).sorted().toArray(); +// typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; // 重新给静止物体赋值速度 if (relativeStatic()) { @@ -107,18 +101,18 @@ public class TrackObj { private void calHeading() { //更正数据,速度小于LIMIT_SPEED使用上一帧数据 - if (relativeStatic()) { - if (roadAngle != 0.0) { - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, -1); - if (centerLine != null && centerLine.getAngle() != 0) { - cacheData = cacheData.toBuilder().setHeading(centerLine.getAngle()).build(); - } else { - cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); - } - } else { - cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); - } - } +// if (relativeStatic()) { +// if (roadAngle != 0.0) { +// CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, -1); +// if (centerLine != null && centerLine.getAngle() != 0) { +// cacheData = cacheData.toBuilder().setHeading(centerLine.getAngle()).build(); +// } else { +// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); +// } +// } else { +// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); +// } +// } } public double getRecentlyTime() { @@ -167,11 +161,11 @@ public class TrackObj { } } - public boolean isFourWheelType() { - return typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO.getType(); - } +// public boolean isFourWheelType() { +// return typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.getType() +// && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE.getType() +// && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO.getType(); +// } private double[] getCenterPoint(List objQueueList) { int total = objQueueList.size(); diff --git a/libraries/mogo-adas-data/src/main/proto/SocketDownDataProto3.proto b/libraries/mogo-adas-data/src/main/proto/SocketDownDataProto3.proto new file mode 100644 index 0000000000..b101f6234c --- /dev/null +++ b/libraries/mogo-adas-data/src/main/proto/SocketDownDataProto3.proto @@ -0,0 +1,78 @@ +syntax = "proto3"; +package mogo.yycp.service; +option java_package = "mogo.yycp.api.proto"; +option java_outer_classname = "SocketDownData"; +/* +message xxx { + // 字段规则:required -> 字段只能也必须出现 1 次 + // 字段规则:optional -> 字段可出现 0 次或1次 + // 字段规则:repeated -> 字段可出现任意多次(包括 0) + // 类型:int32、int64、sint32、sint64、string、32-bit .... + // 字段编号:0 ~ 536870911(除去 19000 到 19999 之间的数字) + 字段规则 类型 名称 = 字段编号; +} +*/ +//返回车机主实体 +message SocketDownDataProto { + uint64 seq = 1; + uint32 msgType = 2; + string sn = 3; + LauncherSnapshotProto data = 4; + uint64 utcTime = 5; + uint64 upUtcTime = 6; + string cityCode = 7; +} + +//LauncherSnapshot数据响应VO +message LauncherSnapshotProto { + //总数据集合 RoadDataVo + repeated CloudRoadDataProto allList = 1; + //前方50米数据集合 RoadDataVo + repeated CloudRoadDataProto nearList = 2; + //摄像头 RoadDataVo + CloudRoadDataProto camera = 3; + string msgId = 4; + uint64 time = 5; + //过期时间 + uint64 expire = 6; +} +//RoadDataVo +message CloudRoadDataProto { + /**物体类型 1-人 2-自行车 3-小轿车 4-摩托车 5-红绿灯 6-bus 8-truck 9-路边摄像头*/ + uint32 type = 1; + /**数据来源 1,"自车数据" 2,"ADAS数据" 3,"路测设备识别数据" */ + uint32 fromType = 2; + /** + * 车机上行pgs坐标给lat,lon两个成员变量 + * + * 在下发车机时计算高德经纬度 + * 1.将gps(lat,lon)给wgslat,wgalon + * 2.高德算法算出高德经纬度,给lat,lon + */ + double lat = 3; //gps->gd + double lon = 4; //gps->gd + double wgslat = 5; //原gps + double wgslon = 6; //原gps + //车机sn + string sn = 7; + //车辆UUID + string uuid = 8; + /** 车牌号 */ + string cardId = 9; + /**速度*/ + double speed = 10; + /**方向*/ + double heading = 11; + /** 系统时间 */ + uint64 systemTime = 12; + /** 星历时间 */ + uint64 satelliteTime = 13; + /**红绿灯状态 1红 2绿 3黄*/ + uint32 lightStatus = 14; + /**红绿灯剩余时间 读秒*/ + uint32 lightLeftTime = 15; + /**视频流直播地址*/ + string rtmpUrl = 16; + /**距离*/ + double distance = 17; +}