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.
- {placo-0.9.1 → placo-0.9.2}/PKG-INFO +1 -1
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-walk-pattern-generator.cpp +1 -1
- {placo-0.9.1 → placo-0.9.2}/pyproject.toml +1 -1
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_pattern_generator.cpp +38 -12
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_pattern_generator.h +10 -1
- {placo-0.9.1 → placo-0.9.2}/.clang-format +0 -0
- {placo-0.9.1 → placo-0.9.2}/.gitattributes +0 -0
- {placo-0.9.1 → placo-0.9.2}/.github/workflows/wheels.yml +0 -0
- {placo-0.9.1 → placo-0.9.2}/.gitignore +0 -0
- {placo-0.9.1 → placo-0.9.2}/.readthedocs.yaml +0 -0
- {placo-0.9.1 → placo-0.9.2}/CMakeLists.txt +0 -0
- {placo-0.9.1 → placo-0.9.2}/Doxyfile +0 -0
- {placo-0.9.1 → placo-0.9.2}/LICENSE +0 -0
- {placo-0.9.1 → placo-0.9.2}/README.md +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/doxystub.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-dynamics.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-eigen.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-footsteps.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-kinematics.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-parameters.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-problem.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-robot-wrapper.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-tools.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/expose-utils.hpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/module.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/bindings/module.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/.vscode/settings.json +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/Makefile +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/placo_utils/__init__.py +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/placo_utils/tf.py +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/placo_utils/view.py +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/placo_utils/visualization.py +0 -0
- {placo-0.9.1 → placo-0.9.2}/python/run_tests.sh +0 -0
- {placo-0.9.1 → placo-0.9.2}/scripts/requirements.sh +0 -0
- {placo-0.9.1 → placo-0.9.2}/scripts/robotpkg.sh +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/com_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/com_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/contacts.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/contacts.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/dynamics_solver.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/dynamics_solver.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/frame_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/frame_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/gear_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/gear_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/joints_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/joints_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/orientation_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/orientation_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/position_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/position_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_frame_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_frame_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_orientation_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_position_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/relative_position_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/torque_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/dynamics/torque_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/foot_trajectory.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/foot_trajectory.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_parameters.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_robot.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/humanoid_robot.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/kick.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/kick.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/lipm.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/lipm.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_cubic.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/swing_foot_quintic.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_tasks.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/humanoid/walk_tasks.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/axis_align_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/axis_align_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_polygon_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/com_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/cone_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/cone_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/distance_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/frame_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/frame_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/gear_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/gear_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joint_space_half_spaces_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joint_space_half_spaces_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joints_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/joints_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinematics_solver.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinematics_solver.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinetic_energy_regularization_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/kinetic_energy_regularization_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/manipulability_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/manipulability_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/orientation_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/orientation_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/position_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/position_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/regularization_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/regularization_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_frame_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_frame_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_orientation_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_position_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/relative_position_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/wheel_task.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/wheel_task.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/yaw_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/kinematics/yaw_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/model/robot_wrapper.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/model/robot_wrapper.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/expression.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/expression.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/integrator.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/integrator.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/polygon_constraint.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/polygon_constraint.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem_polynom.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/problem_polynom.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/qp_error.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/qp_error.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/sparsity.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/sparsity.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/variable.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/problem/variable.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/axises_mask.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/axises_mask.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline_3d.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/cubic_spline_3d.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/directions.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/directions.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/polynom.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/polynom.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/prioritized.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/prioritized.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/segment.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/segment.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/utils.cpp +0 -0
- {placo-0.9.1 → placo-0.9.2}/src/placo/tools/utils.h +0 -0
- {placo-0.9.1 → placo-0.9.2}/wks.yml +0 -0
|
@@ -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)
|
|
@@ -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
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|