placo 0.6.0__tar.gz → 0.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of placo might be problematic. Click here for more details.

Files changed (165) hide show
  1. {placo-0.6.0 → placo-0.6.2}/PKG-INFO +1 -1
  2. {placo-0.6.0 → placo-0.6.2}/bindings/expose-dynamics.cpp +27 -51
  3. {placo-0.6.0 → placo-0.6.2}/bindings/expose-footsteps.cpp +2 -3
  4. {placo-0.6.0 → placo-0.6.2}/bindings/expose-kinematics.cpp +8 -16
  5. {placo-0.6.0 → placo-0.6.2}/bindings/expose-parameters.cpp +1 -0
  6. {placo-0.6.0 → placo-0.6.2}/bindings/expose-problem.cpp +7 -12
  7. {placo-0.6.0 → placo-0.6.2}/bindings/expose-robot-wrapper.cpp +7 -17
  8. {placo-0.6.0 → placo-0.6.2}/bindings/expose-tools.cpp +3 -6
  9. {placo-0.6.0 → placo-0.6.2}/bindings/expose-walk-pattern-generator.cpp +1 -0
  10. {placo-0.6.0 → placo-0.6.2}/placo.pyi +4 -0
  11. {placo-0.6.0 → placo-0.6.2}/pyproject.toml +1 -1
  12. {placo-0.6.0 → placo-0.6.2}/.clang-format +0 -0
  13. {placo-0.6.0 → placo-0.6.2}/.gitattributes +0 -0
  14. {placo-0.6.0 → placo-0.6.2}/.gitignore +0 -0
  15. {placo-0.6.0 → placo-0.6.2}/.readthedocs.yaml +0 -0
  16. {placo-0.6.0 → placo-0.6.2}/CMakeLists.txt +0 -0
  17. {placo-0.6.0 → placo-0.6.2}/Doxyfile +0 -0
  18. {placo-0.6.0 → placo-0.6.2}/LICENSE +0 -0
  19. {placo-0.6.0 → placo-0.6.2}/Makefile +0 -0
  20. {placo-0.6.0 → placo-0.6.2}/README.md +0 -0
  21. {placo-0.6.0 → placo-0.6.2}/bindings/expose-eigen.cpp +0 -0
  22. {placo-0.6.0 → placo-0.6.2}/bindings/expose-utils.hpp +0 -0
  23. {placo-0.6.0 → placo-0.6.2}/bindings/module.cpp +0 -0
  24. {placo-0.6.0 → placo-0.6.2}/bindings/module.h +0 -0
  25. {placo-0.6.0 → placo-0.6.2}/bindings/registry.cpp +0 -0
  26. {placo-0.6.0 → placo-0.6.2}/bindings/registry.h +0 -0
  27. {placo-0.6.0 → placo-0.6.2}/doxygen_parse.py +0 -0
  28. {placo-0.6.0 → placo-0.6.2}/python/.vscode/settings.json +0 -0
  29. {placo-0.6.0 → placo-0.6.2}/python/Makefile +0 -0
  30. {placo-0.6.0 → placo-0.6.2}/python/placo_utils/__init__.py +0 -0
  31. {placo-0.6.0 → placo-0.6.2}/python/placo_utils/tf.py +0 -0
  32. {placo-0.6.0 → placo-0.6.2}/python/placo_utils/view.py +0 -0
  33. {placo-0.6.0 → placo-0.6.2}/python/placo_utils/visualization.py +0 -0
  34. {placo-0.6.0 → placo-0.6.2}/python/run_tests.sh +0 -0
  35. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  36. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  37. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/com_task.cpp +0 -0
  38. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/com_task.h +0 -0
  39. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/constraint.cpp +0 -0
  40. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/constraint.h +0 -0
  41. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/contacts.cpp +0 -0
  42. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/contacts.h +0 -0
  43. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  44. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/dynamics_solver.h +0 -0
  45. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/frame_task.cpp +0 -0
  46. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/frame_task.h +0 -0
  47. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/gear_task.cpp +0 -0
  48. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/gear_task.h +0 -0
  49. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/joints_task.cpp +0 -0
  50. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/joints_task.h +0 -0
  51. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/orientation_task.cpp +0 -0
  52. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/orientation_task.h +0 -0
  53. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/position_task.cpp +0 -0
  54. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/position_task.h +0 -0
  55. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  56. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_frame_task.h +0 -0
  57. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  58. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_orientation_task.h +0 -0
  59. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_position_task.cpp +0 -0
  60. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/relative_position_task.h +0 -0
  61. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/task.cpp +0 -0
  62. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/task.h +0 -0
  63. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/torque_task.cpp +0 -0
  64. {placo-0.6.0 → placo-0.6.2}/src/placo/dynamics/torque_task.h +0 -0
  65. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  66. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/foot_trajectory.h +0 -0
  67. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner.cpp +0 -0
  68. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner.h +0 -0
  69. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
  70. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  71. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  72. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  73. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
  74. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/humanoid_parameters.h +0 -0
  75. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  76. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/humanoid_robot.h +0 -0
  77. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/kick.cpp +0 -0
  78. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/kick.h +0 -0
  79. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/lipm.cpp +0 -0
  80. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/lipm.h +0 -0
  81. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot.cpp +0 -0
  82. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot.h +0 -0
  83. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
  84. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  85. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  86. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  87. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
  88. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/walk_pattern_generator.h +0 -0
  89. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/walk_tasks.cpp +0 -0
  90. {placo-0.6.0 → placo-0.6.2}/src/placo/humanoid/walk_tasks.h +0 -0
  91. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  92. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  93. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/axis_align_task.cpp +0 -0
  94. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/axis_align_task.h +0 -0
  95. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  96. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  97. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
  98. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  99. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/com_task.cpp +0 -0
  100. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/com_task.h +0 -0
  101. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/cone_constraint.cpp +0 -0
  102. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/cone_constraint.h +0 -0
  103. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/constraint.cpp +0 -0
  104. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/constraint.h +0 -0
  105. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/distance_task.cpp +0 -0
  106. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/distance_task.h +0 -0
  107. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/frame_task.cpp +0 -0
  108. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/frame_task.h +0 -0
  109. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/gear_task.cpp +0 -0
  110. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/gear_task.h +0 -0
  111. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/joints_task.cpp +0 -0
  112. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/joints_task.h +0 -0
  113. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/kinematics_solver.cpp +0 -0
  114. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/kinematics_solver.h +0 -0
  115. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  116. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  117. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/manipulability_task.cpp +0 -0
  118. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/manipulability_task.h +0 -0
  119. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/orientation_task.cpp +0 -0
  120. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/orientation_task.h +0 -0
  121. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/position_task.cpp +0 -0
  122. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/position_task.h +0 -0
  123. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/regularization_task.cpp +0 -0
  124. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/regularization_task.h +0 -0
  125. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  126. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_frame_task.h +0 -0
  127. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  128. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_orientation_task.h +0 -0
  129. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_position_task.cpp +0 -0
  130. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/relative_position_task.h +0 -0
  131. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/task.cpp +0 -0
  132. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/task.h +0 -0
  133. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/wheel_task.cpp +0 -0
  134. {placo-0.6.0 → placo-0.6.2}/src/placo/kinematics/wheel_task.h +0 -0
  135. {placo-0.6.0 → placo-0.6.2}/src/placo/model/robot_wrapper.cpp +0 -0
  136. {placo-0.6.0 → placo-0.6.2}/src/placo/model/robot_wrapper.h +0 -0
  137. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/constraint.cpp +0 -0
  138. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/constraint.h +0 -0
  139. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/expression.cpp +0 -0
  140. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/expression.h +0 -0
  141. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/integrator.cpp +0 -0
  142. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/integrator.h +0 -0
  143. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/polygon_constraint.cpp +0 -0
  144. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/polygon_constraint.h +0 -0
  145. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/problem.cpp +0 -0
  146. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/problem.h +0 -0
  147. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/qp_error.cpp +0 -0
  148. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/qp_error.h +0 -0
  149. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/sparsity.cpp +0 -0
  150. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/sparsity.h +0 -0
  151. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/variable.cpp +0 -0
  152. {placo-0.6.0 → placo-0.6.2}/src/placo/problem/variable.h +0 -0
  153. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/axises_mask.cpp +0 -0
  154. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/axises_mask.h +0 -0
  155. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/cubic_spline.cpp +0 -0
  156. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/cubic_spline.h +0 -0
  157. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  158. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/cubic_spline_3d.h +0 -0
  159. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/prioritized.cpp +0 -0
  160. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/prioritized.h +0 -0
  161. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/utils.cpp +0 -0
  162. {placo-0.6.0 → placo-0.6.2}/src/placo/tools/utils.h +0 -0
  163. {placo-0.6.0 → placo-0.6.2}/stubs.py +0 -0
  164. {placo-0.6.0 → placo-0.6.2}/tweak_sdist.sh +0 -0
  165. {placo-0.6.0 → placo-0.6.2}/wks.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: placo
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.8
6
6
  License-Expression: MIT
@@ -7,6 +7,7 @@
7
7
  #include "placo/dynamics/dynamics_solver.h"
8
8
  #include <Eigen/Dense>
9
9
  #include <boost/python.hpp>
10
+ #include <eigenpy/eigen-to-python.hpp>
10
11
 
11
12
  using namespace placo;
12
13
  using namespace placo::dynamics;
@@ -22,12 +23,9 @@ void exposeDynamics()
22
23
  {
23
24
  class__<DynamicsSolver::Result>("DynamicsSolverResult")
24
25
  .add_property("success", &DynamicsSolver::Result::success)
25
- .add_property(
26
- "tau", +[](const DynamicsSolver::Result& result) { return result.tau; })
27
- .add_property(
28
- "qdd", +[](const DynamicsSolver::Result& result) { return result.qdd; })
29
- .add_property(
30
- "tau_contacts", +[](const DynamicsSolver::Result& result) { return result.tau_contacts; })
26
+ .def_readwrite("tau", &DynamicsSolver::Result::tau)
27
+ .def_readwrite("qdd", &DynamicsSolver::Result::qdd)
28
+ .def_readwrite("tau_contacts", &DynamicsSolver::Result::tau_contacts)
31
29
  .def(
32
30
  "tau_dict", +[](const DynamicsSolver::Result& result, RobotWrapper& robot) {
33
31
  boost::python::dict dict;
@@ -46,17 +44,14 @@ void exposeDynamics()
46
44
  .def_readwrite("weight_forces", &Contact::weight_forces)
47
45
  .def_readwrite("weight_tangentials", &Contact::weight_tangentials)
48
46
  .def_readwrite("weight_moments", &Contact::weight_moments)
49
- .add_property(
50
- "wrench", +[](Contact& contact) { return contact.wrench; });
47
+ .def_readonly("wrench", &Contact::wrench);
51
48
 
52
49
  class__<PointContact, bases<Contact>>("PointContact", init<PositionTask&, bool>())
53
50
  .def(
54
51
  "position_task", +[](PointContact& contact) -> PositionTask& { return *contact.position_task; },
55
52
  return_internal_reference<>())
56
53
  .def_readwrite("unilateral", &PointContact::unilateral)
57
- .add_property(
58
- "R_world_surface", +[](PointContact& contact) { return contact.R_world_surface; },
59
- +[](PointContact& contact, Eigen::Matrix3d R) { contact.R_world_surface = R; });
54
+ .def_readwrite("R_world_surface", &PointContact::R_world_surface);
60
55
 
61
56
  class__<Contact6D, bases<Contact>>("Contact6D", init<FrameTask&, bool>())
62
57
  .def(
@@ -86,8 +81,7 @@ void exposeDynamics()
86
81
 
87
82
  class__<ExternalWrenchContact, bases<Contact>>("ExternalWrenchContact", init<RobotWrapper::FrameIndex>())
88
83
  .add_property("frame_index", &ExternalWrenchContact::frame_index)
89
- .add_property(
90
- "w_ext", +[](ExternalWrenchContact& contact) { return contact.w_ext; }, &ExternalWrenchContact::w_ext);
84
+ .def_readwrite("w_ext", &ExternalWrenchContact::w_ext);
91
85
 
92
86
  class__<PuppetContact, bases<Contact>>("PuppetContact", init<>());
93
87
 
@@ -101,6 +95,9 @@ void exposeDynamics()
101
95
  .def("set_torque_limit", &DynamicsSolver::set_torque_limit)
102
96
  .def_readwrite("gravity_only", &DynamicsSolver::gravity_only)
103
97
  .def_readwrite("torque_cost", &DynamicsSolver::torque_cost)
98
+ .add_property(
99
+ "extra_force", +[](DynamicsSolver& solver) { return solver.extra_force; },
100
+ +[](DynamicsSolver& solver, Eigen::VectorXd force) { solver.extra_force = force; })
104
101
  .def("mask_fbase", &DynamicsSolver::mask_fbase)
105
102
  .def("add_point_contact", &DynamicsSolver::add_point_contact, return_internal_reference<>())
106
103
  .def("add_unilateral_point_contact", &DynamicsSolver::add_unilateral_point_contact, return_internal_reference<>())
@@ -161,10 +158,8 @@ void exposeDynamics()
161
158
  &DynamicsSolver::add_frame_task);
162
159
 
163
160
  class__<Task, bases<tools::Prioritized>, boost::noncopyable>("DynamicsTask", no_init)
164
- .add_property(
165
- "A", +[](const Task& task) { return task.A; })
166
- .add_property(
167
- "b", +[](const Task& task) { return task.b; })
161
+ .def_readwrite("A", &Task::A)
162
+ .def_readwrite("b", &Task::b)
168
163
  .add_property("kp", &Task::kp, &Task::kp)
169
164
  .add_property("kd", &Task::kd, &Task::kd)
170
165
  .add_property("error", &Task::error)
@@ -172,54 +167,35 @@ void exposeDynamics()
172
167
 
173
168
  class__<PositionTask, bases<Task>>("DynamicsPositionTask", init<RobotWrapper::FrameIndex, Eigen::Vector3d>())
174
169
  .add_property("frame_index", &PositionTask::frame_index)
175
- .add_property(
176
- "target_world", +[](const PositionTask& task) { return task.target_world; }, &PositionTask::target_world)
177
- .add_property(
178
- "dtarget_world", +[](const PositionTask& task) { return task.dtarget_world; }, &PositionTask::dtarget_world)
179
- .add_property(
180
- "ddtarget_world", +[](const PositionTask& task) { return task.dtarget_world; }, &PositionTask::ddtarget_world)
170
+ .def_readwrite("target_world", &PositionTask::target_world)
171
+ .def_readwrite("dtarget_world", &PositionTask::dtarget_world)
172
+ .def_readwrite("ddtarget_world", &PositionTask::ddtarget_world)
181
173
  .add_property("mask", &PositionTask::mask, &PositionTask::mask);
182
174
 
183
175
  class__<CoMTask, bases<Task>>("DynamicsCoMTask", init<Eigen::Vector3d>())
184
- .add_property(
185
- "target_world", +[](const CoMTask& task) { return task.target_world; }, &CoMTask::target_world)
186
- .add_property(
187
- "dtarget_world", +[](const CoMTask& task) { return task.dtarget_world; }, &CoMTask::dtarget_world)
188
- .add_property(
189
- "ddtarget_world", +[](const CoMTask& task) { return task.dtarget_world; }, &CoMTask::ddtarget_world)
176
+ .def_readwrite("target_world", &CoMTask::target_world)
177
+ .def_readwrite("dtarget_world", &CoMTask::dtarget_world)
178
+ .def_readwrite("ddtarget_world", &CoMTask::ddtarget_world)
190
179
  .add_property("mask", &CoMTask::mask, &CoMTask::mask);
191
180
 
192
181
  class__<RelativePositionTask, bases<Task>>(
193
182
  "DynamicsRelativePositionTask", init<RobotWrapper::FrameIndex, RobotWrapper::FrameIndex, Eigen::Vector3d>())
194
- .add_property(
195
- "target", +[](const RelativePositionTask& task) { return task.target; }, &RelativePositionTask::target)
196
- .add_property(
197
- "dtarget", +[](const RelativePositionTask& task) { return task.dtarget; }, &RelativePositionTask::dtarget)
198
- .add_property(
199
- "ddtarget", +[](const RelativePositionTask& task) { return task.ddtarget; }, &RelativePositionTask::ddtarget)
183
+ .def_readwrite("target", &RelativePositionTask::target)
184
+ .def_readwrite("dtarget", &RelativePositionTask::dtarget)
185
+ .def_readwrite("ddtarget", &RelativePositionTask::ddtarget)
200
186
  .add_property("mask", &RelativePositionTask::mask, &RelativePositionTask::mask);
201
187
 
202
188
  class__<RelativeOrientationTask, bases<Task>>(
203
189
  "DynamicsRelativeOrientationTask", init<RobotWrapper::FrameIndex, RobotWrapper::FrameIndex, Eigen::Matrix3d>())
204
- .add_property(
205
- "R_a_b", +[](const RelativeOrientationTask& task) { return task.R_a_b; }, &RelativeOrientationTask::R_a_b)
206
- .add_property(
207
- "omega_a_b", +[](const RelativeOrientationTask& task) { return task.omega_a_b; },
208
- &RelativeOrientationTask::omega_a_b)
209
- .add_property(
210
- "domega_a_b", +[](const RelativeOrientationTask& task) { return task.domega_a_b; },
211
- &RelativeOrientationTask::domega_a_b)
190
+ .def_readwrite("R_a_b", &RelativeOrientationTask::R_a_b)
191
+ .def_readwrite("omega_a_b", &RelativeOrientationTask::omega_a_b)
192
+ .def_readwrite("domega_a_b", &RelativeOrientationTask::domega_a_b)
212
193
  .add_property("mask", &RelativeOrientationTask::mask, &RelativeOrientationTask::mask);
213
194
 
214
195
  class__<OrientationTask, bases<Task>>("DynamicsOrientationTask", init<RobotWrapper::FrameIndex, Eigen::Matrix3d>())
215
- .add_property(
216
- "R_world_frame", +[](const OrientationTask& task) { return task.R_world_frame; },
217
- &OrientationTask::R_world_frame)
218
- .add_property(
219
- "omega_world", +[](const OrientationTask& task) { return task.omega_world; }, &OrientationTask::omega_world)
220
- .add_property(
221
- "domega_world", +[](const OrientationTask& task) { return task.domega_world; },
222
- &OrientationTask::domega_world)
196
+ .def_readwrite("R_world_frame", &OrientationTask::R_world_frame)
197
+ .def_readwrite("omega_world", &OrientationTask::omega_world)
198
+ .def_readwrite("domega_world", &OrientationTask::domega_world)
223
199
  .add_property("mask", &OrientationTask::mask, &OrientationTask::mask);
224
200
 
225
201
  class__<FrameTask>("DynamicsFrameTask", init<>())
@@ -8,6 +8,7 @@
8
8
  #include "placo/humanoid/footsteps_planner_repetitive.h"
9
9
  #include <Eigen/Dense>
10
10
  #include <boost/python.hpp>
11
+ #include <eigenpy/eigen-to-python.hpp>
11
12
 
12
13
  using namespace boost::python;
13
14
  using namespace placo::humanoid;
@@ -22,9 +23,7 @@ void exposeFootsteps()
22
23
  class__<FootstepsPlanner::Footstep>("Footstep", init<double, double>())
23
24
  .def("support_polygon", &FootstepsPlanner::Footstep::support_polygon)
24
25
  .add_property("side", &FootstepsPlanner::Footstep::side, &FootstepsPlanner::Footstep::side)
25
- .add_property(
26
- "frame", +[](const FootstepsPlanner::Footstep& footstep) { return footstep.frame; },
27
- &FootstepsPlanner::Footstep::frame)
26
+ .def_readwrite("frame", &FootstepsPlanner::Footstep::frame)
28
27
  .add_property("foot_length", &FootstepsPlanner::Footstep::foot_length, &FootstepsPlanner::Footstep::foot_length)
29
28
  .add_property("foot_width", &FootstepsPlanner::Footstep::foot_width, &FootstepsPlanner::Footstep::foot_width)
30
29
  .def("support_polygon", &FootstepsPlanner::Footstep::support_polygon)
@@ -7,6 +7,7 @@
7
7
  #include <boost/python/return_internal_reference.hpp>
8
8
  #include <Eigen/Dense>
9
9
  #include <boost/python.hpp>
10
+ #include <eigenpy/eigen-to-python.hpp>
10
11
 
11
12
  using namespace boost::python;
12
13
  using namespace placo;
@@ -117,10 +118,8 @@ void exposeKinematics()
117
118
  .def("solve", &KinematicsSolver::solve);
118
119
 
119
120
  class__<Task, bases<tools::Prioritized>, boost::noncopyable>("Task", no_init)
120
- .add_property(
121
- "A", +[](const Task& task) { return task.A; })
122
- .add_property(
123
- "b", +[](const Task& task) { return task.b; })
121
+ .def_readonly("A", &Task::A)
122
+ .def_readonly("b", &Task::b)
124
123
  .def("error", &Task::error)
125
124
  .def("error_norm", &Task::error_norm)
126
125
  .def("update", &Task::update);
@@ -135,8 +134,7 @@ void exposeKinematics()
135
134
  "RelativePositionTask", init<RobotWrapper::FrameIndex, RobotWrapper::FrameIndex, Eigen::Vector3d>())
136
135
  .add_property("frame_a", &RelativePositionTask::frame_a)
137
136
  .add_property("frame_b", &RelativePositionTask::frame_b)
138
- .add_property(
139
- "target", +[](const RelativePositionTask& task) { return task.target; }, &RelativePositionTask::target)
137
+ .def_readwrite("target", &RelativePositionTask::target)
140
138
  .add_property("mask", &RelativePositionTask::mask, &RelativePositionTask::mask);
141
139
 
142
140
  class__<CoMTask, bases<Task>>("CoMTask", init<Eigen::Vector3d>())
@@ -146,17 +144,14 @@ void exposeKinematics()
146
144
 
147
145
  class__<OrientationTask, bases<Task>>("OrientationTask", init<RobotWrapper::FrameIndex, Eigen::Matrix3d>())
148
146
  .add_property("frame_index", &OrientationTask::frame_index)
149
- .add_property(
150
- "R_world_frame", +[](const OrientationTask& task) { return task.R_world_frame; },
151
- &OrientationTask::R_world_frame)
147
+ .def_readwrite("R_world_frame", &OrientationTask::R_world_frame)
152
148
  .add_property("mask", &OrientationTask::mask, &OrientationTask::mask);
153
149
 
154
150
  class__<RelativeOrientationTask, bases<Task>>(
155
151
  "RelativeOrientationTask", init<RobotWrapper::FrameIndex, RobotWrapper::FrameIndex, Eigen::Matrix3d>())
156
152
  .add_property("frame_a", &RelativeOrientationTask::frame_a)
157
153
  .add_property("frame_b", &RelativeOrientationTask::frame_b)
158
- .add_property(
159
- "R_a_b", +[](const RelativeOrientationTask& task) { return task.R_a_b; }, &RelativeOrientationTask::R_a_b)
154
+ .def_readwrite("R_a_b", &RelativeOrientationTask::R_a_b)
160
155
  .add_property("mask", &RelativeOrientationTask::mask, &RelativeOrientationTask::mask);
161
156
 
162
157
  class__<FrameTask>("FrameTask", init<>())
@@ -186,9 +181,7 @@ void exposeKinematics()
186
181
  .add_property("frame_index", &AxisAlignTask::frame_index)
187
182
  .add_property(
188
183
  "axis_frame", +[](const AxisAlignTask& task) { return task.axis_frame; }, &AxisAlignTask::axis_frame)
189
- .add_property(
190
- "targetAxis_world", +[](const AxisAlignTask& task) { return task.targetAxis_world; },
191
- &AxisAlignTask::targetAxis_world);
184
+ .def_readwrite("targetAxis_world", &AxisAlignTask::targetAxis_world);
192
185
 
193
186
  class__<JointsTask, bases<Task>>("JointsTask", init<>())
194
187
  .def("set_joint", &JointsTask::set_joint)
@@ -206,8 +199,7 @@ void exposeKinematics()
206
199
  .add_property("joint", &WheelTask::joint)
207
200
  .add_property("radius", &WheelTask::radius)
208
201
  .add_property("omniwheel", &WheelTask::omniwheel)
209
- .add_property(
210
- "T_world_surface", +[](const WheelTask& task) { return task.T_world_surface; }, &WheelTask::T_world_surface);
202
+ .def_readwrite("T_world_surface", &WheelTask::T_world_surface);
211
203
 
212
204
  class__<DistanceTask, bases<Task>>("DistanceTask", init<RobotWrapper::FrameIndex, RobotWrapper::FrameIndex, double>())
213
205
  .add_property("frame_a", &DistanceTask::frame_a)
@@ -8,6 +8,7 @@
8
8
  #include "placo/humanoid/humanoid_parameters.h"
9
9
  #include <Eigen/Dense>
10
10
  #include <boost/python.hpp>
11
+ #include <eigenpy/eigen-to-python.hpp>
11
12
 
12
13
  using namespace boost::python;
13
14
  using namespace placo;
@@ -16,6 +16,7 @@
16
16
  #include "placo/problem/qp_error.h"
17
17
  #include <Eigen/Dense>
18
18
  #include <boost/python.hpp>
19
+ #include <eigenpy/eigen-to-python.hpp>
19
20
 
20
21
  using namespace boost::python;
21
22
  using namespace placo;
@@ -84,14 +85,10 @@ void exposeProblem()
84
85
  .def("upper_shift_matrix", &Integrator::upper_shift_matrix)
85
86
  .staticmethod("upper_shift_matrix")
86
87
  .add_property("t_start", &Integrator::t_start, &Integrator::t_start)
87
- .add_property(
88
- "M", +[](const Integrator& i) { return i.M; })
89
- .add_property(
90
- "A", +[](const Integrator& i) { return i.A; })
91
- .add_property(
92
- "B", +[](const Integrator& i) { return i.B; })
93
- .add_property(
94
- "final_transition_matrix", +[](const Integrator& i) { return i.final_transition_matrix; })
88
+ .def_readonly("M", &Integrator::M)
89
+ .def_readonly("A", &Integrator::A)
90
+ .def_readonly("B", &Integrator::B)
91
+ .def_readonly("final_transition_matrix", &Integrator::final_transition_matrix)
95
92
  .def("expr", &Integrator::expr, integrator_expr_overloads())
96
93
  .def("expr_t", &Integrator::expr_t)
97
94
  .def("value", &Integrator::value)
@@ -129,10 +126,8 @@ void exposeProblem()
129
126
  .def("expr", &Variable::expr, expr_overloads());
130
127
 
131
128
  class__<Expression>("Expression")
132
- .add_property(
133
- "A", +[](Expression& e) { return e.A; })
134
- .add_property(
135
- "b", +[](Expression& e) { return e.b; })
129
+ .def_readwrite("A", &Expression::A)
130
+ .def_readwrite("b", &Expression::b)
136
131
  .def("__len__", &Expression::rows)
137
132
  .def("is_scalar", &Expression::is_scalar)
138
133
  .def("is_constant", &Expression::is_constant)
@@ -8,6 +8,7 @@
8
8
  #include "placo/kinematics/kinematics_solver.h"
9
9
  #include <Eigen/Dense>
10
10
  #include <boost/python.hpp>
11
+ #include <eigenpy/eigen-to-python.hpp>
11
12
 
12
13
  using namespace boost::python;
13
14
  using namespace placo;
@@ -138,16 +139,9 @@ void exposeRobotWrapper()
138
139
  .value("ignore_collisions", RobotWrapper::Flags::IGNORE_COLLISIONS);
139
140
 
140
141
  class__<RobotWrapper::State>("RobotWrapper_State")
141
- .add_property(
142
- "q", +[](const RobotWrapper::State& state) { return state.q; },
143
- +[](RobotWrapper::State& state, const Eigen::VectorXd& q) { state.q = q; })
144
- .add_property(
145
- "qd", +[](const RobotWrapper::State& state) { return state.qd; },
146
- +[](RobotWrapper::State& state, const Eigen::VectorXd& qd) { state.qd = qd; })
147
- .add_property(
148
- "qdd", +[](const RobotWrapper::State& state) { return state.qdd; },
149
- +[](RobotWrapper::State& state, const Eigen::VectorXd& qdd) { state.qdd = qdd; });
150
- ;
142
+ .def_readwrite("q", &RobotWrapper::State::q)
143
+ .def_readwrite("qd", &RobotWrapper::State::qd)
144
+ .def_readwrite("qdd", &RobotWrapper::State::qdd);
151
145
 
152
146
  class__<RobotWrapper::Collision>("Collision")
153
147
  .add_property("objA", &RobotWrapper::Collision::objA)
@@ -164,10 +158,8 @@ void exposeRobotWrapper()
164
158
  .add_property("objB", &RobotWrapper::Distance::objB)
165
159
  .add_property("parentA", &RobotWrapper::Distance::parentA)
166
160
  .add_property("parentB", &RobotWrapper::Distance::parentB)
167
- .add_property(
168
- "pointA", +[](RobotWrapper::Distance& distance) { return distance.pointA; })
169
- .add_property(
170
- "pointB", +[](RobotWrapper::Distance& distance) { return distance.pointB; })
161
+ .def_readwrite("pointA", &RobotWrapper::Distance::pointA)
162
+ .def_readwrite("pointB", &RobotWrapper::Distance::pointB)
171
163
  .add_property("min_distance", &RobotWrapper::Distance::min_distance);
172
164
 
173
165
  class_<RobotWrapper> robotWrapper =
@@ -210,9 +202,7 @@ void exposeRobotWrapper()
210
202
  .def(
211
203
  "get_support_side", +[](const HumanoidRobot& robot) { return robot.support_side; })
212
204
  .add_property("support_is_both", &HumanoidRobot::support_is_both, &HumanoidRobot::support_is_both)
213
- .add_property(
214
- "T_world_support", +[](HumanoidRobot& robot) { return robot.T_world_support; },
215
- +[](HumanoidRobot& robot, Eigen::Affine3d T_world_support_) { robot.T_world_support = T_world_support_; });
205
+ .def_readwrite("T_world_support", &HumanoidRobot::T_world_support);
216
206
 
217
207
  exposeStdVector<RobotWrapper::Collision>("vector_Collision");
218
208
  exposeStdVector<RobotWrapper::Distance>("vector_Distance");
@@ -13,6 +13,7 @@
13
13
  #ifdef HAVE_RHOBAN_UTILS
14
14
  #include "rhoban_utils/history/history.h"
15
15
  #endif
16
+ #include <eigenpy/eigen-to-python.hpp>
16
17
 
17
18
  using namespace boost::python;
18
19
  using namespace placo::tools;
@@ -45,12 +46,8 @@ void exposeTools()
45
46
  class__<AxisesMask>("AxisesMask", init<>())
46
47
  .def<void (AxisesMask::*)(std::string, std::string)>("set_axises", &AxisesMask::set_axises,
47
48
  set_axises_overloads())
48
- .add_property(
49
- "R_local_world", +[](AxisesMask& mask) { return mask.R_local_world; },
50
- +[](AxisesMask& mask, Eigen::Matrix3d R) { mask.R_local_world = R; })
51
- .add_property(
52
- "R_custom_world", +[](AxisesMask& mask) { return mask.R_custom_world; },
53
- +[](AxisesMask& mask, Eigen::Matrix3d R) { mask.R_custom_world = R; })
49
+ .def_readwrite("R_local_world", &AxisesMask::R_local_world)
50
+ .def_readwrite("R_custom_world", &AxisesMask::R_custom_world)
54
51
  .def("apply", &AxisesMask::apply);
55
52
 
56
53
  class__<Prioritized, boost::noncopyable>("Prioritized", no_init)
@@ -13,6 +13,7 @@
13
13
  #include "placo/humanoid/lipm.h"
14
14
  #include <Eigen/Dense>
15
15
  #include <boost/python.hpp>
16
+ #include <eigenpy/eigen-to-python.hpp>
16
17
 
17
18
  using namespace placo;
18
19
  using namespace boost::python;
@@ -2063,6 +2063,10 @@ class DynamicsSolver:
2063
2063
  """Enables the velocity vs torque inequalities."""
2064
2064
  ...
2065
2065
 
2066
+ extra_force: numpy.ndarray # Eigen::VectorXd
2067
+ """Extra force to be added to the system (similar to non-linear terms)
2068
+ """
2069
+
2066
2070
  def get_contact(
2067
2071
  arg1: DynamicsSolver,
2068
2072
  arg2: int,
@@ -23,7 +23,7 @@ description = "PlaCo: Rhoban Planning and Control"
23
23
  license = "MIT"
24
24
  name = "placo"
25
25
  requires-python = ">= 3.8"
26
- version = "0.6.0"
26
+ version = "0.6.2"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes