Skip to content

Commit 3c68c05

Browse files
committed
renaming multishooting to sqp
1 parent 43c548d commit 3c68c05

File tree

15 files changed

+40
-35
lines changed

15 files changed

+40
-35
lines changed

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_anymal_loopshaping_mpc/src/AnymalLoopshapingMpcNode.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ int main(int argc, char* argv[]) {
3838
break;
3939
}
4040
case switched_model::Algorithm::SQP: {
41-
const auto sqpSettings =
42-
ocs2::multiple_shooting::loadSettings(anymal::getConfigFolderLoopshaping(configName) + "/multiple_shooting.info");
41+
const auto sqpSettings = ocs2::sqp::loadSettings(anymal::getConfigFolderLoopshaping(configName) + "/multiple_shooting.info");
4342
auto mpcPtr = getSqpMpc(*anymalInterface, mpcSettings, sqpSettings);
4443
quadrupedLoopshapingMpcNode(nodeHandle, *anymalInterface, std::move(mpcPtr));
4544
break;

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_anymal_loopshaping_mpc/src/PerceptiveMpcDemo.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ int main(int argc, char* argv[]) {
188188
const auto mpcSettings = ocs2::mpc::loadSettings(taskFolder + configName + "/task.info");
189189

190190
std::unique_ptr<ocs2::MPC_BASE> mpcPtr;
191-
const auto sqpSettings = ocs2::multiple_shooting::loadSettings(taskFolder + configName + "/multiple_shooting.info");
191+
const auto sqpSettings = ocs2::sqp::loadSettings(taskFolder + configName + "/multiple_shooting.info");
192192
switch (anymalInterface->modelSettings().algorithm_) {
193193
case switched_model::Algorithm::DDP: {
194194
const auto ddpSettings = ocs2::ddp::loadSettings(taskFolder + configName + "/task.info");

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_anymal_loopshaping_mpc/test/testMotionTracking.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class TestAnymalLoopshapingMpc : public ::testing::Test {
3737
problem.targetTrajectoriesPtr = &targetTrajectories;
3838

3939
const auto mpcSettings = ocs2::mpc::loadSettings(configFolder + "/task.info");
40-
const auto sqpSettings = ocs2::multiple_shooting::loadSettings(configFolder + "/multiple_shooting.info");
40+
const auto sqpSettings = ocs2::sqp::loadSettings(configFolder + "/multiple_shooting.info");
4141
mpcPtr = switched_model_loopshaping::getSqpMpc(*anymalInterface, mpcSettings, sqpSettings);
4242

4343
// Initialize

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_anymal_loopshaping_mpc/test/testSensitivity.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ TEST(TestAnymalLoopshapingMotionTracking, testSensitivity) {
2525
const auto csvData = switched_model::readCsv(motionFilesPath + motionName + ".txt");
2626
const auto motionData = switched_model::readMotion(csvData, 0.05);
2727
const auto mpcSettings = ocs2::mpc::loadSettings(configFolder + "/task.info");
28-
const auto sqpSettings = ocs2::multiple_shooting::loadSettings(configFolder + "/multiple_shooting.info");
28+
const auto sqpSettings = ocs2::sqp::loadSettings(configFolder + "/multiple_shooting.info");
2929
auto quadrupedSettings = switched_model::loadQuadrupedSettings(configFolder + "/task.info");
3030
const auto frameDecl = anymal::frameDeclarationFromFile(configFolder + "/frame_declaration.info");
3131
auto loopshapingDefinition = ocs2::loopshaping_property_tree::load(configFolder + "/loopshaping.info");

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_anymal_mpc/src/AnymalMpcNode.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ int main(int argc, char* argv[]) {
4141
break;
4242
}
4343
case switched_model::Algorithm::SQP: {
44-
const auto sqpSettings = ocs2::multiple_shooting::loadSettings(anymal::getConfigFolder(configName) + "/multiple_shooting.info");
44+
const auto sqpSettings = ocs2::sqp::loadSettings(anymal::getConfigFolder(configName) + "/multiple_shooting.info");
4545
auto mpcPtr = getSqpMpc(*anymalInterface, mpcSettings, sqpSettings);
4646
quadrupedMpcNode(nodeHandle, *anymalInterface, std::move(mpcPtr));
4747
break;

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_quadruped_interface/include/ocs2_quadruped_interface/QuadrupedMpc.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include <ocs2_ddp/DDP_Settings.h>
88
#include <ocs2_mpc/MPC_BASE.h>
99
#include <ocs2_mpc/MPC_Settings.h>
10-
#include <ocs2_sqp/MultipleShootingSettings.h>
10+
#include <ocs2_sqp/SqpSettings.h>
1111

1212
#include "ocs2_quadruped_interface/QuadrupedInterface.h"
1313

@@ -19,6 +19,6 @@ std::unique_ptr<ocs2::MPC_BASE> getDdpMpc(const QuadrupedInterface& quadrupedInt
1919

2020
/** Constructs an SQP MPC object */
2121
std::unique_ptr<ocs2::MPC_BASE> getSqpMpc(const QuadrupedInterface& quadrupedInterface, const ocs2::mpc::Settings& mpcSettings,
22-
const ocs2::multiple_shooting::Settings& sqpSettings);
22+
const ocs2::sqp::Settings& sqpSettings);
2323

2424
} // namespace switched_model

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_quadruped_interface/src/QuadrupedMpc.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "ocs2_quadruped_interface/QuadrupedMpc.h"
66

77
#include <ocs2_ddp/GaussNewtonDDP_MPC.h>
8-
#include <ocs2_sqp/MultipleShootingMpc.h>
8+
#include <ocs2_sqp/SqpMpc.h>
99

1010
namespace switched_model {
1111

@@ -20,9 +20,9 @@ std::unique_ptr<ocs2::MPC_BASE> getDdpMpc(const QuadrupedInterface& quadrupedInt
2020
}
2121

2222
std::unique_ptr<ocs2::MPC_BASE> getSqpMpc(const QuadrupedInterface& quadrupedInterface, const ocs2::mpc::Settings& mpcSettings,
23-
const ocs2::multiple_shooting::Settings& sqpSettings) {
24-
std::unique_ptr<ocs2::MPC_BASE> mpcPtr(new ocs2::MultipleShootingMpc(
25-
mpcSettings, sqpSettings, quadrupedInterface.getOptimalControlProblem(), quadrupedInterface.getInitializer()));
23+
const ocs2::sqp::Settings& sqpSettings) {
24+
std::unique_ptr<ocs2::MPC_BASE> mpcPtr(
25+
new ocs2::SqpMpc(mpcSettings, sqpSettings, quadrupedInterface.getOptimalControlProblem(), quadrupedInterface.getInitializer()));
2626
mpcPtr->getSolverPtr()->setReferenceManager(quadrupedInterface.getReferenceManagerPtr());
2727
mpcPtr->getSolverPtr()->setSynchronizedModules(quadrupedInterface.getSynchronizedModules());
2828
return mpcPtr;

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_quadruped_loopshaping_interface/include/ocs2_quadruped_loopshaping_interface/QuadrupedLoopshapingMpc.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include <ocs2_ddp/DDP_Settings.h>
88
#include <ocs2_mpc/MPC_BASE.h>
99
#include <ocs2_mpc/MPC_Settings.h>
10-
#include <ocs2_sqp/MultipleShootingSettings.h>
10+
#include <ocs2_sqp/SqpSettings.h>
1111

1212
#include "ocs2_quadruped_loopshaping_interface/QuadrupedLoopshapingInterface.h"
1313

@@ -19,6 +19,6 @@ std::unique_ptr<ocs2::MPC_BASE> getDdpMpc(const QuadrupedLoopshapingInterface& q
1919

2020
/** Constructs an SQP MPC object */
2121
std::unique_ptr<ocs2::MPC_BASE> getSqpMpc(const QuadrupedLoopshapingInterface& quadrupedInterface, const ocs2::mpc::Settings& mpcSettings,
22-
const ocs2::multiple_shooting::Settings& sqpSettings);
22+
const ocs2::sqp::Settings& sqpSettings);
2323

2424
} // namespace switched_model_loopshaping

Diff for: ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_quadruped_loopshaping_interface/src/QuadrupedLoopshapingMpc.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "ocs2_quadruped_loopshaping_interface/QuadrupedLoopshapingMpc.h"
66

77
#include <ocs2_ddp/GaussNewtonDDP_MPC.h>
8-
#include <ocs2_sqp/MultipleShootingMpc.h>
8+
#include <ocs2_sqp/SqpMpc.h>
99

1010
namespace switched_model_loopshaping {
1111

@@ -20,9 +20,9 @@ std::unique_ptr<ocs2::MPC_BASE> getDdpMpc(const QuadrupedLoopshapingInterface& q
2020
}
2121

2222
std::unique_ptr<ocs2::MPC_BASE> getSqpMpc(const QuadrupedLoopshapingInterface& quadrupedInterface, const ocs2::mpc::Settings& mpcSettings,
23-
const ocs2::multiple_shooting::Settings& sqpSettings) {
24-
std::unique_ptr<ocs2::MPC_BASE> mpcPtr(new ocs2::MultipleShootingMpc(
25-
mpcSettings, sqpSettings, quadrupedInterface.getOptimalControlProblem(), quadrupedInterface.getInitializer()));
23+
const ocs2::sqp::Settings& sqpSettings) {
24+
std::unique_ptr<ocs2::MPC_BASE> mpcPtr(
25+
new ocs2::SqpMpc(mpcSettings, sqpSettings, quadrupedInterface.getOptimalControlProblem(), quadrupedInterface.getInitializer()));
2626
mpcPtr->getSolverPtr()->setReferenceManager(quadrupedInterface.getReferenceManagerPtr());
2727
mpcPtr->getSolverPtr()->setSynchronizedModules({quadrupedInterface.getLoopshapingSynchronizedModule()});
2828
return mpcPtr;

Diff for: ocs2_sqp/ocs2_sqp/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ include_directories(
5050

5151
# Multiple shooting solver library
5252
add_library(${PROJECT_NAME}
53-
src/MultipleShootingLogging.cpp
53+
src/SqpLogging.cpp
5454
src/SqpSettings.cpp
5555
src/SqpSolver.cpp
5656
)

Diff for: ocs2_sqp/ocs2_sqp/include/ocs2_sqp/MultipleShootingLogging.h renamed to ocs2_sqp/ocs2_sqp/include/ocs2_sqp/SqpLogging.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3434

3535
#include <ocs2_core/Types.h>
3636

37-
#include <ocs2_oc/oc_solver/PerformanceIndex.h>
37+
#include <ocs2_oc/oc_data/PerformanceIndex.h>
3838

39-
#include "ocs2_sqp/MultipleShootingSolverStatus.h"
39+
#include "ocs2_sqp/SqpSolverStatus.h"
4040

4141
namespace ocs2 {
42-
namespace multiple_shooting {
42+
namespace sqp {
4343

4444
struct LogEntry {
4545
// Problem info
@@ -143,5 +143,5 @@ void Logger<T>::write(std::ostream& stream) const {
143143
}
144144
}
145145

146-
} // namespace multiple_shooting
146+
} // namespace sqp
147147
} // namespace ocs2

Diff for: ocs2_sqp/ocs2_sqp/include/ocs2_sqp/SqpSolver.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4242

4343
#include <hpipm_catkin/HpipmInterface.h>
4444

45-
#include "ocs2_sqp/MultipleShootingLogging.h"
45+
#include "ocs2_sqp/SqpLogging.h"
4646
#include "ocs2_sqp/SqpSettings.h"
4747
#include "ocs2_sqp/SqpSolverStatus.h"
4848

@@ -186,8 +186,9 @@ class SqpSolver : public SolverBase {
186186
ProblemMetrics problemMetrics_;
187187

188188
// Benchmarking
189+
size_t numProblems_{0};
189190
size_t totalNumIterations_{0};
190-
multiple_shooting::Logger<multiple_shooting::LogEntry> logger_;
191+
sqp::Logger<sqp::LogEntry> logger_;
191192
benchmark::RepeatedTimer initializationTimer_;
192193
benchmark::RepeatedTimer linearQuadraticApproximationTimer_;
193194
benchmark::RepeatedTimer solveQpTimer_;

Diff for: ocs2_sqp/ocs2_sqp/src/MultipleShootingLogging.cpp renamed to ocs2_sqp/ocs2_sqp/src/SqpLogging.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
******************************************************************************/
2929

30-
#include "ocs2_sqp/MultipleShootingLogging.h"
30+
#include "ocs2_sqp/SqpLogging.h"
3131

3232
#include <iomanip>
3333

3434
namespace ocs2 {
35-
namespace multiple_shooting {
35+
namespace sqp {
3636

3737
std::ostream& operator<<(std::ostream& stream, const LogEntry& logEntry) {
3838
const std::string delim = ", ";
@@ -90,5 +90,5 @@ std::string logHeader() {
9090
return stream.str();
9191
}
9292

93-
} // namespace multiple_shooting
93+
} // namespace sqp
9494
} // namespace ocs2

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

+10-5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3333
#include <iostream>
3434
#include <numeric>
3535

36+
#include <boost/filesystem.hpp>
37+
3638
#include <ocs2_oc/multiple_shooting/Helpers.h>
3739
#include <ocs2_oc/multiple_shooting/Initialization.h>
3840
#include <ocs2_oc/multiple_shooting/MetricsComputation.h>
@@ -98,11 +100,11 @@ SqpSolver::~SqpSolver() {
98100
// Write to file
99101
const std::string logFileName = settings_.logFilePath + "log_" + timeStamp + ".txt";
100102
if (std::ofstream logfile{logFileName}) {
101-
logfile << multiple_shooting::logHeader();
103+
logfile << sqp::logHeader();
102104
logger_.write(logfile);
103-
std::cerr << "[MultipleShootingSolver] Log written to '" << logFileName << "'\n";
105+
std::cerr << "[SqpSolver] Log written to '" << logFileName << "'\n";
104106
} else {
105-
std::cerr << "[MultipleShootingSolver] Unable to open '" << logFileName << "'\n";
107+
std::cerr << "[SqpSolver] Unable to open '" << logFileName << "'\n";
106108
}
107109
}
108110
}
@@ -114,8 +116,9 @@ void SqpSolver::reset() {
114116
performanceIndeces_.clear();
115117

116118
// reset timers
119+
numProblems_ = 0;
117120
totalNumIterations_ = 0;
118-
logger_ = multiple_shooting::Logger<multiple_shooting::LogEntry>(settings_.logSize);
121+
logger_ = sqp::Logger<sqp::LogEntry>(settings_.logSize);
119122
linearQuadraticApproximationTimer_.reset();
120123
solveQpTimer_.reset();
121124
linesearchTimer_.reset();
@@ -244,7 +247,7 @@ void SqpSolver::runImpl(scalar_t initTime, const vector_t& initState, scalar_t f
244247
logEntry.solveQpTime = solveQpTimer_.getLastIntervalInMilliseconds();
245248
logEntry.linesearchTime = linesearchTimer_.getLastIntervalInMilliseconds();
246249
logEntry.baselinePerformanceIndex = baselinePerformance;
247-
logEntry.totalConstraintViolationBaseline = totalConstraintViolation(baselinePerformance);
250+
logEntry.totalConstraintViolationBaseline = FilterLinesearch::totalConstraintViolation(baselinePerformance);
248251
logEntry.stepInfo = stepInfo;
249252
logEntry.convergence = convergence;
250253
logger_.advance();
@@ -255,6 +258,8 @@ void SqpSolver::runImpl(scalar_t initTime, const vector_t& initState, scalar_t f
255258
++totalNumIterations_;
256259
}
257260

261+
++numProblems_;
262+
258263
computeControllerTimer_.startTimer();
259264
primalSolution_ = toPrimalSolution(timeDiscretization, std::move(x), std::move(u));
260265
problemMetrics_ = multiple_shooting::toProblemMetrics(timeDiscretization, std::move(metrics));

Diff for: ocs2_sqp/ocs2_sqp/test/testLogging.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

3030
#include <gtest/gtest.h>
3131

32-
#include "ocs2_sqp/MultipleShootingLogging.h"
32+
#include "ocs2_sqp/SqpLogging.h"
3333

3434
using namespace ocs2;
3535

3636
TEST(test_logging, wrap_around) {
3737
const int Ntest = 3;
38-
multiple_shooting::Logger<int> logger(Ntest);
38+
sqp::Logger<int> logger(Ntest);
3939

4040
std::stringstream stream;
4141

0 commit comments

Comments
 (0)