fix(record): surface detailed recording errors and hardware hints to the GUI#80
Open
robertchoi wants to merge 8 commits into
Open
fix(record): surface detailed recording errors and hardware hints to the GUI#80robertchoi wants to merge 8 commits into
robertchoi wants to merge 8 commits into
Conversation
[260711] fix to recognize camera at chrome and fix to 3d model limit …
…uration management and status reporting
There was a problem hiding this comment.
Pull request overview
Surfaces recording failures and hardware troubleshooting hints in the GUI, alongside unrelated camera, visualization, and documentation changes.
Changes:
- Shares hardware-error hints between recording and inference.
- Stops polling and displays recording failures in an alert dialog.
- Adds tests, camera naming changes, Korean guides, and a teleoperation adjustment.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
lelab/utils/devices.py |
Adds shared troubleshooting hints. |
lelab/rollout.py |
Uses the shared hint utility. |
lelab/record.py |
Returns recording errors and hints. |
frontend/src/pages/Recording.tsx |
Displays recording failure details. |
tests/test_rollout.py |
Updates hint utility tests. |
tests/test_record.py |
Tests recording error status. |
lelab/teleoperate.py |
Disables URDF angle corrections. |
lelab/server.py |
Adds Chrome-oriented Linux camera names. |
study/install.md |
Adds a Korean Windows installation guide. |
study/day0_overview.md |
Adds a Korean project overview. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| 로봇 공학이라고 하면 흔히 검은 화면에 가득한 복잡한 코드, 끊임없이 터미널에 입력해야 하는 명령어(CLI), 그리고 지난한 캘리브레이션 과정을 떠올리곤 합니다. 이러한 기술적 장벽은 혁신적인 아이디어를 가진 이들조차 로봇 공학의 입구에서 발길을 돌리게 만들었습니다. | ||
|
|
||
| 하지만 이제 시대가 변했습니다. **LeLab**은 *'박스 개봉부터 학습까지 단 몇 분 만에'*라는 가치를 내걸고, 로봇 학습의 모든 과정을 직관적인 웹 인터페이스로 옮겨왔습니다. 현재 LeLab은 **SO-ARM101**(및 **SO-100** 시리즈)에 최적화되어, 하드웨어 설정부터 AI 모델 배포까지의 복잡한 워크플로우를 하나로 통합했습니다. 이제 당신의 브라우저가 로봇을 가르치는 가장 강력한 도구가 됩니다. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Robert Choi <robertchoimail@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR resolves the issue where a recording session fails (e.g., due to camera disconnect, servo overload, or serial connection loss) but the
leLabGUI silently redirects the user to the/uploadpage without showing any error trace or diagnostic guide.We now extract the raw exception from the recording worker, map it to a user-friendly troubleshooting hint (reusing the logic from Inference), halt status polling, and render a dedicated failure
AlertDialogon the frontend.Related Issues
Closes #78
Key Changes
1. Shared Hardware Troubleshooting Utility
_friendly_hinthelper fromlelab/rollout.pytolelab/utils/devices.pyas a publicfriendly_hint()function. This enables both inference (rollout) and recording status handlers to share the same troubleshooting guidance for common hardware bugs (gripper overload, port busy, frame timeouts, etc.).2. Backend (FastAPI status endpoint)
handle_recording_status()inlelab/record.pyto return theerrorand mappedhintifcurrent_phase == "error". The error is pulled from thelast_recording_infostructure populated by the recording worker's exception catcher.3. Frontend (React + Vite)
"error"phase infrontend/src/pages/Recording.tsxduring the status polling effect. When detected, it sets a localsessionErrorstate and halts polling, preventing the automatic navigation redirect to/upload.AlertDialogcontaining the exact error trace and the friendly hardware hint, offering a clear "Return to Home" button to recover gracefully.4. Tests
tests/test_rollout.pyfor the movedfriendly_hint.test_recording_status_surfaces_error_and_hintintests/test_record.pyto ensure correct serialization of errors and hints.Verification Results
Automated Tests
Ran the pytest suites in the local virtual environment: