Skip to content

Commit b297d8b

Browse files
ddp, mpc, oc
1 parent e63b08e commit b297d8b

File tree

9 files changed

+27
-31
lines changed

9 files changed

+27
-31
lines changed

ocs2_ddp/test/HybridSlqTest.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ TEST(HybridSlqTest, state_rollout_slq) {
113113
// cost function
114114
const matrix_t Q = (matrix_t(STATE_DIM, STATE_DIM) << 50, 0, 0, 0, 50, 0, 0, 0, 0).finished();
115115
const matrix_t R = (matrix_t(INPUT_DIM, INPUT_DIM) << 1).finished();
116-
std::unique_ptr<ocs2::StateInputCost> cost(new QuadraticStateInputCost(Q, R));
117-
std::unique_ptr<ocs2::StateCost> preJumpCost(new QuadraticStateCost(Q));
118-
std::unique_ptr<ocs2::StateCost> finalCost(new QuadraticStateCost(Q));
116+
auto cost = std::make_unique<QuadraticStateInputCost>(Q, R);
117+
auto preJumpCost = std::make_unique<QuadraticStateCost>(Q);
118+
auto finalCost = std::make_unique<QuadraticStateCost>(Q);
119119

120120
// constraints
121-
std::unique_ptr<StateInputConstraint> boundsConstraints(new HybridSysBounds);
121+
auto boundsConstraints = std::make_unique<HybridSysBounds>();
122122

123123
OptimalControlProblem problem;
124124
problem.dynamicsPtr.reset(systemDynamics.clone());
@@ -138,7 +138,7 @@ TEST(HybridSlqTest, state_rollout_slq) {
138138
OperatingPoints operatingTrajectories(stateOperatingPoint, inputOperatingPoint);
139139

140140
// Test 1: Check constraint compliance. It uses a solver observer to get metrics for the bounds constraints
141-
std::unique_ptr<AugmentedLagrangianObserver> boundsConstraintsObserverPtr(new AugmentedLagrangianObserver("bounds"));
141+
auto boundsConstraintsObserverPtr = std::make_unique<AugmentedLagrangianObserver>("bounds");
142142
boundsConstraintsObserverPtr->setMetricsCallback([&](const scalar_array_t& timeTraj, const std::vector<LagrangianMetricsConstRef>& metricsTraj) {
143143
constexpr scalar_t constraintViolationTolerance = 1e-1;
144144
for (size_t i = 0; i < metricsTraj.size(); i++) {

ocs2_ddp/test/bouncingmass/BouncingMassTest.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,12 @@ TEST(BouncingMassTest, DISABLED_state_rollout_slq) {
125125
Q << 50.0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0.0, 0.0;
126126
matrix_t R(INPUT_DIM, INPUT_DIM);
127127
R << 1.0;
128-
std::unique_ptr<ocs2::StateInputCost> cost(new BouncingMassCost(reference, Q, R));
128+
auto cost = std::make_unique<BouncingMassCost>(reference, Q, R);
129129

130130
matrix_t Qf(STATE_DIM, STATE_DIM);
131131
Qf << 56.63, 7.07, 0.0, 7.07, 8.01, 0.0, 0.0, 0.0, 0.0;
132-
std::unique_ptr<ocs2::StateCost> finalCost(new BouncingMassFinalCost(reference, Qf, finalTime));
133-
std::unique_ptr<ocs2::StateCost> preJumpCost(new BouncingMassFinalCost(reference, Qf, finalTime));
132+
auto finalCost = std::make_unique<BouncingMassFinalCost>(reference, Qf, finalTime);
133+
auto preJumpCost = std::make_unique<BouncingMassFinalCost>(reference, Qf, finalTime);
134134

135135
ocs2::OptimalControlProblem problem;
136136
problem.dynamicsPtr.reset(systemDynamics.clone());

ocs2_ddp/test/testContinuousTimeLqr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ TEST(testContinousTimeLqr, compareWithMatlab) {
4747
const matrix_t Q = (matrix_t(2, 2) << 3.0, 2.0, 2.0, 4.0).finished();
4848
const matrix_t R = (matrix_t(1, 1) << 5.0).finished();
4949
const matrix_t P = (matrix_t(1, 2) << 0.1, 0.2).finished();
50-
std::unique_ptr<StateInputCost> cost(new QuadraticStateInputCost(Q, R, P));
50+
auto cost = std::make_unique<QuadraticStateInputCost>(Q, R, P);
5151

5252
const scalar_t time = 0.0;
5353
const vector_t state = vector_t::Zero(2);

ocs2_mpc/src/MPC_MRT_Interface.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,19 @@ void MPC_MRT_Interface::advanceMpc() {
117117
/******************************************************************************************************/
118118
void MPC_MRT_Interface::copyToBuffer(const SystemObservation& mpcInitObservation) {
119119
// policy
120-
std::unique_ptr<PrimalSolution> primalSolutionPtr(new PrimalSolution);
120+
auto primalSolutionPtr = std::make_unique<PrimalSolution>();
121121
const scalar_t startTime = mpcInitObservation.time;
122122
const scalar_t finalTime =
123123
(mpc_.settings().solutionTimeWindow_ < 0) ? mpc_.getSolverPtr()->getFinalTime() : startTime + mpc_.settings().solutionTimeWindow_;
124124
mpc_.getSolverPtr()->getPrimalSolution(finalTime, primalSolutionPtr.get());
125125

126126
// command
127-
std::unique_ptr<CommandData> commandPtr(new CommandData);
127+
auto commandPtr = std::make_unique<CommandData>();
128128
commandPtr->mpcInitObservation_ = mpcInitObservation;
129129
commandPtr->mpcTargetTrajectories_ = mpc_.getSolverPtr()->getReferenceManager().getTargetTrajectories();
130130

131131
// performance indices
132-
std::unique_ptr<PerformanceIndex> performanceIndicesPtr(new PerformanceIndex);
132+
auto performanceIndicesPtr = std::make_unique<PerformanceIndex>();
133133
*performanceIndicesPtr = mpc_.getSolverPtr()->getPerformanceIndeces();
134134

135135
this->moveToBuffer(std::move(commandPtr), std::move(primalSolutionPtr), std::move(performanceIndicesPtr));

ocs2_oc/test/include/ocs2_oc/test/EXP0.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ inline OptimalControlProblem createExp0Problem(const std::shared_ptr<ocs2::Refer
165165
problem.dynamicsPtr.reset(new EXP0_System(referenceManagerPtr));
166166

167167
// cost function
168-
problem.costPtr->add("cost", std::unique_ptr<ocs2::StateInputCost>(new ocs2::EXP0_Cost()));
169-
problem.finalCostPtr->add("finalCost", std::unique_ptr<ocs2::StateCost>(new ocs2::EXP0_FinalCost()));
168+
problem.costPtr->add("cost", std::make_unique<ocs2::EXP0_Cost>());
169+
problem.finalCostPtr->add("finalCost", std::make_unique<ocs2::EXP0_FinalCost>());
170170

171171
return problem;
172172
}

ocs2_oc/test/include/ocs2_oc/test/EXP1.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ inline OptimalControlProblem createExp1Problem(const std::shared_ptr<ocs2::Refer
222222
problem.dynamicsPtr.reset(new ocs2::EXP1_System(referenceManagerPtr));
223223

224224
// cost function
225-
problem.costPtr->add("cost", std::unique_ptr<ocs2::StateInputCost>(new ocs2::EXP1_Cost()));
226-
problem.finalCostPtr->add("finalCost", std::unique_ptr<ocs2::StateCost>(new ocs2::EXP1_FinalCost()));
225+
problem.costPtr->add("cost", std::make_unique<ocs2::EXP1_Cost>());
226+
problem.finalCostPtr->add("finalCost", std::make_unique<ocs2::EXP1_FinalCost>());
227227

228228
return problem;
229229
}

ocs2_oc/test/include/ocs2_oc/test/circular_kinematics.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,10 @@ inline OptimalControlProblem createCircularKinematicsProblem(const std::string&
126126
problem.dynamicsPtr.reset(new CircularKinematicsSystem());
127127

128128
// cost function
129-
std::unique_ptr<StateInputCost> cost(new CircularKinematicsCost(libraryFolder));
130-
problem.costPtr->add("cost", std::move(cost));
129+
problem.costPtr->add("cost", std::make_unique<CircularKinematicsCost>(libraryFolder));
131130

132131
// constraint
133-
std::unique_ptr<StateInputConstraint> constraint(new CircularKinematicsConstraints());
134-
problem.equalityConstraintPtr->add("constraint", std::move(constraint));
132+
problem.equalityConstraintPtr->add("constraint", std::make_unique<CircularKinematicsConstraints>());
135133

136134
return problem;
137135
}

ocs2_oc/test/include/ocs2_oc/test/testProblemsGeneration.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ inline ScalarFunctionQuadraticApproximation getRandomCost(int n, int m) {
5858
}
5959

6060
inline std::unique_ptr<ocs2::StateInputCost> getOcs2Cost(const ScalarFunctionQuadraticApproximation& cost) {
61-
return std::unique_ptr<ocs2::StateInputCost>(new ocs2::QuadraticStateInputCost(cost.dfdxx, cost.dfduu, cost.dfdux));
61+
return std::make_unique<ocs2::QuadraticStateInputCost>(cost.dfdxx, cost.dfduu, cost.dfdux);
6262
}
6363

6464
inline std::unique_ptr<ocs2::StateCost> getOcs2StateCost(const ScalarFunctionQuadraticApproximation& costFinal) {
65-
return std::unique_ptr<ocs2::StateCost>(new ocs2::QuadraticStateCost(costFinal.dfdxx));
65+
return std::make_unique<ocs2::QuadraticStateCost>(costFinal.dfdxx);
6666
}
6767

6868
/** Get random linear dynamics of n states and m inputs */
@@ -77,7 +77,7 @@ inline VectorFunctionLinearApproximation getRandomDynamics(int n, int m) {
7777
}
7878

7979
inline std::unique_ptr<ocs2::LinearSystemDynamics> getOcs2Dynamics(const VectorFunctionLinearApproximation& dynamics) {
80-
return std::unique_ptr<ocs2::LinearSystemDynamics>(new ocs2::LinearSystemDynamics(dynamics.dfdx, dynamics.dfdu));
80+
return std::make_unique<ocs2::LinearSystemDynamics>(dynamics.dfdx, dynamics.dfdu);
8181
}
8282

8383
/** Get random nc linear constraints of n states, and m inputs */
@@ -92,12 +92,12 @@ inline VectorFunctionLinearApproximation getRandomConstraints(int n, int m, int
9292
}
9393

9494
inline std::unique_ptr<ocs2::StateInputConstraint> getOcs2Constraints(const VectorFunctionLinearApproximation& stateInputConstraints) {
95-
return std::unique_ptr<ocs2::StateInputConstraint>(
96-
new ocs2::LinearStateInputConstraint(stateInputConstraints.f, stateInputConstraints.dfdx, stateInputConstraints.dfdu));
95+
return std::make_unique<ocs2::LinearStateInputConstraint>(stateInputConstraints.f, stateInputConstraints.dfdx,
96+
stateInputConstraints.dfdu);
9797
}
9898

9999
inline std::unique_ptr<ocs2::StateConstraint> getOcs2StateOnlyConstraints(const VectorFunctionLinearApproximation& stateOnlyConstraints) {
100-
return std::unique_ptr<ocs2::StateConstraint>(new ocs2::LinearStateConstraint(stateOnlyConstraints.f, stateOnlyConstraints.dfdx));
100+
return std::make_unique<ocs2::LinearStateConstraint>(stateOnlyConstraints.f, stateOnlyConstraints.dfdx);
101101
}
102102

103103
} // namespace ocs2

ocs2_oc/test/rollout/testTimeTriggeredRollout.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,13 @@ TEST(time_rollout_test, time_rollout_test) {
7272
}();
7373

7474
// rollout class
75-
std::unique_ptr<RolloutBase> rolloutBasePtr(new TimeTriggeredRollout(systemDynamics, rolloutSettings));
75+
auto rolloutPtr = std::make_unique<TimeTriggeredRollout>(systemDynamics, rolloutSettings);
7676

7777
scalar_array_t timeTrajectory;
78-
size_array_t eventsPastTheEndIndeces;
78+
size_array_t postEventIndices;
7979
vector_array_t stateTrajectory;
8080
vector_array_t inputTrajectory;
81-
82-
rolloutBasePtr->run(initTime, initState, finalTime, &controller, modeSchedule, timeTrajectory, eventsPastTheEndIndeces, stateTrajectory,
83-
inputTrajectory);
81+
rolloutPtr->run(initTime, initState, finalTime, &controller, modeSchedule, timeTrajectory, postEventIndices, stateTrajectory, inputTrajectory);
8482

8583
// check sizes
8684
const auto totalSize = timeTrajectory.size();

0 commit comments

Comments
 (0)