|
@@ -191,17 +191,29 @@ iv::decition::Decition iv::decition::SightseeingAdapter::getAdapterDeciton(GPS_I
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
controlBrake=0;
|
|
|
- if(obsDistance>10 && obsDistance<15){
|
|
|
- dSpeed=2;
|
|
|
- }else if(obsDistance>5 && obsDistance<=10){
|
|
|
- dSpeed=1;
|
|
|
+
|
|
|
+ float distance_to_end=DecideGps00::DistanceToEnd;
|
|
|
+ // if(DecideGps00::PathPoint+1500>gpsMapLine.size())
|
|
|
+// {
|
|
|
+// distance_to_end=computeDistToEnd(gpsMapLine,PathPoint);
|
|
|
+// givlog->debug("decition_brain","distoend: %f",
|
|
|
+// distance_to_end);
|
|
|
+// }
|
|
|
+
|
|
|
+ if(distance_to_end>0.5 && distance_to_end<=10){
|
|
|
+ dSpeed=min((double)dSpeed, 2.0);
|
|
|
+ }else if(distance_to_end<=0.5){
|
|
|
+ dSpeed=0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(obsDistance>5 && obsDistance<=15){
|
|
|
+ dSpeed=min((double)dSpeed, 2.0);
|
|
|
}else if(obsDistance>0 && obsDistance<=5){
|
|
|
dSpeed=0;
|
|
|
}
|
|
|
|
|
|
- if((dSpeed==0)&&(realSpeed<0.2)){
|
|
|
+ if((dSpeed==0)&&(realSpeed<0.1)){
|
|
|
final_handbrake=true;
|
|
|
}else{
|
|
|
final_handbrake=false;
|
|
@@ -232,8 +244,8 @@ iv::decition::Decition iv::decition::SightseeingAdapter::getAdapterDeciton(GPS_I
|
|
|
(*decition)->angSpeed=600;
|
|
|
|
|
|
//日志输出
|
|
|
- givlog->debug("brain_decition","dSpeed: %f,realspeed: %f,brake: %f,torque: %f,accAim: %f,handBrake: %d,dangWei: %d",
|
|
|
- dSpeed,realSpeed,(*decition)->brake,(*decition)->torque,accAim,(*decition)->handBrake,(*decition)->dangWei);
|
|
|
+ givlog->debug("brain_decition","dSpeed: %f,realspeed: %f,brake: %f,torque: %f,accAim: %f,handBrake: %d,dangWei: %d,distance_to_end: %f",
|
|
|
+ dSpeed,realSpeed,(*decition)->brake,(*decition)->torque,accAim,(*decition)->handBrake,(*decition)->dangWei,distance_to_end);
|
|
|
|
|
|
//垃圾车,控制输出,其它
|
|
|
(*decition)->grade=1;
|
|
@@ -304,4 +316,14 @@ float iv::decition::SightseeingAdapter::limitSpeed(float realSpeed, float contro
|
|
|
return controlSpeed;
|
|
|
}
|
|
|
|
|
|
+double iv::decition::SightseeingAdapter::computeDistToEnd(const std::vector<GPSData> gpsMapLine,int pathpoint){
|
|
|
+ double dist_to_end=0;
|
|
|
+ for(int i=pathpoint;i<gpsMapLine.size()-1;i++){
|
|
|
+ if(gpsMapLine[i]->mode2!=23)
|
|
|
+ dist_to_end+=GetDistance(*gpsMapLine[i+1], *gpsMapLine[i]);
|
|
|
+ }
|
|
|
+ return dist_to_end;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|