luckyrobots 0.1.66__py3-none-any.whl → 0.1.68__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.
@@ -137,6 +137,7 @@ class LuckyRobots(Node):
137
137
  self,
138
138
  scene: str,
139
139
  robot: str,
140
+ debug: bool = False,
140
141
  task: str = None,
141
142
  executable_path: str = None,
142
143
  observation_type: str = "pixels_agent_pos",
@@ -153,6 +154,7 @@ class LuckyRobots(Node):
153
154
  success = launch_luckyworld(
154
155
  scene=scene,
155
156
  robot=robot,
157
+ debug=debug,
156
158
  task=task,
157
159
  executable_path=executable_path,
158
160
  headless=headless,
@@ -160,7 +162,9 @@ class LuckyRobots(Node):
160
162
  if not success:
161
163
  logger.error("Failed to launch LuckyWorld")
162
164
  self.shutdown()
163
- raise
165
+ raise RuntimeError(
166
+ "Failed to launch LuckyWorld. Look through the log for more information."
167
+ )
164
168
 
165
169
  self._register_cleanup_handlers()
166
170
 
@@ -137,6 +137,7 @@ def launch_luckyworld(
137
137
  scene: str = "ArmLevel",
138
138
  robot: str = "so100",
139
139
  task: Optional[str] = None,
140
+ debug: bool = False,
140
141
  executable_path: Optional[str] = None,
141
142
  headless: bool = False,
142
143
  windowed: bool = True,
@@ -147,7 +148,10 @@ def launch_luckyworld(
147
148
 
148
149
  # Check if already running
149
150
  if is_luckyworld_running():
150
- logger.error("LuckyWorld is already running. Stop the existing instance first.")
151
+ logger.error(
152
+ "LuckyWorld is already running. \
153
+ Stop the existing instance or remove the luckyworld lock file located at /tmp/luckyworld_lock."
154
+ )
151
155
  return False
152
156
 
153
157
  # Find executable if not provided
@@ -161,7 +165,7 @@ def launch_luckyworld(
161
165
  logger.info(" LUCKYWORLD_PATH=/full/path/to/LuckyWorldV2.exe")
162
166
  logger.info(" LUCKYWORLD_HOME=/path/to/luckyworld/directory")
163
167
  logger.info("Or check these common locations:")
164
- logger.info(" Development: Build/Windows/LuckyWorldV2.exe")
168
+ logger.info(" Development: Builds/Windows/LuckyWorldV2.exe")
165
169
  logger.info(" Windows: C:\\Program Files\\LuckyWorld\\LuckyWorldV2.exe")
166
170
  logger.info(" WSL2: /mnt/c/Program Files/LuckyWorld/LuckyWorldV2.exe")
167
171
  return False
@@ -185,6 +189,9 @@ def launch_luckyworld(
185
189
  if task:
186
190
  command.append(f"-Task={task}")
187
191
 
192
+ if debug:
193
+ command.append("-Debug")
194
+
188
195
  if headless:
189
196
  command.append("-Headless")
190
197
  else:
@@ -255,7 +262,7 @@ def _kill_wsl_processes():
255
262
  "/mnt/c/Windows/System32/taskkill.exe",
256
263
  "/F",
257
264
  "/IM",
258
- "LuckyWorldV2.exe",
265
+ "LuckyWorldV2.exe", # NOTE: Make sure this is the name of the LuckyWorld executable
259
266
  ],
260
267
  capture_output=True,
261
268
  text=True,
@@ -265,8 +272,8 @@ def _kill_wsl_processes():
265
272
  if result.returncode == 0:
266
273
  return True
267
274
  elif result.returncode == 128: # Process not found
268
- logger.info("No LuckyWorld processes found running")
269
- return True
275
+ logger.error("No LuckyWorld processes found running")
276
+ return False
270
277
  else:
271
278
  logger.warning(
272
279
  f"taskkill failed with code {result.returncode}: {result.stderr}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luckyrobots
3
- Version: 0.1.66
3
+ Version: 0.1.68
4
4
  Summary: Robotics-AI Training in Hyperrealistic Game Environments
5
5
  Project-URL: Homepage, https://github.com/luckyrobots/luckyrobots
6
6
  Project-URL: Bug Tracker, https://github.com/luckyrobots/luckyrobots/issues
@@ -1,7 +1,7 @@
1
1
  luckyrobots/__init__.py,sha256=yr8nMUVzAe8ohD7XNywTDwLX98HwjT4cagxARkld1HQ,426
2
2
  luckyrobots/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  luckyrobots/config/robots.yaml,sha256=w0HwB35WRd7X0-hQRgtYQaRWmOk32-e6pMxT88aereE,1806
4
- luckyrobots/core/luckyrobots.py,sha256=3oWpq5pOkeTEdHzp_85UkpDjgobWr6g6pAXl-_dQMNM,23140
4
+ luckyrobots/core/luckyrobots.py,sha256=IhAtQoHExMLm6j7HrjUUe6o56IzEY2X0Nt3CPgL9_5g,23312
5
5
  luckyrobots/core/manager.py,sha256=p9Ehs2SKLpBEEJf8hvTFUG_foPrQszgH6BUbIzBTtBo,9212
6
6
  luckyrobots/core/models.py,sha256=fbAKpIOZM8D6rKxRgo1_9rioNa99bT_phCZ9xrwWFaE,2108
7
7
  luckyrobots/core/node.py,sha256=lDKqAQSMEctjU-v4F9Lifz_ZsKG6wxsNuyRqtOWrQRA,10512
@@ -15,10 +15,10 @@ luckyrobots/utils/check_updates.py,sha256=5CpAe2jK1igjJVIoZKzRWgg9jwKsmiyEwqgldy
15
15
  luckyrobots/utils/download.py,sha256=UWQkB6yp-UsOK93pw0noHmv2rVLXcjY5JKd9EkKUG-c,3593
16
16
  luckyrobots/utils/event_loop.py,sha256=r2sn7G9JHFKUri4aUnZ_1D82CTZnEsr3woLLKiDx8Dw,2638
17
17
  luckyrobots/utils/helpers.py,sha256=4o3Jy0-otnVl0duqncoIuEufEo2AP9BDdgKSEYUOCYQ,2193
18
- luckyrobots/utils/sim_manager.py,sha256=-FwHaHtfDo9-LBKafwchFkmAamwmFCnPqLAR3hhjsEI,12991
18
+ luckyrobots/utils/sim_manager.py,sha256=wQlfsmRk6ZdrZBdBwnth4UBlrcsLA7_oO_4VVvegcNU,13237
19
19
  luckyrobots/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  luckyrobots/config/robots.yaml,sha256=w0HwB35WRd7X0-hQRgtYQaRWmOk32-e6pMxT88aereE,1806
21
- luckyrobots-0.1.66.dist-info/METADATA,sha256=L3w1_Gj0Ga0OJarikZ-tIGlUpaNb7y8wL2bFIbIDgzw,7683
22
- luckyrobots-0.1.66.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- luckyrobots-0.1.66.dist-info/licenses/LICENSE,sha256=xsPYvRJPH_fW_sofTUknI_KvZOsD4-BqjSOTZqI6Nmw,1069
24
- luckyrobots-0.1.66.dist-info/RECORD,,
21
+ luckyrobots-0.1.68.dist-info/METADATA,sha256=kQmpIJA3C-GiGUpe5ptDGDMShZm4W8YBcoz7u7oEj3Q,7683
22
+ luckyrobots-0.1.68.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
+ luckyrobots-0.1.68.dist-info/licenses/LICENSE,sha256=xsPYvRJPH_fW_sofTUknI_KvZOsD4-BqjSOTZqI6Nmw,1069
24
+ luckyrobots-0.1.68.dist-info/RECORD,,