Browse Source

change decition_brain_sf_changan_shenlan.

yuchuli 1 year ago
parent
commit
8c19cb60cd

+ 7 - 2
src/controller/controller_changan_shenlan_v2/main.cpp

@@ -190,9 +190,9 @@ void executeDecition(const iv::brain::decition &decition)
     /*制动过程用的减速度,加速用扭矩*/
     _m24E.ACC_AccTrqReq = ECU_24E_ACC_AccTrqReq_toS(decition.torque());
     _m24E.ACC_AccTrqReqActive = decition.acc_active();
-    if(decition.brake()<(-1.5))
+    if(decition.brake()<(-5.0))
     {
-        _m24E.ACC_ACCTargetAcceleration = ECU_24E_ACC_ACCTargetAcceleration_toS(-1.5);
+        _m24E.ACC_ACCTargetAcceleration = ECU_24E_ACC_ACCTargetAcceleration_toS(-5.0);
     }
     else
         _m24E.ACC_ACCTargetAcceleration = ECU_24E_ACC_ACCTargetAcceleration_toS(decition.brake());
@@ -357,6 +357,8 @@ void Activate()
 {
     std::this_thread::sleep_for(std::chrono::milliseconds(100));
     iv::brain::decition xdecition;
+    xdecition.set_brake(0.0);
+    xdecition.set_torque(0.0);
 //    for(int j=0;j<100000;j++)
 //    {
         std::cout<<" run "<<std::endl;
@@ -392,6 +394,9 @@ void Activate()
 void UnAcitvate()
 {
     iv::brain::decition xdecition;
+
+    xdecition.set_brake(0.0);
+    xdecition.set_torque(0.0);
     for(int i = 0; i < 3; i++){
         xdecition.set_wheelangle(0);
         xdecition.set_angle_mode(1);

+ 5 - 0
src/decition/decition_brain_sf_changan_shenlan/decition/adc_adapter/changan_shenlan_adapter.cpp

@@ -117,6 +117,11 @@ iv::decition::Decition iv::decition::ChanganShenlanAdapter::getAdapterDeciton(GP
         (*decition)->torque= controlSpeed;
         lastTorque=(*decition)->torque;
 
+   if((*decition)->brake < (ServiceCarStatus.mfChassisMaxBrake*(-1.0)))
+   {
+       (*decition)->brake = ServiceCarStatus.mfChassisMaxBrake*(-1.0);
+   }
+
 //    (*decition)->accelerator = 0 - controlBrake/25;
 //    (*decition)->niuju_y = controlSpeed;
 //    lastTorque = (*decition)->niuju_y;

+ 4 - 0
src/decition/decition_brain_sf_changan_shenlan/decition/brain.cpp

@@ -436,6 +436,10 @@ void iv::decition::BrainDecition::run() {
     ServiceCarStatus.mfMaxSpeed = sqrt(2.0 * ServiceCarStatus.mfChassisMaxBrake * (ServiceCarStatus.mfPerceptionMax - 5.0)) * 3.6;
 
     if((ServiceCarStatus.msysparam.mvehtype=="shenlan") &&(ServiceCarStatus.mbLimitSpeed))
+    {
+        ServiceCarStatus.mfMaxSpeed = 20.0;
+        ServiceCarStatus.mfChassisMaxBrake = 1.5;
+    }
 
 
     if(ServiceCarStatus.msysparam.mvehtype=="hunter")

+ 1 - 0
src/detection/detection_chassis/decodechassis.cpp

@@ -510,6 +510,7 @@ int ProcShenLanCANFDChassis(void *pa, iv::can::canmsg *pmsg)
                 vehspeed = static_cast<double>(value) * 0.05625;
 
                 xchassis.set_vel(static_cast<float>(vehspeed));
+
                 ShareChassis(pa,&xchassis);
                 xchassis.clear_angle_feedback();
                 std::cout<<"veh: "<<xchassis.vel()<<std::endl;