placo 0.9.1__tar.gz → 0.9.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 (176) hide show
  1. {placo-0.9.1 → placo-0.9.2}/PKG-INFO +1 -1
  2. {placo-0.9.1 → placo-0.9.2}/bindings/expose-walk-pattern-generator.cpp +1 -1
  3. {placo-0.9.1 → placo-0.9.2}/pyproject.toml +1 -1
  4. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_pattern_generator.cpp +38 -12
  5. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_pattern_generator.h +10 -1
  6. {placo-0.9.1 → placo-0.9.2}/.clang-format +0 -0
  7. {placo-0.9.1 → placo-0.9.2}/.gitattributes +0 -0
  8. {placo-0.9.1 → placo-0.9.2}/.github/workflows/wheels.yml +0 -0
  9. {placo-0.9.1 → placo-0.9.2}/.gitignore +0 -0
  10. {placo-0.9.1 → placo-0.9.2}/.readthedocs.yaml +0 -0
  11. {placo-0.9.1 → placo-0.9.2}/CMakeLists.txt +0 -0
  12. {placo-0.9.1 → placo-0.9.2}/Doxyfile +0 -0
  13. {placo-0.9.1 → placo-0.9.2}/LICENSE +0 -0
  14. {placo-0.9.1 → placo-0.9.2}/README.md +0 -0
  15. {placo-0.9.1 → placo-0.9.2}/bindings/doxystub.h +0 -0
  16. {placo-0.9.1 → placo-0.9.2}/bindings/expose-dynamics.cpp +0 -0
  17. {placo-0.9.1 → placo-0.9.2}/bindings/expose-eigen.cpp +0 -0
  18. {placo-0.9.1 → placo-0.9.2}/bindings/expose-footsteps.cpp +0 -0
  19. {placo-0.9.1 → placo-0.9.2}/bindings/expose-kinematics.cpp +0 -0
  20. {placo-0.9.1 → placo-0.9.2}/bindings/expose-parameters.cpp +0 -0
  21. {placo-0.9.1 → placo-0.9.2}/bindings/expose-problem.cpp +0 -0
  22. {placo-0.9.1 → placo-0.9.2}/bindings/expose-robot-wrapper.cpp +0 -0
  23. {placo-0.9.1 → placo-0.9.2}/bindings/expose-tools.cpp +0 -0
  24. {placo-0.9.1 → placo-0.9.2}/bindings/expose-utils.hpp +0 -0
  25. {placo-0.9.1 → placo-0.9.2}/bindings/module.cpp +0 -0
  26. {placo-0.9.1 → placo-0.9.2}/bindings/module.h +0 -0
  27. {placo-0.9.1 → placo-0.9.2}/python/.vscode/settings.json +0 -0
  28. {placo-0.9.1 → placo-0.9.2}/python/Makefile +0 -0
  29. {placo-0.9.1 → placo-0.9.2}/python/placo_utils/__init__.py +0 -0
  30. {placo-0.9.1 → placo-0.9.2}/python/placo_utils/tf.py +0 -0
  31. {placo-0.9.1 → placo-0.9.2}/python/placo_utils/view.py +0 -0
  32. {placo-0.9.1 → placo-0.9.2}/python/placo_utils/visualization.py +0 -0
  33. {placo-0.9.1 → placo-0.9.2}/python/run_tests.sh +0 -0
  34. {placo-0.9.1 → placo-0.9.2}/scripts/requirements.sh +0 -0
  35. {placo-0.9.1 → placo-0.9.2}/scripts/robotpkg.sh +0 -0
  36. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  37. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  38. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/com_task.cpp +0 -0
  39. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/com_task.h +0 -0
  40. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/constraint.cpp +0 -0
  41. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/constraint.h +0 -0
  42. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/contacts.cpp +0 -0
  43. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/contacts.h +0 -0
  44. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  45. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/dynamics_solver.h +0 -0
  46. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/frame_task.cpp +0 -0
  47. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/frame_task.h +0 -0
  48. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/gear_task.cpp +0 -0
  49. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/gear_task.h +0 -0
  50. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/joints_task.cpp +0 -0
  51. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/joints_task.h +0 -0
  52. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/orientation_task.cpp +0 -0
  53. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/orientation_task.h +0 -0
  54. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/position_task.cpp +0 -0
  55. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/position_task.h +0 -0
  56. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  57. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_frame_task.h +0 -0
  58. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  59. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_orientation_task.h +0 -0
  60. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_position_task.cpp +0 -0
  61. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_position_task.h +0 -0
  62. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/task.cpp +0 -0
  63. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/task.h +0 -0
  64. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/torque_task.cpp +0 -0
  65. {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/torque_task.h +0 -0
  66. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  67. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/foot_trajectory.h +0 -0
  68. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner.cpp +0 -0
  69. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner.h +0 -0
  70. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
  71. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  72. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  73. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  74. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
  75. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_parameters.h +0 -0
  76. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  77. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_robot.h +0 -0
  78. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/kick.cpp +0 -0
  79. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/kick.h +0 -0
  80. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/lipm.cpp +0 -0
  81. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/lipm.h +0 -0
  82. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot.cpp +0 -0
  83. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot.h +0 -0
  84. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
  85. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  86. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  87. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  88. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_tasks.cpp +0 -0
  89. {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_tasks.h +0 -0
  90. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  91. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  92. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/axis_align_task.cpp +0 -0
  93. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/axis_align_task.h +0 -0
  94. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  95. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  96. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
  97. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  98. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_task.cpp +0 -0
  99. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_task.h +0 -0
  100. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/cone_constraint.cpp +0 -0
  101. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/cone_constraint.h +0 -0
  102. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/constraint.cpp +0 -0
  103. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/constraint.h +0 -0
  104. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_constraint.cpp +0 -0
  105. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_constraint.h +0 -0
  106. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_task.cpp +0 -0
  107. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_task.h +0 -0
  108. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/frame_task.cpp +0 -0
  109. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/frame_task.h +0 -0
  110. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/gear_task.cpp +0 -0
  111. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/gear_task.h +0 -0
  112. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
  113. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
  114. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joints_task.cpp +0 -0
  115. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joints_task.h +0 -0
  116. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinematics_solver.cpp +0 -0
  117. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinematics_solver.h +0 -0
  118. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  119. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  120. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/manipulability_task.cpp +0 -0
  121. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/manipulability_task.h +0 -0
  122. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/orientation_task.cpp +0 -0
  123. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/orientation_task.h +0 -0
  124. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/position_task.cpp +0 -0
  125. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/position_task.h +0 -0
  126. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/regularization_task.cpp +0 -0
  127. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/regularization_task.h +0 -0
  128. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  129. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_frame_task.h +0 -0
  130. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  131. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_orientation_task.h +0 -0
  132. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_position_task.cpp +0 -0
  133. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_position_task.h +0 -0
  134. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/task.cpp +0 -0
  135. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/task.h +0 -0
  136. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/wheel_task.cpp +0 -0
  137. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/wheel_task.h +0 -0
  138. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/yaw_constraint.cpp +0 -0
  139. {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/yaw_constraint.h +0 -0
  140. {placo-0.9.1 → placo-0.9.2}/src/placo/model/robot_wrapper.cpp +0 -0
  141. {placo-0.9.1 → placo-0.9.2}/src/placo/model/robot_wrapper.h +0 -0
  142. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/constraint.cpp +0 -0
  143. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/constraint.h +0 -0
  144. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/expression.cpp +0 -0
  145. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/expression.h +0 -0
  146. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/integrator.cpp +0 -0
  147. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/integrator.h +0 -0
  148. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/polygon_constraint.cpp +0 -0
  149. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/polygon_constraint.h +0 -0
  150. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem.cpp +0 -0
  151. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem.h +0 -0
  152. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem_polynom.cpp +0 -0
  153. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem_polynom.h +0 -0
  154. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/qp_error.cpp +0 -0
  155. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/qp_error.h +0 -0
  156. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/sparsity.cpp +0 -0
  157. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/sparsity.h +0 -0
  158. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/variable.cpp +0 -0
  159. {placo-0.9.1 → placo-0.9.2}/src/placo/problem/variable.h +0 -0
  160. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/axises_mask.cpp +0 -0
  161. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/axises_mask.h +0 -0
  162. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline.cpp +0 -0
  163. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline.h +0 -0
  164. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  165. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline_3d.h +0 -0
  166. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/directions.cpp +0 -0
  167. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/directions.h +0 -0
  168. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/polynom.cpp +0 -0
  169. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/polynom.h +0 -0
  170. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/prioritized.cpp +0 -0
  171. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/prioritized.h +0 -0
  172. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/segment.cpp +0 -0
  173. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/segment.h +0 -0
  174. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/utils.cpp +0 -0
  175. {placo-0.9.1 → placo-0.9.2}/src/placo/tools/utils.h +0 -0
  176. {placo-0.9.1 → placo-0.9.2}/wks.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: placo
3
- Version: 0.9.1
3
+ Version: 0.9.2
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.9
6
6
  License-Expression: MIT
@@ -35,8 +35,8 @@ void exposeWalkPatternGenerator()
35
35
  .add_property("com_target_z", &WalkPatternGenerator::Trajectory::com_target_z)
36
36
  .add_property("trunk_pitch", &WalkPatternGenerator::Trajectory::trunk_pitch)
37
37
  .add_property("trunk_roll", &WalkPatternGenerator::Trajectory::trunk_roll)
38
- .add_property("kept_ts", &WalkPatternGenerator::Trajectory::kept_ts)
39
38
  .add_property("parts", &WalkPatternGenerator::Trajectory::parts)
39
+ .add_property("replan_success", &WalkPatternGenerator::Trajectory::replan_success)
40
40
  .def("get_T_world_left", &WalkPatternGenerator::Trajectory::get_T_world_left)
41
41
  .def("get_T_world_right", &WalkPatternGenerator::Trajectory::get_T_world_right)
42
42
  .def("get_v_world_right", &WalkPatternGenerator::Trajectory::get_v_world_right)
@@ -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.1"
26
+ version = "0.9.2"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
@@ -554,9 +554,10 @@ WalkPatternGenerator::Trajectory WalkPatternGenerator::replan(std::vector<Footst
554
554
  Eigen::Vector2d initial_acc = old_trajectory.get_a_world_CoM(t_replan).head(2);
555
555
  bool planned_com = plan_com(trajectory, supports, initial_pos, initial_vel, initial_acc);
556
556
 
557
+ // If we can't plan the CoM, we return the trimmed old trajectory
557
558
  if (!planned_com)
558
559
  {
559
- return old_trajectory;
560
+ return trim_old_trajectory(old_trajectory, t_replan);
560
561
  }
561
562
 
562
563
  plan_feet_trajectories(trajectory, &old_trajectory);
@@ -579,17 +580,6 @@ bool WalkPatternGenerator::can_replan_supports(Trajectory& trajectory, double t_
579
580
  return false;
580
581
  }
581
582
 
582
- // XXX: Need to move to a branch
583
- // We can't replan if more than 1/2 of the support phase has passed
584
- // if (trajectory.get_support(t_replan).elapsed_ratio > 0.8)
585
- // {
586
- // return false;
587
- // }
588
- // if (t_replan - trajectory.get_support(t_replan).t_start < 0.005)
589
- // {
590
- // return false;
591
- // }
592
-
593
583
  return true;
594
584
  }
595
585
 
@@ -817,4 +807,40 @@ Eigen::Vector2d WalkPatternGenerator::get_optimal_zmp(Eigen::Vector2d world_dcm_
817
807
  problem.solve();
818
808
  return world_zmp->value;
819
809
  }
810
+
811
+ WalkPatternGenerator::Trajectory WalkPatternGenerator::trim_old_trajectory(Trajectory& old_trajectory, double t_replan)
812
+ {
813
+ Trajectory trajectory = old_trajectory;
814
+ trajectory.t_start = t_replan;
815
+ trajectory.replan_success = false;
816
+
817
+ // Remove the parts before the replan time
818
+ std::vector<WalkPatternGenerator::TrajectoryPart> new_parts;
819
+ for (auto part : old_trajectory.parts)
820
+ {
821
+ if (t_replan >= part.t_start)
822
+ {
823
+ if (t_replan < part.t_end)
824
+ {
825
+ TrajectoryPart new_part = part;
826
+ new_part.t_start = t_replan;
827
+
828
+ // Updating the elapsed ratio of the support
829
+ double elapsed_duration = t_replan - std::max(old_trajectory.t_start, new_part.support.t_start);
830
+ new_part.support.elapsed_ratio =
831
+ new_part.support.elapsed_ratio +
832
+ elapsed_duration / (support_default_duration(new_part.support) * new_part.support.time_ratio);
833
+
834
+ new_parts.push_back(new_part);
835
+ }
836
+ }
837
+ else
838
+ {
839
+ new_parts.push_back(part);
840
+ }
841
+ }
842
+ trajectory.parts = new_parts;
843
+
844
+ return trajectory;
845
+ }
820
846
  } // namespace placo::humanoid
@@ -53,7 +53,8 @@ public:
53
53
  double trunk_pitch;
54
54
  double trunk_roll;
55
55
 
56
- int kept_ts = 0;
56
+ // Replan succeeded?
57
+ bool replan_success = true;
57
58
 
58
59
  Eigen::Affine3d get_T_world_left(double t);
59
60
  Eigen::Affine3d get_T_world_right(double t);
@@ -252,5 +253,13 @@ protected:
252
253
  void plan_dbl_support(Trajectory& trajectory, int part_index);
253
254
  void plan_sgl_support(Trajectory& trajectory, int part_index, Trajectory* old_trajectory);
254
255
  void plan_feet_trajectories(Trajectory& trajectory, Trajectory* old_trajectory = nullptr);
256
+
257
+ /**
258
+ * @brief Trims the old trajectory to the new time horizon without modifying the CoM and feet trajectories.
259
+ * @param old_trajectory The old trajectory to trim
260
+ * @param t_replan The time at which the replan happens
261
+ * @return The trimmed trajectory
262
+ */
263
+ Trajectory trim_old_trajectory(Trajectory& old_trajectory, double t_replan);
255
264
  };
256
265
  } // 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
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