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.
- luckyrobots/__init__.py +5 -32
- luckyrobots/client.py +143 -463
- luckyrobots/config/robots.yaml +96 -48
- luckyrobots/engine/__init__.py +5 -20
- luckyrobots/grpc/generated/agent_pb2.py +4 -4
- luckyrobots/grpc/generated/agent_pb2_grpc.py +1 -1
- luckyrobots/grpc/generated/camera_pb2.py +2 -2
- luckyrobots/grpc/generated/camera_pb2_grpc.py +2 -2
- luckyrobots/grpc/generated/debug_pb2.py +51 -0
- luckyrobots/grpc/generated/debug_pb2_grpc.py +100 -0
- luckyrobots/grpc/generated/hazel_rpc_pb2.py +10 -9
- luckyrobots/grpc/generated/mujoco_pb2_grpc.py +1 -1
- luckyrobots/grpc/generated/scene_pb2.py +1 -1
- luckyrobots/grpc/generated/scene_pb2_grpc.py +1 -1
- luckyrobots/grpc/generated/telemetry_pb2_grpc.py +1 -1
- luckyrobots/grpc/generated/viewport_pb2.py +1 -1
- luckyrobots/grpc/generated/viewport_pb2_grpc.py +2 -2
- luckyrobots/grpc/proto/debug.proto +63 -0
- luckyrobots/grpc/proto/hazel_rpc.proto +1 -0
- luckyrobots/models/__init__.py +2 -14
- luckyrobots/models/observation.py +4 -33
- luckyrobots/utils.py +1 -43
- {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/METADATA +1 -1
- luckyrobots-0.1.74.dist-info/RECORD +46 -0
- luckyrobots/engine/check_updates.py +0 -264
- luckyrobots/engine/download.py +0 -125
- luckyrobots/models/camera.py +0 -97
- luckyrobots/models/randomization.py +0 -77
- luckyrobots-0.1.72.dist-info/RECORD +0 -47
- {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/WHEEL +0 -0
- {luckyrobots-0.1.72.dist-info → luckyrobots-0.1.74.dist-info}/licenses/LICENSE +0 -0
luckyrobots/config/robots.yaml
CHANGED
|
@@ -149,103 +149,151 @@ unitreego1:
|
|
|
149
149
|
- locomotion
|
|
150
150
|
action_space:
|
|
151
151
|
actuator_names:
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
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:
|
|
165
|
+
- name: FR_hip_joint
|
|
166
166
|
lower: -0.863
|
|
167
167
|
upper: 0.863
|
|
168
|
-
|
|
168
|
+
default: 0.1
|
|
169
|
+
scale: 0.3727530387083568
|
|
170
|
+
- name: FR_thigh_joint
|
|
169
171
|
lower: -0.686
|
|
170
172
|
upper: 4.501
|
|
171
|
-
|
|
173
|
+
default: 0.9
|
|
174
|
+
scale: 0.3727530387083568
|
|
175
|
+
- name: FR_calf_joint
|
|
172
176
|
lower: -2.818
|
|
173
177
|
upper: -0.888
|
|
174
|
-
|
|
178
|
+
default: -1.8
|
|
179
|
+
scale: 0.24850202580557115
|
|
180
|
+
- name: FL_hip_joint
|
|
175
181
|
lower: -0.863
|
|
176
182
|
upper: 0.863
|
|
177
|
-
|
|
183
|
+
default: -0.1
|
|
184
|
+
scale: 0.3727530387083568
|
|
185
|
+
- name: FL_thigh_joint
|
|
178
186
|
lower: -0.686
|
|
179
187
|
upper: 4.501
|
|
180
|
-
|
|
188
|
+
default: 0.9
|
|
189
|
+
scale: 0.3727530387083568
|
|
190
|
+
- name: FL_calf_joint
|
|
181
191
|
lower: -2.818
|
|
182
192
|
upper: -0.888
|
|
183
|
-
|
|
193
|
+
default: -1.8
|
|
194
|
+
scale: 0.24850202580557115
|
|
195
|
+
- name: RR_hip_joint
|
|
184
196
|
lower: -0.863
|
|
185
197
|
upper: 0.863
|
|
186
|
-
|
|
198
|
+
default: 0.1
|
|
199
|
+
scale: 0.3727530387083568
|
|
200
|
+
- name: RR_thigh_joint
|
|
187
201
|
lower: -0.686
|
|
188
202
|
upper: 4.501
|
|
189
|
-
|
|
203
|
+
default: 0.9
|
|
204
|
+
scale: 0.3727530387083568
|
|
205
|
+
- name: RR_calf_joint
|
|
190
206
|
lower: -2.818
|
|
191
207
|
upper: -0.888
|
|
192
|
-
|
|
208
|
+
default: -1.8
|
|
209
|
+
scale: 0.24850202580557115
|
|
210
|
+
- name: RL_hip_joint
|
|
193
211
|
lower: -0.863
|
|
194
212
|
upper: 0.863
|
|
195
|
-
|
|
213
|
+
default: -0.1
|
|
214
|
+
scale: 0.3727530387083568
|
|
215
|
+
- name: RL_thigh_joint
|
|
196
216
|
lower: -0.686
|
|
197
217
|
upper: 4.501
|
|
198
|
-
|
|
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
|
-
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
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:
|
|
240
|
+
- name: FR_hip_joint
|
|
217
241
|
lower: -0.863
|
|
218
242
|
upper: 0.863
|
|
219
|
-
|
|
243
|
+
default: 0.1
|
|
244
|
+
scale: 0.3727530387083568
|
|
245
|
+
- name: FR_thigh_joint
|
|
220
246
|
lower: -0.686
|
|
221
247
|
upper: 4.501
|
|
222
|
-
|
|
248
|
+
default: 0.9
|
|
249
|
+
scale: 0.3727530387083568
|
|
250
|
+
- name: FR_calf_joint
|
|
223
251
|
lower: -2.818
|
|
224
252
|
upper: -0.888
|
|
225
|
-
|
|
253
|
+
default: -1.8
|
|
254
|
+
scale: 0.24850202580557115
|
|
255
|
+
- name: FL_hip_joint
|
|
226
256
|
lower: -0.863
|
|
227
257
|
upper: 0.863
|
|
228
|
-
|
|
258
|
+
default: -0.1
|
|
259
|
+
scale: 0.3727530387083568
|
|
260
|
+
- name: FL_thigh_joint
|
|
229
261
|
lower: -0.686
|
|
230
262
|
upper: 4.501
|
|
231
|
-
|
|
263
|
+
default: 0.9
|
|
264
|
+
scale: 0.3727530387083568
|
|
265
|
+
- name: FL_calf_joint
|
|
232
266
|
lower: -2.818
|
|
233
267
|
upper: -0.888
|
|
234
|
-
|
|
268
|
+
default: -1.8
|
|
269
|
+
scale: 0.24850202580557115
|
|
270
|
+
- name: RR_hip_joint
|
|
235
271
|
lower: -0.863
|
|
236
272
|
upper: 0.863
|
|
237
|
-
|
|
273
|
+
default: 0.1
|
|
274
|
+
scale: 0.3727530387083568
|
|
275
|
+
- name: RR_thigh_joint
|
|
238
276
|
lower: -0.686
|
|
239
277
|
upper: 4.501
|
|
240
|
-
|
|
278
|
+
default: 0.9
|
|
279
|
+
scale: 0.3727530387083568
|
|
280
|
+
- name: RR_calf_joint
|
|
241
281
|
lower: -2.818
|
|
242
282
|
upper: -0.888
|
|
243
|
-
|
|
283
|
+
default: -1.8
|
|
284
|
+
scale: 0.24850202580557115
|
|
285
|
+
- name: RL_hip_joint
|
|
244
286
|
lower: -0.863
|
|
245
287
|
upper: 0.863
|
|
246
|
-
|
|
288
|
+
default: -0.1
|
|
289
|
+
scale: 0.3727530387083568
|
|
290
|
+
- name: RL_thigh_joint
|
|
247
291
|
lower: -0.686
|
|
248
292
|
upper: 4.501
|
|
249
|
-
|
|
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
|
luckyrobots/engine/__init__.py
CHANGED
|
@@ -1,23 +1,8 @@
|
|
|
1
1
|
"""Engine lifecycle management for LuckyEngine."""
|
|
2
2
|
|
|
3
|
-
from .
|
|
4
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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')
|
|
@@ -22,8 +22,8 @@ _runtime_version.ValidateProtobufRuntimeVersion(
|
|
|
22
22
|
_sym_db = _symbol_database.Default()
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
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')
|
|
@@ -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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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)
|
|
@@ -22,7 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
|
|
|
22
22
|
_sym_db = _symbol_database.Default()
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
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')
|
|
@@ -22,7 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
|
|
|
22
22
|
_sym_db = _symbol_database.Default()
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
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
|
-
|
|
7
|
-
|
|
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
|
+
}
|
luckyrobots/models/__init__.py
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Pydantic models for LuckyRobots.
|
|
3
|
-
"""
|
|
1
|
+
"""Pydantic models for LuckyRobots."""
|
|
4
2
|
|
|
5
|
-
from .observation import ObservationResponse
|
|
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
|