aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
expose-freefwd.cpp
Go to the documentation of this file.
1
3
5
6namespace aligator {
7namespace python {
9 using namespace aligator::dynamics;
10 using context::Scalar;
11 using ODEData = ODEDataTpl<Scalar>;
12 using ODEAbstract = ODEAbstractTpl<Scalar>;
13 using MultibodyFreeFwdData = MultibodyFreeFwdDataTpl<Scalar>;
14 using MultibodyFreeFwdDynamics = MultibodyFreeFwdDynamicsTpl<Scalar>;
15 using proxsuite::nlp::MultibodyPhaseSpace;
16
17 using StateManifoldPtr = shared_ptr<MultibodyPhaseSpace<Scalar>>;
18
19 bp::class_<MultibodyFreeFwdDynamics, bp::bases<ODEAbstract>>(
20 "MultibodyFreeFwdDynamics",
21 "Free-space forward dynamics on multibodies using Pinocchio's ABA "
22 "algorithm.",
23 bp::init<StateManifoldPtr, const context::MatrixXs &>(
24 "Constructor where the actuation matrix is provided.",
25 bp::args("self", "space", "actuation_matrix")))
26 .def(bp::init<StateManifoldPtr>(
27 "Constructor without actuation matrix (assumed to be the (nu,nu) "
28 "identity matrix).",
29 bp::args("self", "space")))
30 .add_property("ntau", &MultibodyFreeFwdDynamics::ntau,
31 "Torque dimension.")
32 .add_property(
33 "isUnderactuated", &MultibodyFreeFwdDynamics::isUnderactuated,
34 "Whether the system is underactuated, i.e. if the actuation matrix "
35 "rank is lower than the acceleration vector's dimension.")
36 .add_property("actuationMatrixRank",
37 &MultibodyFreeFwdDynamics::getActuationMatrixRank,
38 "Get the rank of the actuation matrix.");
39
40 bp::register_ptr_to_python<shared_ptr<MultibodyFreeFwdData>>();
41
42 bp::class_<MultibodyFreeFwdData, bp::bases<ODEData>>("MultibodyFreeFwdData",
43 bp::no_init)
44 .def_readwrite("tau", &MultibodyFreeFwdData::tau_)
45 .def_readwrite("dtau_dx", &MultibodyFreeFwdData::dtau_dx_)
46 .def_readwrite("dtau_du", &MultibodyFreeFwdData::dtau_du_)
47 .def_readwrite("pin_data", &MultibodyFreeFwdData::pin_data_);
48}
49} // namespace python
50} // namespace aligator
Namespace for modelling system dynamics.
Main package namespace.