placo 0.4.9__tar.gz → 0.5.0__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 (164) hide show
  1. {placo-0.4.9 → placo-0.5.0}/PKG-INFO +1 -1
  2. {placo-0.4.9 → placo-0.5.0}/bindings/expose-kinematics.cpp +2 -2
  3. {placo-0.4.9 → placo-0.5.0}/bindings/expose-problem.cpp +2 -1
  4. {placo-0.4.9 → placo-0.5.0}/placo.pyi +11 -4
  5. {placo-0.4.9 → placo-0.5.0}/pyproject.toml +1 -1
  6. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/walk_tasks.cpp +8 -10
  7. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/com_polygon_constraint.cpp +0 -1
  8. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/gear_task.cpp +0 -1
  9. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/kinematics_solver.cpp +20 -24
  10. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/kinematics_solver.h +6 -5
  11. {placo-0.4.9 → placo-0.5.0}/.clang-format +0 -0
  12. {placo-0.4.9 → placo-0.5.0}/.gitattributes +0 -0
  13. {placo-0.4.9 → placo-0.5.0}/.gitignore +0 -0
  14. {placo-0.4.9 → placo-0.5.0}/.readthedocs.yaml +0 -0
  15. {placo-0.4.9 → placo-0.5.0}/CMakeLists.txt +0 -0
  16. {placo-0.4.9 → placo-0.5.0}/Doxyfile +0 -0
  17. {placo-0.4.9 → placo-0.5.0}/LICENSE +0 -0
  18. {placo-0.4.9 → placo-0.5.0}/Makefile +0 -0
  19. {placo-0.4.9 → placo-0.5.0}/README.md +0 -0
  20. {placo-0.4.9 → placo-0.5.0}/bindings/expose-dynamics.cpp +0 -0
  21. {placo-0.4.9 → placo-0.5.0}/bindings/expose-eigen.cpp +0 -0
  22. {placo-0.4.9 → placo-0.5.0}/bindings/expose-footsteps.cpp +0 -0
  23. {placo-0.4.9 → placo-0.5.0}/bindings/expose-parameters.cpp +0 -0
  24. {placo-0.4.9 → placo-0.5.0}/bindings/expose-robot-wrapper.cpp +0 -0
  25. {placo-0.4.9 → placo-0.5.0}/bindings/expose-tools.cpp +0 -0
  26. {placo-0.4.9 → placo-0.5.0}/bindings/expose-utils.hpp +0 -0
  27. {placo-0.4.9 → placo-0.5.0}/bindings/expose-walk-pattern-generator.cpp +0 -0
  28. {placo-0.4.9 → placo-0.5.0}/bindings/module.cpp +0 -0
  29. {placo-0.4.9 → placo-0.5.0}/bindings/module.h +0 -0
  30. {placo-0.4.9 → placo-0.5.0}/bindings/registry.cpp +0 -0
  31. {placo-0.4.9 → placo-0.5.0}/bindings/registry.h +0 -0
  32. {placo-0.4.9 → placo-0.5.0}/doxygen_parse.py +0 -0
  33. {placo-0.4.9 → placo-0.5.0}/python/.vscode/settings.json +0 -0
  34. {placo-0.4.9 → placo-0.5.0}/python/Makefile +0 -0
  35. {placo-0.4.9 → placo-0.5.0}/python/placo_utils/__init__.py +0 -0
  36. {placo-0.4.9 → placo-0.5.0}/python/placo_utils/tf.py +0 -0
  37. {placo-0.4.9 → placo-0.5.0}/python/placo_utils/visualization.py +0 -0
  38. {placo-0.4.9 → placo-0.5.0}/python/run_tests.sh +0 -0
  39. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
  40. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
  41. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/com_task.cpp +0 -0
  42. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/com_task.h +0 -0
  43. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/constraint.cpp +0 -0
  44. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/constraint.h +0 -0
  45. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/contacts.cpp +0 -0
  46. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/contacts.h +0 -0
  47. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/dynamics_solver.cpp +0 -0
  48. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/dynamics_solver.h +0 -0
  49. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/frame_task.cpp +0 -0
  50. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/frame_task.h +0 -0
  51. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/gear_task.cpp +0 -0
  52. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/gear_task.h +0 -0
  53. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/joints_task.cpp +0 -0
  54. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/joints_task.h +0 -0
  55. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/orientation_task.cpp +0 -0
  56. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/orientation_task.h +0 -0
  57. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/position_task.cpp +0 -0
  58. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/position_task.h +0 -0
  59. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/reaction_ratio_constraint.cpp +0 -0
  60. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/reaction_ratio_constraint.h +0 -0
  61. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_frame_task.cpp +0 -0
  62. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_frame_task.h +0 -0
  63. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
  64. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_orientation_task.h +0 -0
  65. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_position_task.cpp +0 -0
  66. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/relative_position_task.h +0 -0
  67. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/task.cpp +0 -0
  68. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/task.h +0 -0
  69. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/torque_task.cpp +0 -0
  70. {placo-0.4.9 → placo-0.5.0}/src/placo/dynamics/torque_task.h +0 -0
  71. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/foot_trajectory.cpp +0 -0
  72. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/foot_trajectory.h +0 -0
  73. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner.cpp +0 -0
  74. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner.h +0 -0
  75. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
  76. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
  77. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
  78. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
  79. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
  80. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/humanoid_parameters.h +0 -0
  81. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/humanoid_robot.cpp +0 -0
  82. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/humanoid_robot.h +0 -0
  83. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/kick.cpp +0 -0
  84. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/kick.h +0 -0
  85. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/lipm.cpp +0 -0
  86. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/lipm.h +0 -0
  87. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot.cpp +0 -0
  88. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot.h +0 -0
  89. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
  90. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot_cubic.h +0 -0
  91. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
  92. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/swing_foot_quintic.h +0 -0
  93. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
  94. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/walk_pattern_generator.h +0 -0
  95. {placo-0.4.9 → placo-0.5.0}/src/placo/humanoid/walk_tasks.h +0 -0
  96. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
  97. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
  98. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/axis_align_task.cpp +0 -0
  99. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/axis_align_task.h +0 -0
  100. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
  101. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
  102. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/com_polygon_constraint.h +0 -0
  103. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/com_task.cpp +0 -0
  104. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/com_task.h +0 -0
  105. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/cone_constraint.cpp +0 -0
  106. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/cone_constraint.h +0 -0
  107. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/constraint.cpp +0 -0
  108. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/constraint.h +0 -0
  109. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/distance_task.cpp +0 -0
  110. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/distance_task.h +0 -0
  111. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/frame_task.cpp +0 -0
  112. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/frame_task.h +0 -0
  113. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/gear_task.h +0 -0
  114. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/joints_task.cpp +0 -0
  115. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/joints_task.h +0 -0
  116. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
  117. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
  118. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/orientation_task.cpp +0 -0
  119. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/orientation_task.h +0 -0
  120. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/position_task.cpp +0 -0
  121. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/position_task.h +0 -0
  122. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/regularization_task.cpp +0 -0
  123. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/regularization_task.h +0 -0
  124. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_frame_task.cpp +0 -0
  125. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_frame_task.h +0 -0
  126. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
  127. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_orientation_task.h +0 -0
  128. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_position_task.cpp +0 -0
  129. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/relative_position_task.h +0 -0
  130. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/task.cpp +0 -0
  131. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/task.h +0 -0
  132. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/wheel_task.cpp +0 -0
  133. {placo-0.4.9 → placo-0.5.0}/src/placo/kinematics/wheel_task.h +0 -0
  134. {placo-0.4.9 → placo-0.5.0}/src/placo/model/robot_wrapper.cpp +0 -0
  135. {placo-0.4.9 → placo-0.5.0}/src/placo/model/robot_wrapper.h +0 -0
  136. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/constraint.cpp +0 -0
  137. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/constraint.h +0 -0
  138. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/expression.cpp +0 -0
  139. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/expression.h +0 -0
  140. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/integrator.cpp +0 -0
  141. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/integrator.h +0 -0
  142. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/polygon_constraint.cpp +0 -0
  143. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/polygon_constraint.h +0 -0
  144. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/problem.cpp +0 -0
  145. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/problem.h +0 -0
  146. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/qp_error.cpp +0 -0
  147. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/qp_error.h +0 -0
  148. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/sparsity.cpp +0 -0
  149. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/sparsity.h +0 -0
  150. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/variable.cpp +0 -0
  151. {placo-0.4.9 → placo-0.5.0}/src/placo/problem/variable.h +0 -0
  152. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/axises_mask.cpp +0 -0
  153. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/axises_mask.h +0 -0
  154. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/cubic_spline.cpp +0 -0
  155. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/cubic_spline.h +0 -0
  156. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/cubic_spline_3d.cpp +0 -0
  157. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/cubic_spline_3d.h +0 -0
  158. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/prioritized.cpp +0 -0
  159. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/prioritized.h +0 -0
  160. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/utils.cpp +0 -0
  161. {placo-0.4.9 → placo-0.5.0}/src/placo/tools/utils.h +0 -0
  162. {placo-0.4.9 → placo-0.5.0}/stubs.py +0 -0
  163. {placo-0.4.9 → placo-0.5.0}/tweak_sdist.sh +0 -0
  164. {placo-0.4.9 → placo-0.5.0}/wks.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: placo
3
- Version: 0.4.9
3
+ Version: 0.5.0
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.8
6
6
  License-Expression: MIT
@@ -20,7 +20,6 @@ void exposeKinematics()
20
20
  class_<KinematicsSolver> solver_class =
21
21
  class__<KinematicsSolver>("KinematicsSolver", init<RobotWrapper&>())
22
22
  .add_property("problem", &KinematicsSolver::problem)
23
- .add_property("noise", &KinematicsSolver::noise, &KinematicsSolver::noise)
24
23
  .add_property("dt", &KinematicsSolver::dt, &KinematicsSolver::dt)
25
24
  .add_property("N", &KinematicsSolver::N)
26
25
  .add_property("scale", &KinematicsSolver::scale)
@@ -111,7 +110,8 @@ void exposeKinematics()
111
110
  .def<void (KinematicsSolver::*)(Task&)>("remove_task", &KinematicsSolver::remove_task)
112
111
  .def<void (KinematicsSolver::*)(FrameTask&)>("remove_task", &KinematicsSolver::remove_task)
113
112
  .def("remove_constraint", &KinematicsSolver::remove_constraint)
114
- .def("solve", &KinematicsSolver::solve);
113
+ .def("solve", &KinematicsSolver::solve)
114
+ .def("add_q_noise", &KinematicsSolver::add_q_noise);
115
115
 
116
116
  class__<Task, bases<tools::Prioritized>, boost::noncopyable>("Task", no_init)
117
117
  .add_property(
@@ -22,6 +22,7 @@ using namespace placo;
22
22
  using namespace placo::problem;
23
23
 
24
24
  BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(expr_overloads, expr, 0, 2);
25
+ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(integrator_expr_overloads, expr, 1, 2);
25
26
  BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(configure_overloads, configure, 1, 2);
26
27
 
27
28
  void exposeProblem()
@@ -91,7 +92,7 @@ void exposeProblem()
91
92
  "B", +[](const Integrator& i) { return i.B; })
92
93
  .add_property(
93
94
  "final_transition_matrix", +[](const Integrator& i) { return i.final_transition_matrix; })
94
- .def("expr", &Integrator::expr)
95
+ .def("expr", &Integrator::expr, integrator_expr_overloads())
95
96
  .def("expr_t", &Integrator::expr_t)
96
97
  .def("value", &Integrator::value)
97
98
  .def("get_trajectory", &Integrator::get_trajectory);
@@ -4383,6 +4383,17 @@ class KinematicsSolver:
4383
4383
  :return: position task"""
4384
4384
  ...
4385
4385
 
4386
+ def add_q_noise(
4387
+ self: KinematicsSolver,
4388
+ noise: float = 1e-5, # double
4389
+
4390
+ ) -> None:
4391
+ """Adds some noise on the configuration of the robot (q)
4392
+
4393
+
4394
+ :param noise: noise level, expressed in ratio of the joint limits"""
4395
+ ...
4396
+
4386
4397
  def add_regularization_task(
4387
4398
  self: KinematicsSolver,
4388
4399
  magnitude: float = 1e-6, # double
@@ -4532,10 +4543,6 @@ class KinematicsSolver:
4532
4543
  """Decides if the floating base should be masked."""
4533
4544
  ...
4534
4545
 
4535
- noise: float # double
4536
- """Some configuration noise added before solving.
4537
- """
4538
-
4539
4546
  problem: Problem # placo::problem::Problem
4540
4547
  """The underlying QP problem.
4541
4548
  """
@@ -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.4.9"
26
+ version = "0.5.0"
27
27
 
28
28
  [project.urls]
29
29
  changelog = "https://github.com/rhoban/placo/blob/main/CHANGELOG.md"
@@ -6,20 +6,19 @@ namespace placo::humanoid
6
6
  using namespace placo::kinematics;
7
7
  using namespace placo::tools;
8
8
 
9
-
10
9
  void WalkTasks::initialize_tasks(KinematicsSolver* solver_, HumanoidRobot* robot_)
11
10
  {
12
11
  robot = robot_;
13
12
  solver = solver_;
14
13
 
15
14
  left_foot_task = solver->add_frame_task("left_foot", robot->get_T_world_left());
16
- left_foot_task.configure("left_foot", scaled?"scaled":"soft", 1., 1.);
15
+ left_foot_task.configure("left_foot", scaled ? "scaled" : "soft", 1., 1.);
17
16
 
18
17
  right_foot_task = solver->add_frame_task("right_foot", robot->get_T_world_right());
19
- right_foot_task.configure("right_foot", scaled?"scaled":"soft", 1., 1.);
18
+ right_foot_task.configure("right_foot", scaled ? "scaled" : "soft", 1., 1.);
20
19
 
21
20
  trunk_orientation_task = &solver->add_orientation_task("trunk", robot->get_T_world_trunk().rotation());
22
- trunk_orientation_task->configure("trunk", scaled?"scaled":"soft", 1.);
21
+ trunk_orientation_task->configure("trunk", scaled ? "scaled" : "soft", 1.);
23
22
 
24
23
  update_com_task();
25
24
  }
@@ -36,7 +35,7 @@ void WalkTasks::update_com_task()
36
35
  if (trunk_task == nullptr)
37
36
  {
38
37
  trunk_task = &solver->add_position_task("trunk", robot->get_T_world_frame("trunk").translation());
39
- trunk_task->configure("trunk", scaled?"scaled":"soft", 1.);
38
+ trunk_task->configure("trunk", scaled ? "scaled" : "soft", 1.);
40
39
  }
41
40
  }
42
41
  else
@@ -49,7 +48,7 @@ void WalkTasks::update_com_task()
49
48
  if (com_task == nullptr)
50
49
  {
51
50
  com_task = &solver->add_com_task(robot->com_world());
52
- com_task->configure("com", scaled?"scaled":"soft", 1.);
51
+ com_task->configure("com", scaled ? "scaled" : "soft", 1.);
53
52
  }
54
53
  }
55
54
  }
@@ -69,13 +68,12 @@ void WalkTasks::reach_initial_pose(Eigen::Affine3d T_world_left, double feet_spa
69
68
 
70
69
  update_tasks(T_world_left, T_world_right, com_world, R_world_trunk);
71
70
 
72
- // Adding strong noise to avoid singularities
73
- solver->noise = 0.1;
74
71
  for (int i = 0; i < 100; i++)
75
72
  {
76
- if (i == 10)
73
+ if (i <= 10)
77
74
  {
78
- solver->noise = 1e-4;
75
+ // Adding strong noise to avoid singularities
76
+ solver->add_q_noise(0.1);
79
77
  }
80
78
 
81
79
  robot->update_kinematics();
@@ -28,7 +28,6 @@ void CoMPolygonConstraint::add_constraint(placo::problem::Problem& problem)
28
28
  // Future DCM is c + J dq + J dq / (dt * w)
29
29
  // = c + J dq (1 + 1 / (dt * w))
30
30
  com_xy.A *= (1. + 1. / (solver->dt * omega));
31
- std::cout << "Coef: " << (1. + 1. / (solver->dt * omega)) << std::endl;
32
31
  }
33
32
  com_xy.b = com;
34
33
 
@@ -42,7 +42,6 @@ void GearTask::update()
42
42
  {
43
43
  int source = gear_source.first;
44
44
  double ratio = gear_source.second;
45
- auto& gear = entry.second;
46
45
  double q_source = solver->robot.state.q[source + 1];
47
46
 
48
47
  A(k, source) = ratio;
@@ -244,6 +244,23 @@ void KinematicsSolver::compute_limits_inequalities()
244
244
  }
245
245
  }
246
246
 
247
+ void KinematicsSolver::add_q_noise(double noise)
248
+ {
249
+ auto q_random = pinocchio::randomConfiguration(robot.model);
250
+
251
+ // Adding some noise in direction of a random configuration (except floating base)
252
+ for (int k = 7; k < robot.model.nq; k++)
253
+ {
254
+ if (robot.model.lowerPositionLimit(k) == std::numeric_limits<double>::lowest() ||
255
+ robot.model.upperPositionLimit(k) == std::numeric_limits<double>::max())
256
+ {
257
+ continue;
258
+ }
259
+
260
+ robot.state.q(k) += (q_random(k) - robot.state.q(k)) * noise;
261
+ }
262
+ }
263
+
247
264
  Eigen::VectorXd KinematicsSolver::solve(bool apply)
248
265
  {
249
266
  // Ensure variable is created
@@ -255,26 +272,6 @@ Eigen::VectorXd KinematicsSolver::solve(bool apply)
255
272
  // Clear previously created constraints
256
273
  problem.clear_constraints();
257
274
 
258
- // Adding some random noise
259
- auto q_save = robot.state.q;
260
-
261
- if (noise > 0)
262
- {
263
- auto q_random = pinocchio::randomConfiguration(robot.model);
264
-
265
- // Adding some noise in direction of a random configuration (except floating base)
266
- for (int k = 7; k < robot.model.nq; k++)
267
- {
268
- if (robot.model.lowerPositionLimit(k) == std::numeric_limits<double>::lowest() ||
269
- robot.model.upperPositionLimit(k) == std::numeric_limits<double>::max())
270
- {
271
- continue;
272
- }
273
-
274
- robot.state.q(k) += (q_random(k) - robot.state.q(k)) * noise;
275
- }
276
- }
277
-
278
275
  has_scaling = false;
279
276
 
280
277
  // Updating all the task matrices
@@ -359,6 +356,9 @@ Eigen::VectorXd KinematicsSolver::solve(bool apply)
359
356
 
360
357
  if (apply)
361
358
  {
359
+ // Initial robot configuration
360
+ auto q_save = robot.state.q;
361
+
362
362
  robot.state.q = pinocchio::integrate(robot.model, robot.state.q, qd_sol);
363
363
  if (dt > 0)
364
364
  {
@@ -367,10 +367,6 @@ Eigen::VectorXd KinematicsSolver::solve(bool apply)
367
367
  robot.state.qdd = (robot.state.qd - qd_save) / dt;
368
368
  }
369
369
  }
370
- else
371
- {
372
- robot.state.q = q_save;
373
- }
374
370
 
375
371
  return qd_sol;
376
372
  }
@@ -299,6 +299,12 @@ public:
299
299
  */
300
300
  Eigen::VectorXd solve(bool apply = false);
301
301
 
302
+ /**
303
+ * @brief Adds some noise on the configuration of the robot (q)
304
+ * @param noise noise level, expressed in ratio of the joint limits
305
+ */
306
+ void add_q_noise(double noise = 1e-5);
307
+
302
308
  /**
303
309
  * @brief Masks (disables a DoF) from being used by the QP solver (it can't provide speed)
304
310
  * @param dof the dof name
@@ -379,11 +385,6 @@ public:
379
385
  */
380
386
  int N;
381
387
 
382
- /**
383
- * @brief Some configuration noise added before solving
384
- */
385
- double noise = 1e-5;
386
-
387
388
  /**
388
389
  * @brief solver dt (for speeds limiting)
389
390
  */
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