placo 0.9.13__tar.gz → 0.9.14__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.13 → placo-0.9.14}/PKG-INFO +1 -1
  2. {placo-0.9.13 → placo-0.9.14}/bindings/expose-parameters.cpp +3 -1
  3. {placo-0.9.13 → placo-0.9.14}/pyproject.toml +1 -1
  4. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner.cpp +6 -2
  5. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner.h +1 -1
  6. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_parameters.cpp +30 -4
  7. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_parameters.h +18 -1
  8. {placo-0.9.13 → placo-0.9.14}/.clang-format +0 -0
  9. {placo-0.9.13 → placo-0.9.14}/.gitattributes +0 -0
  10. {placo-0.9.13 → placo-0.9.14}/.github/workflows/wheels.yml +0 -0
  11. {placo-0.9.13 → placo-0.9.14}/.gitignore +0 -0
  12. {placo-0.9.13 → placo-0.9.14}/.readthedocs.yaml +0 -0
  13. {placo-0.9.13 → placo-0.9.14}/CMakeLists.txt +0 -0
  14. {placo-0.9.13 → placo-0.9.14}/Doxyfile +0 -0
  15. {placo-0.9.13 → placo-0.9.14}/LICENSE +0 -0
  16. {placo-0.9.13 → placo-0.9.14}/README.md +0 -0
  17. {placo-0.9.13 → placo-0.9.14}/bindings/doxystub.h +0 -0
  18. {placo-0.9.13 → placo-0.9.14}/bindings/expose-dynamics.cpp +0 -0
  19. {placo-0.9.13 → placo-0.9.14}/bindings/expose-eigen.cpp +0 -0
  20. {placo-0.9.13 → placo-0.9.14}/bindings/expose-footsteps.cpp +0 -0
  21. {placo-0.9.13 → placo-0.9.14}/bindings/expose-kinematics.cpp +0 -0
  22. {placo-0.9.13 → placo-0.9.14}/bindings/expose-problem.cpp +0 -0
  23. {placo-0.9.13 → placo-0.9.14}/bindings/expose-robot-wrapper.cpp +0 -0
  24. {placo-0.9.13 → placo-0.9.14}/bindings/expose-tools.cpp +0 -0
  25. {placo-0.9.13 → placo-0.9.14}/bindings/expose-utils.hpp +0 -0
  26. {placo-0.9.13 → placo-0.9.14}/bindings/expose-walk-pattern-generator.cpp +0 -0
  27. {placo-0.9.13 → placo-0.9.14}/bindings/module.cpp +0 -0
  28. {placo-0.9.13 → placo-0.9.14}/bindings/module.h +0 -0
  29. {placo-0.9.13 → placo-0.9.14}/python/.vscode/settings.json +0 -0
  30. {placo-0.9.13 → placo-0.9.14}/python/Makefile +0 -0
  31. {placo-0.9.13 → placo-0.9.14}/python/placo_utils/__init__.py +0 -0
  32. {placo-0.9.13 → placo-0.9.14}/python/placo_utils/tf.py +0 -0
  33. {placo-0.9.13 → placo-0.9.14}/python/placo_utils/view.py +0 -0
  34. {placo-0.9.13 → placo-0.9.14}/python/placo_utils/visualization.py +0 -0
  35. {placo-0.9.13 → placo-0.9.14}/python/run_tests.sh +0 -0
  36. {placo-0.9.13 → placo-0.9.14}/scripts/requirements.sh +0 -0
  37. {placo-0.9.13 → placo-0.9.14}/scripts/robotpkg.sh +0 -0
  38. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  39. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  40. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/com_task.cpp +0 -0
  41. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/com_task.h +0 -0
  42. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/constraint.cpp +0 -0
  43. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/constraint.h +0 -0
  44. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/contacts.cpp +0 -0
  45. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/contacts.h +0 -0
  46. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  47. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/dynamics_solver.h +0 -0
  48. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/frame_task.cpp +0 -0
  49. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/frame_task.h +0 -0
  50. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/gear_task.cpp +0 -0
  51. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/gear_task.h +0 -0
  52. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/joints_task.cpp +0 -0
  53. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/joints_task.h +0 -0
  54. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/orientation_task.cpp +0 -0
  55. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/orientation_task.h +0 -0
  56. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/position_task.cpp +0 -0
  57. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/position_task.h +0 -0
  58. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  59. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_frame_task.h +0 -0
  60. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  61. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_orientation_task.h +0 -0
  62. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_position_task.cpp +0 -0
  63. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_position_task.h +0 -0
  64. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/task.cpp +0 -0
  65. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/task.h +0 -0
  66. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/torque_task.cpp +0 -0
  67. {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/torque_task.h +0 -0
  68. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/dummy_walk.cpp +0 -0
  69. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/dummy_walk.h +0 -0
  70. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  71. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/foot_trajectory.h +0 -0
  72. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
  73. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  74. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  75. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  76. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  77. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_robot.h +0 -0
  78. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/kick.cpp +0 -0
  79. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/kick.h +0 -0
  80. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/lipm.cpp +0 -0
  81. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/lipm.h +0 -0
  82. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot.cpp +0 -0
  83. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot.h +0 -0
  84. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
  85. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  86. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  87. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  88. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
  89. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_pattern_generator.h +0 -0
  90. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_tasks.cpp +0 -0
  91. {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_tasks.h +0 -0
  92. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  93. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  94. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/axis_align_task.cpp +0 -0
  95. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/axis_align_task.h +0 -0
  96. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  97. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  98. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
  99. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  100. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_task.cpp +0 -0
  101. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_task.h +0 -0
  102. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/cone_constraint.cpp +0 -0
  103. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/cone_constraint.h +0 -0
  104. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/constraint.cpp +0 -0
  105. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/constraint.h +0 -0
  106. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_constraint.cpp +0 -0
  107. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_constraint.h +0 -0
  108. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_task.cpp +0 -0
  109. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_task.h +0 -0
  110. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/frame_task.cpp +0 -0
  111. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/frame_task.h +0 -0
  112. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/gear_task.cpp +0 -0
  113. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/gear_task.h +0 -0
  114. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
  115. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
  116. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joints_task.cpp +0 -0
  117. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joints_task.h +0 -0
  118. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinematics_solver.cpp +0 -0
  119. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinematics_solver.h +0 -0
  120. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  121. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  122. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/manipulability_task.cpp +0 -0
  123. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/manipulability_task.h +0 -0
  124. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/orientation_task.cpp +0 -0
  125. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/orientation_task.h +0 -0
  126. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/position_task.cpp +0 -0
  127. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/position_task.h +0 -0
  128. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/regularization_task.cpp +0 -0
  129. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/regularization_task.h +0 -0
  130. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  131. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_frame_task.h +0 -0
  132. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  133. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_orientation_task.h +0 -0
  134. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_position_task.cpp +0 -0
  135. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_position_task.h +0 -0
  136. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/task.cpp +0 -0
  137. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/task.h +0 -0
  138. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/wheel_task.cpp +0 -0
  139. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/wheel_task.h +0 -0
  140. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/yaw_constraint.cpp +0 -0
  141. {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/yaw_constraint.h +0 -0
  142. {placo-0.9.13 → placo-0.9.14}/src/placo/model/robot_wrapper.cpp +0 -0
  143. {placo-0.9.13 → placo-0.9.14}/src/placo/model/robot_wrapper.h +0 -0
  144. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/constraint.cpp +0 -0
  145. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/constraint.h +0 -0
  146. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/expression.cpp +0 -0
  147. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/expression.h +0 -0
  148. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/integrator.cpp +0 -0
  149. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/integrator.h +0 -0
  150. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/polygon_constraint.cpp +0 -0
  151. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/polygon_constraint.h +0 -0
  152. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem.cpp +0 -0
  153. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem.h +0 -0
  154. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem_polynom.cpp +0 -0
  155. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem_polynom.h +0 -0
  156. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/qp_error.cpp +0 -0
  157. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/qp_error.h +0 -0
  158. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/sparsity.cpp +0 -0
  159. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/sparsity.h +0 -0
  160. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/variable.cpp +0 -0
  161. {placo-0.9.13 → placo-0.9.14}/src/placo/problem/variable.h +0 -0
  162. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/axises_mask.cpp +0 -0
  163. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/axises_mask.h +0 -0
  164. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline.cpp +0 -0
  165. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline.h +0 -0
  166. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  167. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline_3d.h +0 -0
  168. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/directions.cpp +0 -0
  169. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/directions.h +0 -0
  170. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/polynom.cpp +0 -0
  171. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/polynom.h +0 -0
  172. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/prioritized.cpp +0 -0
  173. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/prioritized.h +0 -0
  174. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/segment.cpp +0 -0
  175. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/segment.h +0 -0
  176. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/utils.cpp +0 -0
  177. {placo-0.9.13 → placo-0.9.14}/src/placo/tools/utils.h +0 -0
  178. {placo-0.9.13 → placo-0.9.14}/wks.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: placo
3
- Version: 0.9.13
3
+ Version: 0.9.14
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.8
6
6
  License-Expression: MIT
@@ -59,6 +59,8 @@ void exposeParameters()
59
59
  .def("has_double_support", &HumanoidParameters::has_double_support)
60
60
  .def("ellipsoid_clip", &HumanoidParameters::ellipsoid_clip)
61
61
  .def("box_clip", &HumanoidParameters::box_clip)
62
+ .def("conic_clip", &HumanoidParameters::conic_clip)
62
63
  .def("ellipsoid_overlap_clip", &HumanoidParameters::ellipsoid_overlap_clip)
63
- .def("box_overlap_clip", &HumanoidParameters::box_overlap_clip);
64
+ .def("box_overlap_clip", &HumanoidParameters::box_overlap_clip)
65
+ .def("conic_overlap_clip", &HumanoidParameters::conic_overlap_clip);
64
66
  }
@@ -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.9.13"
26
+ version = "0.9.14"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
@@ -319,11 +319,15 @@ FootstepsPlanner::Footstep FootstepsPlanner::clipped_opposite_footstep(Footstep
319
319
  step.y() += parameters.walk_dtheta_spacing * fabs(step.z());
320
320
  }
321
321
 
322
- if (use_ellipsoid_clipping)
322
+ if (footstep_clipping == HumanoidParameters::FootstepClipping::Conic)
323
+ {
324
+ step = parameters.conic_clip(step);
325
+ }
326
+ else if (footstep_clipping == HumanoidParameters::FootstepClipping::Ellipsoid)
323
327
  {
324
328
  step = parameters.ellipsoid_clip(step);
325
329
  }
326
- else
330
+ else if (footstep_clipping == HumanoidParameters::FootstepClipping::Box)
327
331
  {
328
332
  step = parameters.box_clip(step);
329
333
  }
@@ -149,7 +149,7 @@ public:
149
149
  // Humanoid parameters for planning and control
150
150
  HumanoidParameters& parameters;
151
151
 
152
- bool use_ellipsoid_clipping = false;
152
+ HumanoidParameters::FootstepClipping footstep_clipping = HumanoidParameters::FootstepClipping::Conic;
153
153
 
154
154
  protected:
155
155
  virtual void plan_impl(std::vector<Footstep>&, HumanoidRobot::Side flying_side, Eigen::Affine3d T_world_left,
@@ -75,21 +75,47 @@ Eigen::Vector3d HumanoidParameters::box_clip(Eigen::Vector3d step)
75
75
  return step;
76
76
  }
77
77
 
78
+ Eigen::Vector3d HumanoidParameters::conic_clip(Eigen::Vector3d step)
79
+ {
80
+ Eigen::Vector3d factor((step.x() >= 0) ? walk_max_dx_forward : walk_max_dx_backward, walk_max_dy, walk_max_dtheta);
81
+ step.x() /= factor.x();
82
+ step.y() /= factor.y();
83
+ step.z() /= factor.z();
84
+
85
+ double norm = sqrt(step.x() * step.x() + step.y() * step.y()) + fabs(step.z());
86
+ if (norm > 1)
87
+ {
88
+ step /= norm;
89
+ }
90
+
91
+ step.x() *= factor.x();
92
+ step.y() *= factor.y();
93
+ step.z() *= factor.z();
94
+
95
+ return step;
96
+ }
97
+
78
98
  Eigen::Vector3d HumanoidParameters::ellipsoid_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
79
99
  {
80
- return overlap_clip(support_side, step, true);
100
+ return overlap_clip(support_side, step, FootstepClipping::Ellipsoid);
81
101
  }
82
102
 
83
103
  Eigen::Vector3d HumanoidParameters::box_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
84
104
  {
85
- return overlap_clip(support_side, step, false);
105
+ return overlap_clip(support_side, step, FootstepClipping::Box);
106
+ }
107
+
108
+ Eigen::Vector3d HumanoidParameters::conic_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
109
+ {
110
+ return overlap_clip(support_side, step, FootstepClipping::Conic);
86
111
  }
87
112
 
88
- Eigen::Vector3d HumanoidParameters::overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step, bool ellipsoid)
113
+ Eigen::Vector3d HumanoidParameters::overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step,
114
+ HumanoidParameters::FootstepClipping clipping)
89
115
  {
90
116
  FootstepsPlannerRepetitive planner(*this);
91
117
  planner.configure(step.x(), step.y(), step.z(), 3);
92
- planner.use_ellipsoid_clipping = ellipsoid;
118
+ planner.footstep_clipping = clipping;
93
119
 
94
120
  // Creatting footsteps
95
121
  Eigen::Affine3d T_world_left = Eigen::Affine3d::Identity();
@@ -161,6 +161,13 @@ public:
161
161
  // DCM offset bounds (polygon)
162
162
  std::vector<Eigen::Vector2d> dcm_offset_polygon;
163
163
 
164
+ enum FootstepClipping
165
+ {
166
+ Ellipsoid = 0,
167
+ Box = 1,
168
+ Conic = 2
169
+ };
170
+
164
171
  /**
165
172
  * @brief Applies the ellipsoid (L2) clipping to a given step size (dx, dy, dtheta)
166
173
  */
@@ -171,6 +178,11 @@ public:
171
178
  */
172
179
  Eigen::Vector3d box_clip(Eigen::Vector3d step);
173
180
 
181
+ /**
182
+ * @brief Applies the conic clipping to a given step size (dx, dy, dtheta)
183
+ */
184
+ Eigen::Vector3d conic_clip(Eigen::Vector3d step);
185
+
174
186
  /**
175
187
  * @brief Clips a step using ellipsoid and overlap avoidance
176
188
  */
@@ -181,6 +193,11 @@ public:
181
193
  */
182
194
  Eigen::Vector3d box_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step);
183
195
 
196
+ /**
197
+ * @brief Clips a step using ellipsoid and overlap avoidance
198
+ */
199
+ Eigen::Vector3d conic_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step);
200
+
184
201
  /**
185
202
  * @brief Frames for opposite and neutral positions
186
203
  */
@@ -194,6 +211,6 @@ protected:
194
211
  /**
195
212
  * @brief Clips a step using ellipsoid and overlap avoidance
196
213
  */
197
- Eigen::Vector3d overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step, bool ellipsoid = false);
214
+ Eigen::Vector3d overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step, FootstepClipping clipping);
198
215
  };
199
216
  } // namespace placo::humanoid
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