luckyrobots 0.1.72__py3-none-any.whl → 0.1.74__py3-none-any.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.
Files changed (31) hide show
  1. luckyrobots/__init__.py +5 -32
  2. luckyrobots/client.py +143 -463
  3. luckyrobots/config/robots.yaml +96 -48
  4. luckyrobots/engine/__init__.py +5 -20
  5. luckyrobots/grpc/generated/agent_pb2.py +4 -4
  6. luckyrobots/grpc/generated/agent_pb2_grpc.py +1 -1
  7. luckyrobots/grpc/generated/camera_pb2.py +2 -2
  8. luckyrobots/grpc/generated/camera_pb2_grpc.py +2 -2
  9. luckyrobots/grpc/generated/debug_pb2.py +51 -0
  10. luckyrobots/grpc/generated/debug_pb2_grpc.py +100 -0
  11. luckyrobots/grpc/generated/hazel_rpc_pb2.py +10 -9
  12. luckyrobots/grpc/generated/mujoco_pb2_grpc.py +1 -1
  13. luckyrobots/grpc/generated/scene_pb2.py +1 -1
  14. luckyrobots/grpc/generated/scene_pb2_grpc.py +1 -1
  15. luckyrobots/grpc/generated/telemetry_pb2_grpc.py +1 -1
  16. luckyrobots/grpc/generated/viewport_pb2.py +1 -1
  17. luckyrobots/grpc/generated/viewport_pb2_grpc.py +2 -2
  18. luckyrobots/grpc/proto/debug.proto +63 -0
  19. luckyrobots/grpc/proto/hazel_rpc.proto +1 -0
  20. luckyrobots/models/__init__.py +2 -14
  21. luckyrobots/models/observation.py +4 -33
  22. luckyrobots/utils.py +1 -43
  23. {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/METADATA +1 -1
  24. luckyrobots-0.1.74.dist-info/RECORD +46 -0
  25. luckyrobots/engine/check_updates.py +0 -264
  26. luckyrobots/engine/download.py +0 -125
  27. luckyrobots/models/camera.py +0 -97
  28. luckyrobots/models/randomization.py +0 -77
  29. luckyrobots-0.1.72.dist-info/RECORD +0 -47
  30. {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/WHEEL +0 -0
  31. {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/licenses/LICENSE +0 -0
@@ -1,77 +0,0 @@
1
- """
2
- Domain randomization configuration for physics parameters.
3
-
4
- This model maps to the DomainRandomizationConfig proto message in agent.proto.
5
- """
6
-
7
- from typing import Optional
8
- from pydantic import BaseModel, Field, ConfigDict
9
-
10
-
11
- class DomainRandomizationConfig(BaseModel):
12
- """Domain randomization configuration for physics parameters.
13
-
14
- All range fields are [min, max] tuples. None/empty means "use defaults".
15
-
16
- Usage:
17
- randomization_cfg = DomainRandomizationConfig(
18
- friction_range=(0.5, 1.5),
19
- mass_scale_range=(0.8, 1.2),
20
- joint_position_noise=0.05,
21
- )
22
- client.reset_agent(randomization_cfg=randomization_cfg)
23
- """
24
-
25
- model_config = ConfigDict(frozen=True)
26
-
27
- # Initial state randomization
28
- pose_position_noise: Optional[tuple[float, float, float]] = Field(
29
- default=None, description="[x, y, z] position noise std"
30
- )
31
- pose_orientation_noise: Optional[float] = Field(
32
- default=None, description="Orientation noise std (radians)"
33
- )
34
- joint_position_noise: Optional[float] = Field(
35
- default=None, description="Joint position noise std"
36
- )
37
- joint_velocity_noise: Optional[float] = Field(
38
- default=None, description="Joint velocity noise std"
39
- )
40
-
41
- # Physics parameters (all [min, max] ranges)
42
- friction_range: Optional[tuple[float, float]] = Field(
43
- default=None, description="Surface friction coefficient [min, max]"
44
- )
45
- restitution_range: Optional[tuple[float, float]] = Field(
46
- default=None, description="Bounce/restitution coefficient [min, max]"
47
- )
48
- mass_scale_range: Optional[tuple[float, float]] = Field(
49
- default=None, description="Body mass multiplier [min, max]"
50
- )
51
- com_offset_range: Optional[tuple[float, float]] = Field(
52
- default=None, description="Center of mass offset [min, max]"
53
- )
54
-
55
- # Motor/actuator randomization
56
- motor_strength_range: Optional[tuple[float, float]] = Field(
57
- default=None, description="Motor strength multiplier [min, max]"
58
- )
59
- motor_offset_range: Optional[tuple[float, float]] = Field(
60
- default=None, description="Motor position offset [min, max]"
61
- )
62
-
63
- # External disturbances
64
- push_interval_range: Optional[tuple[float, float]] = Field(
65
- default=None, description="Time between pushes [min, max]"
66
- )
67
- push_velocity_range: Optional[tuple[float, float]] = Field(
68
- default=None, description="Push velocity magnitude [min, max]"
69
- )
70
-
71
- # Terrain configuration
72
- terrain_type: Optional[str] = Field(
73
- default=None, description="Terrain type identifier"
74
- )
75
- terrain_difficulty: Optional[float] = Field(
76
- default=None, description="Terrain difficulty level"
77
- )
@@ -1,47 +0,0 @@
1
- luckyrobots/__init__.py,sha256=VWewiYhYbYCs1ZSD0KxozmG2jH2uLlBxsVgFIRivKTM,824
2
- luckyrobots/client.py,sha256=3F0p46FndJv02D_pSZkOn4j2tkjV6RX1ziCFFEaJsr4,36129
3
- luckyrobots/luckyrobots.py,sha256=-XkIt9h7si4GK_j5Wpknb7_h56CCWi8_d1woVMuIvxU,8957
4
- luckyrobots/utils.py,sha256=62BqpSRBFykVRMZ5Ti2F-yKRDoyU3UNHeesDF_PVCFc,2958
5
- luckyrobots/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- luckyrobots/config/robots.yaml,sha256=Wu2AgwhZxo9F-RLcqPJXHnqzjT8a0wR-rFBcecck_eE,5164
7
- luckyrobots/engine/__init__.py,sha256=-3r7aLueDF7eyumqIhTvYqS8ZNnVSJUJEHG4ybsKrjc,546
8
- luckyrobots/engine/check_updates.py,sha256=KGQHrj1LB0_vexktO01xx-ZvPOYKkto4VBb3H1KV7uI,7593
9
- luckyrobots/engine/download.py,sha256=vIb5T40Jk2BnfjPo0f4KgW14Om6P4_mvPpZ9JAlkVvg,4029
10
- luckyrobots/engine/manager.py,sha256=8vxSevaoXo-lw2G6y74lVc-Ms8xIELK0yLswydMiOQY,13388
11
- luckyrobots/grpc/__init__.py,sha256=hPh-X_FEus2sxrfQB2fQjD754X5bMaUFTWm3mZmUhe0,153
12
- luckyrobots/grpc/generated/__init__.py,sha256=u69M4E_2LwRQSD_n4wvQyMX7dryBCrIdsho59c52Crk,732
13
- luckyrobots/grpc/generated/agent_pb2.py,sha256=5rXekXme6u5KCtEtwjkhHkUyxrfxpMKutG4KPZqNr1U,7195
14
- luckyrobots/grpc/generated/agent_pb2_grpc.py,sha256=M9ZsjS1qhBm57-DVy6il_u_XeTpb6Qbntm45Rqp_f1k,10909
15
- luckyrobots/grpc/generated/camera_pb2.py,sha256=2UDkgzMYdDZ53euPfLAndeI7k4wI9QH_Dvwkay6TAB4,2623
16
- luckyrobots/grpc/generated/camera_pb2_grpc.py,sha256=hUXzsf2qCE-ffZzkF8El2UuuLu6nxjKSYPukId2uFP8,5278
17
- luckyrobots/grpc/generated/common_pb2.py,sha256=0eZTxqlsZdTrgp2hgLy-hdDNtac5U3kkS_D9UbVy0e8,2045
18
- luckyrobots/grpc/generated/common_pb2_grpc.py,sha256=MWix04c710srn9BtjDxa9-UkZz0wa-w8tB0EmYndSgg,886
19
- luckyrobots/grpc/generated/hazel_rpc_pb2.py,sha256=XB1nGSVTYhpulRpS8Ja44KaCV5s-l1t_FPV4DJ5_ak8,1716
20
- luckyrobots/grpc/generated/hazel_rpc_pb2_grpc.py,sha256=5bhVh5DmVDl2ZsdgN7mTnElDbgU142TOI1qm8a8eblw,889
21
- luckyrobots/grpc/generated/media_pb2.py,sha256=TtGdBub2Pj1vG_jJJIZnIZealLD0s98wZ4KgGIrcn2c,1827
22
- luckyrobots/grpc/generated/media_pb2_grpc.py,sha256=szeOZzqDnIBFEyjAtXEHNxytTb9hTvOkQj0PhvXumMM,885
23
- luckyrobots/grpc/generated/mujoco_pb2.py,sha256=Oq1AdZ0h-svs7ntlaDZ-zvQdTPsulnaE7YaINvBIBpM,3476
24
- luckyrobots/grpc/generated/mujoco_pb2_grpc.py,sha256=Rz8hyPvhB2nR-0Mej4Ly9ixbrdpPCxDafmL8H4x43Nk,8603
25
- luckyrobots/grpc/generated/scene_pb2.py,sha256=ZQyv_csWjB42WLfHNe8aQVMB5U9nQnJ7fY9enac9VGQ,5382
26
- luckyrobots/grpc/generated/scene_pb2_grpc.py,sha256=I7G2LqkKZwEPZV-gxWo_45ecBey-wuGZ26pwxlH0mGQ,12118
27
- luckyrobots/grpc/generated/telemetry_pb2.py,sha256=LgVtxJv7ovtqlrgxG375aXADGt3qXwgpsIhIkJ3pLKE,2790
28
- luckyrobots/grpc/generated/telemetry_pb2_grpc.py,sha256=8TuCSc7rnQZFNqhEPXUoJsWAnwvEvyyEI5GaqQUCSSs,5463
29
- luckyrobots/grpc/generated/viewport_pb2.py,sha256=Z_5gBD23z7He_OACYkaIsi0o4LIESzOG7o_rO1lRLVs,3093
30
- luckyrobots/grpc/generated/viewport_pb2_grpc.py,sha256=BkJqREcjIa3ZdNgZUxH_MvBWOte9VJJGi-KlFgYepog,5436
31
- luckyrobots/grpc/proto/agent.proto,sha256=SUVR9EqNz5gB5FNt3n54sNXv3SkvYgXKywlZmZh5vio,8506
32
- luckyrobots/grpc/proto/camera.proto,sha256=unLowpk4d0AGJgyKrbzTr1F_CxOV9dXRoXn-gO8eJVw,1097
33
- luckyrobots/grpc/proto/common.proto,sha256=zQPj-Z8b8mAE2_eHlJ0L2_-JH-CYY_OJcv8046fAtQM,772
34
- luckyrobots/grpc/proto/hazel_rpc.proto,sha256=gtFukd1B9WRbY2kWBgd5YQWSw4cobYf1YRYX6VEaULE,1229
35
- luckyrobots/grpc/proto/media.proto,sha256=3Rhmiaw1zceQBFdwxX1ViFgH-cSr7mBjNEGHPaFmTsk,836
36
- luckyrobots/grpc/proto/mujoco.proto,sha256=b7tBvYqqvcSjmqrEax6_75-P3fIHHZq63A1HVJKjx0U,1873
37
- luckyrobots/grpc/proto/scene.proto,sha256=ZypWsUzpgplGsQPP0FXJpyY4rSxgWYGsniM4vofhnak,3075
38
- luckyrobots/grpc/proto/telemetry.proto,sha256=PZiUoA0bpwuvsBUdoQQdBNGWOuhlBMKAiBpwqPZiJgY,1481
39
- luckyrobots/grpc/proto/viewport.proto,sha256=gunF8cIrVgvoAX8FNER6gw_u-IlRWAR1Q6ts0zUuqr8,1324
40
- luckyrobots/models/__init__.py,sha256=assqJIKZXvDGwCVM0grNLJCBWyHtKRBAaxdJb2dON10,332
41
- luckyrobots/models/camera.py,sha256=e-CftAndHASfokhtUtU7ujGb2q_kcXZ6-2KKvY42CKg,3682
42
- luckyrobots/models/observation.py,sha256=jbRiUTjOP2ZiSobsnNcks3aMPAJA6oPoKqiXwvrNQK0,4758
43
- luckyrobots/models/randomization.py,sha256=AicqHovzG97Ge33wtNQE-_EvKxndjEHguTjCiHfhAV8,2753
44
- luckyrobots-0.1.72.dist-info/METADATA,sha256=-liPc6bNv78N5A-PgTJ8YeiD5YIIU8BTO60zE-zV87Y,8379
45
- luckyrobots-0.1.72.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
46
- luckyrobots-0.1.72.dist-info/licenses/LICENSE,sha256=xsPYvRJPH_fW_sofTUknI_KvZOsD4-BqjSOTZqI6Nmw,1069
47
- luckyrobots-0.1.72.dist-info/RECORD,,