aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
expose-croco-compat.cpp
Go to the documentation of this file.
1
3#ifdef ALIGATOR_WITH_CROCODDYL_COMPAT
6
7#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
8#include "aligator/compat/crocoddyl/instantiate.txx"
9#endif
10
11namespace aligator {
12namespace python {
13
15 bp::import("crocoddyl");
16
17 using context::Scalar;
18 namespace ns_croc = ::aligator::compat::croc;
19 bp::def("convertCrocoddylProblem",
20 &ns_croc::convertCrocoddylProblem<context::Scalar>,
21 bp::args("croc_problem"),
22 "Convert a Crocoddyl problem to an aligator problem.");
23
24 using CrocActionModel = crocoddyl::ActionModelAbstractTpl<Scalar>;
25 using StateAbstract = crocoddyl::StateAbstractTpl<Scalar>;
26 using ns_croc::context::ActionDataWrapper;
27 using ns_croc::context::ActionModelWrapper;
28 using ns_croc::context::DynamicsDataWrapper;
29 using ns_croc::context::StateWrapper;
30
31 bp::register_ptr_to_python<shared_ptr<ActionModelWrapper>>();
32 bp::class_<ActionModelWrapper, bp::bases<context::StageModel>>(
33 "ActionModelWrapper", "Wrapper for Crocoddyl action models.",
34 bp::init<boost::shared_ptr<CrocActionModel>>(bp::args("action_model")))
35 .def_readonly("action_model", &ActionModelWrapper::action_model_,
36 "Underlying Crocoddyl ActionModel.");
37
38 bp::register_ptr_to_python<shared_ptr<ActionDataWrapper>>();
39 bp::class_<ActionDataWrapper, bp::bases<context::StageData>>(
40 "ActionDataWrapper", bp::no_init)
41 .def(bp::init<const boost::shared_ptr<CrocActionModel> &>(
42 bp::args("self", "croc_action_model")))
43 .def_readonly("croc_action_data", &ActionDataWrapper::croc_action_data,
44 "Underlying Crocoddyl action data.");
45
46 bp::class_<DynamicsDataWrapper, bp::bases<context::StageFunctionData>>(
47 "DynamicsDataWrapper", bp::no_init)
48 .def(bp::init<const CrocActionModel &>(bp::args("self", "action_model")));
49
50 bp::class_<StateWrapper, bp::bases<context::Manifold>>(
51 "StateWrapper", "Wrapper for a Crocoddyl state.", bp::no_init)
52 .def(
53 bp::init<boost::shared_ptr<StateAbstract>>(bp::args("self", "state")))
54 .def_readonly("croc_state", &StateWrapper::croc_state);
55}
56
57} // namespace python
58} // namespace aligator
59#endif
crocoddyl::ActionModelAbstractTpl< Scalar > CrocActionModel
Definition context.hpp:24
void exposeCrocoddylCompat()
Main package namespace.