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
@@ -149,103 +149,151 @@ unitreego1:
149
149
  - locomotion
150
150
  action_space:
151
151
  actuator_names:
152
- - FR_hip
153
- - FR_thigh
154
- - FR_calf
155
- - FL_hip
156
- - FL_thigh
157
- - FL_calf
158
- - RR_hip
159
- - RR_thigh
160
- - RR_calf
161
- - RL_hip
162
- - RL_thigh
163
- - RL_calf
152
+ - FR_hip_joint
153
+ - FR_thigh_joint
154
+ - FR_calf_joint
155
+ - FL_hip_joint
156
+ - FL_thigh_joint
157
+ - FL_calf_joint
158
+ - RR_hip_joint
159
+ - RR_thigh_joint
160
+ - RR_calf_joint
161
+ - RL_hip_joint
162
+ - RL_thigh_joint
163
+ - RL_calf_joint
164
164
  actuator_limits:
165
- - name: FR_hip
165
+ - name: FR_hip_joint
166
166
  lower: -0.863
167
167
  upper: 0.863
168
- - name: FR_thigh
168
+ default: 0.1
169
+ scale: 0.3727530387083568
170
+ - name: FR_thigh_joint
169
171
  lower: -0.686
170
172
  upper: 4.501
171
- - name: FR_calf
173
+ default: 0.9
174
+ scale: 0.3727530387083568
175
+ - name: FR_calf_joint
172
176
  lower: -2.818
173
177
  upper: -0.888
174
- - name: FL_hip
178
+ default: -1.8
179
+ scale: 0.24850202580557115
180
+ - name: FL_hip_joint
175
181
  lower: -0.863
176
182
  upper: 0.863
177
- - name: FL_thigh
183
+ default: -0.1
184
+ scale: 0.3727530387083568
185
+ - name: FL_thigh_joint
178
186
  lower: -0.686
179
187
  upper: 4.501
180
- - name: FL_calf
188
+ default: 0.9
189
+ scale: 0.3727530387083568
190
+ - name: FL_calf_joint
181
191
  lower: -2.818
182
192
  upper: -0.888
183
- - name: RR_hip
193
+ default: -1.8
194
+ scale: 0.24850202580557115
195
+ - name: RR_hip_joint
184
196
  lower: -0.863
185
197
  upper: 0.863
186
- - name: RR_thigh
198
+ default: 0.1
199
+ scale: 0.3727530387083568
200
+ - name: RR_thigh_joint
187
201
  lower: -0.686
188
202
  upper: 4.501
189
- - name: RR_calf
203
+ default: 0.9
204
+ scale: 0.3727530387083568
205
+ - name: RR_calf_joint
190
206
  lower: -2.818
191
207
  upper: -0.888
192
- - name: RL_hip
208
+ default: -1.8
209
+ scale: 0.24850202580557115
210
+ - name: RL_hip_joint
193
211
  lower: -0.863
194
212
  upper: 0.863
195
- - name: RL_thigh
213
+ default: -0.1
214
+ scale: 0.3727530387083568
215
+ - name: RL_thigh_joint
196
216
  lower: -0.686
197
217
  upper: 4.501
198
- - name: RL_calf
218
+ default: 0.9
219
+ scale: 0.3727530387083568
220
+ - name: RL_calf_joint
199
221
  lower: -2.818
200
222
  upper: -0.888
223
+ default: -1.8
224
+ scale: 0.24850202580557115
201
225
  observation_space:
202
226
  actuator_names:
203
- - FR_hip
204
- - FR_thigh
205
- - FR_calf
206
- - FL_hip
207
- - FL_thigh
208
- - FL_calf
209
- - RR_hip
210
- - RR_thigh
211
- - RR_calf
212
- - RL_hip
213
- - RL_thigh
214
- - RL_calf
227
+ - FR_hip_joint
228
+ - FR_thigh_joint
229
+ - FR_calf_joint
230
+ - FL_hip_joint
231
+ - FL_thigh_joint
232
+ - FL_calf_joint
233
+ - RR_hip_joint
234
+ - RR_thigh_joint
235
+ - RR_calf_joint
236
+ - RL_hip_joint
237
+ - RL_thigh_joint
238
+ - RL_calf_joint
215
239
  actuator_limits:
216
- - name: FR_hip
240
+ - name: FR_hip_joint
217
241
  lower: -0.863
218
242
  upper: 0.863
219
- - name: FR_thigh
243
+ default: 0.1
244
+ scale: 0.3727530387083568
245
+ - name: FR_thigh_joint
220
246
  lower: -0.686
221
247
  upper: 4.501
222
- - name: FR_calf
248
+ default: 0.9
249
+ scale: 0.3727530387083568
250
+ - name: FR_calf_joint
223
251
  lower: -2.818
224
252
  upper: -0.888
225
- - name: FL_hip
253
+ default: -1.8
254
+ scale: 0.24850202580557115
255
+ - name: FL_hip_joint
226
256
  lower: -0.863
227
257
  upper: 0.863
228
- - name: FL_thigh
258
+ default: -0.1
259
+ scale: 0.3727530387083568
260
+ - name: FL_thigh_joint
229
261
  lower: -0.686
230
262
  upper: 4.501
231
- - name: FL_calf
263
+ default: 0.9
264
+ scale: 0.3727530387083568
265
+ - name: FL_calf_joint
232
266
  lower: -2.818
233
267
  upper: -0.888
234
- - name: RR_hip
268
+ default: -1.8
269
+ scale: 0.24850202580557115
270
+ - name: RR_hip_joint
235
271
  lower: -0.863
236
272
  upper: 0.863
237
- - name: RR_thigh
273
+ default: 0.1
274
+ scale: 0.3727530387083568
275
+ - name: RR_thigh_joint
238
276
  lower: -0.686
239
277
  upper: 4.501
240
- - name: RR_calf
278
+ default: 0.9
279
+ scale: 0.3727530387083568
280
+ - name: RR_calf_joint
241
281
  lower: -2.818
242
282
  upper: -0.888
243
- - name: RL_hip
283
+ default: -1.8
284
+ scale: 0.24850202580557115
285
+ - name: RL_hip_joint
244
286
  lower: -0.863
245
287
  upper: 0.863
246
- - name: RL_thigh
288
+ default: -0.1
289
+ scale: 0.3727530387083568
290
+ - name: RL_thigh_joint
247
291
  lower: -0.686
248
292
  upper: 4.501
249
- - name: RL_calf
293
+ default: 0.9
294
+ scale: 0.3727530387083568
295
+ - name: RL_calf_joint
250
296
  lower: -2.818
251
297
  upper: -0.888
298
+ default: -1.8
299
+ scale: 0.24850202580557115
@@ -1,23 +1,8 @@
1
1
  """Engine lifecycle management for LuckyEngine."""
2
2
 
3
- from .check_updates import check_updates
4
- from .download import apply_changes, get_base_url, get_os_type
5
- from .manager import (
6
- find_luckyengine_executable,
7
- is_luckyengine_running,
8
- launch_luckyengine,
9
- stop_luckyengine,
3
+ from luckyrobots.engine.manager import (
4
+ find_luckyengine_executable as find_luckyengine_executable,
10
5
  )
11
-
12
- __all__ = [
13
- # Manager functions
14
- "launch_luckyengine",
15
- "stop_luckyengine",
16
- "is_luckyengine_running",
17
- "find_luckyengine_executable",
18
- # Update functions
19
- "check_updates",
20
- "apply_changes",
21
- "get_base_url",
22
- "get_os_type",
23
- ]
6
+ from luckyrobots.engine.manager import is_luckyengine_running as is_luckyengine_running
7
+ from luckyrobots.engine.manager import launch_luckyengine as launch_luckyengine
8
+ from luckyrobots.engine.manager import stop_luckyengine as stop_luckyengine
@@ -22,10 +22,10 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from . import common_pb2 as common__pb2
26
- from . import media_pb2 as media__pb2
27
- from . import mujoco_pb2 as mujoco__pb2
28
- from . import telemetry_pb2 as telemetry__pb2
25
+ import common_pb2 as common__pb2
26
+ import media_pb2 as media__pb2
27
+ import mujoco_pb2 as mujoco__pb2
28
+ import telemetry_pb2 as telemetry__pb2
29
29
 
30
30
 
31
31
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x61gent.proto\x12\thazel.rpc\x1a\x0c\x63ommon.proto\x1a\x0bmedia.proto\x1a\x0cmujoco.proto\x1a\x0ftelemetry.proto\"\x81\x01\n\x0b\x41gentSchema\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x19\n\x11observation_names\x18\x02 \x03(\t\x12\x14\n\x0c\x61\x63tion_names\x18\x03 \x03(\t\x12\x18\n\x10observation_size\x18\x04 \x01(\r\x12\x13\n\x0b\x61\x63tion_size\x18\x05 \x01(\r\"+\n\x15GetAgentSchemaRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\"@\n\x16GetAgentSchemaResponse\x12&\n\x06schema\x18\x01 \x01(\x0b\x32\x16.hazel.rpc.AgentSchema\"<\n\x12StreamAgentRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x12\n\ntarget_fps\x18\x02 \x01(\r\"\xa1\x03\n\x19\x44omainRandomizationConfig\x12\x1b\n\x13pose_position_noise\x18\x01 \x03(\x02\x12\x1e\n\x16pose_orientation_noise\x18\x02 \x01(\x02\x12\x1c\n\x14joint_position_noise\x18\x03 \x01(\x02\x12\x1c\n\x14joint_velocity_noise\x18\x04 \x01(\x02\x12\x16\n\x0e\x66riction_range\x18\x05 \x03(\x02\x12\x19\n\x11restitution_range\x18\x06 \x03(\x02\x12\x18\n\x10mass_scale_range\x18\x07 \x03(\x02\x12\x18\n\x10\x63om_offset_range\x18\x08 \x03(\x02\x12\x1c\n\x14motor_strength_range\x18\t \x03(\x02\x12\x1a\n\x12motor_offset_range\x18\n \x03(\x02\x12\x1b\n\x13push_interval_range\x18\x0b \x03(\x02\x12\x1b\n\x13push_velocity_range\x18\x0c \x03(\x02\x12\x14\n\x0cterrain_type\x18\r \x01(\t\x12\x1a\n\x12terrain_difficulty\x18\x0e \x01(\x02\"`\n\x11ResetAgentRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x37\n\tdr_config\x18\x02 \x01(\x0b\x32$.hazel.rpc.DomainRandomizationConfig\"6\n\x12ResetAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x87\x01\n\nAgentFrame\x12\x14\n\x0ctimestamp_ms\x18\x01 \x01(\x04\x12\x14\n\x0c\x66rame_number\x18\x02 \x01(\r\x12\x14\n\x0cobservations\x18\x03 \x03(\x02\x12\x0f\n\x07\x61\x63tions\x18\x04 \x03(\x02\x12\x12\n\nagent_name\x18\x05 \x01(\t\x12\x12\n\ntarget_fps\x18\x06 \x01(\r\"\x87\x01\n\x15GetCameraFrameRequest\x12!\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityIdH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x05 \x01(\tB\x0c\n\nidentifier\"_\n\x17GetViewportFrameRequest\x12\x15\n\rviewport_name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\"\xfe\x01\n\x15GetObservationRequest\x12\x12\n\nrobot_name\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x1b\n\x13include_joint_state\x18\x03 \x01(\x08\x12\x1b\n\x13include_agent_frame\x18\x04 \x01(\x08\x12\x19\n\x11include_telemetry\x18\x05 \x01(\x08\x12\x31\n\x07\x63\x61meras\x18\x06 \x03(\x0b\x32 .hazel.rpc.GetCameraFrameRequest\x12\x35\n\tviewports\x18\x07 \x03(\x0b\x32\".hazel.rpc.GetViewportFrameRequest\"\xd4\x02\n\x16GetObservationResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x14\n\x0ctimestamp_ms\x18\x03 \x01(\x04\x12\x14\n\x0c\x66rame_number\x18\x04 \x01(\r\x12*\n\x0bjoint_state\x18\x05 \x01(\x0b\x32\x15.hazel.rpc.JointState\x12*\n\x0b\x61gent_frame\x18\x06 \x01(\x0b\x32\x15.hazel.rpc.AgentFrame\x12,\n\ttelemetry\x18\x07 \x01(\x0b\x32\x19.hazel.rpc.TelemetryFrame\x12\x31\n\rcamera_frames\x18\x08 \x03(\x0b\x32\x1a.hazel.rpc.NamedImageFrame\x12\x33\n\x0fviewport_frames\x18\t \x03(\x0b\x32\x1a.hazel.rpc.NamedImageFrame\"F\n\x0bStepRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\x02\x12\x12\n\ntimeout_ms\x18\x03 \x01(\r\"~\n\x0cStepResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12*\n\x0bobservation\x18\x03 \x01(\x0b\x32\x15.hazel.rpc.AgentFrame\x12 \n\x18physics_step_duration_us\x18\x04 \x01(\x04\x32\x87\x03\n\x0c\x41gentService\x12U\n\x0eGetAgentSchema\x12 .hazel.rpc.GetAgentSchemaRequest\x1a!.hazel.rpc.GetAgentSchemaResponse\x12U\n\x0eGetObservation\x12 .hazel.rpc.GetObservationRequest\x1a!.hazel.rpc.GetObservationResponse\x12\x45\n\x0bStreamAgent\x12\x1d.hazel.rpc.StreamAgentRequest\x1a\x15.hazel.rpc.AgentFrame0\x01\x12I\n\nResetAgent\x12\x1c.hazel.rpc.ResetAgentRequest\x1a\x1d.hazel.rpc.ResetAgentResponse\x12\x37\n\x04Step\x12\x16.hazel.rpc.StepRequest\x1a\x17.hazel.rpc.StepResponseB\x03\xf8\x01\x01\x62\x06proto3')
@@ -3,7 +3,7 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import agent_pb2 as agent__pb2
6
+ import agent_pb2 as agent__pb2
7
7
 
8
8
  GRPC_GENERATED_VERSION = '1.76.0'
9
9
  GRPC_VERSION = grpc.__version__
@@ -22,8 +22,8 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from . import common_pb2 as common__pb2
26
- from . import media_pb2 as media__pb2
25
+ import common_pb2 as common__pb2
26
+ import media_pb2 as media__pb2
27
27
 
28
28
 
29
29
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63\x61mera.proto\x12\thazel.rpc\x1a\x0c\x63ommon.proto\x1a\x0bmedia.proto\";\n\nCameraInfo\x12\x1f\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityId\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x14\n\x12ListCamerasRequest\"=\n\x13ListCamerasResponse\x12&\n\x07\x63\x61meras\x18\x01 \x03(\x0b\x32\x15.hazel.rpc.CameraInfo\"\x99\x01\n\x13StreamCameraRequest\x12!\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityIdH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12\x12\n\ntarget_fps\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x0e\n\x06height\x18\x05 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x06 \x01(\tB\x0c\n\nidentifier2\xa6\x01\n\rCameraService\x12L\n\x0bListCameras\x12\x1d.hazel.rpc.ListCamerasRequest\x1a\x1e.hazel.rpc.ListCamerasResponse\x12G\n\x0cStreamCamera\x12\x1e.hazel.rpc.StreamCameraRequest\x1a\x15.hazel.rpc.ImageFrame0\x01\x42\x03\xf8\x01\x01\x62\x06proto3')
@@ -3,8 +3,8 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import camera_pb2 as camera__pb2
7
- from . import media_pb2 as media__pb2
6
+ import camera_pb2 as camera__pb2
7
+ import media_pb2 as media__pb2
8
8
 
9
9
  GRPC_GENERATED_VERSION = '1.76.0'
10
10
  GRPC_VERSION = grpc.__version__
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: debug.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'debug.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x64\x65\x62ug.proto\x12\thazel.rpc\"/\n\x0c\x44\x65\x62ugVector3\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"8\n\nDebugColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x12\t\n\x01\x61\x18\x04 \x01(\x02\"\x7f\n\tDebugLine\x12&\n\x05start\x18\x01 \x01(\x0b\x32\x17.hazel.rpc.DebugVector3\x12$\n\x03\x65nd\x18\x02 \x01(\x0b\x32\x17.hazel.rpc.DebugVector3\x12$\n\x05\x63olor\x18\x03 \x01(\x0b\x32\x15.hazel.rpc.DebugColor\"\x96\x01\n\nDebugArrow\x12\'\n\x06origin\x18\x01 \x01(\x0b\x32\x17.hazel.rpc.DebugVector3\x12*\n\tdirection\x18\x02 \x01(\x0b\x32\x17.hazel.rpc.DebugVector3\x12$\n\x05\x63olor\x18\x03 \x01(\x0b\x32\x15.hazel.rpc.DebugColor\x12\r\n\x05scale\x18\x04 \x01(\x02\"\x87\x01\n\x14\x44\x65\x62ugVelocityCommand\x12\'\n\x06origin\x18\x01 \x01(\x0b\x32\x17.hazel.rpc.DebugVector3\x12\x11\n\tlin_vel_x\x18\x02 \x01(\x02\x12\x11\n\tlin_vel_y\x18\x03 \x01(\x02\x12\x11\n\tang_vel_z\x18\x04 \x01(\x02\x12\r\n\x05scale\x18\x05 \x01(\x02\"\xb1\x01\n\x10\x44\x65\x62ugDrawRequest\x12#\n\x05lines\x18\x01 \x03(\x0b\x32\x14.hazel.rpc.DebugLine\x12%\n\x06\x61rrows\x18\x02 \x03(\x0b\x32\x15.hazel.rpc.DebugArrow\x12\x39\n\x10velocity_command\x18\x03 \x01(\x0b\x32\x1f.hazel.rpc.DebugVelocityCommand\x12\x16\n\x0e\x63lear_previous\x18\x04 \x01(\x08\"$\n\x11\x44\x65\x62ugDrawResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32Q\n\x0c\x44\x65\x62ugService\x12\x41\n\x04\x44raw\x12\x1b.hazel.rpc.DebugDrawRequest\x1a\x1c.hazel.rpc.DebugDrawResponseB\x03\xf8\x01\x01\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'debug_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ _globals['DESCRIPTOR']._loaded_options = None
34
+ _globals['DESCRIPTOR']._serialized_options = b'\370\001\001'
35
+ _globals['_DEBUGVECTOR3']._serialized_start=26
36
+ _globals['_DEBUGVECTOR3']._serialized_end=73
37
+ _globals['_DEBUGCOLOR']._serialized_start=75
38
+ _globals['_DEBUGCOLOR']._serialized_end=131
39
+ _globals['_DEBUGLINE']._serialized_start=133
40
+ _globals['_DEBUGLINE']._serialized_end=260
41
+ _globals['_DEBUGARROW']._serialized_start=263
42
+ _globals['_DEBUGARROW']._serialized_end=413
43
+ _globals['_DEBUGVELOCITYCOMMAND']._serialized_start=416
44
+ _globals['_DEBUGVELOCITYCOMMAND']._serialized_end=551
45
+ _globals['_DEBUGDRAWREQUEST']._serialized_start=554
46
+ _globals['_DEBUGDRAWREQUEST']._serialized_end=731
47
+ _globals['_DEBUGDRAWRESPONSE']._serialized_start=733
48
+ _globals['_DEBUGDRAWRESPONSE']._serialized_end=769
49
+ _globals['_DEBUGSERVICE']._serialized_start=771
50
+ _globals['_DEBUGSERVICE']._serialized_end=852
51
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,100 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+ import debug_pb2 as debug__pb2
7
+
8
+ GRPC_GENERATED_VERSION = '1.76.0'
9
+ GRPC_VERSION = grpc.__version__
10
+ _version_not_supported = False
11
+
12
+ try:
13
+ from grpc._utilities import first_version_is_lower
14
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
15
+ except ImportError:
16
+ _version_not_supported = True
17
+
18
+ if _version_not_supported:
19
+ raise RuntimeError(
20
+ f'The grpc package installed is at version {GRPC_VERSION},'
21
+ + ' but the generated code in debug_pb2_grpc.py depends on'
22
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
25
+ )
26
+
27
+
28
+ class DebugServiceStub(object):
29
+ """Debug visualization service.
30
+ """
31
+
32
+ def __init__(self, channel):
33
+ """Constructor.
34
+
35
+ Args:
36
+ channel: A grpc.Channel.
37
+ """
38
+ self.Draw = channel.unary_unary(
39
+ '/hazel.rpc.DebugService/Draw',
40
+ request_serializer=debug__pb2.DebugDrawRequest.SerializeToString,
41
+ response_deserializer=debug__pb2.DebugDrawResponse.FromString,
42
+ _registered_method=True)
43
+
44
+
45
+ class DebugServiceServicer(object):
46
+ """Debug visualization service.
47
+ """
48
+
49
+ def Draw(self, request, context):
50
+ """Missing associated documentation comment in .proto file."""
51
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
52
+ context.set_details('Method not implemented!')
53
+ raise NotImplementedError('Method not implemented!')
54
+
55
+
56
+ def add_DebugServiceServicer_to_server(servicer, server):
57
+ rpc_method_handlers = {
58
+ 'Draw': grpc.unary_unary_rpc_method_handler(
59
+ servicer.Draw,
60
+ request_deserializer=debug__pb2.DebugDrawRequest.FromString,
61
+ response_serializer=debug__pb2.DebugDrawResponse.SerializeToString,
62
+ ),
63
+ }
64
+ generic_handler = grpc.method_handlers_generic_handler(
65
+ 'hazel.rpc.DebugService', rpc_method_handlers)
66
+ server.add_generic_rpc_handlers((generic_handler,))
67
+ server.add_registered_method_handlers('hazel.rpc.DebugService', rpc_method_handlers)
68
+
69
+
70
+ # This class is part of an EXPERIMENTAL API.
71
+ class DebugService(object):
72
+ """Debug visualization service.
73
+ """
74
+
75
+ @staticmethod
76
+ def Draw(request,
77
+ target,
78
+ options=(),
79
+ channel_credentials=None,
80
+ call_credentials=None,
81
+ insecure=False,
82
+ compression=None,
83
+ wait_for_ready=None,
84
+ timeout=None,
85
+ metadata=None):
86
+ return grpc.experimental.unary_unary(
87
+ request,
88
+ target,
89
+ '/hazel.rpc.DebugService/Draw',
90
+ debug__pb2.DebugDrawRequest.SerializeToString,
91
+ debug__pb2.DebugDrawResponse.FromString,
92
+ options,
93
+ channel_credentials,
94
+ insecure,
95
+ call_credentials,
96
+ compression,
97
+ wait_for_ready,
98
+ timeout,
99
+ metadata,
100
+ _registered_method=True)
@@ -22,17 +22,18 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from . import common_pb2 as common__pb2
26
- from . import scene_pb2 as scene__pb2
27
- from . import mujoco_pb2 as mujoco__pb2
28
- from . import telemetry_pb2 as telemetry__pb2
29
- from . import media_pb2 as media__pb2
30
- from . import agent_pb2 as agent__pb2
31
- from . import viewport_pb2 as viewport__pb2
32
- from . import camera_pb2 as camera__pb2
25
+ import common_pb2 as common__pb2
26
+ import scene_pb2 as scene__pb2
27
+ import mujoco_pb2 as mujoco__pb2
28
+ import telemetry_pb2 as telemetry__pb2
29
+ import media_pb2 as media__pb2
30
+ import agent_pb2 as agent__pb2
31
+ import viewport_pb2 as viewport__pb2
32
+ import camera_pb2 as camera__pb2
33
+ import debug_pb2 as debug__pb2
33
34
 
34
35
 
35
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fhazel_rpc.proto\x12\thazel.rpc\x1a\x0c\x63ommon.proto\x1a\x0bscene.proto\x1a\x0cmujoco.proto\x1a\x0ftelemetry.proto\x1a\x0bmedia.proto\x1a\x0b\x61gent.proto\x1a\x0eviewport.proto\x1a\x0c\x63\x61mera.protoB\x03\xf8\x01\x01\x62\x06proto3')
36
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fhazel_rpc.proto\x12\thazel.rpc\x1a\x0c\x63ommon.proto\x1a\x0bscene.proto\x1a\x0cmujoco.proto\x1a\x0ftelemetry.proto\x1a\x0bmedia.proto\x1a\x0b\x61gent.proto\x1a\x0eviewport.proto\x1a\x0c\x63\x61mera.proto\x1a\x0b\x64\x65\x62ug.protoB\x03\xf8\x01\x01\x62\x06proto3')
36
37
 
37
38
  _globals = globals()
38
39
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -3,7 +3,7 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import mujoco_pb2 as mujoco__pb2
6
+ import mujoco_pb2 as mujoco__pb2
7
7
 
8
8
  GRPC_GENERATED_VERSION = '1.76.0'
9
9
  GRPC_VERSION = grpc.__version__
@@ -22,7 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from . import common_pb2 as common__pb2
25
+ import common_pb2 as common__pb2
26
26
 
27
27
 
28
28
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bscene.proto\x12\thazel.rpc\x1a\x0c\x63ommon.proto\"x\n\nEntityInfo\x12\x1f\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityId\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\'\n\ttransform\x18\x03 \x01(\x0b\x32\x14.hazel.rpc.Transform\x12\x12\n\ncomponents\x18\x04 \x03(\t\"\x15\n\x13GetSceneInfoRequest\"T\n\x14GetSceneInfoResponse\x12\x12\n\nscene_name\x18\x01 \x01(\t\x12\x12\n\nscene_path\x18\x02 \x01(\t\x12\x14\n\x0c\x65ntity_count\x18\x03 \x01(\r\"M\n\x13ListEntitiesRequest\x12\x1a\n\x12include_transforms\x18\x01 \x01(\x08\x12\x1a\n\x12include_components\x18\x02 \x01(\x08\"?\n\x14ListEntitiesResponse\x12\'\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x15.hazel.rpc.EntityInfo\"S\n\x10GetEntityRequest\x12!\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityIdH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"I\n\x11GetEntityResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12%\n\x06\x65ntity\x18\x02 \x01(\x0b\x32\x15.hazel.rpc.EntityInfo\"e\n\x19SetEntityTransformRequest\x12\x1f\n\x02id\x18\x01 \x01(\x0b\x32\x13.hazel.rpc.EntityId\x12\'\n\ttransform\x18\x02 \x01(\x0b\x32\x14.hazel.rpc.Transform\">\n\x1aSetEntityTransformResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"C\n\x18SetSimulationModeRequest\x12\'\n\x04mode\x18\x01 \x01(\x0e\x32\x19.hazel.rpc.SimulationMode\"n\n\x19SetSimulationModeResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\x0c\x63urrent_mode\x18\x03 \x01(\x0e\x32\x19.hazel.rpc.SimulationMode\"\x1a\n\x18GetSimulationModeRequest\"D\n\x19GetSimulationModeResponse\x12\'\n\x04mode\x18\x01 \x01(\x0e\x32\x19.hazel.rpc.SimulationMode*k\n\x0eSimulationMode\x12\x1c\n\x18SIMULATION_MODE_REALTIME\x10\x00\x12!\n\x1dSIMULATION_MODE_DETERMINISTIC\x10\x01\x12\x18\n\x14SIMULATION_MODE_FAST\x10\x02\x32\x9b\x04\n\x0cSceneService\x12O\n\x0cGetSceneInfo\x12\x1e.hazel.rpc.GetSceneInfoRequest\x1a\x1f.hazel.rpc.GetSceneInfoResponse\x12O\n\x0cListEntities\x12\x1e.hazel.rpc.ListEntitiesRequest\x1a\x1f.hazel.rpc.ListEntitiesResponse\x12\x46\n\tGetEntity\x12\x1b.hazel.rpc.GetEntityRequest\x1a\x1c.hazel.rpc.GetEntityResponse\x12\x61\n\x12SetEntityTransform\x12$.hazel.rpc.SetEntityTransformRequest\x1a%.hazel.rpc.SetEntityTransformResponse\x12^\n\x11SetSimulationMode\x12#.hazel.rpc.SetSimulationModeRequest\x1a$.hazel.rpc.SetSimulationModeResponse\x12^\n\x11GetSimulationMode\x12#.hazel.rpc.GetSimulationModeRequest\x1a$.hazel.rpc.GetSimulationModeResponseB\x03\xf8\x01\x01\x62\x06proto3')
@@ -3,7 +3,7 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import scene_pb2 as scene__pb2
6
+ import scene_pb2 as scene__pb2
7
7
 
8
8
  GRPC_GENERATED_VERSION = '1.76.0'
9
9
  GRPC_VERSION = grpc.__version__
@@ -3,7 +3,7 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import telemetry_pb2 as telemetry__pb2
6
+ import telemetry_pb2 as telemetry__pb2
7
7
 
8
8
  GRPC_GENERATED_VERSION = '1.76.0'
9
9
  GRPC_VERSION = grpc.__version__
@@ -22,7 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from . import media_pb2 as media__pb2
25
+ import media_pb2 as media__pb2
26
26
 
27
27
 
28
28
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eviewport.proto\x12\thazel.rpc\x1a\x0bmedia.proto\"v\n\x1aStartViewportStreamRequest\x12\x15\n\rviewport_name\x18\x01 \x01(\t\x12\x12\n\ntarget_fps\x18\x02 \x01(\r\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x05 \x01(\t\"l\n\x14ViewportStreamConfig\x12\x11\n\tstreaming\x18\x01 \x01(\x08\x12\x15\n\rviewport_name\x18\x02 \x01(\t\x12\x0b\n\x03\x66ps\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x0e\n\x06height\x18\x05 \x01(\r\"\x1b\n\x19StopViewportStreamRequest\"-\n\x1aStopViewportStreamResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\x18\n\x16GetViewportInfoRequest\"o\n\x17GetViewportInfoResponse\x12\x1b\n\x13\x61vailable_viewports\x18\x01 \x03(\t\x12\x37\n\x0e\x63urrent_config\x18\x02 \x01(\x0b\x32\x1f.hazel.rpc.ViewportStreamConfig2\xbd\x01\n\x0fViewportService\x12X\n\x0fGetViewportInfo\x12!.hazel.rpc.GetViewportInfoRequest\x1a\".hazel.rpc.GetViewportInfoResponse\x12P\n\x0eStreamViewport\x12%.hazel.rpc.StartViewportStreamRequest\x1a\x15.hazel.rpc.ImageFrame0\x01\x42\x03\xf8\x01\x01\x62\x06proto3')
@@ -3,8 +3,8 @@
3
3
  import grpc
4
4
  import warnings
5
5
 
6
- from . import media_pb2 as media__pb2
7
- from . import viewport_pb2 as viewport__pb2
6
+ import media_pb2 as media__pb2
7
+ import viewport_pb2 as viewport__pb2
8
8
 
9
9
  GRPC_GENERATED_VERSION = '1.76.0'
10
10
  GRPC_VERSION = grpc.__version__
@@ -0,0 +1,63 @@
1
+ syntax = "proto3";
2
+
3
+ // Debug visualization service for the LuckyEngine / Hazel ScriptCore gRPC API (v1).
4
+
5
+ package hazel.rpc;
6
+
7
+ option cc_enable_arenas = true;
8
+
9
+ // A 3D vector for debug drawing.
10
+ message DebugVector3 {
11
+ float x = 1;
12
+ float y = 2;
13
+ float z = 3;
14
+ }
15
+
16
+ // RGBA color (0-1 range).
17
+ message DebugColor {
18
+ float r = 1;
19
+ float g = 2;
20
+ float b = 3;
21
+ float a = 4;
22
+ }
23
+
24
+ // A debug line to draw.
25
+ message DebugLine {
26
+ DebugVector3 start = 1;
27
+ DebugVector3 end = 2;
28
+ DebugColor color = 3;
29
+ }
30
+
31
+ // A debug arrow (line with arrowhead).
32
+ message DebugArrow {
33
+ DebugVector3 origin = 1;
34
+ DebugVector3 direction = 2; // Direction and magnitude
35
+ DebugColor color = 3;
36
+ float scale = 4; // Scale factor for visualization
37
+ }
38
+
39
+ // Velocity command visualization.
40
+ message DebugVelocityCommand {
41
+ DebugVector3 origin = 1; // Robot position
42
+ float lin_vel_x = 2; // Forward velocity command
43
+ float lin_vel_y = 3; // Lateral velocity command
44
+ float ang_vel_z = 4; // Angular velocity command
45
+ float scale = 5; // Visualization scale
46
+ }
47
+
48
+ // Collection of debug primitives to draw for one frame.
49
+ message DebugDrawRequest {
50
+ repeated DebugLine lines = 1;
51
+ repeated DebugArrow arrows = 2;
52
+ DebugVelocityCommand velocity_command = 3;
53
+ bool clear_previous = 4; // Clear previous frame's debug draws
54
+ }
55
+
56
+ message DebugDrawResponse {
57
+ bool success = 1;
58
+ }
59
+
60
+ // Debug visualization service.
61
+ service DebugService {
62
+ rpc Draw(DebugDrawRequest) returns (DebugDrawResponse);
63
+ }
@@ -30,3 +30,4 @@ import "media.proto";
30
30
  import "agent.proto";
31
31
  import "viewport.proto";
32
32
  import "camera.proto";
33
+ import "debug.proto";
@@ -1,15 +1,3 @@
1
- """
2
- Pydantic models for LuckyRobots.
3
- """
1
+ """Pydantic models for LuckyRobots."""
4
2
 
5
- from .observation import ObservationResponse, StateSnapshot
6
- from .camera import CameraData, CameraShape
7
- from .randomization import DomainRandomizationConfig
8
-
9
- __all__ = [
10
- "ObservationResponse",
11
- "StateSnapshot",
12
- "CameraData",
13
- "CameraShape",
14
- "DomainRandomizationConfig",
15
- ]
3
+ from luckyrobots.models.observation import ObservationResponse as ObservationResponse