zhangjia 3 лет назад
Родитель
Сommit
e2ff9f74e3

+ 12 - 5
src/decition/decition_brain_sf/decition/adc_adapter/hapo_adapter.cpp

@@ -161,10 +161,20 @@ iv::decition::Decition iv::decition::HapoAdapter::getAdapterDeciton(GPS_INS now_
     if(controlSpeed>0){
     if(controlSpeed>0){
         controlSpeed=max(controlSpeed,3.2f);
         controlSpeed=max(controlSpeed,3.2f);
     }
     }
+    static bool emergency_brake=false;
     //0227 10m nei xianzhi shache
     //0227 10m nei xianzhi shache
-    if(obsDistance<10 &&obsDistance>0){
+    if(obsDistance<8 &&obsDistance>0){
+        emergency_brake=true;
+    }
+    if(emergency_brake==true){
         controlSpeed=0;
         controlSpeed=0;
-        controlBrake=max(controlBrake,0.6f);//0.8   zj-0.6
+        if(realSpeed<6)
+            controlBrake=max(controlBrake,0.5f);//0.8   zj-0.6
+        else
+            controlBrake=max(controlBrake,0.6f);
+        if(obsDistance>12 || (obsDistance==-1)){
+            emergency_brake=false;
+        }
     }
     }
 
 
     if(DecideGps00::minDecelerate<0){
     if(DecideGps00::minDecelerate<0){
@@ -172,9 +182,6 @@ iv::decition::Decition iv::decition::HapoAdapter::getAdapterDeciton(GPS_INS now_
         controlSpeed=0;
         controlSpeed=0;
     }
     }
 
 
-    if(DecideGps00::minDecelerate==-0.4){
-        controlBrake =0.4;
-    }
 
 
     controlBrake=limitBrake(realSpeed,controlBrake,dSpeed,obsDistance,ttc);
     controlBrake=limitBrake(realSpeed,controlBrake,dSpeed,obsDistance,ttc);
     controlSpeed = limitSpeed(realSpeed, controlBrake, dSpeed, controlSpeed);
     controlSpeed = limitSpeed(realSpeed, controlBrake, dSpeed, controlSpeed);

+ 11 - 8
src/decition/decition_brain_sf/decition/decide_gps_00.cpp

@@ -982,8 +982,10 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
                     }else{
                     }else{
                                 dSpeed=min(dSpeed, 3.0);
                                 dSpeed=min(dSpeed, 3.0);
                                 final_brake_lock=true;
                                 final_brake_lock=true;
-                                if(gpsMapLine[PathPoint]->mode2==23){
-                                            minDecelerate=-0.7;
+                                if(PathPoint+50<gpsMapLine.size()){
+                                    if(gpsMapLine[PathPoint+50]->mode2==23){
+                                                minDecelerate=-0.5;
+                                    }
                                 }
                                 }
                     }
                     }
             }
             }
@@ -1951,7 +1953,10 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
         dSpeed = ServiceCarStatus.group_comm_speed;
         dSpeed = ServiceCarStatus.group_comm_speed;
     }
     }
     if(dSpeed==0){
     if(dSpeed==0){
-        minDecelerate=min(-1.0f,minDecelerate);
+        if(realspeed<6)
+            minDecelerate=min(-0.5f,minDecelerate);
+        else
+            minDecelerate=min(-0.6f,minDecelerate); //1.0f    zj-0.6
     }
     }
 
 
     gps_decition->wheel_angle = 0.0 - controlAng;
     gps_decition->wheel_angle = 0.0 - controlAng;
@@ -2470,8 +2475,6 @@ double iv::decition::DecideGps00::getSpeed(std::vector<Point2D> gpsTrace) {
 }
 }
 
 
 
 
-
-
 //void iv::decition::DecideGps00::getEsrObs(std::vector<iv::ObstacleBasic> obsRadars) {
 //void iv::decition::DecideGps00::getEsrObs(std::vector<iv::ObstacleBasic> obsRadars) {
 //
 //
 //	if (!obsRadars.empty())
 //	if (!obsRadars.empty())
@@ -3777,18 +3780,18 @@ void iv::decition::DecideGps00::transferGpsMode2( const std::vector<GPSData> gps
 
 
     givlog->debug("decition_brain","PATHFORE: %d,Forecast: %d,cross: %d",
     givlog->debug("decition_brain","PATHFORE: %d,Forecast: %d,cross: %d",
                 PathPoint+forecast_point_num,forecast_point_num,cross);
                 PathPoint+forecast_point_num,forecast_point_num,cross);
-
     if(  gpsMapLine[PathPoint]->mode2==3000){
     if(  gpsMapLine[PathPoint]->mode2==3000){
         if(obsDistance>4){       //7   zj-5
         if(obsDistance>4){       //7   zj-5
             obsDistance=200;
             obsDistance=200;
         }else{
         }else{
             lock_flag=false;
             lock_flag=false;
+            obsSpeed=-realspeed/3.6;
         }
         }
         if((realspeed>3)&&(lock_flag==false)){
         if((realspeed>3)&&(lock_flag==false)){
             minDecelerate=-0.5;
             minDecelerate=-0.5;
         }else{
         }else{
-        dSpeed=min(dSpeed,3.0);
-        lock_flag=true;
+            dSpeed=min(dSpeed,3.0);
+            lock_flag=true;
         }
         }
     }
     }
     else if(gpsMapLine[PathPoint]->mode2==3001){
     else if(gpsMapLine[PathPoint]->mode2==3001){