Skip to content

Commit 0e34066

Browse files
authored
Merge pull request #24 from Simple-Robotics/topic/data_mpc
Changing ownership if the RobotData Object
2 parents d3bb9cf + 62907ff commit 0e34066

22 files changed

+84
-114
lines changed

bindings/expose-centroidal.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
namespace simple_mpc::python
77
{
88

9-
auto * createCentroidal(
10-
const bp::dict & settings, const RobotModelHandler & model_handler, const RobotDataHandler & data_handler)
9+
auto * createCentroidal(const bp::dict & settings, const RobotModelHandler & model_handler)
1110
{
1211
CentroidalSettings conf;
1312
conf.timestep = bp::extract<double>(settings["timestep"]);
@@ -25,7 +24,7 @@ namespace simple_mpc::python
2524
conf.Lfoot = bp::extract<double>(settings["Lfoot"]);
2625
conf.Wfoot = bp::extract<double>(settings["Wfoot"]);
2726

28-
return new CentroidalOCP(conf, model_handler, data_handler);
27+
return new CentroidalOCP(conf, model_handler);
2928
}
3029

3130
StageModel createCentStage(
@@ -113,8 +112,8 @@ namespace simple_mpc::python
113112

114113
bp::class_<CentroidalOCP, bp::bases<OCPHandler>, boost::noncopyable>("CentroidalOCP", bp::no_init)
115114
.def(
116-
"__init__", bp::make_constructor(
117-
&createCentroidal, bp::default_call_policies(), ("settings"_a, "model_handler", "data_handler")))
115+
"__init__",
116+
bp::make_constructor(&createCentroidal, bp::default_call_policies(), ("settings"_a, "model_handler")))
118117
.def("getSettings", &getSettingsCent)
119118
.def("createStage", &createCentStage);
120119
}

bindings/expose-fulldynamics.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
namespace simple_mpc::python
88
{
99

10-
auto * createFulldynamics(
11-
const bp::dict & settings, const RobotModelHandler & model_handler, const RobotDataHandler & data_handler)
10+
auto * createFulldynamics(const bp::dict & settings, const RobotModelHandler & model_handler)
1211
{
1312
FullDynamicsSettings conf;
1413
conf.timestep = bp::extract<double>(settings["timestep"]);
@@ -41,7 +40,7 @@ namespace simple_mpc::python
4140
conf.kinematics_limits = bp::extract<bool>(settings["kinematics_limits"]);
4241
conf.force_cone = bp::extract<bool>(settings["force_cone"]);
4342

44-
return new FullDynamicsOCP(conf, model_handler, data_handler);
43+
return new FullDynamicsOCP(conf, model_handler);
4544
}
4645

4746
StageModel createFullStage(
@@ -138,8 +137,7 @@ namespace simple_mpc::python
138137
bp::class_<FullDynamicsOCP, bp::bases<OCPHandler>, boost::noncopyable>("FullDynamicsOCP", bp::no_init)
139138
.def(
140139
"__init__",
141-
bp::make_constructor(
142-
&createFulldynamics, bp::default_call_policies(), ("settings"_a, "model_handler", "data_handler")))
140+
bp::make_constructor(&createFulldynamics, bp::default_call_policies(), ("settings"_a, "model_handler")))
143141
.def("getSettings", &getSettingsFull)
144142
.def("createStage", &createFullStage);
145143
}

bindings/expose-kinodynamics.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
namespace simple_mpc::python
77
{
88

9-
auto * createKinodynamics(
10-
const bp::dict & settings, const RobotModelHandler & model_handler, const RobotDataHandler & data_handler)
9+
auto * createKinodynamics(const bp::dict & settings, const RobotModelHandler & model_handler)
1110
{
1211
KinodynamicsSettings conf;
1312
conf.timestep = bp::extract<double>(settings["timestep"]);
@@ -30,7 +29,7 @@ namespace simple_mpc::python
3029
conf.kinematics_limits = bp::extract<bool>(settings["kinematics_limits"]);
3130
conf.force_cone = bp::extract<bool>(settings["force_cone"]);
3231

33-
return new KinodynamicsOCP(conf, model_handler, data_handler);
32+
return new KinodynamicsOCP(conf, model_handler);
3433
}
3534

3635
bp::dict getSettingsKino(KinodynamicsOCP & self)
@@ -122,8 +121,7 @@ namespace simple_mpc::python
122121
bp::class_<KinodynamicsOCP, bp::bases<OCPHandler>, boost::noncopyable>("KinodynamicsOCP", bp::no_init)
123122
.def(
124123
"__init__",
125-
bp::make_constructor(
126-
&createKinodynamics, bp::default_call_policies(), ("settings"_a, "model_handler", "data_handler")))
124+
bp::make_constructor(&createKinodynamics, bp::default_call_policies(), ("settings"_a, "model_handler")))
127125
.def("getSettings", &getSettingsKino)
128126
.def("createStage", &createKinoStage);
129127
}

bindings/expose-problem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ namespace simple_mpc
4444
{
4545
bp::register_ptr_to_python<std::shared_ptr<OCPHandler>>();
4646
bp::class_<PyOCPHandler, boost::noncopyable>("OCPHandler", bp::no_init)
47-
.def(bp::init<const RobotModelHandler &, const RobotDataHandler &>(("self"_a, "model_handler", "data_handler")))
47+
.def(bp::init<const RobotModelHandler &>(("self"_a, "model_handler")))
4848
.def(
4949
"createStage", bp::pure_virtual(&OCPHandler::createStage),
5050
("self"_a, "contact_map", "force_refs", "land_constraint"))
@@ -69,7 +69,7 @@ namespace simple_mpc
6969
.def("getVelocityBase", bp::pure_virtual(&OCPHandler::getVelocityBase), bp::args("self", "t"))
7070
.def("setPoseBase", bp::pure_virtual(&OCPHandler::setPoseBase), bp::args("self", "t", "pose_base"))
7171
.def("getPoseBase", bp::pure_virtual(&OCPHandler::getPoseBase), bp::args("self", "t"))
72-
.def("getProblemState", bp::pure_virtual(&OCPHandler::getProblemState), bp::args("self"))
72+
.def("getProblemState", bp::pure_virtual(&OCPHandler::getProblemState), bp::args("self", "data_handler"))
7373
.def("getContactSupport", bp::pure_virtual(&OCPHandler::getContactSupport), bp::args("self", "t"))
7474
.def(
7575
"createProblem", &OCPHandler::createProblem,

examples/go2_fulldynamics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
)
6565
T = 50
6666

67-
dynproblem = FullDynamicsOCP(problem_conf, model_handler, data_handler)
67+
dynproblem = FullDynamicsOCP(problem_conf, model_handler)
6868
dynproblem.createProblem(model_handler.getReferenceState(), T, force_size, gravity[2], False)
6969

7070
T_ds = 10

examples/go2_kinodynamics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
)
7575
T = 50
7676

77-
dynproblem = KinodynamicsOCP(problem_conf, model_handler, data_handler)
77+
dynproblem = KinodynamicsOCP(problem_conf, model_handler)
7878
dynproblem.createProblem(model_handler.getReferenceState(), T, force_size, gravity[2], False)
7979

8080
T_ds = 10

examples/talos_centroidal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
)
6969
T = 100
7070

71-
problem = CentroidalOCP(problem_conf, model_handler, data_handler)
71+
problem = CentroidalOCP(problem_conf, model_handler)
7272
problem.createProblem(data_handler.getCentroidalState(), T, 6, gravity[2], False)
7373

7474
T_ds = 20

examples/talos_fulldynamics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
)
9393

9494
T = 100
95-
dynproblem = FullDynamicsOCP(problem_conf, model_handler, data_handler)
95+
dynproblem = FullDynamicsOCP(problem_conf, model_handler)
9696
dynproblem.createProblem(x0, T, 6, gravity[2], False)
9797

9898
""" Define feet trajectory """

examples/talos_kinodynamics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104

105105
T = 100
106106

107-
problem = KinodynamicsOCP(problem_conf, model_handler, data_handler)
107+
problem = KinodynamicsOCP(problem_conf, model_handler)
108108
problem.createProblem(model_handler.getReferenceState(), T, 6, gravity[2], False)
109109

110110
""" Define MPC object """

include/simple-mpc/centroidal-dynamics.hpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ namespace simple_mpc
5959
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
6060

6161
// Constructor
62-
explicit CentroidalOCP(
63-
const CentroidalSettings & settings,
64-
const RobotModelHandler & model_handler,
65-
const RobotDataHandler & data_handler);
62+
explicit CentroidalOCP(const CentroidalSettings & settings, const RobotModelHandler & model_handler);
6663

6764
SIMPLE_MPC_DEFINE_DEFAULT_MOVE_CTORS(CentroidalOCP);
6865

@@ -77,7 +74,7 @@ namespace simple_mpc
7774

7875
// Manage terminal cost and constraint
7976
CostStack createTerminalCost() override;
80-
void createTerminalConstraint() override;
77+
void createTerminalConstraint(const Eigen::Vector3d & com_ref) override;
8178
void updateTerminalConstraint(const Eigen::Vector3d & com_ref) override;
8279

8380
// Getters and setters for pose not implemented
@@ -98,7 +95,7 @@ namespace simple_mpc
9895
void setVelocityBase(const std::size_t t, const Eigen::VectorXd & velocity_base) override;
9996
const Eigen::VectorXd getPoseBase(const std::size_t t) override;
10097
void setPoseBase(const std::size_t t, const Eigen::VectorXd & pose_base) override;
101-
const Eigen::VectorXd getProblemState() override;
98+
const Eigen::VectorXd getProblemState(const RobotDataHandler & data_handler) override;
10299
size_t getContactSupport(const std::size_t t) override;
103100

104101
CentroidalSettings getSettings()

0 commit comments

Comments
 (0)