wait to finish
This commit is contained in:
@@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.map.MogoMarkerManager;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.utils.DrivingDirectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -90,7 +91,7 @@ public class IdentifyDataDrawer {
|
||||
long start = System.currentTimeMillis();
|
||||
//清除缓存
|
||||
for (MessagePad.TrackedObject data : resultList) {
|
||||
if(trafficDataUuidList.size() > 0 && trafficDataUuidList.contains("" + data.getUuid())){
|
||||
if (trafficDataUuidList.size() > 0 && trafficDataUuidList.contains("" + data.getUuid())) {
|
||||
trafficDataUuidList.remove("" + data.getUuid());
|
||||
}
|
||||
}
|
||||
@@ -134,13 +135,20 @@ public class IdentifyDataDrawer {
|
||||
//首次过来的数据不添加,首次未添加的感知物在调用完绘制方法后再塞入cache map
|
||||
MessagePad.TrackedObject cacheData = mMarkersCaches.get("" + data.getUuid());
|
||||
if (cacheData != null) {
|
||||
//todo 测试航向角修正时打开
|
||||
MessagePad.TrackedObject correctData = null;
|
||||
//todo 判断点是不是在当前车道线上,如果是,判断差值,进行修正
|
||||
// if (Math.abs(cacheData.getHeading() - data.getHeading()) > 90) {
|
||||
// CallerLogger.INSTANCE.d(M_HMI + "arrow47","uuid修正 上一帧 : " + cacheData.getHeading() + " , 当前帧 : " + data.getHeading());
|
||||
// correctData = data.toBuilder().setHeading(cacheData.getHeading()).build();
|
||||
// }
|
||||
//todo 进行修正
|
||||
if (Math.abs(cacheData.getHeading() - data.getHeading()) > 40 && Math.abs(cacheData.getHeading() - data.getHeading()) < 90) {
|
||||
CallerLogger.INSTANCE.d(M_HMI + "arrow47", "uuid: " + data.getUuid() + " , 40~90差值范围 , 上一帧 : " + cacheData.getHeading() + " , 当前帧 : " + data.getHeading());
|
||||
}
|
||||
if (Math.abs(cacheData.getHeading() - data.getHeading()) > 90) {
|
||||
int degree = DrivingDirectionUtils.getDegreeOfCar2Poi(cacheData.getLongitude(), cacheData.getLatitude(), data.getLongitude(), data.getLatitude(), Double.valueOf(cacheData.getHeading()).intValue());
|
||||
if (degree > 90) {
|
||||
CallerLogger.INSTANCE.d(M_HMI + "arrow47", "uuid: " + data.getUuid() + " , 夹角 : " + degree + " , 修正 上一帧 : " + cacheData.getHeading() + " , 当前帧 : " + data.getHeading());
|
||||
correctData = data.toBuilder().setHeading(cacheData.getHeading()).build();
|
||||
} else {
|
||||
CallerLogger.INSTANCE.d(M_HMI + "arrow47", "uuid: " + data.getUuid() + " , 夹角 : " + degree + " , 未修正 上一帧 : " + cacheData.getHeading() + " , 当前帧 : " + data.getHeading());
|
||||
}
|
||||
}
|
||||
if (correctData != null) {
|
||||
mFilterTrafficData.add(correctData);
|
||||
//更新已存在的感知物体数据
|
||||
|
||||
@@ -8,12 +8,12 @@ import android.content.Context;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.map.MogoMap;
|
||||
import com.mogo.map.MogoMarkerManager;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.constants.AdasRecognizedType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -120,7 +120,12 @@ public class IdentifyDataDrawerTest {
|
||||
//CallerLogger.INSTANCE.w(TAG, "未知感知类型数据,丢弃,不渲染");
|
||||
continue;
|
||||
}
|
||||
double heading = kalmanFilter(data);
|
||||
|
||||
MessagePad.TrackedObject cacheData = mMarkersCaches.get("" + data.getUuid());
|
||||
double heading = MogoMap.getInstance().getMogoMap().getUIController().getAngle(cacheData.getLongitude(), cacheData.getLatitude(), data.getLongitude(), data.getLatitude());
|
||||
CallerLogger.INSTANCE.d(M_HMI + "arrow47", " uuid : " + data.getUuid() + " , origin heading : " + data.getHeading() + " , correct heading : " + heading + " ---- " + (data.getHeading() - heading));
|
||||
|
||||
// double heading = kalmanFilter(data);
|
||||
MessagePad.TrackedObject correctData = data.toBuilder().setHeading(heading).build();
|
||||
mFilterTrafficData.add(correctData);
|
||||
//更新已存在的感知物体数据
|
||||
@@ -142,9 +147,13 @@ public class IdentifyDataDrawerTest {
|
||||
assert cacheTrackObj != null;
|
||||
double heading = MogoMap.getInstance().getMogoMap().getUIController().getAngle(cacheTrackObj.getLongitude(), cacheTrackObj.getLatitude(), lonLat[0], lonLat[1]);
|
||||
CallerLogger.INSTANCE.d(M_HMI + "arrow47", " uuid : " + uuid + " , origin heading : " + data.getHeading() + " , correct heading : " + heading + " ---- " + (data.getHeading() - heading));
|
||||
return Math.abs((data.getHeading() - heading)) >= 180 ? heading : data.getHeading();
|
||||
return heading;
|
||||
} else {
|
||||
algoCache.put(uuid, new KalmanFilter(data.getLongitude(), data.getLatitude(), 0.00005));
|
||||
double r = 0.00005;
|
||||
if (AdasRecognizedType.valueFrom(data.getType()) == AdasRecognizedType.classIdTrafficBus || AdasRecognizedType.valueFrom(data.getType()) == AdasRecognizedType.classIdTrafficTruck) {
|
||||
r = 0.0001;
|
||||
}
|
||||
algoCache.put(uuid, new KalmanFilter(data.getLongitude(), data.getLatitude(), r));
|
||||
return data.getHeading();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,9 +41,9 @@ class MapIdentifySubscriber private constructor() : IMoGoSubscriber, IMoGoAutopi
|
||||
override fun onAutopilotIdentifyDataUpdate(trafficData: List<TrackedObject>?) {
|
||||
try {
|
||||
if (FunctionBuildConfig.isDrawIdentifyData) {
|
||||
ThreadUtils.getSinglePool().execute { IdentifyDataDrawerTest.getInstance().renderAdasRecognizedResult(trafficData) }
|
||||
ThreadUtils.getSinglePool().execute { IdentifyDataDrawer.getInstance().renderAdasRecognizedResult(trafficData) }
|
||||
} else {
|
||||
IdentifyDataDrawerTest.getInstance().clearOldMarker()
|
||||
IdentifyDataDrawer.getInstance().clearOldMarker()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
|
||||
Reference in New Issue
Block a user