Browse Source

add group map end pro

zhangjia 3 years ago
parent
commit
b243fcc44d

+ 1 - 1
src/decition/decition_brain_sf/decition/adc_controller/pid_controller.cpp

@@ -167,7 +167,7 @@ float iv::decition::PIDController::getPidAcc (GPS_INS gpsIns,float dSpeed, float
 
     std::cout << "\n计算用obs速度:%f\n" << obsSpeed << std::endl;
     std::cout << "\n计算用obs距离:%f\n" << obsDistance << std::endl;
-    if(obsDistance<10 && obsDistance>0){
+    if(obsDistance<8 && obsDistance>0){
         dSpeed=0;
     }
     float dSecSpeed = dSpeed / 3.6;

+ 27 - 5
src/decition/decition_brain_sf/decition/decide_gps_00.cpp

@@ -1033,10 +1033,9 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
 
 
     double acc_end = 0.1;
-
+    static double distoend=1000;
     if((ServiceCarStatus.table_look_up_on==true)&&(hapo_Adapter->IsINterpolationOK()))
     {
-                static double distoend=1000;
                 if(PathPoint+1000>gpsMapLine.size()){
                     distoend=computeDistToEnd(gpsMapLine,PathPoint);
                 }else{
@@ -1051,7 +1050,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
                             if(acc_end<(-3.0))acc_end = -3.0;
                         }
 
-                        if(distoend < 0.1)acc_end = -0.5;
+                        if((distoend < 0.1)||(PathPoint>=gpsMapLine.size()-2))acc_end = -0.5;
                 }
     }else{
 //                if(!circleMode && PathPoint>gpsMapLine.size()-brake_distance){
@@ -1621,8 +1620,31 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
     ServiceCarStatus.mObsDistance=obsDistance;
     ServiceCarStatus.mObsSpeed=obs_speed_for_avoid;
 
-    //old_bz--------------------------------------------------------------------------------------------------
+    //group map end park pro--------start
+    if(front_car_id>0){
+        static  bool final_lock=false;
+        if((distoend<90)&&(front_car.front_car_dis<obsDistance+10)){
+            if((obsDistance>5)&&(obsDistance<15)){
+                if((realspeed>3)&&(final_lock==false)){
+                    minDecelerate=-0.5;
+                }else{
+                    dSpeed = min(3.0,dSpeed);
+                    final_lock=true;
+                }
+                obsDistance=200;
+            }else if((obsDistance>2)&&(obsDistance<5)){
+                minDecelerate=-0.5;
+            }else{
+                minDecelerate=-1.0;
+            }
+            if(realspeed<1){
+                final_lock=false;
+            }
+        }
+    }
+    //group map end park pro-----------end
 
+    //old_bz--------------------------------------------------------------------------------------------------
     if (vehState == avoiding)
     {
         double avoidDistance=GetDistance(startAvoidGpsIns,now_gps_ins);
@@ -4121,7 +4143,7 @@ void iv::decition::DecideGps00::transferGpsMode2( const std::vector<GPSData> gps
     if(speed_slowdown_flag==1)
     {
             if((realspeed>ServiceCarStatus.mroadmode_vel.mfmode18)&&(lock_flag==false)){
-                minDecelerate=-0.5;
+                minDecelerate=-0.3;
             }else{
                 dSpeed=min(dSpeed,ServiceCarStatus.mroadmode_vel.mfmode18);
                 lock_flag=true;