expose-delassus.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020-2021 INRIA
3 //
4 
6 
10 
12 
13 namespace bp = boost::python;
14 
15 namespace pinocchio
16 {
17  namespace python
18  {
20  RigidConstraintModelVector;
22  RigidConstraintDataVector;
23 
24  static const context::MatrixXs computeDelassusMatrix_proxy(
25  const context::Model & model,
27  const context::VectorXs & q,
28  const RigidConstraintModelVector & contact_models,
29  RigidConstraintDataVector & contact_datas,
31  {
32  const size_t constraint_size = getTotalConstraintSize(contact_models);
33  context::MatrixXs delassus(constraint_size, constraint_size);
35  make_symmetric(delassus);
36  return delassus;
37  }
38 
39  static const context::MatrixXs computeDampedDelassusMatrixInverse_proxy(
40  const context::Model & model,
42  const context::VectorXs & q,
43  const RigidConstraintModelVector & contact_models,
44  RigidConstraintDataVector & contact_datas,
45  const context::Scalar mu,
46  const bool scaled = false)
47  {
48  const size_t constraint_size = getTotalConstraintSize(contact_models);
49  context::MatrixXs delassus_inverse(constraint_size, constraint_size);
51  model, data, q, contact_models, contact_datas, delassus_inverse, mu, scaled);
52  make_symmetric(delassus_inverse);
53  return delassus_inverse;
54  }
55 
57  {
58  using namespace Eigen;
59 
60  bp::def(
61  "computeDelassusMatrix", computeDelassusMatrix_proxy,
62  (bp::arg("model"), bp::arg("data"), bp::arg("q"), bp::arg("contact_models"),
63  bp::arg("contact_datas"), bp::arg("mu") = 0),
64  "Computes the Delassus matrix associated to a set of given constraints.",
66 
67  bp::def(
68  "computeDampedDelassusMatrixInverse", computeDampedDelassusMatrixInverse_proxy,
69  (bp::arg("model"), bp::arg("data"), bp::arg("q"), bp::arg("contact_models"),
70  bp::arg("contact_datas"), bp::arg("mu") = 0),
71  "Computes the inverse of the Delassus matrix associated to a set of given constraints.",
73  }
74  } // namespace python
75 } // namespace pinocchio
pinocchio::computeDampedDelassusMatrixInverse
void computeDampedDelassusMatrixInverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data, const Eigen::MatrixBase< MatrixType > &damped_delassus_inverse, const Scalar mu, const bool scaled=false, const bool Pv=true)
Computes the inverse of the Delassus matrix associated to a set of given constraints.
boost::python
Eigen
pinocchio::python::context::RigidConstraintData
RigidConstraintDataTpl< Scalar, Options > RigidConstraintData
Definition: bindings/python/context/generic.hpp:149
pinocchio::computeDelassusMatrix
void computeDelassusMatrix(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data, const Eigen::MatrixBase< MatrixType > &delassus, const Scalar mu=0)
Computes the Delassus matrix associated to a set of given constraints.
pinocchio::DataTpl
Definition: context/generic.hpp:25
delassus.hpp
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::python::exposeDelassus
void exposeDelassus()
Definition: expose-delassus.cpp:56
pinocchio::python::VectorXs
context::VectorXs VectorXs
Definition: admm-solver.cpp:30
pinocchio::python::make_symmetric
void make_symmetric(const Eigen::MatrixBase< Matrix > &mat, const int mode=Eigen::Upper)
Definition: bindings/python/utils/eigen.hpp:24
simulation-contact-dynamics.contact_datas
list contact_datas
Definition: simulation-contact-dynamics.py:60
algorithms.hpp
python
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::python::mimic_not_supported_function
Definition: model-checker.hpp:22
pinocchio::getTotalConstraintSize
struct PINOCCHIO_UNSUPPORTED_MESSAGE("The API will change towards more flexibility") RigidConstraintModelTpl size_t getTotalConstraintSize(const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Contact model structure containg all the info describing the rigid contact model.
Definition: algorithm/contact-info.hpp:810
mu
double mu
Definition: delassus.cpp:58
pinocchio::python::computeDampedDelassusMatrixInverse_proxy
static const context::MatrixXs computeDampedDelassusMatrixInverse_proxy(const context::Model &model, context::Data &data, const context::VectorXs &q, const RigidConstraintModelVector &contact_models, RigidConstraintDataVector &contact_datas, const context::Scalar mu, const bool scaled=false)
Definition: expose-delassus.cpp:39
pinocchio::python::PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR
typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(context::RigidConstraintModel) RigidConstraintModelVector
pinocchio::python::computeDelassusMatrix_proxy
static const context::MatrixXs computeDelassusMatrix_proxy(const context::Model &model, context::Data &data, const context::VectorXs &q, const RigidConstraintModelVector &contact_models, RigidConstraintDataVector &contact_datas, const context::Scalar mu=context::Scalar(0))
Definition: expose-delassus.cpp:24
contact-cholesky.contact_models
list contact_models
Definition: contact-cholesky.py:22
std-vector.hpp
model-checker.hpp
pinocchio::ModelTpl
Definition: context/generic.hpp:20
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
eigen.hpp
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1082
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33


pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:46