placo 0.6.4__0-cp310-cp310-manylinux_2_35_x86_64.whl → 0.6.5__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
@@ -2534,7 +2534,7 @@ class ExternalWrenchContact:
2534
2534
  def __init__(
2535
2535
  self: ExternalWrenchContact,
2536
2536
  frame_index: any, # pinocchio::FrameIndex
2537
- reference: any, # pinocchio::ReferenceFrame
2537
+ reference: any = None, # pinocchio::ReferenceFrame (default: pinocchio::LOCAL_WORLD_ALIGNED)
2538
2538
 
2539
2539
  ) -> any:
2540
2540
  """see DynamicsSolver::add_external_wrench_contact"""
@@ -2635,19 +2635,11 @@ class Footstep:
2635
2635
  ) -> any:
2636
2636
  ...
2637
2637
 
2638
- dx: float # double
2639
-
2640
- dy: float # double
2641
-
2642
2638
  foot_length: float # double
2643
2639
 
2644
2640
  foot_width: float # double
2645
2641
 
2646
- def frame(
2647
- self: Footstep,
2648
-
2649
- ) -> numpy.ndarray:
2650
- ...
2642
+ frame: numpy.ndarray # Eigen::Affine3d
2651
2643
 
2652
2644
  def overlap(
2653
2645
  self: Footstep,
@@ -2665,8 +2657,6 @@ class Footstep:
2665
2657
  ) -> bool:
2666
2658
  ...
2667
2659
 
2668
- raw_frame: numpy.ndarray # Eigen::Affine3d
2669
-
2670
2660
  side: any # placo::humanoid::HumanoidRobot::Side
2671
2661
 
2672
2662
  def support_polygon(
@@ -4392,7 +4382,7 @@ class KinematicsSolver:
4392
4382
  def add_frame_task(
4393
4383
  self: KinematicsSolver,
4394
4384
  frame: str, # std::string
4395
- T_world_frame: numpy.ndarray, # Eigen::Affine3d
4385
+ T_world_frame: numpy.ndarray = None, # Eigen::Affine3d (default: Eigen::Affine3d::Identity())
4396
4386
 
4397
4387
  ) -> FrameTask:
4398
4388
  """Adds a frame task, this is equivalent to a position + orientation task, resulting in decoupled tasks for a given frame.
@@ -4798,8 +4788,8 @@ class LIPM:
4798
4788
  timesteps: int, # int
4799
4789
  t_start: float, # double
4800
4790
  initial_pos: numpy.ndarray, # Eigen::Vector2d
4801
- initial_vel: numpy.ndarray, # Eigen::Vector2d
4802
- initial_acc: numpy.ndarray, # Eigen::Vector2d
4791
+ initial_vel: numpy.ndarray = None, # Eigen::Vector2d (default: Eigen::Vector2d::Zero())
4792
+ initial_acc: numpy.ndarray = None, # Eigen::Vector2d (default: Eigen::Vector2d::Zero())
4803
4793
 
4804
4794
  ) -> any:
4805
4795
  ...
@@ -6569,6 +6559,19 @@ class Segment:
6569
6559
 
6570
6560
  end: numpy.ndarray # Eigen::Vector2d
6571
6561
 
6562
+ def half_line_pass_through(
6563
+ self: Segment,
6564
+ s: Segment, # placo::tools::Segment
6565
+
6566
+ ) -> bool:
6567
+ """Checks if the half-line starting from the start of this segment and going through its end pass through another segment.
6568
+
6569
+
6570
+ :param s: The other segment.
6571
+
6572
+ :return: True if the intersection is a point of the other segment."""
6573
+ ...
6574
+
6572
6575
  def intersects(
6573
6576
  self: Segment,
6574
6577
  s: Segment, # placo::tools::Segment
@@ -6751,6 +6754,13 @@ class Support:
6751
6754
  ) -> any:
6752
6755
  ...
6753
6756
 
6757
+ def apply_offset(
6758
+ self: Support,
6759
+ offset: numpy.ndarray, # Eigen::Vector2d
6760
+
6761
+ ) -> None:
6762
+ ...
6763
+
6754
6764
  elapsed_ratio: float # double
6755
6765
 
6756
6766
  end: bool # bool
@@ -6893,7 +6903,7 @@ class SwingFootCubic:
6893
6903
  start: numpy.ndarray, # Eigen::Vector3d
6894
6904
  target: numpy.ndarray, # Eigen::Vector3d
6895
6905
  elapsed_ratio: float = 0., # double
6896
- start_vel: numpy.ndarray, # Eigen::Vector3d
6906
+ start_vel: numpy.ndarray = None, # Eigen::Vector3d (default: Eigen::Vector3d::Zero())
6897
6907
 
6898
6908
  ) -> SwingFootCubicTrajectory:
6899
6909
  ...
@@ -7332,6 +7342,21 @@ class WalkPatternGenerator:
7332
7342
  """Checks if a trajectory can be replanned for supports."""
7333
7343
  ...
7334
7344
 
7345
+ def compute_next_support(
7346
+ self: WalkPatternGenerator,
7347
+ t: float, # double
7348
+ current_support: Support, # placo::humanoid::FootstepsPlanner::Support
7349
+ next_support: Support, # placo::humanoid::FootstepsPlanner::Support
7350
+ world_measured_dcm: numpy.ndarray, # Eigen::Vector2d
7351
+ world_initial_dcm: numpy.ndarray, # Eigen::Vector2d
7352
+
7353
+ ) -> any:
7354
+ """Computes the position and time of the next support ensuring the DCM viability based on the measured DCM.
7355
+
7356
+
7357
+ :param TODO:"""
7358
+ ...
7359
+
7335
7360
  def plan(
7336
7361
  self: WalkPatternGenerator,
7337
7362
  supports: list[Support], # std::vector<placo::humanoid::FootstepsPlanner::Support>
@@ -0,0 +1,62 @@
1
+ Metadata-Version: 2.4
2
+ Name: placo
3
+ Version: 0.6.5
4
+ Summary: PlaCo: Rhoban Planning and Control
5
+ Requires-Python: >= 3.8
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Author-email: Rhoban team <team@rhoban.com>
9
+ Project-URL: Changelog, https://github.com/rhoban/placo/blob/main/CHANGELOG.md
10
+ Home-page: https://placo.readthedocs.io/en/latest/
11
+ Project-URL: Repository, https://github.com/rhoban/placo.git
12
+ Requires-Dist: cmeel
13
+ Requires-Dist: eiquadprog >= 1.2.6, < 2
14
+ Requires-Dist: pin >= 2.6.18, < 3
15
+ Requires-Dist: rhoban-cmeel-jsoncpp
16
+ Requires-Dist: meshcat
17
+ Requires-Dist: numpy<2
18
+ Requires-Dist: ischedule
19
+ Provides-Extra: build
20
+ Requires-Dist: pin[build] >= 2.6.18, < 3 ; extra == "build"
21
+ Requires-Dist: cmeel-urdfdom[build] ; extra == "build"
22
+ Description-Content-Type: text/markdown
23
+
24
+ <img width="400" src="https://placo.readthedocs.io/en/latest/_static/placo.png" />
25
+
26
+ ## Planning & Control
27
+
28
+ PlaCo is Rhoban's planning and control library. It is built on the top of [pinocchio](https://github.com/stack-of-tasks/pinocchio), [eiquadprog](https://github.com/stack-of-tasks/eiquadprog) QP solver, and fully written in C++ with Python bindings, allowing fast prototyping with good runtime performances. It features task-space inverse kinematics and dynamics (see below) high-level API for whole-body control tasks.
29
+
30
+ ### Task-Space Inverse Kinematics
31
+
32
+ [![Quadruoped demo](https://github.com/Rhoban/placo-examples/blob/master/kinematics/videos/quadruped_targets.gif?raw=true)](https://github.com/Rhoban/placo-examples/blob/master/kinematics/videos/quadruped_targets.mp4?raw=true)
33
+
34
+ High-level API to specify tasks for constrained inverse kinematics (IK).
35
+
36
+ - [See documentation](https://placo.readthedocs.io/en/latest/kinematics/getting_started.html)
37
+ - [Examples](https://placo.readthedocs.io/en/latest/kinematics/examples_gallery.html)
38
+
39
+ ### Task-Space Inverse Dynamics
40
+
41
+ [![Megabot demo](https://github.com/Rhoban/placo-examples/blob/master/dynamics/videos/megabot.gif?raw=true)](https://github.com/Rhoban/placo-examples/blob/master/dynamics/videos/megabot.mp4?raw=true)
42
+
43
+ High-level API to specify tasks for constrained inverse dynamics (ID).
44
+
45
+ - [See documentation](https://placo.readthedocs.io/en/latest/dynamics/getting_started.html)
46
+ - [Examples](https://placo.readthedocs.io/en/latest/dynamics/examples_gallery.html)
47
+
48
+
49
+ ## Installing
50
+
51
+ PlaCo can be installed from ``pip``
52
+
53
+ ```
54
+ pip install placo
55
+ ```
56
+
57
+ Or [built from sources](https://placo.readthedocs.io/en/latest/basics/installation_source.html)
58
+
59
+ ## Resources
60
+
61
+ * [Documentation](https://placo.readthedocs.io/en/latest/)
62
+ * [Examples](https://github.com/rhoban/placo-examples) repository
@@ -1,6 +1,6 @@
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
1
+ cmeel.prefix/lib/liblibplaco.so,sha256=JHPCSivZCpUJilIWFEzM8EC9fp7mWKb5UMiplzI6Y0Q,2619816
2
+ cmeel.prefix/lib/python3.10/site-packages/placo.pyi,sha256=7qqoiIhhkYkGKgIuYE9NV1InLRwFwO3VBMjnUnL2LaE,165405
3
+ cmeel.prefix/lib/python3.10/site-packages/placo.so,sha256=haijm8VCNbRolUpwCWsZuOmxRJxkr-4UjpuSwocy3X4,8201384
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.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,,
11
+ placo-0.6.5.dist-info/licenses/LICENSE,sha256=q2bBXvk4Eh7TmP11LoIOIGSUuJbR30JBI6ZZ37g52T4,1061
12
+ placo-0.6.5.dist-info/METADATA,sha256=lvTtWBMQSRl3ZM85U5-DlJ57HNEiDwpnD7cMrrxBNP4,2622
13
+ placo-0.6.5.dist-info/WHEEL,sha256=lhhHTnYbOJzqsg4pPctu5MqgY8RxNHlH5gszBU8FPYs,115
14
+ placo-0.6.5.dist-info/top_level.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ placo-0.6.5.dist-info/RECORD,,
@@ -1,57 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: placo
3
- Version: 0.6.4
4
- Summary: PlaCo: Rhoban Planning and Control
5
- Requires-Python: >= 3.8
6
- License-Expression: MIT
7
- License-File: LICENSE
8
- Author-email: Rhoban team <team@rhoban.com>
9
- Project-URL: Changelog, https://github.com/rhoban/placo/blob/main/CHANGELOG.md
10
- Home-page: https://placo.readthedocs.io/en/latest/
11
- Project-URL: Repository, https://github.com/rhoban/placo.git
12
- Requires-Dist: cmeel
13
- Requires-Dist: eiquadprog >= 1.2.6, < 2
14
- Requires-Dist: pin >= 2.6.18, < 3
15
- Requires-Dist: rhoban-cmeel-jsoncpp
16
- Requires-Dist: meshcat
17
- Requires-Dist: numpy<2
18
- Requires-Dist: ischedule
19
- Provides-Extra: build
20
- Requires-Dist: pin[build] >= 2.6.18, < 3 ; extra == "build"
21
- Requires-Dist: cmeel-urdfdom[build] ; extra == "build"
22
- Description-Content-Type: text/markdown
23
-
24
- # PlaCo
25
-
26
- PlaCo is Rhoban's planning and control library.
27
- Its main features are:
28
-
29
- * Task-space Inverse Kinematics with constraints,
30
- * Task-space Inverse Dynamics with constraints,
31
- * QP problem formulation,
32
- * Built on the top of [pinocchio](https://github.com/stack-of-tasks/pinocchio)
33
- * Written in C++ with Python bindings
34
-
35
- [![Megabot demo](https://github.com/Rhoban/placo-examples/blob/master/kinematics/videos/quadruped_targets.gif?raw=true)](https://github.com/Rhoban/placo-examples/blob/master/kinematics/videos/quadruped_targets.mp4?raw=true)
36
-
37
- *Inverse Kinematics Example: a quadruped robot hitting targets with a leg while keeping its three legs on the ground*
38
-
39
- [source code (quadruped_targets.py)](https://github.com/Rhoban/placo-examples/blob/master/kinematics/quadruped_targets.py) / [more kinematics examples](https://placo.readthedocs.io/en/latest/kinematics/examples_gallery.html)
40
-
41
- [![Megabot demo](https://github.com/Rhoban/placo-examples/blob/master/dynamics/videos/megabot.gif?raw=true)](https://github.com/Rhoban/placo-examples/blob/master/dynamics/videos/megabot.mp4?raw=true)
42
-
43
- *Inverse Dynamics Example: a quadruped with many loop closure joints*
44
-
45
- [source code (megabot.py)](https://github.com/Rhoban/placo-examples/blob/master/dynamics/megabot.py) / [more dynamics examples](https://placo.readthedocs.io/en/latest/dynamics/examples_gallery.html)
46
-
47
- ## Installing
48
-
49
- PlaCo is available from [pip](https://placo.readthedocs.io/en/latest/basics/installation_pip.html),
50
- or can be [built from sources](https://placo.readthedocs.io/en/latest/basics/installation_source.html).
51
-
52
- ## Documentation
53
-
54
- Here is the [official documentation](https://placo.readthedocs.io/en/latest/)
55
-
56
- You can also find many examples in the [placo-examples](https://github.com/rhoban/placo-examples)
57
- repository.
File without changes