diff --git a/op_planner/include/op_planner/RoadNetwork.h b/op_planner/include/op_planner/RoadNetwork.h index 831ca5f..e6ebefa 100755 --- a/op_planner/include/op_planner/RoadNetwork.h +++ b/op_planner/include/op_planner/RoadNetwork.h @@ -1273,6 +1273,7 @@ class PlanningParams bool enableTrafficLightBehavior; bool enableStopSignBehavior; bool enableTimeOutAvoidance; + bool enableFinalLocalPathUpdate; double avoidanceTimeOut; bool enabTrajectoryVelocities; @@ -1319,6 +1320,7 @@ class PlanningParams enableLaneChange = false; enableStopSignBehavior = false; enabTrajectoryVelocities = false; + enableFinalLocalPathUpdate = true; minIndicationDistance = 15; enableTimeOutAvoidance = false; diff --git a/op_planner/src/DecisionMaker.cpp b/op_planner/src/DecisionMaker.cpp index e75bdc2..7e64aaa 100755 --- a/op_planner/src/DecisionMaker.cpp +++ b/op_planner/src/DecisionMaker.cpp @@ -536,7 +536,7 @@ void DecisionMaker::InitBehaviorStates() if((currIndex > index_limit || preCalcPrams->bRePlan - || preCalcPrams->bNewGlobalPath) && !preCalcPrams->bFinalLocalTrajectory && m_iSinceLastReplan > m_params.nReliableCount) + || preCalcPrams->bNewGlobalPath) && (!preCalcPrams->bFinalLocalTrajectory || m_params.enableFinalLocalPathUpdate) && m_iSinceLastReplan > m_params.nReliableCount) { m_iSinceLastReplan = 0; return true; @@ -558,7 +558,7 @@ void DecisionMaker::InitBehaviorStates() if((currIndex > index_limit || preCalcPrams->bRePlan - || preCalcPrams->bNewGlobalPath) && !preCalcPrams->bFinalLocalTrajectory && m_iSinceLastReplan > m_params.nReliableCount) + || preCalcPrams->bNewGlobalPath) && (!preCalcPrams->bFinalLocalTrajectory || m_params.enableFinalLocalPathUpdate) && m_iSinceLastReplan > m_params.nReliableCount) { //Debug //std::cout << "New Local Plan !! " << currIndex << ", "<< preCalcPrams->bRePlan << ", " << preCalcPrams->bNewGlobalPath << ", " << m_TotalPath.at(0).size() << ", PrevLocal: " << m_Path.size();