luckyrobots 0.1.73__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/client.py +151 -0
- luckyrobots/config/robots.yaml +24 -0
- 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-0.1.73.dist-info → luckyrobots-0.1.74.dist-info}/METADATA +1 -1
- {luckyrobots-0.1.73.dist-info → luckyrobots-0.1.74.dist-info}/RECORD +21 -18
- {luckyrobots-0.1.73.dist-info → luckyrobots-0.1.74.dist-info}/WHEEL +0 -0
- {luckyrobots-0.1.73.dist-info → luckyrobots-0.1.74.dist-info}/licenses/LICENSE +0 -0
luckyrobots/client.py
CHANGED
|
@@ -18,6 +18,8 @@ try:
|
|
|
18
18
|
from .grpc.generated import agent_pb2 # type: ignore
|
|
19
19
|
from .grpc.generated import agent_pb2_grpc # type: ignore
|
|
20
20
|
from .grpc.generated import common_pb2 # type: ignore
|
|
21
|
+
from .grpc.generated import debug_pb2 # type: ignore
|
|
22
|
+
from .grpc.generated import debug_pb2_grpc # type: ignore
|
|
21
23
|
from .grpc.generated import mujoco_pb2 # type: ignore
|
|
22
24
|
from .grpc.generated import mujoco_pb2_grpc # type: ignore
|
|
23
25
|
from .grpc.generated import scene_pb2 # type: ignore
|
|
@@ -87,6 +89,7 @@ class LuckyEngineClient:
|
|
|
87
89
|
self._scene = None
|
|
88
90
|
self._mujoco = None
|
|
89
91
|
self._agent = None
|
|
92
|
+
self._debug = None
|
|
90
93
|
|
|
91
94
|
# Cached agent schemas: agent_name -> (observation_names, action_names)
|
|
92
95
|
self._schema_cache: dict[str, tuple[list[str], list[str]]] = {}
|
|
@@ -97,6 +100,7 @@ class LuckyEngineClient:
|
|
|
97
100
|
scene=scene_pb2,
|
|
98
101
|
mujoco=mujoco_pb2,
|
|
99
102
|
agent=agent_pb2,
|
|
103
|
+
debug=debug_pb2,
|
|
100
104
|
)
|
|
101
105
|
|
|
102
106
|
def connect(self) -> None:
|
|
@@ -122,6 +126,7 @@ class LuckyEngineClient:
|
|
|
122
126
|
self._scene = scene_pb2_grpc.SceneServiceStub(self._channel)
|
|
123
127
|
self._mujoco = mujoco_pb2_grpc.MujocoServiceStub(self._channel)
|
|
124
128
|
self._agent = agent_pb2_grpc.AgentServiceStub(self._channel)
|
|
129
|
+
self._debug = debug_pb2_grpc.DebugServiceStub(self._channel)
|
|
125
130
|
|
|
126
131
|
logger.info(f"Channel opened to {target} (server not verified yet)")
|
|
127
132
|
|
|
@@ -136,6 +141,7 @@ class LuckyEngineClient:
|
|
|
136
141
|
self._scene = None
|
|
137
142
|
self._mujoco = None
|
|
138
143
|
self._agent = None
|
|
144
|
+
self._debug = None
|
|
139
145
|
logger.info("gRPC channel closed")
|
|
140
146
|
|
|
141
147
|
def is_connected(self) -> bool:
|
|
@@ -231,6 +237,13 @@ class LuckyEngineClient:
|
|
|
231
237
|
raise GrpcConnectionError("Not connected. Call connect() first.")
|
|
232
238
|
return self._agent
|
|
233
239
|
|
|
240
|
+
@property
|
|
241
|
+
def debug(self) -> Any:
|
|
242
|
+
"""DebugService stub."""
|
|
243
|
+
if self._debug is None:
|
|
244
|
+
raise GrpcConnectionError("Not connected. Call connect() first.")
|
|
245
|
+
return self._debug
|
|
246
|
+
|
|
234
247
|
def get_mujoco_info(self, robot_name: str = "", timeout: Optional[float] = None):
|
|
235
248
|
"""Get MuJoCo model information (joint names, limits, etc.)."""
|
|
236
249
|
timeout = timeout or self.timeout
|
|
@@ -524,3 +537,141 @@ class LuckyEngineClient:
|
|
|
524
537
|
proto_kwargs["terrain_difficulty"] = terrain_diff
|
|
525
538
|
|
|
526
539
|
return self.pb.agent.DomainRandomizationConfig(**proto_kwargs)
|
|
540
|
+
|
|
541
|
+
def draw_velocity_command(
|
|
542
|
+
self,
|
|
543
|
+
origin: tuple[float, float, float],
|
|
544
|
+
lin_vel_x: float,
|
|
545
|
+
lin_vel_y: float,
|
|
546
|
+
ang_vel_z: float,
|
|
547
|
+
scale: float = 1.0,
|
|
548
|
+
clear_previous: bool = True,
|
|
549
|
+
timeout: Optional[float] = None,
|
|
550
|
+
) -> bool:
|
|
551
|
+
"""
|
|
552
|
+
Draw velocity command visualization in LuckyEngine.
|
|
553
|
+
|
|
554
|
+
Args:
|
|
555
|
+
origin: (x, y, z) position of the robot.
|
|
556
|
+
lin_vel_x: Forward velocity command.
|
|
557
|
+
lin_vel_y: Lateral velocity command.
|
|
558
|
+
ang_vel_z: Angular velocity command (yaw rate).
|
|
559
|
+
scale: Scale factor for visualization.
|
|
560
|
+
clear_previous: Clear previous debug draws before drawing.
|
|
561
|
+
timeout: RPC timeout in seconds.
|
|
562
|
+
|
|
563
|
+
Returns:
|
|
564
|
+
True if draw succeeded, False otherwise.
|
|
565
|
+
"""
|
|
566
|
+
timeout = timeout or self.timeout
|
|
567
|
+
|
|
568
|
+
velocity_cmd = self.pb.debug.DebugVelocityCommand(
|
|
569
|
+
origin=self.pb.debug.DebugVector3(x=origin[0], y=origin[1], z=origin[2]),
|
|
570
|
+
lin_vel_x=lin_vel_x,
|
|
571
|
+
lin_vel_y=lin_vel_y,
|
|
572
|
+
ang_vel_z=ang_vel_z,
|
|
573
|
+
scale=scale,
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
request = self.pb.debug.DebugDrawRequest(
|
|
577
|
+
velocity_command=velocity_cmd,
|
|
578
|
+
clear_previous=clear_previous,
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
try:
|
|
582
|
+
resp = self.debug.Draw(request, timeout=timeout)
|
|
583
|
+
return resp.success
|
|
584
|
+
except Exception as e:
|
|
585
|
+
logger.debug(f"Debug draw failed: {e}")
|
|
586
|
+
return False
|
|
587
|
+
|
|
588
|
+
def draw_arrow(
|
|
589
|
+
self,
|
|
590
|
+
origin: tuple[float, float, float],
|
|
591
|
+
direction: tuple[float, float, float],
|
|
592
|
+
color: tuple[float, float, float, float] = (1.0, 0.0, 0.0, 1.0),
|
|
593
|
+
scale: float = 1.0,
|
|
594
|
+
clear_previous: bool = False,
|
|
595
|
+
timeout: Optional[float] = None,
|
|
596
|
+
) -> bool:
|
|
597
|
+
"""
|
|
598
|
+
Draw a debug arrow in LuckyEngine.
|
|
599
|
+
|
|
600
|
+
Args:
|
|
601
|
+
origin: (x, y, z) start position.
|
|
602
|
+
direction: (x, y, z) direction and magnitude.
|
|
603
|
+
color: (r, g, b, a) color values (0-1 range).
|
|
604
|
+
scale: Scale factor for visualization.
|
|
605
|
+
clear_previous: Clear previous debug draws before drawing.
|
|
606
|
+
timeout: RPC timeout in seconds.
|
|
607
|
+
|
|
608
|
+
Returns:
|
|
609
|
+
True if draw succeeded, False otherwise.
|
|
610
|
+
"""
|
|
611
|
+
timeout = timeout or self.timeout
|
|
612
|
+
|
|
613
|
+
arrow = self.pb.debug.DebugArrow(
|
|
614
|
+
origin=self.pb.debug.DebugVector3(x=origin[0], y=origin[1], z=origin[2]),
|
|
615
|
+
direction=self.pb.debug.DebugVector3(
|
|
616
|
+
x=direction[0], y=direction[1], z=direction[2]
|
|
617
|
+
),
|
|
618
|
+
color=self.pb.debug.DebugColor(
|
|
619
|
+
r=color[0], g=color[1], b=color[2], a=color[3]
|
|
620
|
+
),
|
|
621
|
+
scale=scale,
|
|
622
|
+
)
|
|
623
|
+
|
|
624
|
+
request = self.pb.debug.DebugDrawRequest(
|
|
625
|
+
arrows=[arrow],
|
|
626
|
+
clear_previous=clear_previous,
|
|
627
|
+
)
|
|
628
|
+
|
|
629
|
+
try:
|
|
630
|
+
resp = self.debug.Draw(request, timeout=timeout)
|
|
631
|
+
return resp.success
|
|
632
|
+
except Exception as e:
|
|
633
|
+
logger.debug(f"Debug draw failed: {e}")
|
|
634
|
+
return False
|
|
635
|
+
|
|
636
|
+
def draw_line(
|
|
637
|
+
self,
|
|
638
|
+
start: tuple[float, float, float],
|
|
639
|
+
end: tuple[float, float, float],
|
|
640
|
+
color: tuple[float, float, float, float] = (1.0, 1.0, 1.0, 1.0),
|
|
641
|
+
clear_previous: bool = False,
|
|
642
|
+
timeout: Optional[float] = None,
|
|
643
|
+
) -> bool:
|
|
644
|
+
"""
|
|
645
|
+
Draw a debug line in LuckyEngine.
|
|
646
|
+
|
|
647
|
+
Args:
|
|
648
|
+
start: (x, y, z) start position.
|
|
649
|
+
end: (x, y, z) end position.
|
|
650
|
+
color: (r, g, b, a) color values (0-1 range).
|
|
651
|
+
clear_previous: Clear previous debug draws before drawing.
|
|
652
|
+
timeout: RPC timeout in seconds.
|
|
653
|
+
|
|
654
|
+
Returns:
|
|
655
|
+
True if draw succeeded, False otherwise.
|
|
656
|
+
"""
|
|
657
|
+
timeout = timeout or self.timeout
|
|
658
|
+
|
|
659
|
+
line = self.pb.debug.DebugLine(
|
|
660
|
+
start=self.pb.debug.DebugVector3(x=start[0], y=start[1], z=start[2]),
|
|
661
|
+
end=self.pb.debug.DebugVector3(x=end[0], y=end[1], z=end[2]),
|
|
662
|
+
color=self.pb.debug.DebugColor(
|
|
663
|
+
r=color[0], g=color[1], b=color[2], a=color[3]
|
|
664
|
+
),
|
|
665
|
+
)
|
|
666
|
+
|
|
667
|
+
request = self.pb.debug.DebugDrawRequest(
|
|
668
|
+
lines=[line],
|
|
669
|
+
clear_previous=clear_previous,
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
try:
|
|
673
|
+
resp = self.debug.Draw(request, timeout=timeout)
|
|
674
|
+
return resp.success
|
|
675
|
+
except Exception as e:
|
|
676
|
+
logger.debug(f"Debug draw failed: {e}")
|
|
677
|
+
return False
|
luckyrobots/config/robots.yaml
CHANGED
|
@@ -166,50 +166,62 @@ unitreego1:
|
|
|
166
166
|
lower: -0.863
|
|
167
167
|
upper: 0.863
|
|
168
168
|
default: 0.1
|
|
169
|
+
scale: 0.3727530387083568
|
|
169
170
|
- name: FR_thigh_joint
|
|
170
171
|
lower: -0.686
|
|
171
172
|
upper: 4.501
|
|
172
173
|
default: 0.9
|
|
174
|
+
scale: 0.3727530387083568
|
|
173
175
|
- name: FR_calf_joint
|
|
174
176
|
lower: -2.818
|
|
175
177
|
upper: -0.888
|
|
176
178
|
default: -1.8
|
|
179
|
+
scale: 0.24850202580557115
|
|
177
180
|
- name: FL_hip_joint
|
|
178
181
|
lower: -0.863
|
|
179
182
|
upper: 0.863
|
|
180
183
|
default: -0.1
|
|
184
|
+
scale: 0.3727530387083568
|
|
181
185
|
- name: FL_thigh_joint
|
|
182
186
|
lower: -0.686
|
|
183
187
|
upper: 4.501
|
|
184
188
|
default: 0.9
|
|
189
|
+
scale: 0.3727530387083568
|
|
185
190
|
- name: FL_calf_joint
|
|
186
191
|
lower: -2.818
|
|
187
192
|
upper: -0.888
|
|
188
193
|
default: -1.8
|
|
194
|
+
scale: 0.24850202580557115
|
|
189
195
|
- name: RR_hip_joint
|
|
190
196
|
lower: -0.863
|
|
191
197
|
upper: 0.863
|
|
192
198
|
default: 0.1
|
|
199
|
+
scale: 0.3727530387083568
|
|
193
200
|
- name: RR_thigh_joint
|
|
194
201
|
lower: -0.686
|
|
195
202
|
upper: 4.501
|
|
196
203
|
default: 0.9
|
|
204
|
+
scale: 0.3727530387083568
|
|
197
205
|
- name: RR_calf_joint
|
|
198
206
|
lower: -2.818
|
|
199
207
|
upper: -0.888
|
|
200
208
|
default: -1.8
|
|
209
|
+
scale: 0.24850202580557115
|
|
201
210
|
- name: RL_hip_joint
|
|
202
211
|
lower: -0.863
|
|
203
212
|
upper: 0.863
|
|
204
213
|
default: -0.1
|
|
214
|
+
scale: 0.3727530387083568
|
|
205
215
|
- name: RL_thigh_joint
|
|
206
216
|
lower: -0.686
|
|
207
217
|
upper: 4.501
|
|
208
218
|
default: 0.9
|
|
219
|
+
scale: 0.3727530387083568
|
|
209
220
|
- name: RL_calf_joint
|
|
210
221
|
lower: -2.818
|
|
211
222
|
upper: -0.888
|
|
212
223
|
default: -1.8
|
|
224
|
+
scale: 0.24850202580557115
|
|
213
225
|
observation_space:
|
|
214
226
|
actuator_names:
|
|
215
227
|
- FR_hip_joint
|
|
@@ -229,47 +241,59 @@ unitreego1:
|
|
|
229
241
|
lower: -0.863
|
|
230
242
|
upper: 0.863
|
|
231
243
|
default: 0.1
|
|
244
|
+
scale: 0.3727530387083568
|
|
232
245
|
- name: FR_thigh_joint
|
|
233
246
|
lower: -0.686
|
|
234
247
|
upper: 4.501
|
|
235
248
|
default: 0.9
|
|
249
|
+
scale: 0.3727530387083568
|
|
236
250
|
- name: FR_calf_joint
|
|
237
251
|
lower: -2.818
|
|
238
252
|
upper: -0.888
|
|
239
253
|
default: -1.8
|
|
254
|
+
scale: 0.24850202580557115
|
|
240
255
|
- name: FL_hip_joint
|
|
241
256
|
lower: -0.863
|
|
242
257
|
upper: 0.863
|
|
243
258
|
default: -0.1
|
|
259
|
+
scale: 0.3727530387083568
|
|
244
260
|
- name: FL_thigh_joint
|
|
245
261
|
lower: -0.686
|
|
246
262
|
upper: 4.501
|
|
247
263
|
default: 0.9
|
|
264
|
+
scale: 0.3727530387083568
|
|
248
265
|
- name: FL_calf_joint
|
|
249
266
|
lower: -2.818
|
|
250
267
|
upper: -0.888
|
|
251
268
|
default: -1.8
|
|
269
|
+
scale: 0.24850202580557115
|
|
252
270
|
- name: RR_hip_joint
|
|
253
271
|
lower: -0.863
|
|
254
272
|
upper: 0.863
|
|
255
273
|
default: 0.1
|
|
274
|
+
scale: 0.3727530387083568
|
|
256
275
|
- name: RR_thigh_joint
|
|
257
276
|
lower: -0.686
|
|
258
277
|
upper: 4.501
|
|
259
278
|
default: 0.9
|
|
279
|
+
scale: 0.3727530387083568
|
|
260
280
|
- name: RR_calf_joint
|
|
261
281
|
lower: -2.818
|
|
262
282
|
upper: -0.888
|
|
263
283
|
default: -1.8
|
|
284
|
+
scale: 0.24850202580557115
|
|
264
285
|
- name: RL_hip_joint
|
|
265
286
|
lower: -0.863
|
|
266
287
|
upper: 0.863
|
|
267
288
|
default: -0.1
|
|
289
|
+
scale: 0.3727530387083568
|
|
268
290
|
- name: RL_thigh_joint
|
|
269
291
|
lower: -0.686
|
|
270
292
|
upper: 4.501
|
|
271
293
|
default: 0.9
|
|
294
|
+
scale: 0.3727530387083568
|
|
272
295
|
- name: RL_calf_joint
|
|
273
296
|
lower: -2.818
|
|
274
297
|
upper: -0.888
|
|
275
298
|
default: -1.8
|
|
299
|
+
scale: 0.24850202580557115
|
|
@@ -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
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: luckyrobots
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.74
|
|
4
4
|
Summary: Robotics-AI Training in Hyperrealistic Game Environments
|
|
5
5
|
Project-URL: Homepage, https://github.com/luckyrobots/luckyrobots
|
|
6
6
|
Project-URL: Documentation, https://luckyrobots.readthedocs.io
|
|
@@ -1,35 +1,38 @@
|
|
|
1
1
|
luckyrobots/__init__.py,sha256=cjma4V6iH-1QWWkt9n9Y9JD8LZJgmTIXP7eE9RT2ylw,469
|
|
2
|
-
luckyrobots/client.py,sha256=
|
|
2
|
+
luckyrobots/client.py,sha256=ueaJAZbr5mTMwVA5WPV8yNP0aBbQEdkmFWjB5S5Qv_o,22697
|
|
3
3
|
luckyrobots/luckyrobots.py,sha256=-XkIt9h7si4GK_j5Wpknb7_h56CCWi8_d1woVMuIvxU,8957
|
|
4
4
|
luckyrobots/utils.py,sha256=deh0OV3I6Tr6V1s0yWs4jtchsZK1vKySpUohLjqOF1I,1769
|
|
5
5
|
luckyrobots/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
luckyrobots/config/robots.yaml,sha256
|
|
6
|
+
luckyrobots/config/robots.yaml,sha256=-O39zJ_6lVfNnqdeVLpeY0no8EMlUQ2LpAopNc98XX4,6792
|
|
7
7
|
luckyrobots/engine/__init__.py,sha256=OsyOgAnLtOfpRDHXa3Gzc1fRhJA8EfKvRkzijF6iRc8,403
|
|
8
8
|
luckyrobots/engine/manager.py,sha256=8vxSevaoXo-lw2G6y74lVc-Ms8xIELK0yLswydMiOQY,13388
|
|
9
9
|
luckyrobots/grpc/__init__.py,sha256=hPh-X_FEus2sxrfQB2fQjD754X5bMaUFTWm3mZmUhe0,153
|
|
10
10
|
luckyrobots/grpc/generated/__init__.py,sha256=u69M4E_2LwRQSD_n4wvQyMX7dryBCrIdsho59c52Crk,732
|
|
11
|
-
luckyrobots/grpc/generated/agent_pb2.py,sha256=
|
|
12
|
-
luckyrobots/grpc/generated/agent_pb2_grpc.py,sha256=
|
|
13
|
-
luckyrobots/grpc/generated/camera_pb2.py,sha256=
|
|
14
|
-
luckyrobots/grpc/generated/camera_pb2_grpc.py,sha256=
|
|
11
|
+
luckyrobots/grpc/generated/agent_pb2.py,sha256=_aLCb8E5k66XX4RLqU-YgJ7uEvyDSmZLkMmm3Vkn4K4,7167
|
|
12
|
+
luckyrobots/grpc/generated/agent_pb2_grpc.py,sha256=C6qSQMkxrERJsd5Rh_IHbOdURlgKlke8fKZ85edQa4I,10902
|
|
13
|
+
luckyrobots/grpc/generated/camera_pb2.py,sha256=qs436_cLtRx4OPV1WsUMvaJ7NvRnRkQUrDDIr1wmoAY,2609
|
|
14
|
+
luckyrobots/grpc/generated/camera_pb2_grpc.py,sha256=Lx3rmamWMWrkPIDN9tdQU_o4VKd3ETD9Z6h2WHSr7Aw,5264
|
|
15
15
|
luckyrobots/grpc/generated/common_pb2.py,sha256=0eZTxqlsZdTrgp2hgLy-hdDNtac5U3kkS_D9UbVy0e8,2045
|
|
16
16
|
luckyrobots/grpc/generated/common_pb2_grpc.py,sha256=MWix04c710srn9BtjDxa9-UkZz0wa-w8tB0EmYndSgg,886
|
|
17
|
-
luckyrobots/grpc/generated/
|
|
17
|
+
luckyrobots/grpc/generated/debug_pb2.py,sha256=1kUalIszt1IA5G3DJzB7nlfQhjdoA9UodPOKFMPmyuM,3525
|
|
18
|
+
luckyrobots/grpc/generated/debug_pb2_grpc.py,sha256=aVlc6AAUuPhqzBOTV6KG5bA_n21eRcXNmTrCKUVvGGI,3310
|
|
19
|
+
luckyrobots/grpc/generated/hazel_rpc_pb2.py,sha256=hcT_OZjzlm1Jz6azZCxfHXn3RlcIXoCoc7CYCgf71RY,1719
|
|
18
20
|
luckyrobots/grpc/generated/hazel_rpc_pb2_grpc.py,sha256=5bhVh5DmVDl2ZsdgN7mTnElDbgU142TOI1qm8a8eblw,889
|
|
19
21
|
luckyrobots/grpc/generated/media_pb2.py,sha256=TtGdBub2Pj1vG_jJJIZnIZealLD0s98wZ4KgGIrcn2c,1827
|
|
20
22
|
luckyrobots/grpc/generated/media_pb2_grpc.py,sha256=szeOZzqDnIBFEyjAtXEHNxytTb9hTvOkQj0PhvXumMM,885
|
|
21
23
|
luckyrobots/grpc/generated/mujoco_pb2.py,sha256=Oq1AdZ0h-svs7ntlaDZ-zvQdTPsulnaE7YaINvBIBpM,3476
|
|
22
|
-
luckyrobots/grpc/generated/mujoco_pb2_grpc.py,sha256=
|
|
23
|
-
luckyrobots/grpc/generated/scene_pb2.py,sha256=
|
|
24
|
-
luckyrobots/grpc/generated/scene_pb2_grpc.py,sha256=
|
|
24
|
+
luckyrobots/grpc/generated/mujoco_pb2_grpc.py,sha256=xEqQ3jGUcAl2SreJgOPz9nb6We4j84OuIy2CysU0SS8,8596
|
|
25
|
+
luckyrobots/grpc/generated/scene_pb2.py,sha256=Qz31l9ietwNFuqTkmd8GsHc_lO4MacuEycxtsE6gJBc,5375
|
|
26
|
+
luckyrobots/grpc/generated/scene_pb2_grpc.py,sha256=ruawWs3hqZFQ_SoMqu75Sdn-v2YpjF5eajPkkcYUmfU,12111
|
|
25
27
|
luckyrobots/grpc/generated/telemetry_pb2.py,sha256=LgVtxJv7ovtqlrgxG375aXADGt3qXwgpsIhIkJ3pLKE,2790
|
|
26
|
-
luckyrobots/grpc/generated/telemetry_pb2_grpc.py,sha256=
|
|
27
|
-
luckyrobots/grpc/generated/viewport_pb2.py,sha256=
|
|
28
|
-
luckyrobots/grpc/generated/viewport_pb2_grpc.py,sha256=
|
|
28
|
+
luckyrobots/grpc/generated/telemetry_pb2_grpc.py,sha256=hS_ZJeM7DUlUQ4LERHWp704tCQV-0Dwa_M0sscUNxZI,5456
|
|
29
|
+
luckyrobots/grpc/generated/viewport_pb2.py,sha256=MV6QIFJUM-DxpZ8IpnBis4OUAcq8fu7FfROv_iguqb4,3086
|
|
30
|
+
luckyrobots/grpc/generated/viewport_pb2_grpc.py,sha256=xfqmEz_C0_XQl5LRkbxyB4ekyFkup99IbrlrB_S_2aE,5422
|
|
29
31
|
luckyrobots/grpc/proto/agent.proto,sha256=SUVR9EqNz5gB5FNt3n54sNXv3SkvYgXKywlZmZh5vio,8506
|
|
30
32
|
luckyrobots/grpc/proto/camera.proto,sha256=unLowpk4d0AGJgyKrbzTr1F_CxOV9dXRoXn-gO8eJVw,1097
|
|
31
33
|
luckyrobots/grpc/proto/common.proto,sha256=zQPj-Z8b8mAE2_eHlJ0L2_-JH-CYY_OJcv8046fAtQM,772
|
|
32
|
-
luckyrobots/grpc/proto/
|
|
34
|
+
luckyrobots/grpc/proto/debug.proto,sha256=AGo7r3dyYr1Z5h0U5ZFGBn4yZwRAjtew_eyfWgsfvf0,1558
|
|
35
|
+
luckyrobots/grpc/proto/hazel_rpc.proto,sha256=DV_fvdiXkxoiEWnqlrGvfnBCG6TfJ2ei9vZs9pJESCM,1251
|
|
33
36
|
luckyrobots/grpc/proto/media.proto,sha256=3Rhmiaw1zceQBFdwxX1ViFgH-cSr7mBjNEGHPaFmTsk,836
|
|
34
37
|
luckyrobots/grpc/proto/mujoco.proto,sha256=b7tBvYqqvcSjmqrEax6_75-P3fIHHZq63A1HVJKjx0U,1873
|
|
35
38
|
luckyrobots/grpc/proto/scene.proto,sha256=ZypWsUzpgplGsQPP0FXJpyY4rSxgWYGsniM4vofhnak,3075
|
|
@@ -37,7 +40,7 @@ luckyrobots/grpc/proto/telemetry.proto,sha256=PZiUoA0bpwuvsBUdoQQdBNGWOuhlBMKAiB
|
|
|
37
40
|
luckyrobots/grpc/proto/viewport.proto,sha256=gunF8cIrVgvoAX8FNER6gw_u-IlRWAR1Q6ts0zUuqr8,1324
|
|
38
41
|
luckyrobots/models/__init__.py,sha256=h_PFZ1OgJnHXfQBqO8_ULB8szCKrGA4lMfmBGZgtIDc,126
|
|
39
42
|
luckyrobots/models/observation.py,sha256=H45zargSOMR4c-zPupbXNplWBTBfGdG-oQbib203eCY,3620
|
|
40
|
-
luckyrobots-0.1.
|
|
41
|
-
luckyrobots-0.1.
|
|
42
|
-
luckyrobots-0.1.
|
|
43
|
-
luckyrobots-0.1.
|
|
43
|
+
luckyrobots-0.1.74.dist-info/METADATA,sha256=oQWvQJoYt3O_C2XQs1-lZbKamuJDAKQZhTIpvQJBq9w,8379
|
|
44
|
+
luckyrobots-0.1.74.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
45
|
+
luckyrobots-0.1.74.dist-info/licenses/LICENSE,sha256=xsPYvRJPH_fW_sofTUknI_KvZOsD4-BqjSOTZqI6Nmw,1069
|
|
46
|
+
luckyrobots-0.1.74.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|