Skip to content

Commit 95e0aac

Browse files
committed
add trajectorySpread of primalSolution
1 parent f42ec7f commit 95e0aac

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

Diff for: ocs2_slp/src/SlpSolver.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3939
#include <ocs2_oc/multiple_shooting/PerformanceIndexComputation.h>
4040
#include <ocs2_oc/multiple_shooting/Transcription.h>
4141
#include <ocs2_oc/precondition/Ruzi.h>
42+
#include <ocs2_oc/trajectory_adjustment/TrajectorySpreadingHelperFunctions.h>
4243

4344
#include "ocs2_slp/Helpers.h"
4445

@@ -172,6 +173,11 @@ void SlpSolver::runImpl(scalar_t initTime, const vector_t& initState, scalar_t f
172173
ocpDefinition.targetTrajectoriesPtr = &targetTrajectories;
173174
}
174175

176+
// Trajectory spread of primalSolution_
177+
if (!primalSolution_.timeTrajectory_.empty()) {
178+
std::ignore = trajectorySpread(primalSolution_.modeSchedule_, this->getReferenceManager().getModeSchedule(), primalSolution_);
179+
}
180+
175181
// Initialize the state and input
176182
vector_array_t x, u;
177183
multiple_shooting::initializeStateInputTrajectories(initState, timeDiscretization, primalSolution_, *initializerPtr_, x, u);

Diff for: ocs2_sqp/ocs2_sqp/src/SqpSolver.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3939
#include <ocs2_oc/multiple_shooting/PerformanceIndexComputation.h>
4040
#include <ocs2_oc/multiple_shooting/Transcription.h>
4141
#include <ocs2_oc/oc_problem/OcpSize.h>
42+
#include <ocs2_oc/trajectory_adjustment/TrajectorySpreadingHelperFunctions.h>
4243

4344
namespace ocs2 {
4445

@@ -170,6 +171,11 @@ void SqpSolver::runImpl(scalar_t initTime, const vector_t& initState, scalar_t f
170171
ocpDefinition.targetTrajectoriesPtr = &targetTrajectories;
171172
}
172173

174+
// Trajectory spread of primalSolution_
175+
if (!primalSolution_.timeTrajectory_.empty()) {
176+
std::ignore = trajectorySpread(primalSolution_.modeSchedule_, this->getReferenceManager().getModeSchedule(), primalSolution_);
177+
}
178+
173179
// Initialize the state and input
174180
vector_array_t x, u;
175181
multiple_shooting::initializeStateInputTrajectories(initState, timeDiscretization, primalSolution_, *initializerPtr_, x, u);

0 commit comments

Comments
 (0)