placo 0.9.2__tar.gz → 0.9.3__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 (176) hide show
  1. {placo-0.9.2 → placo-0.9.3}/PKG-INFO +1 -1
  2. {placo-0.9.2 → placo-0.9.3}/bindings/expose-footsteps.cpp +17 -6
  3. {placo-0.9.2 → placo-0.9.3}/pyproject.toml +1 -1
  4. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner.h +1 -1
  5. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner_naive.cpp +9 -2
  6. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot_cubic.cpp +3 -1
  7. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/walk_pattern_generator.cpp +2 -4
  8. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/walk_tasks.cpp +6 -4
  9. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/walk_tasks.h +2 -1
  10. {placo-0.9.2 → placo-0.9.3}/.clang-format +0 -0
  11. {placo-0.9.2 → placo-0.9.3}/.gitattributes +0 -0
  12. {placo-0.9.2 → placo-0.9.3}/.github/workflows/wheels.yml +0 -0
  13. {placo-0.9.2 → placo-0.9.3}/.gitignore +0 -0
  14. {placo-0.9.2 → placo-0.9.3}/.readthedocs.yaml +0 -0
  15. {placo-0.9.2 → placo-0.9.3}/CMakeLists.txt +0 -0
  16. {placo-0.9.2 → placo-0.9.3}/Doxyfile +0 -0
  17. {placo-0.9.2 → placo-0.9.3}/LICENSE +0 -0
  18. {placo-0.9.2 → placo-0.9.3}/README.md +0 -0
  19. {placo-0.9.2 → placo-0.9.3}/bindings/doxystub.h +0 -0
  20. {placo-0.9.2 → placo-0.9.3}/bindings/expose-dynamics.cpp +0 -0
  21. {placo-0.9.2 → placo-0.9.3}/bindings/expose-eigen.cpp +0 -0
  22. {placo-0.9.2 → placo-0.9.3}/bindings/expose-kinematics.cpp +0 -0
  23. {placo-0.9.2 → placo-0.9.3}/bindings/expose-parameters.cpp +0 -0
  24. {placo-0.9.2 → placo-0.9.3}/bindings/expose-problem.cpp +0 -0
  25. {placo-0.9.2 → placo-0.9.3}/bindings/expose-robot-wrapper.cpp +0 -0
  26. {placo-0.9.2 → placo-0.9.3}/bindings/expose-tools.cpp +0 -0
  27. {placo-0.9.2 → placo-0.9.3}/bindings/expose-utils.hpp +0 -0
  28. {placo-0.9.2 → placo-0.9.3}/bindings/expose-walk-pattern-generator.cpp +0 -0
  29. {placo-0.9.2 → placo-0.9.3}/bindings/module.cpp +0 -0
  30. {placo-0.9.2 → placo-0.9.3}/bindings/module.h +0 -0
  31. {placo-0.9.2 → placo-0.9.3}/python/.vscode/settings.json +0 -0
  32. {placo-0.9.2 → placo-0.9.3}/python/Makefile +0 -0
  33. {placo-0.9.2 → placo-0.9.3}/python/placo_utils/__init__.py +0 -0
  34. {placo-0.9.2 → placo-0.9.3}/python/placo_utils/tf.py +0 -0
  35. {placo-0.9.2 → placo-0.9.3}/python/placo_utils/view.py +0 -0
  36. {placo-0.9.2 → placo-0.9.3}/python/placo_utils/visualization.py +0 -0
  37. {placo-0.9.2 → placo-0.9.3}/python/run_tests.sh +0 -0
  38. {placo-0.9.2 → placo-0.9.3}/scripts/requirements.sh +0 -0
  39. {placo-0.9.2 → placo-0.9.3}/scripts/robotpkg.sh +0 -0
  40. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  41. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  42. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/com_task.cpp +0 -0
  43. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/com_task.h +0 -0
  44. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/constraint.cpp +0 -0
  45. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/constraint.h +0 -0
  46. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/contacts.cpp +0 -0
  47. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/contacts.h +0 -0
  48. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  49. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/dynamics_solver.h +0 -0
  50. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/frame_task.cpp +0 -0
  51. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/frame_task.h +0 -0
  52. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/gear_task.cpp +0 -0
  53. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/gear_task.h +0 -0
  54. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/joints_task.cpp +0 -0
  55. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/joints_task.h +0 -0
  56. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/orientation_task.cpp +0 -0
  57. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/orientation_task.h +0 -0
  58. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/position_task.cpp +0 -0
  59. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/position_task.h +0 -0
  60. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  61. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_frame_task.h +0 -0
  62. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  63. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_orientation_task.h +0 -0
  64. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_position_task.cpp +0 -0
  65. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/relative_position_task.h +0 -0
  66. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/task.cpp +0 -0
  67. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/task.h +0 -0
  68. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/torque_task.cpp +0 -0
  69. {placo-0.9.2 → placo-0.9.3}/src/placo/dynamics/torque_task.h +0 -0
  70. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  71. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/foot_trajectory.h +0 -0
  72. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner.cpp +0 -0
  73. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  74. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  75. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  76. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
  77. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/humanoid_parameters.h +0 -0
  78. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  79. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/humanoid_robot.h +0 -0
  80. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/kick.cpp +0 -0
  81. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/kick.h +0 -0
  82. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/lipm.cpp +0 -0
  83. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/lipm.h +0 -0
  84. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot.cpp +0 -0
  85. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot.h +0 -0
  86. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  87. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  88. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  89. {placo-0.9.2 → placo-0.9.3}/src/placo/humanoid/walk_pattern_generator.h +0 -0
  90. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  91. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  92. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/axis_align_task.cpp +0 -0
  93. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/axis_align_task.h +0 -0
  94. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  95. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  96. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
  97. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  98. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/com_task.cpp +0 -0
  99. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/com_task.h +0 -0
  100. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/cone_constraint.cpp +0 -0
  101. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/cone_constraint.h +0 -0
  102. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/constraint.cpp +0 -0
  103. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/constraint.h +0 -0
  104. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/distance_constraint.cpp +0 -0
  105. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/distance_constraint.h +0 -0
  106. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/distance_task.cpp +0 -0
  107. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/distance_task.h +0 -0
  108. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/frame_task.cpp +0 -0
  109. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/frame_task.h +0 -0
  110. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/gear_task.cpp +0 -0
  111. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/gear_task.h +0 -0
  112. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
  113. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
  114. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/joints_task.cpp +0 -0
  115. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/joints_task.h +0 -0
  116. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/kinematics_solver.cpp +0 -0
  117. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/kinematics_solver.h +0 -0
  118. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  119. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  120. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/manipulability_task.cpp +0 -0
  121. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/manipulability_task.h +0 -0
  122. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/orientation_task.cpp +0 -0
  123. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/orientation_task.h +0 -0
  124. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/position_task.cpp +0 -0
  125. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/position_task.h +0 -0
  126. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/regularization_task.cpp +0 -0
  127. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/regularization_task.h +0 -0
  128. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  129. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_frame_task.h +0 -0
  130. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  131. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_orientation_task.h +0 -0
  132. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_position_task.cpp +0 -0
  133. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/relative_position_task.h +0 -0
  134. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/task.cpp +0 -0
  135. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/task.h +0 -0
  136. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/wheel_task.cpp +0 -0
  137. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/wheel_task.h +0 -0
  138. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/yaw_constraint.cpp +0 -0
  139. {placo-0.9.2 → placo-0.9.3}/src/placo/kinematics/yaw_constraint.h +0 -0
  140. {placo-0.9.2 → placo-0.9.3}/src/placo/model/robot_wrapper.cpp +0 -0
  141. {placo-0.9.2 → placo-0.9.3}/src/placo/model/robot_wrapper.h +0 -0
  142. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/constraint.cpp +0 -0
  143. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/constraint.h +0 -0
  144. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/expression.cpp +0 -0
  145. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/expression.h +0 -0
  146. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/integrator.cpp +0 -0
  147. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/integrator.h +0 -0
  148. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/polygon_constraint.cpp +0 -0
  149. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/polygon_constraint.h +0 -0
  150. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/problem.cpp +0 -0
  151. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/problem.h +0 -0
  152. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/problem_polynom.cpp +0 -0
  153. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/problem_polynom.h +0 -0
  154. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/qp_error.cpp +0 -0
  155. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/qp_error.h +0 -0
  156. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/sparsity.cpp +0 -0
  157. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/sparsity.h +0 -0
  158. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/variable.cpp +0 -0
  159. {placo-0.9.2 → placo-0.9.3}/src/placo/problem/variable.h +0 -0
  160. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/axises_mask.cpp +0 -0
  161. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/axises_mask.h +0 -0
  162. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/cubic_spline.cpp +0 -0
  163. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/cubic_spline.h +0 -0
  164. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  165. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/cubic_spline_3d.h +0 -0
  166. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/directions.cpp +0 -0
  167. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/directions.h +0 -0
  168. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/polynom.cpp +0 -0
  169. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/polynom.h +0 -0
  170. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/prioritized.cpp +0 -0
  171. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/prioritized.h +0 -0
  172. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/segment.cpp +0 -0
  173. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/segment.h +0 -0
  174. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/utils.cpp +0 -0
  175. {placo-0.9.2 → placo-0.9.3}/src/placo/tools/utils.h +0 -0
  176. {placo-0.9.2 → placo-0.9.3}/wks.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: placo
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.9
6
6
  License-Expression: MIT
@@ -25,10 +25,12 @@ void exposeFootsteps()
25
25
  .add_property("foot_length", &FootstepsPlanner::Footstep::foot_length, &FootstepsPlanner::Footstep::foot_length)
26
26
  .add_property("foot_width", &FootstepsPlanner::Footstep::foot_width, &FootstepsPlanner::Footstep::foot_width)
27
27
  .add_property("frame", &FootstepsPlanner::Footstep::frame, &FootstepsPlanner::Footstep::frame)
28
- .def("set_frame_xy", +[](FootstepsPlanner::Footstep& footstep, double x, double y) {
29
- footstep.frame.translation().x() = x;
30
- footstep.frame.translation().y() = y;
31
- })
28
+ .def(
29
+ "set_frame_xy",
30
+ +[](FootstepsPlanner::Footstep& footstep, double x, double y) {
31
+ footstep.frame.translation().x() = x;
32
+ footstep.frame.translation().y() = y;
33
+ })
32
34
  .def("support_polygon", &FootstepsPlanner::Footstep::support_polygon)
33
35
  .def("overlap", &FootstepsPlanner::Footstep::overlap)
34
36
  .def("polygon_contains", &FootstepsPlanner::Footstep::polygon_contains)
@@ -52,12 +54,21 @@ void exposeFootsteps()
52
54
  .add_property("time_ratio", &FootstepsPlanner::Support::time_ratio, &FootstepsPlanner::Support::time_ratio)
53
55
  .add_property("start", &FootstepsPlanner::Support::start, &FootstepsPlanner::Support::start)
54
56
  .add_property("end", &FootstepsPlanner::Support::end, &FootstepsPlanner::Support::end)
55
- .add_property("target_world_dcm", &FootstepsPlanner::Support::target_world_dcm,
57
+ .add_property("target_world_dcm", &FootstepsPlanner::Support::target_world_dcm,
56
58
  &FootstepsPlanner::Support::target_world_dcm);
57
59
 
58
60
  class__<FootstepsPlanner, boost::noncopyable>("FootstepsPlanner", no_init)
59
61
  .def("make_supports", &FootstepsPlanner::make_supports)
60
- .def("opposite_footstep", &FootstepsPlanner::opposite_footstep);
62
+ .def("opposite_footstep", &FootstepsPlanner::opposite_footstep)
63
+ .def(
64
+ "supports_head", +[](const std::vector<FootstepsPlanner::Support> supports, int index) {
65
+ std::vector<FootstepsPlanner::Support> head;
66
+ for (int i = 0; i < index; ++i)
67
+ {
68
+ head.push_back(supports[i]);
69
+ }
70
+ return head;
71
+ });
61
72
 
62
73
  class__<FootstepsPlannerNaive, bases<FootstepsPlanner>>("FootstepsPlannerNaive", init<HumanoidParameters&>())
63
74
  .def("plan", &FootstepsPlannerNaive::plan)
@@ -23,7 +23,7 @@ description = "PlaCo: Rhoban Planning and Control"
23
23
  license = "MIT"
24
24
  name = "placo"
25
25
  requires-python = ">= 3.9"
26
- version = "0.9.2"
26
+ version = "0.9.3"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
@@ -103,7 +103,7 @@ public:
103
103
  };
104
104
 
105
105
  /**
106
- * @brief Initializes the solver
106
+ * @brief Initializes the planner
107
107
  * @param parameters Parameters of the walk
108
108
  */
109
109
  FootstepsPlanner(HumanoidParameters& parameters);
@@ -18,6 +18,9 @@ namespace placo::humanoid
18
18
  {
19
19
  FootstepsPlannerNaive::FootstepsPlannerNaive(HumanoidParameters& parameters) : FootstepsPlanner(parameters)
20
20
  {
21
+ accessibility_length = parameters.walk_max_dx_forward;
22
+ accessibility_width = parameters.walk_max_dy;
23
+ accessibility_yaw = parameters.walk_max_dtheta;
21
24
  }
22
25
 
23
26
  std::string FootstepsPlannerNaive::name()
@@ -125,10 +128,14 @@ void FootstepsPlannerNaive::plan_impl(std::vector<FootstepsPlanner::Footstep>& f
125
128
  error_yaw = accessibility_yaw;
126
129
  }
127
130
 
131
+ // Ellipsoid clipping
132
+ Eigen::Vector3d step(error.x(), error.y(), error_yaw);
133
+ step = parameters.ellipsoid_clip(step);
134
+
128
135
  // Computing new frame
129
136
  Eigen::Affine3d new_step;
130
- new_step.translation() = T_support_floatingIdle.translation() + error;
131
- new_step.linear() = Eigen::AngleAxisd(error_yaw, Eigen::Vector3d::UnitZ()).toRotationMatrix();
137
+ new_step.translation() = T_support_floatingIdle.translation() + Eigen::Vector3d(step.x(), step.y(), 0.);
138
+ new_step.linear() = Eigen::AngleAxisd(step[2], Eigen::Vector3d::UnitZ()).toRotationMatrix();
132
139
 
133
140
  // Going to next step
134
141
  Footstep footstep = create_footstep(HumanoidRobot::other_side(current_support_side), T_world_support * new_step);
@@ -15,7 +15,9 @@ Eigen::Vector3d SwingFootCubic::Trajectory::vel(double t)
15
15
  }
16
16
 
17
17
  SwingFootCubic::Trajectory SwingFootCubic::make_trajectory(double t_start, double virt_duration, double height,
18
- double rise_ratio, Eigen::Vector3d start, Eigen::Vector3d target, double elapsed_ratio, Eigen::Vector3d start_vel)
18
+ double rise_ratio, Eigen::Vector3d start,
19
+ Eigen::Vector3d target, double elapsed_ratio,
20
+ Eigen::Vector3d start_vel)
19
21
  {
20
22
  SwingFootCubic::Trajectory trajectory;
21
23
 
@@ -346,7 +346,6 @@ void WalkPatternGenerator::plan_sgl_support(Trajectory& trajectory, int part_ind
346
346
  Eigen::Affine3d T_world_end = trajectory.parts[part_index + 1].support.footstep_frame(flying_side);
347
347
 
348
348
  double virt_duration = support_default_duration(part.support) * part.support.time_ratio;
349
-
350
349
  if (part_index == 0 && old_trajectory != nullptr)
351
350
  {
352
351
  Eigen::Vector3d start = old_trajectory->get_T_world_foot(flying_side, trajectory.t_start).translation();
@@ -756,7 +755,7 @@ std::vector<FootstepsPlanner::Support> WalkPatternGenerator::update_supports(
756
755
  }
757
756
 
758
757
  // LIPM Dynamics (expressed in the world frame)
759
- double duration = std::max(0., T - elapsed_time);
758
+ double duration = std::max(1e-5, T - elapsed_time);
760
759
  Eigen::Vector2d world_virtual_zmp =
761
760
  get_optimal_zmp(world_measured_dcm, current_support.target_world_dcm, duration, current_support);
762
761
  // Eigen::Vector2d world_virtual_zmp = flatten_on_floor(current_support.frame()).translation().head(2);
@@ -769,13 +768,12 @@ std::vector<FootstepsPlanner::Support> WalkPatternGenerator::update_supports(
769
768
  problem.solve();
770
769
 
771
770
  // Updating next support position
772
- // XXX: Problème de transform T qui s'applique ?
773
771
  Eigen::Vector2d world_next_zmp_val = p_world_support + R_world_support * support_next_zmp->value;
774
772
  supports[1].footsteps[0].frame.translation().x() = world_next_zmp_val(0);
775
773
  supports[1].footsteps[0].frame.translation().y() = world_next_zmp_val(1);
776
774
 
777
775
  // Updating current support remaining duration
778
- double support_remaining_time = log(tau->value(0)) / omega - elapsed_time;
776
+ double support_remaining_time = std::max(1e-3, log(tau->value(0)) / omega - elapsed_time);
779
777
  supports[0].time_ratio =
780
778
  support_remaining_time / (support_default_duration(current_support) * (1 - current_support.elapsed_ratio));
781
779
 
@@ -58,7 +58,8 @@ void WalkTasks::reach_initial_pose(Eigen::Affine3d T_world_left, double feet_spa
58
58
  double trunk_pitch)
59
59
  {
60
60
  Eigen::Affine3d T_world_right = T_world_left;
61
- T_world_right.translation() = T_world_left.translation() + T_world_left.rotation() * Eigen::Vector3d(0, -feet_spacing, 0);
61
+ T_world_right.translation() =
62
+ T_world_left.translation() + T_world_left.rotation() * Eigen::Vector3d(0, -feet_spacing, 0);
62
63
 
63
64
  Eigen::Vector3d com_world = interpolate_frames(T_world_left, T_world_right, .5).translation();
64
65
  com_world.z() = com_height;
@@ -68,7 +69,7 @@ void WalkTasks::reach_initial_pose(Eigen::Affine3d T_world_left, double feet_spa
68
69
  trunk_orientation_task->R_world_frame = R_world_trunk;
69
70
 
70
71
  update_tasks(T_world_left, T_world_right, com_world, R_world_trunk);
71
-
72
+
72
73
  for (int i = 0; i < 100; i++)
73
74
  {
74
75
  if (i <= 10)
@@ -129,7 +130,8 @@ void WalkTasks::remove_tasks()
129
130
  }
130
131
  }
131
132
 
132
- void WalkTasks::update_tasks_and_pid(WalkPatternGenerator::Trajectory& trajectory, double t, Eigen::Vector2d dcm, double omega, double elapsed)
133
+ void WalkTasks::update_tasks_and_pid(WalkPatternGenerator::Trajectory& trajectory, double t, Eigen::Vector2d dcm,
134
+ double omega, double elapsed)
133
135
  {
134
136
  Eigen::Vector2d error = dcm - trajectory.get_p_world_DCM(t + com_delay, omega);
135
137
  integral = (1.0 - lambda) * integral + error * elapsed;
@@ -139,7 +141,7 @@ void WalkTasks::update_tasks_and_pid(WalkPatternGenerator::Trajectory& trajector
139
141
  Eigen::Vector2d com_offset = K_p * error + K_i * integral + K_d * derivative;
140
142
 
141
143
  update_tasks(trajectory.get_T_world_left(t), trajectory.get_T_world_right(t),
142
- trajectory.get_p_world_CoM(t + com_delay) + Eigen::Vector3d(com_offset[0], com_offset[1], 0.),
144
+ trajectory.get_p_world_CoM(t + com_delay) + Eigen::Vector3d(com_offset[0], com_offset[1], 0.),
143
145
  trajectory.get_R_world_trunk(t));
144
146
  }
145
147
 
@@ -40,7 +40,8 @@ public:
40
40
  double com_y = 0.;
41
41
 
42
42
  // DCM error PID
43
- void update_tasks_and_pid(WalkPatternGenerator::Trajectory& trajectory, double t, Eigen::Vector2d dcm, double omega, double elapsed);
43
+ void update_tasks_and_pid(WalkPatternGenerator::Trajectory& trajectory, double t, Eigen::Vector2d dcm, double omega,
44
+ double elapsed);
44
45
 
45
46
  double K_p = 0.;
46
47
  double K_i = 0.;
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
File without changes
File without changes
File without changes