placo 0.9.9__tar.gz → 0.9.11__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 (178) hide show
  1. {placo-0.9.9 → placo-0.9.11}/.github/workflows/wheels.yml +4 -1
  2. {placo-0.9.9 → placo-0.9.11}/PKG-INFO +4 -4
  3. {placo-0.9.9 → placo-0.9.11}/bindings/expose-footsteps.cpp +1 -0
  4. {placo-0.9.9 → placo-0.9.11}/bindings/expose-robot-wrapper.cpp +1 -1
  5. {placo-0.9.9 → placo-0.9.11}/bindings/expose-walk-pattern-generator.cpp +5 -5
  6. {placo-0.9.9 → placo-0.9.11}/pyproject.toml +4 -4
  7. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/dummy_walk.cpp +13 -10
  8. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/dummy_walk.h +12 -20
  9. {placo-0.9.9 → placo-0.9.11}/.clang-format +0 -0
  10. {placo-0.9.9 → placo-0.9.11}/.gitattributes +0 -0
  11. {placo-0.9.9 → placo-0.9.11}/.gitignore +0 -0
  12. {placo-0.9.9 → placo-0.9.11}/.readthedocs.yaml +0 -0
  13. {placo-0.9.9 → placo-0.9.11}/CMakeLists.txt +0 -0
  14. {placo-0.9.9 → placo-0.9.11}/Doxyfile +0 -0
  15. {placo-0.9.9 → placo-0.9.11}/LICENSE +0 -0
  16. {placo-0.9.9 → placo-0.9.11}/README.md +0 -0
  17. {placo-0.9.9 → placo-0.9.11}/bindings/doxystub.h +0 -0
  18. {placo-0.9.9 → placo-0.9.11}/bindings/expose-dynamics.cpp +0 -0
  19. {placo-0.9.9 → placo-0.9.11}/bindings/expose-eigen.cpp +0 -0
  20. {placo-0.9.9 → placo-0.9.11}/bindings/expose-kinematics.cpp +0 -0
  21. {placo-0.9.9 → placo-0.9.11}/bindings/expose-parameters.cpp +0 -0
  22. {placo-0.9.9 → placo-0.9.11}/bindings/expose-problem.cpp +0 -0
  23. {placo-0.9.9 → placo-0.9.11}/bindings/expose-tools.cpp +0 -0
  24. {placo-0.9.9 → placo-0.9.11}/bindings/expose-utils.hpp +0 -0
  25. {placo-0.9.9 → placo-0.9.11}/bindings/module.cpp +0 -0
  26. {placo-0.9.9 → placo-0.9.11}/bindings/module.h +0 -0
  27. {placo-0.9.9 → placo-0.9.11}/python/.vscode/settings.json +0 -0
  28. {placo-0.9.9 → placo-0.9.11}/python/Makefile +0 -0
  29. {placo-0.9.9 → placo-0.9.11}/python/placo_utils/__init__.py +0 -0
  30. {placo-0.9.9 → placo-0.9.11}/python/placo_utils/tf.py +0 -0
  31. {placo-0.9.9 → placo-0.9.11}/python/placo_utils/view.py +0 -0
  32. {placo-0.9.9 → placo-0.9.11}/python/placo_utils/visualization.py +0 -0
  33. {placo-0.9.9 → placo-0.9.11}/python/run_tests.sh +0 -0
  34. {placo-0.9.9 → placo-0.9.11}/scripts/requirements.sh +0 -0
  35. {placo-0.9.9 → placo-0.9.11}/scripts/robotpkg.sh +0 -0
  36. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  37. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  38. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/com_task.cpp +0 -0
  39. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/com_task.h +0 -0
  40. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/constraint.cpp +0 -0
  41. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/constraint.h +0 -0
  42. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/contacts.cpp +0 -0
  43. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/contacts.h +0 -0
  44. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  45. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/dynamics_solver.h +0 -0
  46. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/frame_task.cpp +0 -0
  47. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/frame_task.h +0 -0
  48. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/gear_task.cpp +0 -0
  49. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/gear_task.h +0 -0
  50. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/joints_task.cpp +0 -0
  51. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/joints_task.h +0 -0
  52. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/orientation_task.cpp +0 -0
  53. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/orientation_task.h +0 -0
  54. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/position_task.cpp +0 -0
  55. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/position_task.h +0 -0
  56. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  57. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_frame_task.h +0 -0
  58. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  59. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_orientation_task.h +0 -0
  60. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_position_task.cpp +0 -0
  61. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_position_task.h +0 -0
  62. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/task.cpp +0 -0
  63. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/task.h +0 -0
  64. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/torque_task.cpp +0 -0
  65. {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/torque_task.h +0 -0
  66. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  67. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/foot_trajectory.h +0 -0
  68. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner.cpp +0 -0
  69. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner.h +0 -0
  70. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
  71. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  72. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  73. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  74. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
  75. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_parameters.h +0 -0
  76. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  77. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_robot.h +0 -0
  78. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/kick.cpp +0 -0
  79. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/kick.h +0 -0
  80. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/lipm.cpp +0 -0
  81. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/lipm.h +0 -0
  82. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot.cpp +0 -0
  83. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot.h +0 -0
  84. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
  85. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  86. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  87. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  88. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
  89. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_pattern_generator.h +0 -0
  90. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_tasks.cpp +0 -0
  91. {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_tasks.h +0 -0
  92. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  93. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  94. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/axis_align_task.cpp +0 -0
  95. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/axis_align_task.h +0 -0
  96. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  97. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  98. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
  99. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  100. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_task.cpp +0 -0
  101. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_task.h +0 -0
  102. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/cone_constraint.cpp +0 -0
  103. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/cone_constraint.h +0 -0
  104. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/constraint.cpp +0 -0
  105. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/constraint.h +0 -0
  106. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_constraint.cpp +0 -0
  107. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_constraint.h +0 -0
  108. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_task.cpp +0 -0
  109. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_task.h +0 -0
  110. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/frame_task.cpp +0 -0
  111. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/frame_task.h +0 -0
  112. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/gear_task.cpp +0 -0
  113. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/gear_task.h +0 -0
  114. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
  115. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
  116. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joints_task.cpp +0 -0
  117. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joints_task.h +0 -0
  118. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinematics_solver.cpp +0 -0
  119. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinematics_solver.h +0 -0
  120. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  121. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  122. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/manipulability_task.cpp +0 -0
  123. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/manipulability_task.h +0 -0
  124. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/orientation_task.cpp +0 -0
  125. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/orientation_task.h +0 -0
  126. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/position_task.cpp +0 -0
  127. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/position_task.h +0 -0
  128. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/regularization_task.cpp +0 -0
  129. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/regularization_task.h +0 -0
  130. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  131. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_frame_task.h +0 -0
  132. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  133. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_orientation_task.h +0 -0
  134. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_position_task.cpp +0 -0
  135. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_position_task.h +0 -0
  136. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/task.cpp +0 -0
  137. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/task.h +0 -0
  138. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/wheel_task.cpp +0 -0
  139. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/wheel_task.h +0 -0
  140. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/yaw_constraint.cpp +0 -0
  141. {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/yaw_constraint.h +0 -0
  142. {placo-0.9.9 → placo-0.9.11}/src/placo/model/robot_wrapper.cpp +0 -0
  143. {placo-0.9.9 → placo-0.9.11}/src/placo/model/robot_wrapper.h +0 -0
  144. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/constraint.cpp +0 -0
  145. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/constraint.h +0 -0
  146. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/expression.cpp +0 -0
  147. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/expression.h +0 -0
  148. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/integrator.cpp +0 -0
  149. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/integrator.h +0 -0
  150. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/polygon_constraint.cpp +0 -0
  151. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/polygon_constraint.h +0 -0
  152. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem.cpp +0 -0
  153. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem.h +0 -0
  154. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem_polynom.cpp +0 -0
  155. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem_polynom.h +0 -0
  156. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/qp_error.cpp +0 -0
  157. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/qp_error.h +0 -0
  158. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/sparsity.cpp +0 -0
  159. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/sparsity.h +0 -0
  160. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/variable.cpp +0 -0
  161. {placo-0.9.9 → placo-0.9.11}/src/placo/problem/variable.h +0 -0
  162. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/axises_mask.cpp +0 -0
  163. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/axises_mask.h +0 -0
  164. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline.cpp +0 -0
  165. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline.h +0 -0
  166. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  167. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline_3d.h +0 -0
  168. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/directions.cpp +0 -0
  169. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/directions.h +0 -0
  170. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/polynom.cpp +0 -0
  171. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/polynom.h +0 -0
  172. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/prioritized.cpp +0 -0
  173. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/prioritized.h +0 -0
  174. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/segment.cpp +0 -0
  175. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/segment.h +0 -0
  176. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/utils.cpp +0 -0
  177. {placo-0.9.9 → placo-0.9.11}/src/placo/tools/utils.h +0 -0
  178. {placo-0.9.9 → placo-0.9.11}/wks.yml +0 -0
@@ -21,7 +21,10 @@ jobs:
21
21
  strategy:
22
22
  matrix:
23
23
  os: [macos-latest, ubuntu-latest, ubuntu-24.04-arm, macos-13]
24
- pyver: [cp39, cp310, cp311, cp312, cp313]
24
+ pyver: [cp38, cp39, cp310, cp311, cp312, cp313]
25
+ exclude:
26
+ - os: macos-latest
27
+ pyver: cp38
25
28
 
26
29
  steps:
27
30
  - uses: actions/checkout@v4
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: placo
3
- Version: 0.9.9
3
+ Version: 0.9.11
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
- Requires-Python: >= 3.9
5
+ Requires-Python: >= 3.8
6
6
  License-Expression: MIT
7
7
  Author-email: Rhoban team <team@rhoban.com>
8
8
  Project-URL: Changelog, https://github.com/rhoban/placo/blob/main/CHANGELOG.md
@@ -10,12 +10,12 @@ Home-page: https://placo.readthedocs.io/en/latest/
10
10
  Project-URL: Repository, https://github.com/rhoban/placo.git
11
11
  Requires-Dist: cmeel
12
12
  Requires-Dist: eiquadprog >= 1.2.6, < 2
13
- Requires-Dist: pin == 3.7.0
13
+ Requires-Dist: pin==3.4.0
14
14
  Requires-Dist: rhoban-cmeel-jsoncpp
15
15
  Requires-Dist: meshcat
16
16
  Requires-Dist: ischedule
17
17
  Provides-Extra: build
18
- Requires-Dist: pin[build] == 3.7.0 ; extra == "build"
18
+ Requires-Dist: pin[build]==3.4.0 ; extra == "build"
19
19
  Requires-Dist: doxystub >= 0.1.7 ; extra == "build"
20
20
  Requires-Dist: cmake<4 ; extra == "build"
21
21
  Description-Content-Type: text/markdown
@@ -60,6 +60,7 @@ void exposeFootsteps()
60
60
  class__<FootstepsPlanner, boost::noncopyable>("FootstepsPlanner", no_init)
61
61
  .def("make_supports", &FootstepsPlanner::make_supports)
62
62
  .def("opposite_footstep", &FootstepsPlanner::opposite_footstep)
63
+ .def("clipped_opposite_footstep", &FootstepsPlanner::clipped_opposite_footstep)
63
64
  .def(
64
65
  "truncate_supports", +[](const std::vector<FootstepsPlanner::Support>& supports, int index, bool add_end) {
65
66
  if (index > (int)supports.size())
@@ -24,7 +24,7 @@ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(joint_names_overloads, joint_names, 0, 1)
24
24
  template <class RobotType, class W1>
25
25
  void exposeRobotType(class_<RobotType, W1>& type)
26
26
  {
27
- type.add_property("state", &RobotType::state)
27
+ type.def_readwrite("state", &RobotType::state)
28
28
  .add_property("model", &RobotType::model)
29
29
  .add_property("collision_model", &RobotType::collision_model)
30
30
  .add_property("visual_model", &RobotType::visual_model)
@@ -182,7 +182,7 @@ void exposeWalkPatternGenerator()
182
182
  .add_property("x", &LIPM::x, &LIPM::x)
183
183
  .add_property("y", &LIPM::y, &LIPM::y);
184
184
 
185
- class__<DummyWalk>("DummyWalk", init<model::RobotWrapper&>())
185
+ class__<DummyWalk>("DummyWalk", init<model::RobotWrapper&, humanoid::HumanoidParameters&>())
186
186
  .def("reset", &DummyWalk::reset, (arg("support_left") = false))
187
187
  .def("update", &DummyWalk::update)
188
188
  .def("next_step", &DummyWalk::next_step)
@@ -190,12 +190,12 @@ void exposeWalkPatternGenerator()
190
190
  .add_property("robot", make_function(
191
191
  +[](DummyWalk& walk) -> model::RobotWrapper& { return walk.robot; },
192
192
  return_value_policy<reference_existing_object>()))
193
+ .add_property("parameters", make_function(
194
+ +[](DummyWalk& walk) -> humanoid::HumanoidParameters& { return walk.parameters; },
195
+ return_value_policy<reference_existing_object>()))
193
196
  .add_property("solver", &DummyWalk::solver)
194
- .def_readwrite("feet_spacing", &DummyWalk::feet_spacing)
195
- .def_readwrite("trunk_height", &DummyWalk::trunk_height)
196
- .def_readwrite("trunk_pitch", &DummyWalk::trunk_pitch)
197
197
  .def_readwrite("support_left", &DummyWalk::support_left)
198
- .def_readwrite("lift_height", &DummyWalk::lift_height)
198
+ .def_readwrite("lift_spline", &DummyWalk::lift_spline)
199
199
  .def_readonly("dx", &DummyWalk::dx)
200
200
  .def_readonly("dy", &DummyWalk::dy)
201
201
  .def_readonly("dtheta", &DummyWalk::dtheta)
@@ -3,7 +3,7 @@ build-backend = "cmeel"
3
3
  requires = [
4
4
  "cmeel[build]",
5
5
  "eiquadprog >= 1.2.6, < 2",
6
- "pin[build] == 3.7.0",
6
+ "pin[build]==3.4.0",
7
7
  "rhoban-cmeel-jsoncpp",
8
8
  "doxystub >= 0.1.7",
9
9
  "cmake<4"
@@ -14,7 +14,7 @@ authors = [{ email = "team@rhoban.com", name = "Rhoban team" }]
14
14
  classifiers = []
15
15
  dependencies = [
16
16
  "eiquadprog >= 1.2.6, < 2",
17
- "pin == 3.7.0",
17
+ "pin==3.4.0",
18
18
  "rhoban-cmeel-jsoncpp",
19
19
  "meshcat",
20
20
  "ischedule"
@@ -22,8 +22,8 @@ dependencies = [
22
22
  description = "PlaCo: Rhoban Planning and Control"
23
23
  license = "MIT"
24
24
  name = "placo"
25
- requires-python = ">= 3.9"
26
- version = "0.9.9"
25
+ requires-python = ">= 3.8"
26
+ version = "0.9.11"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
@@ -2,7 +2,8 @@
2
2
 
3
3
  namespace placo::humanoid
4
4
  {
5
- DummyWalk::DummyWalk(model::RobotWrapper& robot) : robot(robot), solver(robot)
5
+ DummyWalk::DummyWalk(model::RobotWrapper& robot, humanoid::HumanoidParameters& parameters)
6
+ : robot(robot), parameters(parameters), solver(robot), footsteps_planner(parameters)
6
7
  {
7
8
  // Initializing solver
8
9
  solver.enable_velocity_limits(true);
@@ -25,8 +26,8 @@ void DummyWalk::reset(bool support_left_)
25
26
  // Initializing lift trajectory
26
27
  lift_spline.clear();
27
28
  lift_spline.add_point(0, 0, 0);
28
- lift_spline.add_point(0.3, lift_height, 0);
29
- lift_spline.add_point(0.7, lift_height, 0);
29
+ lift_spline.add_point(0.5 - parameters.walk_foot_rise_ratio / 2, parameters.walk_foot_height, 0);
30
+ lift_spline.add_point(0.5 + parameters.walk_foot_rise_ratio / 2, parameters.walk_foot_height, 0);
30
31
  lift_spline.add_point(1, 0, 0);
31
32
 
32
33
  robot.reset();
@@ -34,8 +35,8 @@ void DummyWalk::reset(bool support_left_)
34
35
 
35
36
  support_left = support_left_;
36
37
 
37
- T_world_left = translation(0, feet_spacing / 2, 0);
38
- T_world_right = translation(0, -feet_spacing / 2, 0);
38
+ T_world_left = translation(0, parameters.feet_spacing / 2, 0);
39
+ T_world_right = translation(0, -parameters.feet_spacing / 2, 0);
39
40
 
40
41
  compute_next_support(0.0, 0.0, 0.0);
41
42
  update(0.0);
@@ -74,8 +75,8 @@ void DummyWalk::update(double t)
74
75
 
75
76
  Eigen::Affine3d T_world_mid = placo::tools::interpolate_frames(tools::flatten_on_floor(T_world_left_),
76
77
  tools::flatten_on_floor(T_world_right_), 0.5);
77
- Eigen::Affine3d T_world_trunk = T_world_mid * translation(trunk_x_offset, 0, trunk_height) *
78
- Eigen::AngleAxisd(trunk_pitch, Eigen::Vector3d::UnitY());
78
+ Eigen::Affine3d T_world_trunk = T_world_mid * translation(trunk_x_offset, 0, parameters.walk_com_height) *
79
+ Eigen::AngleAxisd(parameters.walk_trunk_pitch, Eigen::Vector3d::UnitY());
79
80
 
80
81
  left_foot_task.set_T_world_frame(T_world_left_);
81
82
  right_foot_task.set_T_world_frame(T_world_right_);
@@ -110,9 +111,11 @@ void DummyWalk::compute_next_support(double dx_, double dy_, double dtheta_)
110
111
  dy = dy_;
111
112
  dtheta = dtheta_;
112
113
 
113
- double spacing = support_left ? -feet_spacing : feet_spacing;
114
- T_world_next = support_left ? T_world_left : T_world_right;
115
- T_world_next = T_world_next * translation(dx, spacing + dy, 0) * Eigen::AngleAxisd(dtheta, Eigen::Vector3d::UnitZ());
114
+ footsteps_planner.configure(dx, dy, dtheta, 2);
115
+ std::vector<FootstepsPlanner::Footstep> footsteps = footsteps_planner.plan(
116
+ support_left ? HumanoidRobot::Side::Right : HumanoidRobot::Side::Left, T_world_left, T_world_right);
117
+
118
+ T_world_next = footsteps[2].frame;
116
119
  }
117
120
 
118
121
  Eigen::Affine3d DummyWalk::translation(double x, double y, double z) const
@@ -3,13 +3,15 @@
3
3
  #include <Eigen/Dense>
4
4
  #include "placo/kinematics/kinematics_solver.h"
5
5
  #include "placo/tools/cubic_spline.h"
6
+ #include "placo/humanoid/humanoid_parameters.h"
7
+ #include "placo/humanoid/footsteps_planner_repetitive.h"
6
8
 
7
9
  namespace placo::humanoid
8
10
  {
9
11
  class DummyWalk
10
12
  {
11
13
  public:
12
- DummyWalk(model::RobotWrapper& robot);
14
+ DummyWalk(model::RobotWrapper& robot, humanoid::HumanoidParameters& parameters);
13
15
 
14
16
  /**
15
17
  * @brief Reset the robot with a given support
@@ -43,35 +45,20 @@ public:
43
45
  model::RobotWrapper& robot;
44
46
 
45
47
  /**
46
- * @brief Kinematics solver
47
- */
48
- kinematics::KinematicsSolver solver;
49
-
50
- /**
51
- * @brief Feet spacing [m]
52
- */
53
- double feet_spacing = 0.12;
54
-
55
- /**
56
- * @brief Trunk height [m]
48
+ * @brief Humanoid parameters
57
49
  */
58
- double trunk_height = 0.4;
50
+ humanoid::HumanoidParameters& parameters;
59
51
 
60
52
  /**
61
- * @brief Trunk pitch angle [rad]
53
+ * @brief Kinematics solver
62
54
  */
63
- double trunk_pitch = 0.0;
55
+ kinematics::KinematicsSolver solver;
64
56
 
65
57
  /**
66
58
  * @brief Trunk x-offset [m]
67
59
  */
68
60
  double trunk_x_offset = 0.05;
69
61
 
70
- /**
71
- * @brief Lift height [m]
72
- */
73
- double lift_height = 0.04;
74
-
75
62
  /**
76
63
  * @brief Whether the current support is left or right
77
64
  */
@@ -121,6 +108,11 @@ protected:
121
108
  void compute_next_support(double dx, double dy, double dtheta);
122
109
  Eigen::Affine3d translation(double x, double y, double z) const;
123
110
 
111
+ /**
112
+ * @brief Internal footsteps planner
113
+ */
114
+ humanoid::FootstepsPlannerRepetitive footsteps_planner;
115
+
124
116
  /**
125
117
  * @brief Solve the internal kinematics problem
126
118
  */
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