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.
- {placo-0.9.9 → placo-0.9.11}/.github/workflows/wheels.yml +4 -1
- {placo-0.9.9 → placo-0.9.11}/PKG-INFO +4 -4
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-footsteps.cpp +1 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-robot-wrapper.cpp +1 -1
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-walk-pattern-generator.cpp +5 -5
- {placo-0.9.9 → placo-0.9.11}/pyproject.toml +4 -4
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/dummy_walk.cpp +13 -10
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/dummy_walk.h +12 -20
- {placo-0.9.9 → placo-0.9.11}/.clang-format +0 -0
- {placo-0.9.9 → placo-0.9.11}/.gitattributes +0 -0
- {placo-0.9.9 → placo-0.9.11}/.gitignore +0 -0
- {placo-0.9.9 → placo-0.9.11}/.readthedocs.yaml +0 -0
- {placo-0.9.9 → placo-0.9.11}/CMakeLists.txt +0 -0
- {placo-0.9.9 → placo-0.9.11}/Doxyfile +0 -0
- {placo-0.9.9 → placo-0.9.11}/LICENSE +0 -0
- {placo-0.9.9 → placo-0.9.11}/README.md +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/doxystub.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-dynamics.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-eigen.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-kinematics.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-parameters.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-problem.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-tools.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/expose-utils.hpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/module.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/bindings/module.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/.vscode/settings.json +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/Makefile +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/placo_utils/__init__.py +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/placo_utils/tf.py +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/placo_utils/view.py +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/placo_utils/visualization.py +0 -0
- {placo-0.9.9 → placo-0.9.11}/python/run_tests.sh +0 -0
- {placo-0.9.9 → placo-0.9.11}/scripts/requirements.sh +0 -0
- {placo-0.9.9 → placo-0.9.11}/scripts/robotpkg.sh +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/com_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/com_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/contacts.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/contacts.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/dynamics_solver.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/dynamics_solver.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/frame_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/frame_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/gear_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/gear_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/joints_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/joints_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/orientation_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/orientation_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/position_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/position_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_frame_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_frame_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_orientation_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_position_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/relative_position_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/torque_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/dynamics/torque_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/foot_trajectory.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/foot_trajectory.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_parameters.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_robot.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/humanoid_robot.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/kick.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/kick.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/lipm.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/lipm.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_cubic.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/swing_foot_quintic.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_pattern_generator.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_tasks.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/humanoid/walk_tasks.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/axis_align_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/axis_align_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_polygon_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/com_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/cone_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/cone_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/distance_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/frame_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/frame_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/gear_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/gear_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joints_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/joints_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinematics_solver.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinematics_solver.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/manipulability_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/manipulability_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/orientation_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/orientation_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/position_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/position_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/regularization_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/regularization_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_frame_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_frame_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_orientation_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_position_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/relative_position_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/wheel_task.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/wheel_task.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/yaw_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/kinematics/yaw_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/model/robot_wrapper.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/model/robot_wrapper.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/expression.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/expression.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/integrator.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/integrator.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/polygon_constraint.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/polygon_constraint.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem_polynom.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/problem_polynom.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/qp_error.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/qp_error.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/sparsity.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/sparsity.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/variable.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/problem/variable.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/axises_mask.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/axises_mask.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline_3d.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/cubic_spline_3d.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/directions.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/directions.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/polynom.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/polynom.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/prioritized.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/prioritized.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/segment.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/segment.h +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/utils.cpp +0 -0
- {placo-0.9.9 → placo-0.9.11}/src/placo/tools/utils.h +0 -0
- {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.
|
|
3
|
+
Version: 0.9.11
|
|
4
4
|
Summary: PlaCo: Rhoban Planning and Control
|
|
5
|
-
Requires-Python: >= 3.
|
|
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
|
|
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]
|
|
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.
|
|
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("
|
|
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]
|
|
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
|
|
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.
|
|
26
|
-
version = "0.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
|
|
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.
|
|
29
|
-
lift_spline.add_point(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,
|
|
78
|
-
Eigen::AngleAxisd(
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
|
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
|
-
|
|
50
|
+
humanoid::HumanoidParameters& parameters;
|
|
59
51
|
|
|
60
52
|
/**
|
|
61
|
-
* @brief
|
|
53
|
+
* @brief Kinematics solver
|
|
62
54
|
*/
|
|
63
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|