placo 0.6.2__0-cp310-cp310-manylinux_2_35_x86_64.whl → 0.6.4__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.

Binary file
@@ -45,6 +45,7 @@ HumanoidRobot = typing.NewType("HumanoidRobot", None)
45
45
  HumanoidRobot_Side = typing.NewType("HumanoidRobot_Side", None)
46
46
  Integrator = typing.NewType("Integrator", None)
47
47
  IntegratorTrajectory = typing.NewType("IntegratorTrajectory", None)
48
+ JointSpaceHalfSpacesConstraint = typing.NewType("JointSpaceHalfSpacesConstraint", None)
48
49
  JointsTask = typing.NewType("JointsTask", None)
49
50
  KinematicsConstraint = typing.NewType("KinematicsConstraint", None)
50
51
  KinematicsSolver = typing.NewType("KinematicsSolver", None)
@@ -56,10 +57,12 @@ ManipulabilityTask = typing.NewType("ManipulabilityTask", None)
56
57
  OrientationTask = typing.NewType("OrientationTask", None)
57
58
  PointContact = typing.NewType("PointContact", None)
58
59
  PolygonConstraint = typing.NewType("PolygonConstraint", None)
60
+ Polynom = typing.NewType("Polynom", None)
59
61
  PositionTask = typing.NewType("PositionTask", None)
60
62
  Prioritized = typing.NewType("Prioritized", None)
61
63
  Problem = typing.NewType("Problem", None)
62
64
  ProblemConstraint = typing.NewType("ProblemConstraint", None)
65
+ ProblemPolynom = typing.NewType("ProblemPolynom", None)
63
66
  PuppetContact = typing.NewType("PuppetContact", None)
64
67
  QPError = typing.NewType("QPError", None)
65
68
  RegularizationTask = typing.NewType("RegularizationTask", None)
@@ -68,6 +71,7 @@ RelativeOrientationTask = typing.NewType("RelativeOrientationTask", None)
68
71
  RelativePositionTask = typing.NewType("RelativePositionTask", None)
69
72
  RobotWrapper = typing.NewType("RobotWrapper", None)
70
73
  RobotWrapper_State = typing.NewType("RobotWrapper_State", None)
74
+ Segment = typing.NewType("Segment", None)
71
75
  Sparsity = typing.NewType("Sparsity", None)
72
76
  SparsityInterval = typing.NewType("SparsityInterval", None)
73
77
  Support = typing.NewType("Support", None)
@@ -81,9 +85,10 @@ SwingFootTrajectory = typing.NewType("SwingFootTrajectory", None)
81
85
  Task = typing.NewType("Task", None)
82
86
  TaskContact = typing.NewType("TaskContact", None)
83
87
  Variable = typing.NewType("Variable", None)
88
+ WPGTrajectory = typing.NewType("WPGTrajectory", None)
89
+ WPGTrajectoryPart = typing.NewType("WPGTrajectoryPart", None)
84
90
  WalkPatternGenerator = typing.NewType("WalkPatternGenerator", None)
85
91
  WalkTasks = typing.NewType("WalkTasks", None)
86
- WalkTrajectory = typing.NewType("WalkTrajectory", None)
87
92
  WheelTask = typing.NewType("WheelTask", None)
88
93
  map_indexing_suite_map_string_double_entry = typing.NewType("map_indexing_suite_map_string_double_entry", None)
89
94
  map_string_double = typing.NewType("map_string_double", None)
@@ -2630,13 +2635,19 @@ class Footstep:
2630
2635
  ) -> any:
2631
2636
  ...
2632
2637
 
2638
+ dx: float # double
2639
+
2640
+ dy: float # double
2641
+
2633
2642
  foot_length: float # double
2634
2643
 
2635
2644
  foot_width: float # double
2636
2645
 
2637
- frame: numpy.ndarray # Eigen::Affine3d
2646
+ def frame(
2647
+ self: Footstep,
2638
2648
 
2639
- kick: bool # bool
2649
+ ) -> numpy.ndarray:
2650
+ ...
2640
2651
 
2641
2652
  def overlap(
2642
2653
  self: Footstep,
@@ -2654,6 +2665,8 @@ class Footstep:
2654
2665
  ) -> bool:
2655
2666
  ...
2656
2667
 
2668
+ raw_frame: numpy.ndarray # Eigen::Affine3d
2669
+
2657
2670
  side: any # placo::humanoid::HumanoidRobot::Side
2658
2671
 
2659
2672
  def support_polygon(
@@ -2697,17 +2710,10 @@ class FootstepsPlanner:
2697
2710
  :param parameters: Parameters of the walk"""
2698
2711
  ...
2699
2712
 
2700
- @staticmethod
2701
- def add_first_support(
2702
- supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
2703
- support: Support, # placo::humanoid::FootstepsPlanner::Support
2704
-
2705
- ) -> None:
2706
- ...
2707
-
2708
2713
  @staticmethod
2709
2714
  def make_supports(
2710
2715
  footsteps: list[Footstep], # std::vector<placo::humanoid::FootstepsPlanner::Footstep>
2716
+ t_start: float, # double
2711
2717
  start: bool = True, # bool
2712
2718
  middle: bool = False, # bool
2713
2719
  end: bool = True, # bool
@@ -2745,14 +2751,6 @@ class FootstepsPlannerNaive:
2745
2751
  ) -> any:
2746
2752
  ...
2747
2753
 
2748
- @staticmethod
2749
- def add_first_support(
2750
- supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
2751
- support: Support, # placo::humanoid::FootstepsPlanner::Support
2752
-
2753
- ) -> None:
2754
- ...
2755
-
2756
2754
  def configure(
2757
2755
  self: FootstepsPlannerNaive,
2758
2756
  T_world_left_target: numpy.ndarray, # Eigen::Affine3d
@@ -2770,6 +2768,7 @@ class FootstepsPlannerNaive:
2770
2768
  @staticmethod
2771
2769
  def make_supports(
2772
2770
  footsteps: list[Footstep], # std::vector<placo::humanoid::FootstepsPlanner::Footstep>
2771
+ t_start: float, # double
2773
2772
  start: bool = True, # bool
2774
2773
  middle: bool = False, # bool
2775
2774
  end: bool = True, # bool
@@ -2824,14 +2823,6 @@ class FootstepsPlannerRepetitive:
2824
2823
  ) -> any:
2825
2824
  ...
2826
2825
 
2827
- @staticmethod
2828
- def add_first_support(
2829
- supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
2830
- support: Support, # placo::humanoid::FootstepsPlanner::Support
2831
-
2832
- ) -> None:
2833
- ...
2834
-
2835
2826
  def configure(
2836
2827
  self: FootstepsPlannerRepetitive,
2837
2828
  x: float, # double
@@ -2855,6 +2846,7 @@ class FootstepsPlannerRepetitive:
2855
2846
  @staticmethod
2856
2847
  def make_supports(
2857
2848
  footsteps: list[Footstep], # std::vector<placo::humanoid::FootstepsPlanner::Footstep>
2849
+ t_start: float, # double
2858
2850
  start: bool = True, # bool
2859
2851
  middle: bool = False, # bool
2860
2852
  end: bool = True, # bool
@@ -3064,7 +3056,7 @@ class HumanoidParameters:
3064
3056
  self: HumanoidParameters,
3065
3057
 
3066
3058
  ) -> float:
3067
- """Duratuon [s]of a double support."""
3059
+ """Default duration [s]of a double support."""
3068
3060
  ...
3069
3061
 
3070
3062
  double_support_ratio: float # double
@@ -3075,14 +3067,14 @@ class HumanoidParameters:
3075
3067
  self: HumanoidParameters,
3076
3068
 
3077
3069
  ) -> int:
3078
- """Duration [timesteps] of a double support."""
3070
+ """Default number of timesteps for one double support."""
3079
3071
  ...
3080
3072
 
3081
3073
  def dt(
3082
3074
  self: HumanoidParameters,
3083
3075
 
3084
3076
  ) -> float:
3085
- """dt for planning [s]"""
3077
+ """Timestep duration for planning [s]."""
3086
3078
  ...
3087
3079
 
3088
3080
  def ellipsoid_clip(
@@ -3120,34 +3112,16 @@ class HumanoidParameters:
3120
3112
  """Checks if the walk resulting from those parameters will have double supports."""
3121
3113
  ...
3122
3114
 
3123
- def kick_support_duration(
3124
- self: HumanoidParameters,
3125
-
3126
- ) -> float:
3127
- """Duration [s] of a kick support."""
3128
- ...
3129
-
3130
- kick_support_ratio: float # double
3131
- """Duration ratio between single support and kick support.
3132
- """
3133
-
3134
- def kick_support_timesteps(
3135
- self: HumanoidParameters,
3136
-
3137
- ) -> int:
3138
- """Duration [timesteps]of a kick support."""
3139
- ...
3140
-
3141
3115
  planned_timesteps: int # int
3142
3116
  """Planning horizon for the CoM trajectory.
3143
3117
  """
3144
3118
 
3145
3119
  replan_timesteps: int # int
3146
- """Number of timesteps between each replan. Support phases have to last longer than [replan_frequency * dt] or their duration has to be equal to 0.
3120
+ """Number of timesteps between each replan for the CoM trajectory.
3147
3121
  """
3148
3122
 
3149
3123
  single_support_duration: float # double
3150
- """SSP duration [s].
3124
+ """Single support duration [s].
3151
3125
  """
3152
3126
 
3153
3127
  single_support_timesteps: int # int
@@ -3158,18 +3132,18 @@ class HumanoidParameters:
3158
3132
  self: HumanoidParameters,
3159
3133
 
3160
3134
  ) -> float:
3161
- """Duration [s] of a start/end double support."""
3135
+ """Default duration [s] of a start/end double support."""
3162
3136
  ...
3163
3137
 
3164
3138
  startend_double_support_ratio: float # double
3165
- """Duration ratio between single support and double support.
3139
+ """Duration ratio between single support and start/end double support.
3166
3140
  """
3167
3141
 
3168
3142
  def startend_double_support_timesteps(
3169
3143
  self: HumanoidParameters,
3170
3144
 
3171
3145
  ) -> int:
3172
- """Duration [timesteps]of a start/end double support."""
3146
+ """Default number of timesteps for one start/end double support."""
3173
3147
  ...
3174
3148
 
3175
3149
  walk_com_height: float # double
@@ -4001,7 +3975,7 @@ class Integrator:
4001
3975
  """Builds an expression for the given step and differentiation.
4002
3976
 
4003
3977
 
4004
- :param step: the step
3978
+ :param step: the step, (if -1 the last step will be used)
4005
3979
 
4006
3980
  :param diff: differentiation (if -1, the expression will be a vector of size order with all orders)
4007
3981
 
@@ -4106,6 +4080,50 @@ class IntegratorTrajectory:
4106
4080
  ...
4107
4081
 
4108
4082
 
4083
+ class JointSpaceHalfSpacesConstraint:
4084
+ A: numpy.ndarray # Eigen::MatrixXd
4085
+ """Matrix A in Aq <= b.
4086
+ """
4087
+
4088
+ def __init__(
4089
+ self: JointSpaceHalfSpacesConstraint,
4090
+ A: numpy.ndarray, # const Eigen::MatrixXd
4091
+ b: numpy.ndarray, # Eigen::VectorXd
4092
+
4093
+ ) -> any:
4094
+ """Ensures that, in joint-space we have Aq <= b Note that the floating base terms will be ignored in A. However, A should still be of dimension n_constraints x n_q."""
4095
+ ...
4096
+
4097
+ b: numpy.ndarray # Eigen::VectorXd
4098
+ """Vector b in Aq <= b.
4099
+ """
4100
+
4101
+ def configure(
4102
+ self: JointSpaceHalfSpacesConstraint,
4103
+ name: str, # std::string
4104
+ priority: any, # placo::kinematics::ConeConstraint::Priority
4105
+ weight: float = 1.0, # double
4106
+
4107
+ ) -> None:
4108
+ """Configures the object.
4109
+
4110
+
4111
+ :param name: task name
4112
+
4113
+ :param priority: task priority (hard, soft or scaled)
4114
+
4115
+ :param weight: task weight"""
4116
+ ...
4117
+
4118
+ name: str # std::string
4119
+ """Object name.
4120
+ """
4121
+
4122
+ priority: any # placo::kinematics::ConeConstraint::Priority
4123
+ """Object priority.
4124
+ """
4125
+
4126
+
4109
4127
  class JointsTask:
4110
4128
  A: numpy.ndarray # Eigen::MatrixXd
4111
4129
  """Matrix A in the task Ax = b, where x are the joint delta positions.
@@ -4399,6 +4417,22 @@ class KinematicsSolver:
4399
4417
  :return: gear task"""
4400
4418
  ...
4401
4419
 
4420
+ def add_joint_space_half_spaces_constraint(
4421
+ self: KinematicsSolver,
4422
+ A: numpy.ndarray, # Eigen::MatrixXd
4423
+ b: numpy.ndarray, # Eigen::VectorXd
4424
+
4425
+ ) -> JointSpaceHalfSpacesConstraint:
4426
+ """Adds a joint-space half-spaces constraint, such that Aq <= b.
4427
+
4428
+
4429
+ :param A: matrix A in Aq <= b
4430
+
4431
+ :param b: vector b in Aq <= b
4432
+
4433
+ :return: the constraint"""
4434
+ ...
4435
+
4402
4436
  def add_joints_task(
4403
4437
  self: KinematicsSolver,
4404
4438
 
@@ -4760,8 +4794,9 @@ class LIPM:
4760
4794
  def __init__(
4761
4795
  self: LIPM,
4762
4796
  problem: Problem, # placo::problem::Problem
4763
- timesteps: int, # int
4764
4797
  dt: float, # double
4798
+ timesteps: int, # int
4799
+ t_start: float, # double
4765
4800
  initial_pos: numpy.ndarray, # Eigen::Vector2d
4766
4801
  initial_vel: numpy.ndarray, # Eigen::Vector2d
4767
4802
  initial_acc: numpy.ndarray, # Eigen::Vector2d
@@ -4776,6 +4811,17 @@ class LIPM:
4776
4811
  ) -> Expression:
4777
4812
  ...
4778
4813
 
4814
+ @staticmethod
4815
+ def build_LIPM_from_previous(
4816
+ problem: Problem, # placo::problem::Problem
4817
+ dt: float, # double
4818
+ timesteps: int, # int
4819
+ t_start: float, # double
4820
+ previous: LIPM, # placo::humanoid::LIPM
4821
+
4822
+ ) -> LIPM:
4823
+ ...
4824
+
4779
4825
  @staticmethod
4780
4826
  def compute_omega(
4781
4827
  com_height: float, # double
@@ -4792,6 +4838,8 @@ class LIPM:
4792
4838
  ) -> Expression:
4793
4839
  ...
4794
4840
 
4841
+ dt: float # double
4842
+
4795
4843
  def dzmp(
4796
4844
  self: LIPM,
4797
4845
  timestep: int, # int
@@ -4804,6 +4852,7 @@ class LIPM:
4804
4852
  self: LIPM,
4805
4853
 
4806
4854
  ) -> LIPMTrajectory:
4855
+ """Get the LIPM trajectory. Should be used after solving the problem."""
4807
4856
  ...
4808
4857
 
4809
4858
  def jerk(
@@ -4820,6 +4869,12 @@ class LIPM:
4820
4869
  ) -> Expression:
4821
4870
  ...
4822
4871
 
4872
+ t_end: float # double
4873
+
4874
+ t_start: float # double
4875
+
4876
+ timesteps: int # int
4877
+
4823
4878
  def vel(
4824
4879
  self: LIPM,
4825
4880
  timestep: int, # int
@@ -4829,8 +4884,12 @@ class LIPM:
4829
4884
 
4830
4885
  x: Integrator # placo::problem::Integrator
4831
4886
 
4887
+ x_var: Variable # placo::problem::Variable
4888
+
4832
4889
  y: Integrator # placo::problem::Integrator
4833
4890
 
4891
+ y_var: Variable # placo::problem::Variable
4892
+
4834
4893
  def zmp(
4835
4894
  self: LIPM,
4836
4895
  timestep: int, # int
@@ -5215,6 +5274,43 @@ class PolygonConstraint:
5215
5274
  ...
5216
5275
 
5217
5276
 
5277
+ class Polynom:
5278
+ def __init__(
5279
+ self: Polynom,
5280
+ coefficients: numpy.ndarray, # Eigen::VectorXd
5281
+
5282
+ ) -> any:
5283
+ ...
5284
+
5285
+ coefficients: numpy.ndarray # Eigen::VectorXd
5286
+ """coefficients, from highest to lowest
5287
+ """
5288
+
5289
+ @staticmethod
5290
+ def derivative_coefficient(
5291
+ degree: int, # int
5292
+ derivative: int, # int
5293
+
5294
+ ) -> int:
5295
+ ...
5296
+
5297
+ def value(
5298
+ self: Polynom,
5299
+ x: float, # double
5300
+ derivative: int = 0, # int
5301
+
5302
+ ) -> float:
5303
+ """Computes the value of polynom.
5304
+
5305
+
5306
+ :param x: abscissa
5307
+
5308
+ :param derivative: differentiation order (0: p, 1: p', 2: p'' etc.)
5309
+
5310
+ :return: value"""
5311
+ ...
5312
+
5313
+
5218
5314
  class PositionTask:
5219
5315
  A: numpy.ndarray # Eigen::MatrixXd
5220
5316
  """Matrix A in the task Ax = b, where x are the joint delta positions.
@@ -5496,6 +5592,43 @@ class ProblemConstraint:
5496
5592
  """
5497
5593
 
5498
5594
 
5595
+ class ProblemPolynom:
5596
+ """Represents a polynom for which decision variables are problem coefficients.
5597
+ """
5598
+ def __init__(
5599
+ self: ProblemPolynom,
5600
+ variable: Variable, # placo::problem::Variable
5601
+
5602
+ ) -> any:
5603
+ ...
5604
+
5605
+ def expr(
5606
+ self: ProblemPolynom,
5607
+ x: float, # double
5608
+ derivative: int = 0, # int
5609
+
5610
+ ) -> Expression:
5611
+ """Builds a problem expression for the value of the polynom.
5612
+
5613
+
5614
+ :param x: abscissa
5615
+
5616
+ :param derivative: differentiation order (0: p, 1: p', 2: p'' etc.)
5617
+
5618
+ :return: problem expression"""
5619
+ ...
5620
+
5621
+ def get_polynom(
5622
+ self: ProblemPolynom,
5623
+
5624
+ ) -> Polynom:
5625
+ """Obtain resulting polynom (after problem is solved)
5626
+
5627
+
5628
+ :return:"""
5629
+ ...
5630
+
5631
+
5499
5632
  class PuppetContact:
5500
5633
  def __init__(
5501
5634
  self: PuppetContact,
@@ -6425,6 +6558,123 @@ class RobotWrapper_State:
6425
6558
  """
6426
6559
 
6427
6560
 
6561
+ class Segment:
6562
+ def __init__(
6563
+ self: Segment,
6564
+ start: numpy.ndarray, # const Eigen::Vector2d &
6565
+ end: numpy.ndarray, # const Eigen::Vector2d &
6566
+
6567
+ ) -> any:
6568
+ ...
6569
+
6570
+ end: numpy.ndarray # Eigen::Vector2d
6571
+
6572
+ def intersects(
6573
+ self: Segment,
6574
+ s: Segment, # placo::tools::Segment
6575
+
6576
+ ) -> bool:
6577
+ """Checks if there is an intersection between this segment and another one, i.e. if the intersection of their guiding lines is a point of both segments.
6578
+
6579
+
6580
+ :param s: The other segment.
6581
+
6582
+ :return: True if there is an intersection."""
6583
+ ...
6584
+
6585
+ def is_collinear(
6586
+ self: Segment,
6587
+ s: Segment, # placo::tools::Segment
6588
+ epsilon: float = 1e-6, # double
6589
+
6590
+ ) -> bool:
6591
+ """Checks if this segment is collinear with another one.
6592
+
6593
+
6594
+ :param s: The segment to check collinearity with.
6595
+
6596
+ :param epsilon: To account for floating point errors.
6597
+
6598
+ :return: True if the segments are collinear."""
6599
+ ...
6600
+
6601
+ def is_parallel(
6602
+ self: Segment,
6603
+ s: Segment, # placo::tools::Segment
6604
+ epsilon: float = 1e-6, # double
6605
+
6606
+ ) -> bool:
6607
+ """Checks if this segment is parallel to another one.
6608
+
6609
+
6610
+ :param s: The segment to check parallelism with.
6611
+
6612
+ :param epsilon: To account for floating point errors.
6613
+
6614
+ :return: True if the segments are parallel."""
6615
+ ...
6616
+
6617
+ def is_point_aligned(
6618
+ self: Segment,
6619
+ point: numpy.ndarray, # const Eigen::Vector2d &
6620
+ epsilon: float = 1e-6, # double
6621
+
6622
+ ) -> bool:
6623
+ """Checks if a point is aligned with this segment.
6624
+
6625
+
6626
+ :param point: The point to check alignment with.
6627
+
6628
+ :param epsilon: To account for floating point errors.
6629
+
6630
+ :return: True if the point is aligned with the segment."""
6631
+ ...
6632
+
6633
+ def is_point_in_segment(
6634
+ self: Segment,
6635
+ point: numpy.ndarray, # const Eigen::Vector2d &
6636
+ epsilon: float = 1e-6, # double
6637
+
6638
+ ) -> bool:
6639
+ """Checks if a point is in the segment.
6640
+
6641
+
6642
+ :param point: The point to check.
6643
+
6644
+ :param epsilon: To account for floating point errors.
6645
+
6646
+ :return: True if the point is in the segment."""
6647
+ ...
6648
+
6649
+ def line_pass_through(
6650
+ self: Segment,
6651
+ s: Segment, # placo::tools::Segment
6652
+
6653
+ ) -> bool:
6654
+ """Checks if the guiding line of another segment pass through this segment, i.e. if the intersection between the guiding lines of this segment and another one is a point of this segment.
6655
+
6656
+
6657
+ :param s: The other segment.
6658
+
6659
+ :return: True if the intersection is a point of this segment."""
6660
+ ...
6661
+
6662
+ def lines_intersection(
6663
+ self: Segment,
6664
+ s: Segment, # placo::tools::Segment
6665
+
6666
+ ) -> numpy.ndarray:
6667
+ """Return the intersection between the guiding lines of this segment and another one.
6668
+
6669
+
6670
+ :param s: The other segment.
6671
+
6672
+ :return: The intersection point."""
6673
+ ...
6674
+
6675
+ start: numpy.ndarray # Eigen::Vector2d
6676
+
6677
+
6428
6678
  class Sparsity:
6429
6679
  """Internal helper to check the column sparsity of a matrix.
6430
6680
  """
@@ -6495,11 +6745,14 @@ class Support:
6495
6745
  """A support is a set of footsteps (can be one or two foot on the ground)
6496
6746
  """
6497
6747
  def __init__(
6498
- arg1: object,
6748
+ self: Support,
6749
+ footsteps: list[Footstep], # std::vector<placo::humanoid::FootstepsPlanner::Footstep>
6499
6750
 
6500
- ) -> None:
6751
+ ) -> any:
6501
6752
  ...
6502
6753
 
6754
+ elapsed_ratio: float # double
6755
+
6503
6756
  end: bool # bool
6504
6757
 
6505
6758
  def footstep_frame(
@@ -6534,11 +6787,7 @@ class Support:
6534
6787
  """Checks whether this support is a double support."""
6535
6788
  ...
6536
6789
 
6537
- def kick(
6538
- self: Support,
6539
-
6540
- ) -> bool:
6541
- ...
6790
+ replanned: bool # bool
6542
6791
 
6543
6792
  def set_end(
6544
6793
  arg1: Support,
@@ -6569,6 +6818,10 @@ class Support:
6569
6818
  ) -> list[numpy.ndarray]:
6570
6819
  ...
6571
6820
 
6821
+ t_start: float # double
6822
+
6823
+ time_ratio: float # double
6824
+
6572
6825
 
6573
6826
  class Supports:
6574
6827
  def __init__(
@@ -6634,11 +6887,13 @@ class SwingFootCubic:
6634
6887
  @staticmethod
6635
6888
  def make_trajectory(
6636
6889
  t_start: float, # double
6637
- t_end: float, # double
6890
+ virt_duration: float, # double
6638
6891
  height: float, # double
6639
6892
  rise_ratio: float, # double
6640
6893
  start: numpy.ndarray, # Eigen::Vector3d
6641
6894
  target: numpy.ndarray, # Eigen::Vector3d
6895
+ elapsed_ratio: float = 0., # double
6896
+ start_vel: numpy.ndarray, # Eigen::Vector3d
6642
6897
 
6643
6898
  ) -> SwingFootCubicTrajectory:
6644
6899
  ...
@@ -6872,193 +7127,63 @@ class Variable:
6872
7127
  """
6873
7128
 
6874
7129
 
6875
- class WalkPatternGenerator:
7130
+ class WPGTrajectory:
6876
7131
  def __init__(
6877
- self: WalkPatternGenerator,
6878
- robot: HumanoidRobot, # placo::humanoid::HumanoidRobot
6879
- parameters: HumanoidParameters, # placo::humanoid::HumanoidParameters
7132
+ arg1: object,
7133
+ arg2: float,
7134
+ arg3: float,
7135
+ arg4: float,
6880
7136
 
6881
- ) -> any:
7137
+ ) -> None:
6882
7138
  ...
6883
7139
 
6884
- def can_replan_supports(
6885
- self: WalkPatternGenerator,
6886
- trajectory: WalkTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
6887
- t_replan: float, # double
7140
+ def apply_transform(
7141
+ self: WPGTrajectory,
7142
+ T: numpy.ndarray, # Eigen::Affine3d
6888
7143
 
6889
- ) -> bool:
6890
- """Checks if a trajectory can be replanned for supports."""
7144
+ ) -> None:
7145
+ """Applies a given transformation to the left of all values issued by the trajectory."""
6891
7146
  ...
6892
7147
 
6893
- def plan(
6894
- self: WalkPatternGenerator,
6895
- supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
6896
- initial_com_world: numpy.ndarray, # Eigen::Vector3d
6897
- t_start: float = 0., # double
6898
-
6899
- ) -> WalkTrajectory:
6900
- """Plan a walk trajectory following given footsteps based on the parameters of the WPG.
6901
-
7148
+ com_target_z: float # double
6902
7149
 
6903
- :param supports: Supports generated from the foosteps to follow
7150
+ def get_R_world_trunk(
7151
+ self: WPGTrajectory,
7152
+ t: float, # double
6904
7153
 
6905
- :return: Planned trajectory"""
6906
- ...
6907
-
6908
- def replan(
6909
- self: WalkPatternGenerator,
6910
- supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
6911
- old_trajectory: WalkTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
6912
- t_replan: float, # double
6913
-
6914
- ) -> WalkTrajectory:
6915
- """Update the walk trajectory to follow given footsteps based on the parameters of the WPG.
6916
-
6917
-
6918
- :param supports: Supports generated from the current foosteps or the new ones to follow. Contain the current support
6919
-
6920
- :param old_trajectory: Current walk trajectory
6921
-
6922
- :param t_replan: The time (in the original trajectory) where the replan happens
6923
-
6924
- :return: True if the trajectory have been replanned, false it hasn't"""
6925
- ...
6926
-
6927
- def replan_supports(
6928
- self: WalkPatternGenerator,
6929
- planner: FootstepsPlanner, # placo::humanoid::FootstepsPlanner
6930
- trajectory: WalkTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
6931
- t_replan: float, # double
6932
-
6933
- ) -> list[Support]:
6934
- """Replan the supports for a given trajectory given a footsteps planner."""
6935
- ...
6936
-
6937
-
6938
- class WalkTasks:
6939
- def __init__(
6940
- arg1: object,
6941
-
6942
- ) -> None:
6943
- ...
6944
-
6945
- com_x: float # double
6946
-
6947
- com_y: float # double
6948
-
6949
- def get_tasks_error(
6950
- self: WalkTasks,
6951
-
6952
- ) -> any:
6953
- ...
6954
-
6955
- def initialize_tasks(
6956
- self: WalkTasks,
6957
- solver: KinematicsSolver, # placo::kinematics::KinematicsSolver
6958
- robot: HumanoidRobot, # placo::humanoid::HumanoidRobot
6959
-
6960
- ) -> None:
6961
- ...
6962
-
6963
- left_foot_task: FrameTask # placo::kinematics::FrameTask
6964
-
6965
- def reach_initial_pose(
6966
- self: WalkTasks,
6967
- T_world_left: numpy.ndarray, # Eigen::Affine3d
6968
- feet_spacing: float, # double
6969
- com_height: float, # double
6970
- trunk_pitch: float, # double
6971
-
6972
- ) -> None:
6973
- ...
6974
-
6975
- def remove_tasks(
6976
- self: WalkTasks,
6977
-
6978
- ) -> None:
6979
- ...
6980
-
6981
- right_foot_task: FrameTask # placo::kinematics::FrameTask
6982
-
6983
- scaled: bool # bool
6984
-
6985
- solver: KinematicsSolver # placo::kinematics::KinematicsSolver
6986
-
6987
- trunk_mode: bool # bool
6988
-
6989
- trunk_orientation_task: OrientationTask # placo::kinematics::OrientationTask
6990
-
6991
- def update_tasks(
6992
- self: WalkTasks,
6993
- T_world_left: numpy.ndarray, # Eigen::Affine3d
6994
- T_world_right: numpy.ndarray, # Eigen::Affine3d
6995
- com_world: numpy.ndarray, # Eigen::Vector3d
6996
- R_world_trunk: numpy.ndarray, # Eigen::Matrix3d
6997
-
6998
- ) -> None:
6999
- ...
7000
-
7001
- def update_tasks_from_trajectory(
7002
- arg1: WalkTasks,
7003
- arg2: WalkTrajectory,
7004
- arg3: float,
7005
-
7006
- ) -> None:
7007
- ...
7008
-
7009
-
7010
- class WalkTrajectory:
7011
- def __init__(
7012
- arg1: object,
7013
-
7014
- ) -> None:
7015
- ...
7016
-
7017
- def apply_transform(
7018
- self: WalkTrajectory,
7019
- T: numpy.ndarray, # Eigen::Affine3d
7020
-
7021
- ) -> None:
7022
- """Applies a given transformation to the left of all values issued by the trajectory."""
7023
- ...
7024
-
7025
- def get_R_world_trunk(
7026
- self: WalkTrajectory,
7027
- t: float, # double
7028
-
7029
- ) -> numpy.ndarray:
7154
+ ) -> numpy.ndarray:
7030
7155
  ...
7031
7156
 
7032
7157
  def get_T_world_left(
7033
- self: WalkTrajectory,
7158
+ self: WPGTrajectory,
7034
7159
  t: float, # double
7035
7160
 
7036
7161
  ) -> numpy.ndarray:
7037
7162
  ...
7038
7163
 
7039
7164
  def get_T_world_right(
7040
- self: WalkTrajectory,
7165
+ self: WPGTrajectory,
7041
7166
  t: float, # double
7042
7167
 
7043
7168
  ) -> numpy.ndarray:
7044
7169
  ...
7045
7170
 
7046
7171
  def get_a_world_CoM(
7047
- self: WalkTrajectory,
7172
+ self: WPGTrajectory,
7048
7173
  t: float, # double
7049
7174
 
7050
7175
  ) -> numpy.ndarray:
7051
7176
  ...
7052
7177
 
7053
7178
  def get_j_world_CoM(
7054
- self: WalkTrajectory,
7179
+ self: WPGTrajectory,
7055
7180
  t: float, # double
7056
7181
 
7057
7182
  ) -> numpy.ndarray:
7058
7183
  ...
7059
7184
 
7060
7185
  def get_next_support(
7061
- self: WalkTrajectory,
7186
+ self: WPGTrajectory,
7062
7187
  t: float, # double
7063
7188
  n: int = 1, # int
7064
7189
 
@@ -7067,14 +7192,14 @@ class WalkTrajectory:
7067
7192
  ...
7068
7193
 
7069
7194
  def get_p_world_CoM(
7070
- self: WalkTrajectory,
7195
+ self: WPGTrajectory,
7071
7196
  t: float, # double
7072
7197
 
7073
7198
  ) -> numpy.ndarray:
7074
7199
  ...
7075
7200
 
7076
7201
  def get_p_world_DCM(
7077
- self: WalkTrajectory,
7202
+ self: WPGTrajectory,
7078
7203
  t: float, # double
7079
7204
  omega: float, # double
7080
7205
 
@@ -7082,7 +7207,7 @@ class WalkTrajectory:
7082
7207
  ...
7083
7208
 
7084
7209
  def get_p_world_ZMP(
7085
- self: WalkTrajectory,
7210
+ self: WPGTrajectory,
7086
7211
  t: float, # double
7087
7212
  omega: float, # double
7088
7213
 
@@ -7090,7 +7215,7 @@ class WalkTrajectory:
7090
7215
  ...
7091
7216
 
7092
7217
  def get_part_t_start(
7093
- self: WalkTrajectory,
7218
+ self: WPGTrajectory,
7094
7219
  t: float, # double
7095
7220
 
7096
7221
  ) -> float:
@@ -7098,7 +7223,7 @@ class WalkTrajectory:
7098
7223
  ...
7099
7224
 
7100
7225
  def get_prev_support(
7101
- self: WalkTrajectory,
7226
+ self: WPGTrajectory,
7102
7227
  t: float, # double
7103
7228
  n: int = 1, # int
7104
7229
 
@@ -7107,7 +7232,7 @@ class WalkTrajectory:
7107
7232
  ...
7108
7233
 
7109
7234
  def get_support(
7110
- self: WalkTrajectory,
7235
+ self: WPGTrajectory,
7111
7236
  t: float, # double
7112
7237
 
7113
7238
  ) -> Support:
@@ -7115,29 +7240,50 @@ class WalkTrajectory:
7115
7240
  ...
7116
7241
 
7117
7242
  def get_supports(
7118
- self: WalkTrajectory,
7243
+ self: WPGTrajectory,
7119
7244
 
7120
7245
  ) -> list[Support]:
7121
7246
  ...
7122
7247
 
7123
7248
  def get_v_world_CoM(
7124
- self: WalkTrajectory,
7249
+ self: WPGTrajectory,
7250
+ t: float, # double
7251
+
7252
+ ) -> numpy.ndarray:
7253
+ ...
7254
+
7255
+ def get_v_world_foot(
7256
+ self: WPGTrajectory,
7257
+ side: any, # placo::humanoid::HumanoidRobot::Side
7125
7258
  t: float, # double
7126
7259
 
7127
7260
  ) -> numpy.ndarray:
7128
7261
  ...
7129
7262
 
7130
- jerk_planner_timesteps: int # int
7263
+ def get_v_world_right(
7264
+ self: WPGTrajectory,
7265
+ t: float, # double
7266
+
7267
+ ) -> numpy.ndarray:
7268
+ ...
7269
+
7270
+ kept_ts: int # int
7271
+
7272
+ def print_parts_timings(
7273
+ self: WPGTrajectory,
7274
+
7275
+ ) -> None:
7276
+ ...
7131
7277
 
7132
7278
  def support_is_both(
7133
- self: WalkTrajectory,
7279
+ self: WPGTrajectory,
7134
7280
  t: float, # double
7135
7281
 
7136
7282
  ) -> bool:
7137
7283
  ...
7138
7284
 
7139
7285
  def support_side(
7140
- self: WalkTrajectory,
7286
+ self: WPGTrajectory,
7141
7287
  t: float, # double
7142
7288
 
7143
7289
  ) -> any:
@@ -7147,6 +7293,162 @@ class WalkTrajectory:
7147
7293
 
7148
7294
  t_start: float # double
7149
7295
 
7296
+ trunk_pitch: float # double
7297
+
7298
+ trunk_roll: float # double
7299
+
7300
+
7301
+ class WPGTrajectoryPart:
7302
+ def __init__(
7303
+ arg1: object,
7304
+ arg2: Support,
7305
+ arg3: float,
7306
+
7307
+ ) -> None:
7308
+ ...
7309
+
7310
+ support: Support # placo::humanoid::FootstepsPlanner::Support
7311
+
7312
+ t_end: float # double
7313
+
7314
+ t_start: float # double
7315
+
7316
+
7317
+ class WalkPatternGenerator:
7318
+ def __init__(
7319
+ self: WalkPatternGenerator,
7320
+ robot: HumanoidRobot, # placo::humanoid::HumanoidRobot
7321
+ parameters: HumanoidParameters, # placo::humanoid::HumanoidParameters
7322
+
7323
+ ) -> any:
7324
+ ...
7325
+
7326
+ def can_replan_supports(
7327
+ self: WalkPatternGenerator,
7328
+ trajectory: WPGTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
7329
+ t_replan: float, # double
7330
+
7331
+ ) -> bool:
7332
+ """Checks if a trajectory can be replanned for supports."""
7333
+ ...
7334
+
7335
+ def plan(
7336
+ self: WalkPatternGenerator,
7337
+ supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
7338
+ initial_com_world: numpy.ndarray, # Eigen::Vector3d
7339
+ t_start: float = 0., # double
7340
+
7341
+ ) -> WPGTrajectory:
7342
+ """Plans a walk trajectory following given footsteps based on the parameters of the WPG.
7343
+
7344
+
7345
+ :param supports: Supports generated from the foosteps to follow
7346
+
7347
+ :return: Planned trajectory"""
7348
+ ...
7349
+
7350
+ def replan(
7351
+ self: WalkPatternGenerator,
7352
+ supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
7353
+ old_trajectory: WPGTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
7354
+ t_replan: float, # double
7355
+
7356
+ ) -> WPGTrajectory:
7357
+ """Updates the walk trajectory to follow given footsteps based on the parameters of the WPG.
7358
+
7359
+
7360
+ :param supports: Supports generated from the current foosteps or the new ones to follow. Contain the current support
7361
+
7362
+ :param old_trajectory: Current walk trajectory
7363
+
7364
+ :param t_replan: The time (in the original trajectory) where the replan happens
7365
+
7366
+ :return: Updated trajectory"""
7367
+ ...
7368
+
7369
+ def replan_supports(
7370
+ self: WalkPatternGenerator,
7371
+ planner: FootstepsPlanner, # placo::humanoid::FootstepsPlanner
7372
+ trajectory: WPGTrajectory, # placo::humanoid::WalkPatternGenerator::Trajectory
7373
+ t_replan: float, # double
7374
+ t_last_replan: float, # double
7375
+
7376
+ ) -> list[Support]:
7377
+ """Replans the supports for a given trajectory given a footsteps planner."""
7378
+ ...
7379
+
7380
+
7381
+ class WalkTasks:
7382
+ def __init__(
7383
+ arg1: object,
7384
+
7385
+ ) -> None:
7386
+ ...
7387
+
7388
+ com_x: float # double
7389
+
7390
+ com_y: float # double
7391
+
7392
+ def get_tasks_error(
7393
+ self: WalkTasks,
7394
+
7395
+ ) -> any:
7396
+ ...
7397
+
7398
+ def initialize_tasks(
7399
+ self: WalkTasks,
7400
+ solver: KinematicsSolver, # placo::kinematics::KinematicsSolver
7401
+ robot: HumanoidRobot, # placo::humanoid::HumanoidRobot
7402
+
7403
+ ) -> None:
7404
+ ...
7405
+
7406
+ left_foot_task: FrameTask # placo::kinematics::FrameTask
7407
+
7408
+ def reach_initial_pose(
7409
+ self: WalkTasks,
7410
+ T_world_left: numpy.ndarray, # Eigen::Affine3d
7411
+ feet_spacing: float, # double
7412
+ com_height: float, # double
7413
+ trunk_pitch: float, # double
7414
+
7415
+ ) -> None:
7416
+ ...
7417
+
7418
+ def remove_tasks(
7419
+ self: WalkTasks,
7420
+
7421
+ ) -> None:
7422
+ ...
7423
+
7424
+ right_foot_task: FrameTask # placo::kinematics::FrameTask
7425
+
7426
+ scaled: bool # bool
7427
+
7428
+ solver: KinematicsSolver # placo::kinematics::KinematicsSolver
7429
+
7430
+ trunk_mode: bool # bool
7431
+
7432
+ trunk_orientation_task: OrientationTask # placo::kinematics::OrientationTask
7433
+
7434
+ def update_tasks(
7435
+ self: WalkTasks,
7436
+ T_world_left: numpy.ndarray, # Eigen::Affine3d
7437
+ T_world_right: numpy.ndarray, # Eigen::Affine3d
7438
+ com_world: numpy.ndarray, # Eigen::Vector3d
7439
+ R_world_trunk: numpy.ndarray, # Eigen::Matrix3d
7440
+
7441
+ ) -> None:
7442
+ ...
7443
+
7444
+ def update_tasks_from_trajectory(
7445
+ arg1: WalkTasks,
7446
+ arg2: WPGTrajectory,
7447
+ arg3: float,
7448
+
7449
+ ) -> None:
7450
+ ...
7451
+
7150
7452
 
7151
7453
  class WheelTask:
7152
7454
  A: numpy.ndarray # Eigen::MatrixXd
@@ -7236,6 +7538,35 @@ class WheelTask:
7236
7538
  ...
7237
7539
 
7238
7540
 
7541
+ def directions_2d(
7542
+ n: int, # int
7543
+
7544
+ ) -> numpy.ndarray:
7545
+ """Generates a set of directions in 2D.
7546
+
7547
+
7548
+ :param n: the number of directions
7549
+
7550
+ :return: matrix of size n x 2"""
7551
+ ...
7552
+
7553
+
7554
+ def directions_3d(
7555
+ n: int, # int
7556
+ epsilon: float = 0.5, # double
7557
+
7558
+ ) -> numpy.ndarray:
7559
+ """Generates a set of directions in 3D, using Fibonacci lattice.
7560
+
7561
+
7562
+ :param n: the number of directions
7563
+
7564
+ :param epsilon: the epsilon parameter for the Fibonacci lattice
7565
+
7566
+ :return: matrix of size n x 3"""
7567
+ ...
7568
+
7569
+
7239
7570
  def flatten_on_floor(
7240
7571
  transformation: numpy.ndarray, # const Eigen::Affine3d &
7241
7572
 
@@ -7538,4 +7869,4 @@ def wrap_angle(
7538
7869
  ...
7539
7870
 
7540
7871
 
7541
- __groups__ = {'placo::dynamics': ['AvoidSelfCollisionsDynamicsConstraint', 'Contact', 'Contact6D', 'DynamicsCoMTask', 'DynamicsConstraint', 'DynamicsFrameTask', 'DynamicsGearTask', 'DynamicsJointsTask', 'DynamicsOrientationTask', 'DynamicsPositionTask', 'DynamicsRelativeFrameTask', 'DynamicsRelativeOrientationTask', 'DynamicsRelativePositionTask', 'DynamicsSolver', 'DynamicsSolverResult', 'DynamicsTask', 'DynamicsTorqueTask', 'ExternalWrenchContact', 'LineContact', 'PointContact', 'PuppetContact', 'TaskContact'], 'placo::kinematics': ['AvoidSelfCollisionsKinematicsConstraint', 'AxisAlignTask', 'CentroidalMomentumTask', 'CoMPolygonConstraint', 'CoMTask', 'ConeConstraint', 'DistanceTask', 'FrameTask', 'GearTask', 'JointsTask', 'KinematicsConstraint', 'KinematicsSolver', 'KineticEnergyRegularizationTask', 'ManipulabilityTask', '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']}
7872
+ __groups__ = {'placo::dynamics': ['AvoidSelfCollisionsDynamicsConstraint', 'Contact', 'Contact6D', 'DynamicsCoMTask', 'DynamicsConstraint', 'DynamicsFrameTask', 'DynamicsGearTask', 'DynamicsJointsTask', 'DynamicsOrientationTask', 'DynamicsPositionTask', 'DynamicsRelativeFrameTask', 'DynamicsRelativeOrientationTask', 'DynamicsRelativePositionTask', 'DynamicsSolver', 'DynamicsSolverResult', 'DynamicsTask', 'DynamicsTorqueTask', 'ExternalWrenchContact', 'LineContact', 'PointContact', 'PuppetContact', 'TaskContact'], 'placo::kinematics': ['AvoidSelfCollisionsKinematicsConstraint', 'AxisAlignTask', 'CentroidalMomentumTask', 'CoMPolygonConstraint', 'CoMTask', 'ConeConstraint', 'DistanceTask', 'FrameTask', 'GearTask', 'JointSpaceHalfSpacesConstraint', 'JointsTask', 'KinematicsConstraint', 'KinematicsSolver', 'KineticEnergyRegularizationTask', 'ManipulabilityTask', 'OrientationTask', 'PositionTask', 'RegularizationTask', 'RelativeFrameTask', 'RelativeOrientationTask', 'RelativePositionTask', 'Task', 'WheelTask'], 'placo::tools': ['AxisesMask', 'CubicSpline', 'CubicSpline3D', 'Polynom', 'Prioritized', 'Segment'], 'placo::model': ['Collision', 'Distance', 'RobotWrapper', 'RobotWrapper_State'], 'placo::problem': ['Expression', 'Integrator', 'IntegratorTrajectory', 'PolygonConstraint', 'Problem', 'ProblemConstraint', 'ProblemPolynom', 'QPError', 'Sparsity', 'SparsityInterval', 'Variable'], 'placo::humanoid': ['Footstep', 'FootstepsPlanner', 'FootstepsPlannerNaive', 'FootstepsPlannerRepetitive', 'HumanoidParameters', 'HumanoidRobot', 'LIPM', 'LIPMTrajectory', 'Support', 'SwingFoot', 'SwingFootCubic', 'SwingFootCubicTrajectory', 'SwingFootQuintic', 'SwingFootQuinticTrajectory', 'SwingFootTrajectory', 'WPGTrajectory', 'WPGTrajectoryPart', 'WalkPatternGenerator', 'WalkTasks']}
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: placo
3
- Version: 0.6.2
3
+ Version: 0.6.4
4
4
  Summary: PlaCo: Rhoban Planning and Control
5
5
  Requires-Python: >= 3.8
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
- cmeel.prefix/lib/liblibplaco.so,sha256=XqQV0vmHgaSkg4Z7vZc5gKy2Of5cld_AaAl-zxwGMwk,2616096
2
- cmeel.prefix/lib/python3.10/site-packages/placo.pyi,sha256=QayiVIlf5rzQtPW5eKjE6bSX_F5s-zaIndK3C8HG0Qg,157168
3
- cmeel.prefix/lib/python3.10/site-packages/placo.so,sha256=EhQ29MVlnc4OrXFaPC7pOAm9jKbCefDkWjRQY7mxRtk,7751248
1
+ cmeel.prefix/lib/liblibplaco.so,sha256=ExDBSBAkcmvcamAK9RhVt0_h9RFfX8PC65hr8rDh_aU,2619744
2
+ cmeel.prefix/lib/python3.10/site-packages/placo.pyi,sha256=Re4nQC6mrMjDOgdVzIpy3JZF-UdVRRkHGPM9pcEyo24,164323
3
+ cmeel.prefix/lib/python3.10/site-packages/placo.so,sha256=NdgBCpd2AWzqMmP1qSPwpjRCE6gcKr69DjJJTeWLre8,8192072
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/view.py,sha256=7KiLYGpTKaPJtFHZ6kjERdOzJiPSDUtkIKHbziHpkYk,928
@@ -8,8 +8,8 @@ cmeel.prefix/lib/python3.10/site-packages/placo_utils/visualization.py,sha256=6E
8
8
  cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/__init__.cpython-310.pyc,sha256=tJrTajdA7hNO9tZkE1oN49rU-61lCNUED-mQXdAvzAs,261
9
9
  cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/tf.cpython-310.pyc,sha256=APWQ5-zKgbEcMnkv6Hxgj_Q46jpnuOyL9YbSrj6Z5Vw,204
10
10
  cmeel.prefix/lib/python3.10/site-packages/placo_utils/__pycache__/visualization.cpython-310.pyc,sha256=kMdmKY2LZKM4rkKm4j0y-TOMBQ3PeVIpbfB_YJxNz5c,6781
11
- placo-0.6.2.dist-info/license/LICENSE,sha256=q2bBXvk4Eh7TmP11LoIOIGSUuJbR30JBI6ZZ37g52T4,1061
12
- placo-0.6.2.dist-info/METADATA,sha256=Nz6_Mp10CY7brtyXVqedGQ779HjnAawZ8tPLoqiWXOc,2569
13
- placo-0.6.2.dist-info/WHEEL,sha256=y7GzdFHC0qrZwnE2SqFjrXxL9NLtXflO9hVb0PhWwIU,115
14
- placo-0.6.2.dist-info/top_level.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- placo-0.6.2.dist-info/RECORD,,
11
+ placo-0.6.4.dist-info/licenses/LICENSE,sha256=q2bBXvk4Eh7TmP11LoIOIGSUuJbR30JBI6ZZ37g52T4,1061
12
+ placo-0.6.4.dist-info/METADATA,sha256=cPKmAjHW_OMFoFUT2xpaGIP-CLPOx7eA9na4JNTMkFw,2569
13
+ placo-0.6.4.dist-info/WHEEL,sha256=lhhHTnYbOJzqsg4pPctu5MqgY8RxNHlH5gszBU8FPYs,115
14
+ placo-0.6.4.dist-info/top_level.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ placo-0.6.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: cmeel 0.53.3
2
+ Generator: cmeel 0.57.1
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-manylinux_2_35_x86_64
5
5
  Build: 0