placo 0.4.6__0-cp310-cp310-manylinux_2_35_x86_64.whl → 0.4.7__0-cp310-cp310-manylinux_2_35_x86_64.whl
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.
- cmeel.prefix/lib/liblibplaco.so +0 -0
- cmeel.prefix/lib/python3.10/site-packages/placo.pyi +193 -18
- cmeel.prefix/lib/python3.10/site-packages/placo.so +0 -0
- {placo-0.4.6.dist-info → placo-0.4.7.dist-info}/METADATA +1 -1
- {placo-0.4.6.dist-info → placo-0.4.7.dist-info}/RECORD +8 -8
- {placo-0.4.6.dist-info → placo-0.4.7.dist-info}/WHEEL +0 -0
- {placo-0.4.6.dist-info → placo-0.4.7.dist-info}/license/LICENSE +0 -0
- {placo-0.4.6.dist-info → placo-0.4.7.dist-info}/top_level.txt +0 -0
cmeel.prefix/lib/liblibplaco.so
CHANGED
|
Binary file
|
|
@@ -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)
|
|
@@ -1796,8 +1798,6 @@ class DynamicsSolver:
|
|
|
1796
1798
|
"""Adds a joints task.
|
|
1797
1799
|
|
|
1798
1800
|
|
|
1799
|
-
:param target: target joints values
|
|
1800
|
-
|
|
1801
1801
|
:return: joints task"""
|
|
1802
1802
|
...
|
|
1803
1803
|
|
|
@@ -1994,6 +1994,16 @@ class DynamicsSolver:
|
|
|
1994
1994
|
:return: task contact"""
|
|
1995
1995
|
...
|
|
1996
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
|
+
|
|
1997
2007
|
def add_unilateral_point_contact(
|
|
1998
2008
|
self: DynamicsSolver,
|
|
1999
2009
|
position_task: DynamicsPositionTask, # placo::dynamics::PositionTask
|
|
@@ -2086,10 +2096,6 @@ class DynamicsSolver:
|
|
|
2086
2096
|
"""Decides if the floating base should be masked."""
|
|
2087
2097
|
...
|
|
2088
2098
|
|
|
2089
|
-
optimize_contact_forces: bool # bool
|
|
2090
|
-
"""If true, the solver will try to optimize the contact forces by removing variables.
|
|
2091
|
-
"""
|
|
2092
|
-
|
|
2093
2099
|
problem: Problem # placo::problem::Problem
|
|
2094
2100
|
"""Instance of the problem.
|
|
2095
2101
|
"""
|
|
@@ -2153,17 +2159,6 @@ class DynamicsSolver:
|
|
|
2153
2159
|
:param kd: kd gain if the joint is a spring (0 by default)"""
|
|
2154
2160
|
...
|
|
2155
2161
|
|
|
2156
|
-
def set_static(
|
|
2157
|
-
self: DynamicsSolver,
|
|
2158
|
-
is_static: bool, # bool
|
|
2159
|
-
|
|
2160
|
-
) -> None:
|
|
2161
|
-
"""Sets the robot as static, this will impose the joint accelerations to be zero.
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
:param is_static: whether the robot should be static"""
|
|
2165
|
-
...
|
|
2166
|
-
|
|
2167
2162
|
def solve(
|
|
2168
2163
|
self: DynamicsSolver,
|
|
2169
2164
|
integrate: bool = False, # bool
|
|
@@ -2253,6 +2248,81 @@ class DynamicsTask:
|
|
|
2253
2248
|
"""
|
|
2254
2249
|
|
|
2255
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
|
+
|
|
2256
2326
|
class Exception:
|
|
2257
2327
|
def __init__(
|
|
2258
2328
|
arg1: object,
|
|
@@ -3363,6 +3433,30 @@ class HumanoidRobot:
|
|
|
3363
3433
|
) -> HumanoidRobot_Side:
|
|
3364
3434
|
...
|
|
3365
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
|
+
|
|
3366
3460
|
def integrate(
|
|
3367
3461
|
self: HumanoidRobot,
|
|
3368
3462
|
dt: float, # double
|
|
@@ -4180,6 +4274,19 @@ class KinematicsSolver:
|
|
|
4180
4274
|
:return: joints task"""
|
|
4181
4275
|
...
|
|
4182
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
|
+
|
|
4183
4290
|
def add_orientation_task(
|
|
4184
4291
|
self: KinematicsSolver,
|
|
4185
4292
|
frame: str, # std::string
|
|
@@ -4431,6 +4538,74 @@ class KinematicsSolver:
|
|
|
4431
4538
|
...
|
|
4432
4539
|
|
|
4433
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
|
+
|
|
4434
4609
|
class LIPM:
|
|
4435
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.
|
|
4436
4611
|
"""
|
|
@@ -7027,4 +7202,4 @@ def wrap_angle(
|
|
|
7027
7202
|
...
|
|
7028
7203
|
|
|
7029
7204
|
|
|
7030
|
-
__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']}
|
|
Binary file
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
cmeel.prefix/lib/liblibplaco.so,sha256=
|
|
2
|
-
cmeel.prefix/lib/python3.10/site-packages/placo.pyi,sha256=
|
|
3
|
-
cmeel.prefix/lib/python3.10/site-packages/placo.so,sha256=
|
|
1
|
+
cmeel.prefix/lib/liblibplaco.so,sha256=Ghp9w3LMZHMM6qA0P0MHoP32inOcHSN_m8X5frAYMVM,2542584
|
|
2
|
+
cmeel.prefix/lib/python3.10/site-packages/placo.pyi,sha256=Z-lQBk0WM4Fknz21dSlzARW3zCVRM_p8LC1p1r8T2SU,149114
|
|
3
|
+
cmeel.prefix/lib/python3.10/site-packages/placo.so,sha256=9Jkf4r8BBDCbdBllCEC9JLaAqgo-ebPs5HEKCpTOkpc,9477968
|
|
4
4
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/__init__.py,sha256=UN-fc5KfBWQ-_qkm0Ajouh-T9tBGm5aUtuzBiH1tRtk,80
|
|
5
5
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/tf.py,sha256=fFRXNbeLlXzn5VOqYl7hcSuvOOtTDTiLi_Lpd9_l6wA,36
|
|
6
6
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/visualization.py,sha256=hCcU3oQSzb2Si6P9V6n9oEtgigy6N4vjUn_f-bEHfs8,7344
|
|
7
7
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/__init__.cpython-310.pyc,sha256=tJrTajdA7hNO9tZkE1oN49rU-61lCNUED-mQXdAvzAs,261
|
|
8
8
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/tf.cpython-310.pyc,sha256=APWQ5-zKgbEcMnkv6Hxgj_Q46jpnuOyL9YbSrj6Z5Vw,204
|
|
9
9
|
cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/visualization.cpython-310.pyc,sha256=0cG3me-2-43HytnSQYn-yhKHE2ccRQryeBPiU7Ux4-g,6430
|
|
10
|
-
placo-0.4.
|
|
11
|
-
placo-0.4.
|
|
12
|
-
placo-0.4.
|
|
13
|
-
placo-0.4.
|
|
14
|
-
placo-0.4.
|
|
10
|
+
placo-0.4.7.dist-info/license/LICENSE,sha256=q2bBXvk4Eh7TmP11LoIOIGSUuJbR30JBI6ZZ37g52T4,1061
|
|
11
|
+
placo-0.4.7.dist-info/METADATA,sha256=UQtbpEGfUnJFhRUcW60Q_Tz5u5Tq6fu77bnQv9rf5mA,873
|
|
12
|
+
placo-0.4.7.dist-info/WHEEL,sha256=y7GzdFHC0qrZwnE2SqFjrXxL9NLtXflO9hVb0PhWwIU,115
|
|
13
|
+
placo-0.4.7.dist-info/top_level.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
placo-0.4.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|