placo 0.4.5__tar.gz → 0.4.7__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.4.5 → placo-0.4.7}/CMakeLists.txt +2 -0
- {placo-0.4.5 → placo-0.4.7}/PKG-INFO +1 -1
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-dynamics.cpp +15 -5
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-kinematics.cpp +9 -1
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-robot-wrapper.cpp +19 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-tools.cpp +1 -0
- {placo-0.4.5 → placo-0.4.7}/placo.pyi +254 -16
- {placo-0.4.5 → placo-0.4.7}/pyproject.toml +1 -1
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/dynamics_solver.cpp +69 -126
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/dynamics_solver.h +12 -16
- placo-0.4.7/src/placo/dynamics/gear_task.cpp +74 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/gear_task.h +10 -22
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/task.h +5 -0
- placo-0.4.7/src/placo/dynamics/torque_task.cpp +45 -0
- placo-0.4.7/src/placo/dynamics/torque_task.h +35 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/humanoid_robot.cpp +31 -1
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/humanoid_robot.h +8 -0
- placo-0.4.7/src/placo/kinematics/gear_task.cpp +65 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/gear_task.h +12 -22
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/kinematics_solver.cpp +16 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/kinematics_solver.h +8 -0
- placo-0.4.7/src/placo/kinematics/kinetic_energy_regularization_task.cpp +38 -0
- placo-0.4.7/src/placo/kinematics/kinetic_energy_regularization_task.h +14 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/model/robot_wrapper.cpp +7 -1
- {placo-0.4.5 → placo-0.4.7}/src/placo/model/robot_wrapper.h +5 -0
- placo-0.4.5/src/placo/dynamics/gear_task.cpp +0 -59
- placo-0.4.5/src/placo/kinematics/gear_task.cpp +0 -50
- {placo-0.4.5 → placo-0.4.7}/.clang-format +0 -0
- {placo-0.4.5 → placo-0.4.7}/.gitattributes +0 -0
- {placo-0.4.5 → placo-0.4.7}/.gitignore +0 -0
- {placo-0.4.5 → placo-0.4.7}/.readthedocs.yaml +0 -0
- {placo-0.4.5 → placo-0.4.7}/Doxyfile +0 -0
- {placo-0.4.5 → placo-0.4.7}/LICENSE +0 -0
- {placo-0.4.5 → placo-0.4.7}/Makefile +0 -0
- {placo-0.4.5 → placo-0.4.7}/README.md +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-eigen.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-footsteps.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-parameters.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-problem.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-utils.hpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/expose-walk-pattern-generator.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/module.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/module.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/registry.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/bindings/registry.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/doxygen_parse.py +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/.vscode/settings.json +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/Makefile +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/placo_utils/__init__.py +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/placo_utils/tf.py +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/placo_utils/visualization.py +0 -0
- {placo-0.4.5 → placo-0.4.7}/python/run_tests.sh +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/com_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/com_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/contacts.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/contacts.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/frame_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/frame_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/joints_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/joints_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/orientation_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/orientation_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/position_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/position_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/reaction_ratio_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/reaction_ratio_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_frame_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_frame_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_orientation_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_orientation_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_position_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/relative_position_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/dynamics/task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/foot_trajectory.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/foot_trajectory.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner_naive.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner_naive.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner_repetitive.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/footsteps_planner_repetitive.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/humanoid_parameters.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/humanoid_parameters.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/kick.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/kick.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/lipm.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/lipm.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot_cubic.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot_cubic.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot_quintic.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/swing_foot_quintic.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/walk_pattern_generator.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/walk_pattern_generator.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/walk_tasks.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/humanoid/walk_tasks.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/avoid_self_collisions_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/avoid_self_collisions_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/axis_align_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/axis_align_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/centroidal_momentum_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/centroidal_momentum_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/com_polygon_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/com_polygon_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/com_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/com_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/cone_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/cone_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/distance_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/distance_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/frame_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/frame_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/joints_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/joints_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/orientation_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/orientation_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/position_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/position_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/regularization_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/regularization_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_frame_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_frame_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_orientation_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_orientation_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_position_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/relative_position_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/wheel_task.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/kinematics/wheel_task.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/expression.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/expression.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/integrator.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/integrator.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/polygon_constraint.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/polygon_constraint.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/problem.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/problem.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/qp_error.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/qp_error.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/sparsity.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/sparsity.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/variable.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/problem/variable.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/axises_mask.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/axises_mask.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/cubic_spline.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/cubic_spline.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/cubic_spline_3d.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/cubic_spline_3d.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/prioritized.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/prioritized.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/utils.cpp +0 -0
- {placo-0.4.5 → placo-0.4.7}/src/placo/tools/utils.h +0 -0
- {placo-0.4.5 → placo-0.4.7}/stubs.py +0 -0
- {placo-0.4.5 → placo-0.4.7}/tweak_sdist.sh +0 -0
- {placo-0.4.5 → placo-0.4.7}/wks.yml +0 -0
|
@@ -78,6 +78,7 @@ add_library(libplaco SHARED
|
|
|
78
78
|
src/placo/kinematics/gear_task.cpp
|
|
79
79
|
src/placo/kinematics/wheel_task.cpp
|
|
80
80
|
src/placo/kinematics/regularization_task.cpp
|
|
81
|
+
src/placo/kinematics/kinetic_energy_regularization_task.cpp
|
|
81
82
|
src/placo/kinematics/constraint.cpp
|
|
82
83
|
src/placo/kinematics/avoid_self_collisions_constraint.cpp
|
|
83
84
|
src/placo/kinematics/com_polygon_constraint.cpp
|
|
@@ -93,6 +94,7 @@ add_library(libplaco SHARED
|
|
|
93
94
|
src/placo/dynamics/relative_orientation_task.cpp
|
|
94
95
|
src/placo/dynamics/relative_frame_task.cpp
|
|
95
96
|
src/placo/dynamics/joints_task.cpp
|
|
97
|
+
src/placo/dynamics/torque_task.cpp
|
|
96
98
|
src/placo/dynamics/gear_task.cpp
|
|
97
99
|
src/placo/dynamics/com_task.cpp
|
|
98
100
|
src/placo/dynamics/contacts.cpp
|
|
@@ -12,6 +12,10 @@ using namespace placo;
|
|
|
12
12
|
using namespace placo::dynamics;
|
|
13
13
|
using namespace placo::model;
|
|
14
14
|
|
|
15
|
+
// Overloads
|
|
16
|
+
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(set_passive_overloads, set_passive, 1, 4);
|
|
17
|
+
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(solve_overloads, solve, 0, 1);
|
|
18
|
+
|
|
15
19
|
void exposeDynamics()
|
|
16
20
|
{
|
|
17
21
|
class__<DynamicsSolver::Result>("DynamicsSolverResult")
|
|
@@ -75,7 +79,8 @@ void exposeDynamics()
|
|
|
75
79
|
.def_readwrite("friction", &DynamicsSolver::friction)
|
|
76
80
|
.def_readwrite("dt", &DynamicsSolver::dt)
|
|
77
81
|
.def_readwrite("qdd_safe", &DynamicsSolver::qdd_safe)
|
|
78
|
-
.def_readwrite("
|
|
82
|
+
.def_readwrite("gravity_only", &DynamicsSolver::gravity_only)
|
|
83
|
+
.def("mask_fbase", &DynamicsSolver::mask_fbase)
|
|
79
84
|
.def("add_point_contact", &DynamicsSolver::add_point_contact, return_internal_reference<>())
|
|
80
85
|
.def("add_unilateral_point_contact", &DynamicsSolver::add_unilateral_point_contact, return_internal_reference<>())
|
|
81
86
|
.def("add_relative_point_contact", &DynamicsSolver::add_relative_point_contact, return_internal_reference<>())
|
|
@@ -90,14 +95,13 @@ void exposeDynamics()
|
|
|
90
95
|
return_internal_reference<>())
|
|
91
96
|
.def("add_reaction_ratio_constraint", &DynamicsSolver::add_reaction_ratio_constraint,
|
|
92
97
|
return_internal_reference<>())
|
|
93
|
-
.def("set_passive", &DynamicsSolver::set_passive)
|
|
98
|
+
.def("set_passive", &DynamicsSolver::set_passive, set_passive_overloads())
|
|
94
99
|
.def("enable_velocity_limits", &DynamicsSolver::enable_velocity_limits)
|
|
95
100
|
.def("enable_velocity_vs_torque_limits", &DynamicsSolver::enable_velocity_vs_torque_limits)
|
|
96
101
|
.def("enable_joint_limits", &DynamicsSolver::enable_joint_limits)
|
|
97
102
|
.def("enable_torque_limits", &DynamicsSolver::enable_torque_limits)
|
|
98
103
|
.def("dump_status", &DynamicsSolver::dump_status)
|
|
99
|
-
.def("
|
|
100
|
-
.def("solve", &DynamicsSolver::solve)
|
|
104
|
+
.def("solve", &DynamicsSolver::solve, solve_overloads())
|
|
101
105
|
.def<void (DynamicsSolver::*)(Task&)>("add_task", &DynamicsSolver::add_task)
|
|
102
106
|
.def<void (DynamicsSolver::*)(Constraint&)>("add_constraint", &DynamicsSolver::add_constraint)
|
|
103
107
|
.def<void (DynamicsSolver::*)(Constraint&)>("add_constraint", &DynamicsSolver::add_constraint)
|
|
@@ -124,6 +128,8 @@ void exposeDynamics()
|
|
|
124
128
|
"add_relative_frame_task", &DynamicsSolver::add_relative_frame_task)
|
|
125
129
|
.def<JointsTask& (DynamicsSolver::*)()>("add_joints_task", &DynamicsSolver::add_joints_task,
|
|
126
130
|
return_internal_reference<>())
|
|
131
|
+
.def<TorqueTask& (DynamicsSolver::*)()>("add_torque_task", &DynamicsSolver::add_torque_task,
|
|
132
|
+
return_internal_reference<>())
|
|
127
133
|
.def<GearTask& (DynamicsSolver::*)()>("add_gear_task", &DynamicsSolver::add_gear_task,
|
|
128
134
|
return_internal_reference<>())
|
|
129
135
|
.def<CoMTask& (DynamicsSolver::*)(Eigen::Vector3d)>("add_com_task", &DynamicsSolver::add_com_task,
|
|
@@ -227,7 +233,11 @@ void exposeDynamics()
|
|
|
227
233
|
update_map<std::string, double>(task.djoints, py_dict);
|
|
228
234
|
});
|
|
229
235
|
|
|
230
|
-
class__<
|
|
236
|
+
class__<TorqueTask, bases<Task>>("DynamicsTorqueTask", init<>()).def("set_torque", &TorqueTask::set_torque);
|
|
237
|
+
|
|
238
|
+
class__<GearTask, bases<Task>>("DynamicsGearTask", init<>())
|
|
239
|
+
.def("set_gear", &GearTask::set_gear)
|
|
240
|
+
.def("add_gear", &GearTask::add_gear);
|
|
231
241
|
|
|
232
242
|
class__<Constraint, bases<tools::Prioritized>, boost::noncopyable>("DynamicsConstraint", no_init);
|
|
233
243
|
|
|
@@ -77,6 +77,10 @@ void exposeKinematics()
|
|
|
77
77
|
// Regularization task
|
|
78
78
|
.def("add_regularization_task", &KinematicsSolver::add_regularization_task, return_internal_reference<>())
|
|
79
79
|
|
|
80
|
+
// Kinetic energy regularization task
|
|
81
|
+
.def("add_kinetic_energy_regularization_task", &KinematicsSolver::add_kinetic_energy_regularization_task,
|
|
82
|
+
return_internal_reference<>())
|
|
83
|
+
|
|
80
84
|
// Avoid self collisions constraint
|
|
81
85
|
.def("add_avoid_self_collisions_constraint", &KinematicsSolver::add_avoid_self_collisions_constraint,
|
|
82
86
|
return_internal_reference<>())
|
|
@@ -190,7 +194,9 @@ void exposeKinematics()
|
|
|
190
194
|
update_map<std::string, double>(task.joints, py_dict);
|
|
191
195
|
});
|
|
192
196
|
|
|
193
|
-
class__<GearTask, bases<Task>>("GearTask", init<>())
|
|
197
|
+
class__<GearTask, bases<Task>>("GearTask", init<>())
|
|
198
|
+
.def("set_gear", &GearTask::set_gear)
|
|
199
|
+
.def("add_gear", &GearTask::add_gear);
|
|
194
200
|
|
|
195
201
|
class__<WheelTask, bases<Task>>("WheelTask", init<std::string, double, bool>())
|
|
196
202
|
.add_property("joint", &WheelTask::joint)
|
|
@@ -210,6 +216,8 @@ void exposeKinematics()
|
|
|
210
216
|
|
|
211
217
|
class__<RegularizationTask, bases<Task>>("RegularizationTask");
|
|
212
218
|
|
|
219
|
+
class__<KineticEnergyRegularizationTask, bases<RegularizationTask>>("KineticEnergyRegularizationTask");
|
|
220
|
+
|
|
213
221
|
class__<Constraint, bases<tools::Prioritized>, boost::noncopyable>("KinematicsConstraint", no_init);
|
|
214
222
|
|
|
215
223
|
class__<AvoidSelfCollisionsConstraint, bases<Constraint>>("AvoidSelfCollisionsKinematicsConstraint", init<>())
|
|
@@ -55,6 +55,7 @@ void exposeRobotType(class_<RobotType, W1>& type)
|
|
|
55
55
|
.def("generalized_gravity", &RobotType::generalized_gravity)
|
|
56
56
|
.def("non_linear_effects", &RobotType::non_linear_effects)
|
|
57
57
|
.def("mass_matrix", &RobotType::mass_matrix)
|
|
58
|
+
.def("set_gravity", &RobotType::set_gravity)
|
|
58
59
|
.def("total_mass", &RobotType::total_mass)
|
|
59
60
|
.def("integrate", &RobotType::integrate)
|
|
60
61
|
.def(
|
|
@@ -172,6 +173,24 @@ void exposeRobotWrapper()
|
|
|
172
173
|
.def("dcm", &HumanoidRobot::dcm)
|
|
173
174
|
.def("zmp", &HumanoidRobot::zmp)
|
|
174
175
|
.def("other_side", &HumanoidRobot::other_side)
|
|
176
|
+
.def(
|
|
177
|
+
"get_torques",
|
|
178
|
+
+[](HumanoidRobot& robot, Eigen::VectorXd qdd_a, Eigen::VectorXd contact_forces) {
|
|
179
|
+
return robot.get_torques(qdd_a, contact_forces);
|
|
180
|
+
})
|
|
181
|
+
.def(
|
|
182
|
+
"get_torques_dict",
|
|
183
|
+
+[](HumanoidRobot& robot, Eigen::VectorXd qdd_a, Eigen::VectorXd contact_forces) {
|
|
184
|
+
auto torques = robot.get_torques(qdd_a, contact_forces);
|
|
185
|
+
boost::python::dict dict;
|
|
186
|
+
|
|
187
|
+
for (auto& dof : robot.joint_names())
|
|
188
|
+
{
|
|
189
|
+
dict[dof] = torques[robot.get_joint_v_offset(dof) - 6];
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return dict;
|
|
193
|
+
})
|
|
175
194
|
#ifdef HAVE_RHOBAN_UTILS
|
|
176
195
|
.def("read_from_histories", &HumanoidRobot::read_from_histories, read_from_histories_overloads())
|
|
177
196
|
#endif
|
|
@@ -83,6 +83,7 @@ void exposeTools()
|
|
|
83
83
|
.def("biggestTimestamp", &HistoryCollection::biggestTimestamp)
|
|
84
84
|
.def("startNamedLog", &HistoryCollection::startNamedLog)
|
|
85
85
|
.def("stopNamedLog", &HistoryCollection::stopNamedLog)
|
|
86
|
+
.def("getTimestamps", &HistoryCollection::getTimestamps)
|
|
86
87
|
.def(
|
|
87
88
|
"number", +[](HistoryCollection& collection, std::string name,
|
|
88
89
|
double t) { return collection.number(name)->interpolate(t); })
|
|
@@ -29,6 +29,7 @@ DynamicsRelativePositionTask = typing.NewType("DynamicsRelativePositionTask", No
|
|
|
29
29
|
DynamicsSolver = typing.NewType("DynamicsSolver", None)
|
|
30
30
|
DynamicsSolverResult = typing.NewType("DynamicsSolverResult", None)
|
|
31
31
|
DynamicsTask = typing.NewType("DynamicsTask", None)
|
|
32
|
+
DynamicsTorqueTask = typing.NewType("DynamicsTorqueTask", None)
|
|
32
33
|
Exception = typing.NewType("Exception", None)
|
|
33
34
|
Expression = typing.NewType("Expression", None)
|
|
34
35
|
ExternalWrenchContact = typing.NewType("ExternalWrenchContact", None)
|
|
@@ -48,6 +49,7 @@ IntegratorTrajectory = typing.NewType("IntegratorTrajectory", None)
|
|
|
48
49
|
JointsTask = typing.NewType("JointsTask", None)
|
|
49
50
|
KinematicsConstraint = typing.NewType("KinematicsConstraint", None)
|
|
50
51
|
KinematicsSolver = typing.NewType("KinematicsSolver", None)
|
|
52
|
+
KineticEnergyRegularizationTask = typing.NewType("KineticEnergyRegularizationTask", None)
|
|
51
53
|
LIPM = typing.NewType("LIPM", None)
|
|
52
54
|
LIPMTrajectory = typing.NewType("LIPMTrajectory", None)
|
|
53
55
|
OrientationTask = typing.NewType("OrientationTask", None)
|
|
@@ -1113,6 +1115,23 @@ class DynamicsGearTask:
|
|
|
1113
1115
|
) -> None:
|
|
1114
1116
|
...
|
|
1115
1117
|
|
|
1118
|
+
def add_gear(
|
|
1119
|
+
self: DynamicsGearTask,
|
|
1120
|
+
target: str, # std::string
|
|
1121
|
+
source: str, # std::string
|
|
1122
|
+
ratio: float, # double
|
|
1123
|
+
|
|
1124
|
+
) -> None:
|
|
1125
|
+
"""Adds a gear constraint, you can add multiple source for the same target, they will be summed.
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
:param target: target joint
|
|
1129
|
+
|
|
1130
|
+
:param source: source joint
|
|
1131
|
+
|
|
1132
|
+
:param ratio: ratio"""
|
|
1133
|
+
...
|
|
1134
|
+
|
|
1116
1135
|
b: numpy.ndarray # Eigen::MatrixXd
|
|
1117
1136
|
"""b vector in Ax = b, where x is the accelerations
|
|
1118
1137
|
"""
|
|
@@ -1779,8 +1798,6 @@ class DynamicsSolver:
|
|
|
1779
1798
|
"""Adds a joints task.
|
|
1780
1799
|
|
|
1781
1800
|
|
|
1782
|
-
:param target: target joints values
|
|
1783
|
-
|
|
1784
1801
|
:return: joints task"""
|
|
1785
1802
|
...
|
|
1786
1803
|
|
|
@@ -1977,6 +1994,16 @@ class DynamicsSolver:
|
|
|
1977
1994
|
:return: task contact"""
|
|
1978
1995
|
...
|
|
1979
1996
|
|
|
1997
|
+
def add_torque_task(
|
|
1998
|
+
self: DynamicsSolver,
|
|
1999
|
+
|
|
2000
|
+
) -> DynamicsTorqueTask:
|
|
2001
|
+
"""Adds a torque task.
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
:return: torque task"""
|
|
2005
|
+
...
|
|
2006
|
+
|
|
1980
2007
|
def add_unilateral_point_contact(
|
|
1981
2008
|
self: DynamicsSolver,
|
|
1982
2009
|
position_task: DynamicsPositionTask, # placo::dynamics::PositionTask
|
|
@@ -2057,10 +2084,18 @@ class DynamicsSolver:
|
|
|
2057
2084
|
) -> Contact:
|
|
2058
2085
|
...
|
|
2059
2086
|
|
|
2060
|
-
|
|
2061
|
-
"""
|
|
2087
|
+
gravity_only: bool # bool
|
|
2088
|
+
"""Use gravity only (no coriolis, no centrifugal)
|
|
2062
2089
|
"""
|
|
2063
2090
|
|
|
2091
|
+
def mask_fbase(
|
|
2092
|
+
self: DynamicsSolver,
|
|
2093
|
+
masked: bool, # bool
|
|
2094
|
+
|
|
2095
|
+
) -> None:
|
|
2096
|
+
"""Decides if the floating base should be masked."""
|
|
2097
|
+
...
|
|
2098
|
+
|
|
2064
2099
|
problem: Problem # placo::problem::Problem
|
|
2065
2100
|
"""Instance of the problem.
|
|
2066
2101
|
"""
|
|
@@ -2124,19 +2159,9 @@ class DynamicsSolver:
|
|
|
2124
2159
|
:param kd: kd gain if the joint is a spring (0 by default)"""
|
|
2125
2160
|
...
|
|
2126
2161
|
|
|
2127
|
-
def set_static(
|
|
2128
|
-
self: DynamicsSolver,
|
|
2129
|
-
is_static: bool, # bool
|
|
2130
|
-
|
|
2131
|
-
) -> None:
|
|
2132
|
-
"""Sets the robot as static, this will impose the joint accelerations to be zero.
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
:param is_static: whether the robot should be static"""
|
|
2136
|
-
...
|
|
2137
|
-
|
|
2138
2162
|
def solve(
|
|
2139
2163
|
self: DynamicsSolver,
|
|
2164
|
+
integrate: bool = False, # bool
|
|
2140
2165
|
|
|
2141
2166
|
) -> DynamicsSolverResult:
|
|
2142
2167
|
...
|
|
@@ -2223,6 +2248,81 @@ class DynamicsTask:
|
|
|
2223
2248
|
"""
|
|
2224
2249
|
|
|
2225
2250
|
|
|
2251
|
+
class DynamicsTorqueTask:
|
|
2252
|
+
A: numpy.ndarray # Eigen::MatrixXd
|
|
2253
|
+
"""A matrix in Ax = b, where x is the accelerations.
|
|
2254
|
+
"""
|
|
2255
|
+
|
|
2256
|
+
def __init__(
|
|
2257
|
+
arg1: object,
|
|
2258
|
+
|
|
2259
|
+
) -> None:
|
|
2260
|
+
...
|
|
2261
|
+
|
|
2262
|
+
b: numpy.ndarray # Eigen::MatrixXd
|
|
2263
|
+
"""b vector in Ax = b, where x is the accelerations
|
|
2264
|
+
"""
|
|
2265
|
+
|
|
2266
|
+
def configure(
|
|
2267
|
+
self: DynamicsTorqueTask,
|
|
2268
|
+
name: str, # std::string
|
|
2269
|
+
priority: any, # placo::kinematics::ConeConstraint::Priority
|
|
2270
|
+
weight: float = 1.0, # double
|
|
2271
|
+
|
|
2272
|
+
) -> None:
|
|
2273
|
+
"""Configures the object.
|
|
2274
|
+
|
|
2275
|
+
|
|
2276
|
+
:param name: task name
|
|
2277
|
+
|
|
2278
|
+
:param priority: task priority (hard, soft or scaled)
|
|
2279
|
+
|
|
2280
|
+
:param weight: task weight"""
|
|
2281
|
+
...
|
|
2282
|
+
|
|
2283
|
+
critically_damped: bool # bool
|
|
2284
|
+
"""If this is true, kd will be computed from kp to have a critically damped system.
|
|
2285
|
+
"""
|
|
2286
|
+
|
|
2287
|
+
derror: numpy.ndarray # Eigen::MatrixXd
|
|
2288
|
+
"""Current velocity error vector.
|
|
2289
|
+
"""
|
|
2290
|
+
|
|
2291
|
+
error: numpy.ndarray # Eigen::MatrixXd
|
|
2292
|
+
"""Current error vector.
|
|
2293
|
+
"""
|
|
2294
|
+
|
|
2295
|
+
kd: float # double
|
|
2296
|
+
"""D gain for position control.
|
|
2297
|
+
"""
|
|
2298
|
+
|
|
2299
|
+
kp: float # double
|
|
2300
|
+
"""K gain for position control.
|
|
2301
|
+
"""
|
|
2302
|
+
|
|
2303
|
+
name: str # std::string
|
|
2304
|
+
"""Object name.
|
|
2305
|
+
"""
|
|
2306
|
+
|
|
2307
|
+
priority: any # placo::kinematics::ConeConstraint::Priority
|
|
2308
|
+
"""Object priority.
|
|
2309
|
+
"""
|
|
2310
|
+
|
|
2311
|
+
def set_torque(
|
|
2312
|
+
self: DynamicsTorqueTask,
|
|
2313
|
+
joint: str, # std::string
|
|
2314
|
+
torque: float, # double
|
|
2315
|
+
|
|
2316
|
+
) -> None:
|
|
2317
|
+
"""Sets the target for a given joint.
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
:param joint: joint name
|
|
2321
|
+
|
|
2322
|
+
:param torque: target torque"""
|
|
2323
|
+
...
|
|
2324
|
+
|
|
2325
|
+
|
|
2226
2326
|
class Exception:
|
|
2227
2327
|
def __init__(
|
|
2228
2328
|
arg1: object,
|
|
@@ -2810,6 +2910,23 @@ class GearTask:
|
|
|
2810
2910
|
"""see KinematicsSolver::add_gear_task"""
|
|
2811
2911
|
...
|
|
2812
2912
|
|
|
2913
|
+
def add_gear(
|
|
2914
|
+
self: GearTask,
|
|
2915
|
+
target: str, # std::string
|
|
2916
|
+
source: str, # std::string
|
|
2917
|
+
ratio: float, # double
|
|
2918
|
+
|
|
2919
|
+
) -> None:
|
|
2920
|
+
"""Adds a gear constraint, you can add multiple source for the same target, they will be summed.
|
|
2921
|
+
|
|
2922
|
+
|
|
2923
|
+
:param target: target joint
|
|
2924
|
+
|
|
2925
|
+
:param source: source joint
|
|
2926
|
+
|
|
2927
|
+
:param ratio: ratio"""
|
|
2928
|
+
...
|
|
2929
|
+
|
|
2813
2930
|
b: numpy.ndarray # Eigen::MatrixXd
|
|
2814
2931
|
"""Vector b in the task Ax = b, where x are the joint delta positions.
|
|
2815
2932
|
"""
|
|
@@ -3316,6 +3433,30 @@ class HumanoidRobot:
|
|
|
3316
3433
|
) -> HumanoidRobot_Side:
|
|
3317
3434
|
...
|
|
3318
3435
|
|
|
3436
|
+
def get_torques(
|
|
3437
|
+
self: HumanoidRobot,
|
|
3438
|
+
acc_a: numpy.ndarray, # Eigen::VectorXd
|
|
3439
|
+
contact_forces: numpy.ndarray, # Eigen::VectorXd
|
|
3440
|
+
|
|
3441
|
+
) -> numpy.ndarray:
|
|
3442
|
+
"""Compute the torques of the motors from the contact forces.
|
|
3443
|
+
|
|
3444
|
+
|
|
3445
|
+
:param acc_a: Accelerations of the actuated DoFs
|
|
3446
|
+
|
|
3447
|
+
:param contact_forces: Contact forces from the feet (forces are supposed normal to the ground)
|
|
3448
|
+
|
|
3449
|
+
:return: Torques of the motors"""
|
|
3450
|
+
...
|
|
3451
|
+
|
|
3452
|
+
def get_torques_dict(
|
|
3453
|
+
arg1: HumanoidRobot,
|
|
3454
|
+
arg2: numpy.ndarray,
|
|
3455
|
+
arg3: numpy.ndarray,
|
|
3456
|
+
|
|
3457
|
+
) -> dict:
|
|
3458
|
+
...
|
|
3459
|
+
|
|
3319
3460
|
def integrate(
|
|
3320
3461
|
self: HumanoidRobot,
|
|
3321
3462
|
dt: float, # double
|
|
@@ -3443,6 +3584,14 @@ class HumanoidRobot:
|
|
|
3443
3584
|
:param T_world_frameTarget: transformation matrix"""
|
|
3444
3585
|
...
|
|
3445
3586
|
|
|
3587
|
+
def set_gravity(
|
|
3588
|
+
self: HumanoidRobot,
|
|
3589
|
+
gravity: numpy.ndarray, # Eigen::Vector3d
|
|
3590
|
+
|
|
3591
|
+
) -> None:
|
|
3592
|
+
"""Sets the gravity vector."""
|
|
3593
|
+
...
|
|
3594
|
+
|
|
3446
3595
|
def set_joint(
|
|
3447
3596
|
self: HumanoidRobot,
|
|
3448
3597
|
name: str, # const std::string &
|
|
@@ -4125,6 +4274,19 @@ class KinematicsSolver:
|
|
|
4125
4274
|
:return: joints task"""
|
|
4126
4275
|
...
|
|
4127
4276
|
|
|
4277
|
+
def add_kinetic_energy_regularization_task(
|
|
4278
|
+
self: KinematicsSolver,
|
|
4279
|
+
magnitude: float = 1e-6, # double
|
|
4280
|
+
|
|
4281
|
+
) -> KineticEnergyRegularizationTask:
|
|
4282
|
+
"""Adds a kinetic energy regularization task for a given magnitude.
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
:param magnitude: regularization magnitude
|
|
4286
|
+
|
|
4287
|
+
:return: regularization task"""
|
|
4288
|
+
...
|
|
4289
|
+
|
|
4128
4290
|
def add_orientation_task(
|
|
4129
4291
|
self: KinematicsSolver,
|
|
4130
4292
|
frame: str, # std::string
|
|
@@ -4376,6 +4538,74 @@ class KinematicsSolver:
|
|
|
4376
4538
|
...
|
|
4377
4539
|
|
|
4378
4540
|
|
|
4541
|
+
class KineticEnergyRegularizationTask:
|
|
4542
|
+
A: numpy.ndarray # Eigen::MatrixXd
|
|
4543
|
+
"""Matrix A in the task Ax = b, where x are the joint delta positions.
|
|
4544
|
+
"""
|
|
4545
|
+
|
|
4546
|
+
def __init__(
|
|
4547
|
+
arg1: object,
|
|
4548
|
+
|
|
4549
|
+
) -> None:
|
|
4550
|
+
...
|
|
4551
|
+
|
|
4552
|
+
b: numpy.ndarray # Eigen::MatrixXd
|
|
4553
|
+
"""Vector b in the task Ax = b, where x are the joint delta positions.
|
|
4554
|
+
"""
|
|
4555
|
+
|
|
4556
|
+
def configure(
|
|
4557
|
+
self: KineticEnergyRegularizationTask,
|
|
4558
|
+
name: str, # std::string
|
|
4559
|
+
priority: any, # placo::kinematics::ConeConstraint::Priority
|
|
4560
|
+
weight: float = 1.0, # double
|
|
4561
|
+
|
|
4562
|
+
) -> None:
|
|
4563
|
+
"""Configures the object.
|
|
4564
|
+
|
|
4565
|
+
|
|
4566
|
+
:param name: task name
|
|
4567
|
+
|
|
4568
|
+
:param priority: task priority (hard, soft or scaled)
|
|
4569
|
+
|
|
4570
|
+
:param weight: task weight"""
|
|
4571
|
+
...
|
|
4572
|
+
|
|
4573
|
+
def error(
|
|
4574
|
+
self: KineticEnergyRegularizationTask,
|
|
4575
|
+
|
|
4576
|
+
) -> numpy.ndarray:
|
|
4577
|
+
"""Task errors (vector)
|
|
4578
|
+
|
|
4579
|
+
|
|
4580
|
+
:return: task errors"""
|
|
4581
|
+
...
|
|
4582
|
+
|
|
4583
|
+
def error_norm(
|
|
4584
|
+
self: KineticEnergyRegularizationTask,
|
|
4585
|
+
|
|
4586
|
+
) -> float:
|
|
4587
|
+
"""The task error norm.
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
:return: task error norm"""
|
|
4591
|
+
...
|
|
4592
|
+
|
|
4593
|
+
name: str # std::string
|
|
4594
|
+
"""Object name.
|
|
4595
|
+
"""
|
|
4596
|
+
|
|
4597
|
+
priority: any # placo::kinematics::ConeConstraint::Priority
|
|
4598
|
+
"""Object priority.
|
|
4599
|
+
"""
|
|
4600
|
+
|
|
4601
|
+
def update(
|
|
4602
|
+
self: KineticEnergyRegularizationTask,
|
|
4603
|
+
|
|
4604
|
+
) -> None:
|
|
4605
|
+
"""Update the task A and b matrices from the robot state and targets."""
|
|
4606
|
+
...
|
|
4607
|
+
|
|
4608
|
+
|
|
4379
4609
|
class LIPM:
|
|
4380
4610
|
"""LIPM is an helper that can be used to build problem involving LIPM dynamics. The decision variables introduced here are jerks, which is piecewise constant.
|
|
4381
4611
|
"""
|
|
@@ -5660,6 +5890,14 @@ class RobotWrapper:
|
|
|
5660
5890
|
:param T_world_frameTarget: transformation matrix"""
|
|
5661
5891
|
...
|
|
5662
5892
|
|
|
5893
|
+
def set_gravity(
|
|
5894
|
+
self: RobotWrapper,
|
|
5895
|
+
gravity: numpy.ndarray, # Eigen::Vector3d
|
|
5896
|
+
|
|
5897
|
+
) -> None:
|
|
5898
|
+
"""Sets the gravity vector."""
|
|
5899
|
+
...
|
|
5900
|
+
|
|
5663
5901
|
def set_joint(
|
|
5664
5902
|
self: RobotWrapper,
|
|
5665
5903
|
name: str, # const std::string &
|
|
@@ -6964,4 +7202,4 @@ def wrap_angle(
|
|
|
6964
7202
|
...
|
|
6965
7203
|
|
|
6966
7204
|
|
|
6967
|
-
__groups__ = {'placo::dynamics': ['AvoidSelfCollisionsDynamicsConstraint', 'Contact', 'Contact6D', 'DynamicsCoMTask', 'DynamicsConstraint', 'DynamicsFrameTask', 'DynamicsGearTask', 'DynamicsJointsTask', 'DynamicsOrientationTask', 'DynamicsPositionTask', 'DynamicsReactionRatioConstraint', 'DynamicsRelativeFrameTask', 'DynamicsRelativeOrientationTask', 'DynamicsRelativePositionTask', 'DynamicsSolver', 'DynamicsSolverResult', 'DynamicsTask', 'ExternalWrenchContact', 'PointContact', 'PuppetContact', 'Relative6DContact', 'RelativePointContact', 'TaskContact'], 'placo::kinematics': ['AvoidSelfCollisionsKinematicsConstraint', 'AxisAlignTask', 'CentroidalMomentumTask', 'CoMPolygonConstraint', 'CoMTask', 'ConeConstraint', 'DistanceTask', 'FrameTask', 'GearTask', 'JointsTask', 'KinematicsConstraint', 'KinematicsSolver', 'OrientationTask', 'PositionTask', 'RegularizationTask', 'RelativeFrameTask', 'RelativeOrientationTask', 'RelativePositionTask', 'Task', 'WheelTask'], 'placo::tools': ['AxisesMask', 'CubicSpline', 'CubicSpline3D', 'Prioritized'], 'placo::model': ['Collision', 'Distance', 'RobotWrapper', 'RobotWrapper_State'], 'placo::problem': ['Expression', 'Integrator', 'IntegratorTrajectory', 'PolygonConstraint', 'Problem', 'ProblemConstraint', 'QPError', 'Sparsity', 'SparsityInterval', 'Variable'], 'placo::humanoid': ['Footstep', 'FootstepsPlanner', 'FootstepsPlannerNaive', 'FootstepsPlannerRepetitive', 'HumanoidParameters', 'HumanoidRobot', 'LIPM', 'LIPMTrajectory', 'Support', 'SwingFoot', 'SwingFootCubic', 'SwingFootCubicTrajectory', 'SwingFootQuintic', 'SwingFootQuinticTrajectory', 'SwingFootTrajectory', 'WalkPatternGenerator', 'WalkTasks', 'WalkTrajectory']}
|
|
7205
|
+
__groups__ = {'placo::dynamics': ['AvoidSelfCollisionsDynamicsConstraint', 'Contact', 'Contact6D', 'DynamicsCoMTask', 'DynamicsConstraint', 'DynamicsFrameTask', 'DynamicsGearTask', 'DynamicsJointsTask', 'DynamicsOrientationTask', 'DynamicsPositionTask', 'DynamicsReactionRatioConstraint', 'DynamicsRelativeFrameTask', 'DynamicsRelativeOrientationTask', 'DynamicsRelativePositionTask', 'DynamicsSolver', 'DynamicsSolverResult', 'DynamicsTask', 'DynamicsTorqueTask', 'ExternalWrenchContact', 'PointContact', 'PuppetContact', 'Relative6DContact', 'RelativePointContact', 'TaskContact'], 'placo::kinematics': ['AvoidSelfCollisionsKinematicsConstraint', 'AxisAlignTask', 'CentroidalMomentumTask', 'CoMPolygonConstraint', 'CoMTask', 'ConeConstraint', 'DistanceTask', 'FrameTask', 'GearTask', 'JointsTask', 'KinematicsConstraint', 'KinematicsSolver', 'KineticEnergyRegularizationTask', 'OrientationTask', 'PositionTask', 'RegularizationTask', 'RelativeFrameTask', 'RelativeOrientationTask', 'RelativePositionTask', 'Task', 'WheelTask'], 'placo::tools': ['AxisesMask', 'CubicSpline', 'CubicSpline3D', 'Prioritized'], 'placo::model': ['Collision', 'Distance', 'RobotWrapper', 'RobotWrapper_State'], 'placo::problem': ['Expression', 'Integrator', 'IntegratorTrajectory', 'PolygonConstraint', 'Problem', 'ProblemConstraint', 'QPError', 'Sparsity', 'SparsityInterval', 'Variable'], 'placo::humanoid': ['Footstep', 'FootstepsPlanner', 'FootstepsPlannerNaive', 'FootstepsPlannerRepetitive', 'HumanoidParameters', 'HumanoidRobot', 'LIPM', 'LIPMTrajectory', 'Support', 'SwingFoot', 'SwingFootCubic', 'SwingFootCubicTrajectory', 'SwingFootQuintic', 'SwingFootQuinticTrajectory', 'SwingFootTrajectory', 'WalkPatternGenerator', 'WalkTasks', 'WalkTrajectory']}
|