From b34a4e4dad02591f71c8665eff896e104abb3fed Mon Sep 17 00:00:00 2001
From: Carlos Mastalli <carlos.mastalli@laas.fr>
Date: Fri, 30 Aug 2019 17:15:51 +0200
Subject: [PATCH] [bindings] Expose the Jacobian of the impulse constraint
 w.r.t. to configuration point

---
 bindings/python/crocoddyl/multibody/impulse-base.hpp      | 2 ++
 .../crocoddyl/multibody/impulses/multiple-impulses.hpp    | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/bindings/python/crocoddyl/multibody/impulse-base.hpp b/bindings/python/crocoddyl/multibody/impulse-base.hpp
index 1d99d58f..be0becea 100644
--- a/bindings/python/crocoddyl/multibody/impulse-base.hpp
+++ b/bindings/python/crocoddyl/multibody/impulse-base.hpp
@@ -90,6 +90,8 @@ void exposeImpulseAbstract() {
                     "pinocchio data")
       .add_property("Jc", bp::make_getter(&ImpulseDataAbstract::Jc, bp::return_value_policy<bp::return_by_value>()),
                     bp::make_setter(&ImpulseDataAbstract::Jc), "impulse Jacobian")
+      .add_property("Vq", bp::make_getter(&ImpulseDataAbstract::Vq, bp::return_value_policy<bp::return_by_value>()),
+                    bp::make_setter(&ImpulseDataAbstract::Vq), "Jacobian of the impulse constraint")
       .def_readwrite("joint", &ImpulseDataAbstract::joint, "joint index of the impulse frame")
       .def_readwrite("f", &ImpulseDataAbstract::f, "external spatial forces");
 }
diff --git a/bindings/python/crocoddyl/multibody/impulses/multiple-impulses.hpp b/bindings/python/crocoddyl/multibody/impulses/multiple-impulses.hpp
index 6ac879c0..26c43b07 100644
--- a/bindings/python/crocoddyl/multibody/impulses/multiple-impulses.hpp
+++ b/bindings/python/crocoddyl/multibody/impulses/multiple-impulses.hpp
@@ -47,10 +47,10 @@ void exposeImpulseMultiple() {
                     "impulse model");
 
   bp::class_<ImpulseModelMultiple, boost::noncopyable>(
-      "ImpulseModelMultiple", bp::init<StateMultibody&>(
-                                  bp::args(" self", " state"),
-                                  "Initialize the multiple impulse model.\n\n"
-                                  ":param state: state of the multibody system")[bp::with_custodian_and_ward<1, 2>()])
+      "ImpulseModelMultiple",
+      bp::init<StateMultibody&>(bp::args(" self", " state"),
+                                "Initialize the multiple impulse model.\n\n"
+                                ":param state: state of the multibody system")[bp::with_custodian_and_ward<1, 2>()])
       .def("addImpulse", &ImpulseModelMultiple::addImpulse, bp::with_custodian_and_ward<1, 3>(),
            bp::args(" self", " name", " impulse"),
            "Add a impulse item.\n\n"
-- 
GitLab