diff --git a/python/bezier_com_traj.cpp b/python/bezier_com_traj.cpp
index f1597d3867a2bba67380b368de0daa56d416071e..f73f47b27cd84d8f0e5620444f36dfb540e880db 100644
--- a/python/bezier_com_traj.cpp
+++ b/python/bezier_com_traj.cpp
@@ -1,5 +1,6 @@
 #include "hpp/bezier-com-traj/solve.hh"
 #include "hpp/bezier-com-traj/solver/solver-abstract.hpp"
+#include "hpp/bezier-com-traj/solve_end_effector.hh"
 #include <eigenpy/memory.hpp>
 #include <eigenpy/eigenpy.hpp>
 
@@ -358,6 +359,25 @@ ResultDataCOMTraj* computeCOMTrajPointerChooseSolver(const ProblemData& pData, c
 
 
 /** END computeCOMTraj **/
+/** BEGIN end effector **/
+
+struct DummyPath{
+
+  point3_t operator()(double /*u*/)const{
+    return point3_t::Zero();
+  }
+
+};
+
+
+ResultDataCOMTraj* computeEndEffector(const ProblemData& pData, const double time){
+
+   ResultDataCOMTraj  res =solveEndEffector<DummyPath>(pData,DummyPath(),time, 0);
+   return new ResultDataCOMTraj(res);
+}
+
+/** END end effector **/
+
 
 BOOST_PYTHON_MODULE(hpp_bezier_com_traj)
 {
@@ -467,6 +487,7 @@ BOOST_PYTHON_MODULE(hpp_bezier_com_traj)
     def("zeroStepCapturability", &zeroStepCapturabilityWithKinConstraints, return_value_policy<manage_new_object>());
     def("computeCOMTraj", &computeCOMTrajPointer, return_value_policy<manage_new_object>());
     def("computeCOMTraj", &computeCOMTrajPointerChooseSolver, return_value_policy<manage_new_object>());
+    def("computeEndEffector", &computeEndEffector, return_value_policy<manage_new_object>());
 
 }