Browse Source

modify avoid pro

lijinliang 3 years ago
parent
commit
c67ddd44ed

+ 1 - 1
map/map_1021.xodr

@@ -164,7 +164,7 @@ namespace iv {
         int vehGroupId;
         double mfEPSOff = 0.0;
         float socfDis=15;   //停障触发距离
-        float aocfDis=20;   //避障触发距离
+        float aocfDis=25;   //避障触发距离//20
         float aocfTimes=3; //避障触发次数
         float aobzDis=5;   //避障保障距离
         /// traffice light : 0x90

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

@@ -192,6 +192,11 @@ iv::decition::Decition iv::decition::HapoAdapter::getAdapterDeciton(GPS_INS now_
         controlSpeed =0;
         accAim=0;
     }
+    if(obsDistance>60){
+        if(accAim<-0.5){
+            accAim=max(accAim,-0.5f);
+        }
+    }
 
 
     (*decition)->brake = controlBrake*9;//9     zj-6

+ 19 - 9
src/decition/decition_brain_sf/decition/decide_gps_00.cpp

@@ -261,11 +261,11 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
     }
 
     if(front_car_id>0){
-        if(front_car.front_car_dis>30){
+        if(front_car.front_car_dis>35){
             front_car_decide_avoid=true;
-        }else if((front_car.front_car_dis<=30)&&(front_car.avoidX==0)){
+        }else if((front_car.front_car_dis<=35)&&(front_car.avoidX==0)){
             front_car_decide_avoid=false;
-        }else if((front_car.front_car_dis<=30)&&(front_car.avoidX!=0)){
+        }else if((front_car.front_car_dis<=35)&&(front_car.avoidX!=0)){
             front_car_decide_avoid=true;
         }
     }else{
@@ -1514,9 +1514,11 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
 
     }
 #ifdef AVOID_NEW
-    if((vehState==avoiding)||(vehState==backOri)||(avoidXNew!=0)||(vehState==preAvoid))
+    if((vehState==avoiding)||(vehState==preAvoid))
     {
         dSpeed = min(8.0,dSpeed);
+    }else if((vehState==backOri)||(avoidXNew!=0)){
+        dSpeed = min(12.0,dSpeed);
     }
 #else
     if((vehState==avoiding)||(vehState==backOri)||(roadNow != roadOri)||(vehState==preAvoid))
@@ -1535,9 +1537,17 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
     }
 
     if(front_car_id>0){
-        if((front_car.vehState!=0)&&(front_car.front_car_dis<30)){
-            dSpeed=min(dSpeed,front_car.front_car_ins.speed);
+        static bool brake_state=false;
+        if(((front_car.vehState!=0)||(front_car.avoidX!=0))&&(front_car.front_car_dis<15)){
+            brake_state=true;
         }
+        if(brake_state==true){
+            dSpeed=min(dSpeed,ServiceCarStatus.mroadmode_vel.mfmode18);
+        }
+        if(((front_car.vehState==0)&&(front_car.avoidX==0))||(front_car.front_car_dis>25)){
+            brake_state=false;
+        }
+
     }
 
     dSpeed = limitSpeed(controlAng, dSpeed);
@@ -1813,13 +1823,13 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
     }*/
 
     road_permit_avoid=false;
-    if(PathPoint+600<gpsMapLine.size()){
+    if(PathPoint+400<gpsMapLine.size()){
         int road_permit_sum=0;
-        for(int k=PathPoint;k<PathPoint+600;k++){
+        for(int k=PathPoint;k<PathPoint+400;k++){
                 if((gpsMapLine[k]->mbnoavoid==false)&&(gpsMapLine[k]->roadSum>1))
                                  road_permit_sum++;
         }
-        if(road_permit_sum>=600)
+        if(road_permit_sum>=400)
             road_permit_avoid=true;
     }
 

+ 1 - 1
src/decition/decition_brain_sf/decition/decide_gps_00.h

@@ -263,7 +263,7 @@ public:
     float  ObsTimeSpan=-1;
     double ObsTimeStart=-1;
     double ObsTimeEnd=-1;
-    float ObsTimeWidth=30.0;   //500   zj-30
+    float ObsTimeWidth=70.0;   //500   zj-30
     std::vector<iv::TracePoint> planTrace;
 
     bool roadNowStart=true;