Skip to content

Commit c2ce839

Browse files
committed
fix time at preJump node of initialization
1 parent f4174ec commit c2ce839

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

ocs2_ipm/src/IpmSolver.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,8 @@ void IpmSolver::initializeSlackDualTrajectory(const std::vector<AnnotatedTime>&
425425
std::tie(slackStateIneq[i], std::ignore) = ipm::fromMultiplierCollection(slackIneqTrajectory_.preJumps[cachedEventIndex]);
426426
std::tie(dualStateIneq[i], std::ignore) = ipm::fromMultiplierCollection(dualIneqTrajectory_.preJumps[cachedEventIndex]);
427427
} else {
428-
slackStateIneq[i] = ipm::initializeEventSlackVariable(ocpDefinition, getIntervalStart(timeDiscretization[i]), x[i],
428+
scalar_t time = timeDiscretization[i].time;
429+
slackStateIneq[i] = ipm::initializeEventSlackVariable(ocpDefinition, timeDiscretization[i].time, x[i],
429430
settings_.initialSlackLowerBound, settings_.initialSlackMarginRate);
430431
dualStateIneq[i] =
431432
ipm::initializeDualVariable(slackStateIneq[i], barrierParam, settings_.initialDualLowerBound, settings_.initialDualMarginRate);
@@ -434,7 +435,7 @@ void IpmSolver::initializeSlackDualTrajectory(const std::vector<AnnotatedTime>&
434435
dualStateInputIneq[i].resize(0);
435436
++eventIdx;
436437
} else {
437-
const auto time = getIntervalStart(timeDiscretization[i]);
438+
const scalar_t time = getIntervalStart(timeDiscretization[i]);
438439
if (interpolatableTimePeriod.first <= time && time <= interpolatableTimePeriod.second) {
439440
std::tie(slackStateIneq[i], slackStateInputIneq[i]) =
440441
ipm::fromMultiplierCollection(getIntermediateDualSolutionAtTime(slackIneqTrajectory_, time));

0 commit comments

Comments
 (0)