Explorar o código

add control rubbish box

zhangjia %!s(int64=2) %!d(string=hai) anos
pai
achega
ad93f81eba

+ 3 - 1
src/decition/common/common/car_status.h

@@ -100,8 +100,10 @@ namespace iv {
 
               int brain_control_enable=0;
               int rubbish_car_stop=0;
-              int rubbish_empty=0;
+              int rubbish_empty=0;  //机械发来,垃圾倒完,垃圾车空
               int brain_control_invalid=0;
+              int cameraStart=0;   //自动驾驶系统发向摄像头,开启摄像头指令
+              int rubbish_dump=0;  //自动驾驶系统发向机械,垃圾倾倒
 
 
         std::vector <iv::platform::station> car_stations;

+ 12 - 8
src/decition/decition_brain_sf/decition/adc_adapter/sightseeing_adapter.cpp

@@ -159,14 +159,14 @@ iv::decition::Decition iv::decition::SightseeingAdapter::getAdapterDeciton(GPS_I
         controlBrake=0;
     }
 
-    if(ServiceCarStatus.rubbish_car_stop==1){
-        dSpeed=0;
-        DecideGps00::minDecelerate=-0.5;
-        if(realSpeed<0.01){
-            ServiceCarStatus.brain_control_invalid=1;
-            ServiceCarStatus.rubbish_car_stop=0;
-        }
-    }
+//    if(ServiceCarStatus.rubbish_car_stop==1){
+//        dSpeed=0;
+//        DecideGps00::minDecelerate=-0.5;
+//        if(realSpeed<0.01){
+//            ServiceCarStatus.brain_control_invalid=1;
+//            ServiceCarStatus.rubbish_car_stop=0;
+//        }
+//    }
 
     //rubbish end  2022.3.23
 
@@ -228,8 +228,12 @@ iv::decition::Decition iv::decition::SightseeingAdapter::getAdapterDeciton(GPS_I
     if((dSpeed==0)&&(realSpeed<0.1)){
             final_handbrake=true;
             controlBrake=0;
+
+            ServiceCarStatus.cameraStart=1;
     }else{
             final_handbrake=false;
+
+            ServiceCarStatus.cameraStart=0;
     }
 
     (*decition)->brake = controlBrake;

+ 12 - 26
src/decition/decition_brain_sf/decition/brain.cpp

@@ -840,25 +840,8 @@ void iv::decition::BrainDecition::run() {
             iv::modulecomm::ModuleSendMsg(mpaObsTraceLeft,(char *)(ServiceCarStatus.obsTraceLeft.data()),ServiceCarStatus.obsTraceLeft.size()*sizeof(iv::TracePoint));
             iv::modulecomm::ModuleSendMsg(mpaObsTraceRight,(char *)(ServiceCarStatus.obsTraceRight.data()),ServiceCarStatus.obsTraceRight.size()*sizeof(iv::TracePoint));
 
-
-            //      decition_gps = decitionLine00->getDecideFromGPS(*gps_data_, navigation_data, obs_lidar_grid_);
-            //ODS("\n决策:%f\t%f\t\t", decition_gps->speed, decition_gps->wheel_angle);
-            //ODS("\n接收到的实时GPS数据:%f\t%f\t%f\n", gps_data_->gps_x, gps_data_->gps_y,gps_data_->ins_heading_angle);
-
-            //carcall->is_arrived = decitionGps00->is_arrivaled;
-            //double end = GetTickCount();
             decision_period = start - last;
             std::cout<<ServiceCarStatus.mRunTime.elapsed()<<"ms:"<< "\n周期时长:%f\n" << decision_period << std::endl;
-            //                iv::decition::VehicleStateBasic vsb;
-            //                vsb.mbBocheEnable = ServiceCarStatus.bocheEnable;
-            //                vsb.mfLidarObs = ServiceCarStatus.mLidarObs;
-            //                vsb.mfRadarObs = ServiceCarStatus.mRadarObs;
-            //                vsb.mfObs = ServiceCarStatus.mRadarObs;
-            //                vsb.decision_period = decision_period;
-            //                vsb.mbBrainRunning = ServiceCarStatus.mbBrainCtring;
-            ////                mpaVechicleState->writemsg((char *)&vsb,sizeof(iv::decition::VehicleStateBasic));
-
-            //                iv::modulecomm::ModuleSendMsg(mpaVechicleState,(char *)&vsb,sizeof(iv::decition::VehicleStateBasic));
 
             iv::brain::brainstate xbs;
             xbs.set_mbbocheenable(ServiceCarStatus.bocheEnable);
@@ -869,12 +852,8 @@ void iv::decition::BrainDecition::run() {
             xbs.set_decision_period(decision_period);
             ShareBrainstate(xbs);
 
-
-            //                decitionExecuter->executeDecition(decition_gps);
             ShareDecition(decition_gps);
 
-
-
             iv::brain::carstate car_xbs;
             car_xbs.set_mstate(ServiceCarStatus.mvehState);
             car_xbs.set_mavoidx(ServiceCarStatus.mavoidX);
@@ -891,15 +870,22 @@ void iv::decition::BrainDecition::run() {
             std::cout<<ServiceCarStatus.mRunTime.elapsed()<<"ms:"<< "\n决策速度:%f\n" << decition_gps->speed << std::endl;
 
             iv::bridge::sender brainSendRubbish;
-            if(ServiceCarStatus.brain_control_invalid==1){
-                brainSendRubbish.set_carctrl(ServiceCarStatus.brain_control_invalid);
+            if(ServiceCarStatus.cameraStart==1){
+                brainSendRubbish.set_camerastart(ServiceCarStatus.cameraStart);
                 ShareRubbishControl(brainSendRubbish);
             }
+            if(ServiceCarStatus.rubbish_dump==1){
+                brainSendRubbish.set_rbshboxctrl(ServiceCarStatus.rubbish_dump);
+                ShareRubbishControl(brainSendRubbish);
+                ServiceCarStatus.rubbish_dump=0;
+            }
+            if(ServiceCarStatus.rubbish_empty==1){
+                brainSendRubbish.set_rbshboxctrl(0);
+                ShareRubbishControl(brainSendRubbish);
+                ServiceCarStatus.rubbish_empty=0;
+            }
 
             last = start;
-            //decitionMaker->decideFromGPS(decition_gps, gps_data_, navigation_data);		//gps_data_为当前读到的gps位置信息  navigation_data为导航数据  decition_gps为根据前两者得出的决策速度与决策角度
-            //            }
-
         }
 
         if (handPark && decition_gps != NULL)

+ 1 - 0
src/decition/decition_brain_sf/decition/decide_gps_00.cpp

@@ -678,6 +678,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
             vehState=normalRun;
             ServiceCarStatus.mbRunPause=true;
             ServiceCarStatus.mnBocheComplete=100;
+            ServiceCarStatus.rubbish_dump=1;
             cout<<"泊车daowei mbRunPause+++++++++++++++++++++++++++++++++"<<endl;
         }