expose-constrained-dynamics.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020-2021 INRIA
3 //
4 
9 
13 
15 
16 namespace bp = boost::python;
17 
18 namespace pinocchio
19 {
20  namespace python
21  {
22 
24  RigidConstraintModelVector;
26  RigidConstraintDataVector;
27 
28 #ifndef PINOCCHIO_PYTHON_SKIP_ALGORITHM_CONSTRAINED_DYNAMICS
29 
31  const context::Model & model,
33  const context::VectorXs & q,
34  const context::VectorXs & v,
35  const context::VectorXs & tau,
36  const RigidConstraintModelVector & contact_models,
37  RigidConstraintDataVector & contact_datas,
39  {
40  return constraintDynamics(
42  }
43 
45  const context::Model & model,
47  const context::VectorXs & q,
48  const context::VectorXs & v,
49  const context::VectorXs & tau,
50  const RigidConstraintModelVector & contact_models,
51  RigidConstraintDataVector & contact_datas)
52  {
54  }
55 
56 #endif // PINOCCHIO_PYTHON_SKIP_ALGORITHM_CONSTRAINED_DYNAMICS
57 
59  {
60  using namespace Eigen;
61 
62  // Expose type of contacts
63  if (!register_symbolic_link_to_registered_type<ContactType>())
64  {
65  bp::enum_<ContactType>("ContactType")
66  .value("CONTACT_3D", CONTACT_3D)
67  .value("CONTACT_6D", CONTACT_6D)
68  .value("CONTACT_UNDEFINED", CONTACT_UNDEFINED);
69  }
70 
72 
75 
77 
79 
80 #ifndef PINOCCHIO_PYTHON_SKIP_ALGORITHM_CONSTRAINED_DYNAMICS
82 
83  bp::def(
84  "initConstraintDynamics",
87  typename RigidConstraintModelVector::allocator_type>,
88  bp::args("model", "data", "contact_models"),
89  "This function allows to allocate the memory before hand for contact dynamics algorithms.\n"
90  "This allows to avoid online memory allocation when running these algorithms.",
92 
93  bp::def(
94  "constraintDynamics", constraintDynamics_proxy,
95  bp::args(
96  "model", "data", "q", "v", "tau", "contact_models", "contact_datas", "prox_settings"),
97  "Computes the forward dynamics with contact constraints according to a given list of "
98  "Contact information.\n"
99  "When using constraintDynamics for the first time, you should call first "
100  "initConstraintDynamics to initialize the internal memory used in the algorithm.\n"
101  "This function returns joint acceleration of the system. The contact forces are "
102  "stored in the list data.contact_forces.",
104 
105  bp::def(
106  "constraintDynamics", constraintDynamics_proxy_default,
107  bp::args("model", "data", "q", "v", "tau", "contact_models", "contact_datas"),
108  "Computes the forward dynamics with contact constraints according to a given list of "
109  "Contact information.\n"
110  "When using constraintDynamics for the first time, you should call first "
111  "initConstraintDynamics to initialize the internal memory used in the algorithm.\n"
112  "This function returns joint acceleration of the system. The contact forces are "
113  "stored in the list data.contact_forces.",
115 
116 #endif // PINOCCHIO_PYTHON_SKIP_ALGORITHM_CONSTRAINED_DYNAMICS
117  }
118  } // namespace python
119 } // namespace pinocchio
proximal.hpp
pinocchio::python::constraintDynamics_proxy
static const context::VectorXs constraintDynamics_proxy(const context::Model &model, context::Data &data, const context::VectorXs &q, const context::VectorXs &v, const context::VectorXs &tau, const RigidConstraintModelVector &contact_models, RigidConstraintDataVector &contact_datas, context::ProximalSettings &prox_settings)
Definition: expose-constrained-dynamics.cpp:30
boost::python
Eigen
pinocchio::python::context::RigidConstraintData
RigidConstraintDataTpl< Scalar, Options > RigidConstraintData
Definition: bindings/python/context/generic.hpp:149
pinocchio::python::ProximalSettingsPythonVisitor::expose
static void expose()
Definition: bindings/python/algorithm/proximal.hpp:60
pinocchio::DataTpl
Definition: context/generic.hpp:25
registration.hpp
pinocchio::CONTACT_UNDEFINED
@ CONTACT_UNDEFINED
&#160;
Definition: algorithm/contact-info.hpp:23
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::python::constraintDynamics_proxy_default
static const context::VectorXs constraintDynamics_proxy_default(const context::Model &model, context::Data &data, const context::VectorXs &q, const context::VectorXs &v, const context::VectorXs &tau, const RigidConstraintModelVector &contact_models, RigidConstraintDataVector &contact_datas)
Definition: expose-constrained-dynamics.cpp:44
pinocchio::python::VectorXs
context::VectorXs VectorXs
Definition: admm-solver.cpp:30
pinocchio::CONTACT_6D
@ CONTACT_6D
Point contact model.
Definition: algorithm/contact-info.hpp:22
pinocchio::python::ContactCholeskyDecompositionPythonVisitor::expose
static void expose()
Definition: bindings/python/algorithm/contact-cholesky.hpp:161
simulation-contact-dynamics.contact_datas
list contact_datas
Definition: simulation-contact-dynamics.py:60
pinocchio::python::context::Options
@ Options
Definition: bindings/python/context/generic.hpp:40
forward-dynamics-derivatives.tau
tau
Definition: forward-dynamics-derivatives.py:25
pinocchio::ProximalSettingsTpl
Structure containing all the settings parameters for the proximal algorithms.
Definition: algorithm/fwd.hpp:13
algorithms.hpp
pinocchio::python::exposeConstraintDynamics
void exposeConstraintDynamics()
Definition: expose-constrained-dynamics.cpp:58
python
pinocchio::python::v
const Vector3Like & v
Definition: bindings/python/spatial/explog.hpp:66
pinocchio::initConstraintDynamics
void initConstraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the forward dynamics data according to the contact information contained in contact_models.
pinocchio::python::RigidConstraintModelPythonVisitor::expose
static void expose()
Definition: bindings/python/algorithm/contact-info.hpp:130
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
eigenpy::StdVectorPythonVisitor::expose
static void expose(const std::string &class_name, const bp::def_visitor< DerivedVisitor > &visitor)
pinocchio::python::mimic_not_supported_function
Definition: model-checker.hpp:22
pinocchio::python::PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR
typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(context::RigidConstraintModel) RigidConstraintModelVector
pinocchio::python::RigidConstraintDataPythonVisitor::expose
static void expose()
Definition: bindings/python/algorithm/contact-info.hpp:214
contact-info.hpp
contact-cholesky.contact_models
list contact_models
Definition: contact-cholesky.py:22
std-vector.hpp
pinocchio::JointCollectionDefaultTpl
Definition: context/generic.hpp:15
model-checker.hpp
pinocchio::ModelTpl
Definition: context/generic.hpp:20
contact-cholesky.hpp
constrained-dynamics.hpp
simulation-closed-kinematic-chains.prox_settings
prox_settings
Definition: simulation-closed-kinematic-chains.py:158
pinocchio::CONTACT_3D
@ CONTACT_3D
Definition: algorithm/contact-info.hpp:21
pinocchio::constraintDynamics
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
Computes the forward dynamics with contact constraints according to a given list of contact informati...
pinocchio::python::context::RigidConstraintModel
RigidConstraintModelTpl< Scalar, Options > RigidConstraintModel
Definition: bindings/python/context/generic.hpp:148
pinocchio::python::context::Scalar
PINOCCHIO_PYTHON_SCALAR_TYPE Scalar
Definition: bindings/python/context/generic.hpp:37
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1082
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33


pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:18