|
@@ -2628,73 +2628,83 @@ void iv::decition::DecideGps00::predictObsOnRoad(std::vector<iv::Perception::Per
|
|
|
int iv::decition::DecideGps00::chooseAvoidRoad(iv::LidarGridPtr lidarGridPtr, GPS_INS now_gps_ins, const std::vector<GPSData> gpsMapLine,std::vector<iv::Perception::PerceptionOutput> lidar_per) {
|
|
|
roadPre = -1;
|
|
|
|
|
|
- if (roadNow<roadOri)
|
|
|
- {
|
|
|
- for (int i = 0; i < roadNow; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri-i))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- for (int i = roadOri+1; i < roadSum; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // bsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, i,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (roadNow>roadOri)
|
|
|
- {
|
|
|
- for (int i = 0; i < roadOri; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri - i))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
- for (int i = roadNow + 1; i < roadSum; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- else
|
|
|
- {
|
|
|
- for (int i = 0; i < roadOri; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri - i))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
- for (int i = roadOri + 1; i < roadSum; i++)
|
|
|
- {
|
|
|
- gpsTraceAvoid.clear();
|
|
|
- // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
-
|
|
|
+// if (roadNow<roadOri)
|
|
|
+// {
|
|
|
+// for (int i = 0; i < roadNow; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri-i))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// for (int i = roadOri+1; i < roadSum; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // bsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, i,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// else if (roadNow>roadOri)
|
|
|
+// {
|
|
|
+// for (int i = 0; i < roadOri; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri - i))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+// for (int i = roadNow + 1; i < roadSum; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+
|
|
|
+// }
|
|
|
+
|
|
|
+// else
|
|
|
+// {
|
|
|
+// for (int i = 0; i < roadOri; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri - i))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+// for (int i = roadOri + 1; i < roadSum; i++)
|
|
|
+// {
|
|
|
+// gpsTraceAvoid.clear();
|
|
|
+// // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+
|
|
|
+// }
|
|
|
+
|
|
|
+ for (int i = 0; i < roadSum; i++)
|
|
|
+ {
|
|
|
+ gpsTraceAvoid.clear();
|
|
|
+ // gpsTraceAvoid = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i - roadOri))], lastGpsIndex);
|
|
|
+ avoidX = (roadWidth)*(roadOri - i);
|
|
|
+ gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+ // computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
+ computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, i,gpsMapLine,lidar_per);
|
|
|
}
|
|
|
|
|
|
if (lidarGridPtr!=NULL)
|
|
@@ -2756,34 +2766,43 @@ int iv::decition::DecideGps00::chooseAvoidRoad(iv::LidarGridPtr lidarGridPtr, GP
|
|
|
int iv::decition::DecideGps00::chooseBackRoad(iv::LidarGridPtr lidarGridPtr, GPS_INS now_gps_ins, std::vector<GPSData> gpsMapLine,std::vector<iv::Perception::PerceptionOutput> lidar_per) {
|
|
|
roadPre = -1;
|
|
|
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
|
|
|
|
|
|
|
|
|
- if (roadNow>roadOri+1)
|
|
|
- {
|
|
|
- for (int i = roadOri+1; i < roadNow; i++)
|
|
|
- {
|
|
|
- gpsTraceBack.clear();
|
|
|
- // gpsTraceBack = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i-roadOri))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceBack = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (roadNow < roadOri - 1) {
|
|
|
+// if (roadNow>roadOri+1)
|
|
|
+// {
|
|
|
+// for (int i = roadOri+1; i < roadNow; i++)
|
|
|
+// {
|
|
|
+// gpsTraceBack.clear();
|
|
|
+// // gpsTraceBack = getGpsTrace(now_gps_ins, gmapsL[int(abs(roadWidth * 2)*(i-roadOri))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceBack = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// else if (roadNow < roadOri - 1) {
|
|
|
|
|
|
- for (int i = roadOri - 1; i > roadNow; i--)
|
|
|
- {
|
|
|
- gpsTraceBack.clear();
|
|
|
- // gpsTraceBack = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri-i))], lastGpsIndex);
|
|
|
- avoidX = (roadWidth)*(roadOri - i);
|
|
|
- gpsTraceBack = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
- }
|
|
|
+// for (int i = roadOri - 1; i > roadNow; i--)
|
|
|
+// {
|
|
|
+// gpsTraceBack.clear();
|
|
|
+// // gpsTraceBack = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri-i))], lastGpsIndex);
|
|
|
+// avoidX = (roadWidth)*(roadOri - i);
|
|
|
+// gpsTraceBack = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+// computeObsOnRoad(lidarGridPtr, gpsTraceNow, roadNow,gpsMapLine,lidar_per);
|
|
|
+// }
|
|
|
+
|
|
|
+// }
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ for (int i = 0; i <roadSum; i++)
|
|
|
+ {
|
|
|
+ gpsTraceBack.clear();
|
|
|
+ // gpsTraceBack = getGpsTrace(now_gps_ins, gmapsR[int(abs(roadWidth * 2)*(roadOri-i))], lastGpsIndex);
|
|
|
+ avoidX = (roadWidth)*(roadOri - i);
|
|
|
+ gpsTraceBack = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
+ computeObsOnRoad(lidarGridPtr, gpsTraceBack, i,gpsMapLine,lidar_per);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
if (lidarGridPtr != NULL)
|