placo 0.9.13__tar.gz → 0.9.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of placo might be problematic. Click here for more details.
- {placo-0.9.13 → placo-0.9.14}/PKG-INFO +1 -1
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-parameters.cpp +3 -1
- {placo-0.9.13 → placo-0.9.14}/pyproject.toml +1 -1
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner.cpp +6 -2
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner.h +1 -1
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_parameters.cpp +30 -4
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_parameters.h +18 -1
- {placo-0.9.13 → placo-0.9.14}/.clang-format +0 -0
- {placo-0.9.13 → placo-0.9.14}/.gitattributes +0 -0
- {placo-0.9.13 → placo-0.9.14}/.github/workflows/wheels.yml +0 -0
- {placo-0.9.13 → placo-0.9.14}/.gitignore +0 -0
- {placo-0.9.13 → placo-0.9.14}/.readthedocs.yaml +0 -0
- {placo-0.9.13 → placo-0.9.14}/CMakeLists.txt +0 -0
- {placo-0.9.13 → placo-0.9.14}/Doxyfile +0 -0
- {placo-0.9.13 → placo-0.9.14}/LICENSE +0 -0
- {placo-0.9.13 → placo-0.9.14}/README.md +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/doxystub.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-dynamics.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-eigen.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-footsteps.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-kinematics.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-problem.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-robot-wrapper.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-tools.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-utils.hpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/expose-walk-pattern-generator.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/module.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/bindings/module.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/.vscode/settings.json +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/Makefile +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/placo_utils/__init__.py +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/placo_utils/tf.py +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/placo_utils/view.py +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/placo_utils/visualization.py +0 -0
- {placo-0.9.13 → placo-0.9.14}/python/run_tests.sh +0 -0
- {placo-0.9.13 → placo-0.9.14}/scripts/requirements.sh +0 -0
- {placo-0.9.13 → placo-0.9.14}/scripts/robotpkg.sh +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/com_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/com_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/contacts.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/contacts.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/dynamics_solver.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/dynamics_solver.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/frame_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/frame_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/gear_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/gear_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/joints_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/joints_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/orientation_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/orientation_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/position_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/position_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_frame_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_frame_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_orientation_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_position_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/relative_position_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/torque_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/dynamics/torque_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/dummy_walk.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/dummy_walk.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/foot_trajectory.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/foot_trajectory.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_robot.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/humanoid_robot.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/kick.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/kick.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/lipm.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/lipm.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_cubic.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/swing_foot_quintic.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_pattern_generator.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_tasks.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/humanoid/walk_tasks.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/axis_align_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/axis_align_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_polygon_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/com_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/cone_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/cone_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/distance_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/frame_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/frame_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/gear_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/gear_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joints_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/joints_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinematics_solver.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinematics_solver.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/manipulability_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/manipulability_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/orientation_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/orientation_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/position_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/position_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/regularization_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/regularization_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_frame_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_frame_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_orientation_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_position_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/relative_position_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/wheel_task.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/wheel_task.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/yaw_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/kinematics/yaw_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/model/robot_wrapper.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/model/robot_wrapper.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/expression.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/expression.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/integrator.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/integrator.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/polygon_constraint.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/polygon_constraint.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem_polynom.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/problem_polynom.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/qp_error.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/qp_error.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/sparsity.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/sparsity.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/variable.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/problem/variable.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/axises_mask.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/axises_mask.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline_3d.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/cubic_spline_3d.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/directions.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/directions.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/polynom.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/polynom.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/prioritized.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/prioritized.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/segment.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/segment.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/utils.cpp +0 -0
- {placo-0.9.13 → placo-0.9.14}/src/placo/tools/utils.h +0 -0
- {placo-0.9.13 → placo-0.9.14}/wks.yml +0 -0
|
@@ -59,6 +59,8 @@ void exposeParameters()
|
|
|
59
59
|
.def("has_double_support", &HumanoidParameters::has_double_support)
|
|
60
60
|
.def("ellipsoid_clip", &HumanoidParameters::ellipsoid_clip)
|
|
61
61
|
.def("box_clip", &HumanoidParameters::box_clip)
|
|
62
|
+
.def("conic_clip", &HumanoidParameters::conic_clip)
|
|
62
63
|
.def("ellipsoid_overlap_clip", &HumanoidParameters::ellipsoid_overlap_clip)
|
|
63
|
-
.def("box_overlap_clip", &HumanoidParameters::box_overlap_clip)
|
|
64
|
+
.def("box_overlap_clip", &HumanoidParameters::box_overlap_clip)
|
|
65
|
+
.def("conic_overlap_clip", &HumanoidParameters::conic_overlap_clip);
|
|
64
66
|
}
|
|
@@ -319,11 +319,15 @@ FootstepsPlanner::Footstep FootstepsPlanner::clipped_opposite_footstep(Footstep
|
|
|
319
319
|
step.y() += parameters.walk_dtheta_spacing * fabs(step.z());
|
|
320
320
|
}
|
|
321
321
|
|
|
322
|
-
if (
|
|
322
|
+
if (footstep_clipping == HumanoidParameters::FootstepClipping::Conic)
|
|
323
|
+
{
|
|
324
|
+
step = parameters.conic_clip(step);
|
|
325
|
+
}
|
|
326
|
+
else if (footstep_clipping == HumanoidParameters::FootstepClipping::Ellipsoid)
|
|
323
327
|
{
|
|
324
328
|
step = parameters.ellipsoid_clip(step);
|
|
325
329
|
}
|
|
326
|
-
else
|
|
330
|
+
else if (footstep_clipping == HumanoidParameters::FootstepClipping::Box)
|
|
327
331
|
{
|
|
328
332
|
step = parameters.box_clip(step);
|
|
329
333
|
}
|
|
@@ -149,7 +149,7 @@ public:
|
|
|
149
149
|
// Humanoid parameters for planning and control
|
|
150
150
|
HumanoidParameters& parameters;
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
HumanoidParameters::FootstepClipping footstep_clipping = HumanoidParameters::FootstepClipping::Conic;
|
|
153
153
|
|
|
154
154
|
protected:
|
|
155
155
|
virtual void plan_impl(std::vector<Footstep>&, HumanoidRobot::Side flying_side, Eigen::Affine3d T_world_left,
|
|
@@ -75,21 +75,47 @@ Eigen::Vector3d HumanoidParameters::box_clip(Eigen::Vector3d step)
|
|
|
75
75
|
return step;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
Eigen::Vector3d HumanoidParameters::conic_clip(Eigen::Vector3d step)
|
|
79
|
+
{
|
|
80
|
+
Eigen::Vector3d factor((step.x() >= 0) ? walk_max_dx_forward : walk_max_dx_backward, walk_max_dy, walk_max_dtheta);
|
|
81
|
+
step.x() /= factor.x();
|
|
82
|
+
step.y() /= factor.y();
|
|
83
|
+
step.z() /= factor.z();
|
|
84
|
+
|
|
85
|
+
double norm = sqrt(step.x() * step.x() + step.y() * step.y()) + fabs(step.z());
|
|
86
|
+
if (norm > 1)
|
|
87
|
+
{
|
|
88
|
+
step /= norm;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
step.x() *= factor.x();
|
|
92
|
+
step.y() *= factor.y();
|
|
93
|
+
step.z() *= factor.z();
|
|
94
|
+
|
|
95
|
+
return step;
|
|
96
|
+
}
|
|
97
|
+
|
|
78
98
|
Eigen::Vector3d HumanoidParameters::ellipsoid_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
|
|
79
99
|
{
|
|
80
|
-
return overlap_clip(support_side, step,
|
|
100
|
+
return overlap_clip(support_side, step, FootstepClipping::Ellipsoid);
|
|
81
101
|
}
|
|
82
102
|
|
|
83
103
|
Eigen::Vector3d HumanoidParameters::box_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
|
|
84
104
|
{
|
|
85
|
-
return overlap_clip(support_side, step,
|
|
105
|
+
return overlap_clip(support_side, step, FootstepClipping::Box);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
Eigen::Vector3d HumanoidParameters::conic_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step)
|
|
109
|
+
{
|
|
110
|
+
return overlap_clip(support_side, step, FootstepClipping::Conic);
|
|
86
111
|
}
|
|
87
112
|
|
|
88
|
-
Eigen::Vector3d HumanoidParameters::overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step,
|
|
113
|
+
Eigen::Vector3d HumanoidParameters::overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step,
|
|
114
|
+
HumanoidParameters::FootstepClipping clipping)
|
|
89
115
|
{
|
|
90
116
|
FootstepsPlannerRepetitive planner(*this);
|
|
91
117
|
planner.configure(step.x(), step.y(), step.z(), 3);
|
|
92
|
-
planner.
|
|
118
|
+
planner.footstep_clipping = clipping;
|
|
93
119
|
|
|
94
120
|
// Creatting footsteps
|
|
95
121
|
Eigen::Affine3d T_world_left = Eigen::Affine3d::Identity();
|
|
@@ -161,6 +161,13 @@ public:
|
|
|
161
161
|
// DCM offset bounds (polygon)
|
|
162
162
|
std::vector<Eigen::Vector2d> dcm_offset_polygon;
|
|
163
163
|
|
|
164
|
+
enum FootstepClipping
|
|
165
|
+
{
|
|
166
|
+
Ellipsoid = 0,
|
|
167
|
+
Box = 1,
|
|
168
|
+
Conic = 2
|
|
169
|
+
};
|
|
170
|
+
|
|
164
171
|
/**
|
|
165
172
|
* @brief Applies the ellipsoid (L2) clipping to a given step size (dx, dy, dtheta)
|
|
166
173
|
*/
|
|
@@ -171,6 +178,11 @@ public:
|
|
|
171
178
|
*/
|
|
172
179
|
Eigen::Vector3d box_clip(Eigen::Vector3d step);
|
|
173
180
|
|
|
181
|
+
/**
|
|
182
|
+
* @brief Applies the conic clipping to a given step size (dx, dy, dtheta)
|
|
183
|
+
*/
|
|
184
|
+
Eigen::Vector3d conic_clip(Eigen::Vector3d step);
|
|
185
|
+
|
|
174
186
|
/**
|
|
175
187
|
* @brief Clips a step using ellipsoid and overlap avoidance
|
|
176
188
|
*/
|
|
@@ -181,6 +193,11 @@ public:
|
|
|
181
193
|
*/
|
|
182
194
|
Eigen::Vector3d box_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step);
|
|
183
195
|
|
|
196
|
+
/**
|
|
197
|
+
* @brief Clips a step using ellipsoid and overlap avoidance
|
|
198
|
+
*/
|
|
199
|
+
Eigen::Vector3d conic_overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step);
|
|
200
|
+
|
|
184
201
|
/**
|
|
185
202
|
* @brief Frames for opposite and neutral positions
|
|
186
203
|
*/
|
|
@@ -194,6 +211,6 @@ protected:
|
|
|
194
211
|
/**
|
|
195
212
|
* @brief Clips a step using ellipsoid and overlap avoidance
|
|
196
213
|
*/
|
|
197
|
-
Eigen::Vector3d overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step,
|
|
214
|
+
Eigen::Vector3d overlap_clip(HumanoidRobot::Side support_side, Eigen::Vector3d step, FootstepClipping clipping);
|
|
198
215
|
};
|
|
199
216
|
} // namespace placo::humanoid
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|