Directory: | ./ |
---|---|
File: | bindings/python/algorithm/expose-contact-jacobian.cpp |
Date: | 2025-02-12 21:03:38 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 6 | 17 | 35.3% |
Branches: | 2 | 16 | 12.5% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | // | ||
2 | // Copyright (c) 2021 INRIA | ||
3 | // | ||
4 | |||
5 | #include "pinocchio/bindings/python/algorithm/algorithms.hpp" | ||
6 | #include "pinocchio/algorithm/contact-jacobian.hpp" | ||
7 | |||
8 | #include "pinocchio/bindings/python/utils/std-vector.hpp" | ||
9 | |||
10 | namespace bp = boost::python; | ||
11 | |||
12 | namespace pinocchio | ||
13 | { | ||
14 | namespace python | ||
15 | { | ||
16 | |||
17 | typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(context::RigidConstraintModel) | ||
18 | RigidConstraintModelVector; | ||
19 | typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(context::RigidConstraintData) | ||
20 | RigidConstraintDataVector; | ||
21 | |||
22 | ✗ | static context::MatrixXs getConstraintJacobian_proxy( | |
23 | const context::Model & model, | ||
24 | const context::Data & data, | ||
25 | const context::RigidConstraintModel & contact_model, | ||
26 | context::RigidConstraintData & contact_data) | ||
27 | { | ||
28 | ✗ | context::MatrixXs J(contact_model.size(), model.nv); | |
29 | ✗ | J.setZero(); | |
30 | ✗ | getConstraintJacobian(model, data, contact_model, contact_data, J); | |
31 | ✗ | return J; | |
32 | } | ||
33 | |||
34 | ✗ | static context::MatrixXs getConstraintsJacobian_proxy( | |
35 | const context::Model & model, | ||
36 | const context::Data & data, | ||
37 | const RigidConstraintModelVector & contact_models, | ||
38 | RigidConstraintDataVector & contact_datas) | ||
39 | { | ||
40 | ✗ | const Eigen::DenseIndex constraint_size = getTotalConstraintSize(contact_models); | |
41 | ✗ | context::MatrixXs J(constraint_size, model.nv); | |
42 | ✗ | J.setZero(); | |
43 | ✗ | getConstraintsJacobian(model, data, contact_models, contact_datas, J); | |
44 | ✗ | return J; | |
45 | } | ||
46 | |||
47 | 69 | void exposeContactJacobian() | |
48 | { | ||
49 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::def( |
50 | "getConstraintJacobian", getConstraintJacobian_proxy, | ||
51 | 138 | bp::args("model", "data", "contact_model", "contact_data"), | |
52 | "Computes the kinematic Jacobian associatied to a given constraint model."); | ||
53 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::def( |
54 | "getConstraintsJacobian", getConstraintsJacobian_proxy, | ||
55 | 138 | bp::args("model", "data", "contact_models", "contact_datas"), | |
56 | "Computes the kinematic Jacobian associatied to a given set of constraint models."); | ||
57 | 69 | } | |
58 | } // namespace python | ||
59 | } // namespace pinocchio | ||
60 |