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.
- cmeel.prefix/lib/liblibplaco.so +0 -0
- cmeel.prefix/lib/python3.10/site-packages/placo.pyi +41 -16
- cmeel.prefix/lib/python3.10/site-packages/placo.so +0 -0
- placo-0.6.5.dist-info/METADATA +62 -0
- {placo-0.6.4.dist-info → placo-0.6.5.dist-info}/RECORD +8 -8
- placo-0.6.4.dist-info/METADATA +0 -57
- {placo-0.6.4.dist-info → placo-0.6.5.dist-info}/WHEEL +0 -0
- {placo-0.6.4.dist-info → placo-0.6.5.dist-info}/licenses/LICENSE +0 -0
- {placo-0.6.4.dist-info → placo-0.6.5.dist-info}/top_level.txt +0 -0
cmeel.prefix/lib/liblibplaco.so
CHANGED
|
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
|
-
|
|
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>
|
|
Binary file
|
|
@@ -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
|
+
[](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
|
+
[](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=
|
|
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=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.
|
|
12
|
-
placo-0.6.
|
|
13
|
-
placo-0.6.
|
|
14
|
-
placo-0.6.
|
|
15
|
-
placo-0.6.
|
|
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,,
|
placo-0.6.4.dist-info/METADATA
DELETED
|
@@ -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
|
-
[](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
|
-
[](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
|
|
File without changes
|
|
File without changes
|