|
@@ -216,9 +216,9 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
|
|
|
|
|
|
|
|
|
-// GPS_INS gps= Coordinate_UnTransfer(0,1.5,now_gps_ins);
|
|
|
-// now_gps_ins.gps_x=gps.gps_x;
|
|
|
-// now_gps_ins.gps_y=gps.gps_y;
|
|
|
+ // GPS_INS gps= Coordinate_UnTransfer(0,1.5,now_gps_ins);
|
|
|
+ // now_gps_ins.gps_x=gps.gps_x;
|
|
|
+ // now_gps_ins.gps_y=gps.gps_y;
|
|
|
|
|
|
// GaussProjInvCal(now_gps_ins.gps_x, now_gps_ins.gps_y,&now_gps_ins.gps_lng, &now_gps_ins.gps_lat);
|
|
|
|
|
@@ -1093,13 +1093,16 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
}
|
|
|
|
|
|
//2020-0106
|
|
|
- if(vehState==avoiding){
|
|
|
- controlAng=max(-150.0,controlAng);
|
|
|
- controlAng=min(150.0,controlAng);
|
|
|
- }
|
|
|
- if(vehState==backOri){
|
|
|
- controlAng=max(-120.0,controlAng);
|
|
|
- controlAng=min(120.0,controlAng);
|
|
|
+ if(ServiceCarStatus.msysparam.mvehtype !="zhongche"){
|
|
|
+
|
|
|
+ if(vehState==avoiding){
|
|
|
+ controlAng=max(-150.0,controlAng);
|
|
|
+ controlAng=min(150.0,controlAng);
|
|
|
+ }
|
|
|
+ if(vehState==backOri){
|
|
|
+ controlAng=max(-120.0,controlAng);
|
|
|
+ controlAng=min(120.0,controlAng);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//准备驻车
|
|
@@ -1677,15 +1680,18 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
if ( vehState==changingRoad || vehState==chaocheBack)
|
|
|
{
|
|
|
double lastAng = 0.0 - lastAngle;
|
|
|
- if (controlAng>40)
|
|
|
- {
|
|
|
- controlAng =40;
|
|
|
- }
|
|
|
- else if (controlAng<-40)
|
|
|
- {
|
|
|
- controlAng = - 40;
|
|
|
- }
|
|
|
|
|
|
+ if(ServiceCarStatus.msysparam.mvehtype !="zhongche"){
|
|
|
+
|
|
|
+ if (controlAng>40)
|
|
|
+ {
|
|
|
+ controlAng =40;
|
|
|
+ }
|
|
|
+ else if (controlAng<-40)
|
|
|
+ {
|
|
|
+ controlAng = - 40;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1847,6 +1853,10 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
//------------------------------v2x traffic light end--------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
+
|
|
|
+ // if(obsDistance>6.5){
|
|
|
+ // obsDistance=500;
|
|
|
+ //}
|
|
|
if(obsDistance>0 && obsDistance<10){
|
|
|
dSpeed=0;
|
|
|
}
|
|
@@ -1863,7 +1873,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
|
|
|
// givlog->debug("SPEED","dSpeed is %f",dSpeed);
|
|
|
|
|
|
- gps_decition->wheel_angle = 0.0 - controlAng;
|
|
|
+ gps_decition->wheel_angle = 0.0 - controlAng;
|
|
|
phaseSpeedDecition(gps_decition, secSpeed, obsDistance, obsSpeed,now_gps_ins);
|
|
|
|
|
|
|
|
@@ -2636,74 +2646,74 @@ 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++)
|
|
|
{
|
|
@@ -2712,7 +2722,7 @@ int iv::decition::DecideGps00::chooseAvoidRoad(iv::LidarGridPtr lidarGridPtr, GP
|
|
|
avoidX = (roadWidth)*(roadOri - i);
|
|
|
gpsTraceAvoid = getGpsTraceOffset(gpsTraceOri, avoidX);
|
|
|
// computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, roadNow + i);
|
|
|
- computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, i,gpsMapLine,lidar_per);
|
|
|
+ computeObsOnRoad(lidarGridPtr, gpsTraceAvoid, i,gpsMapLine,lidar_per);
|
|
|
}
|
|
|
|
|
|
if (lidarGridPtr!=NULL)
|
|
@@ -2774,33 +2784,33 @@ 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);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-// 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);
|
|
|
-// }
|
|
|
-
|
|
|
-// }
|
|
|
+ // 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) {
|
|
|
+
|
|
|
+ // 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++)
|