Adding ROS simulation assets#33
Open
YanzeZhang97 wants to merge 205 commits into
Open
Conversation
Moved the frontend project under roboclaw-web/ui, updated the server to serve the new dist path, and reshaped the interface around a cleaner control layout with a global floating chat entry. The dashboard and settings surfaces were simplified to reduce visual noise while keeping the core data collection and provider configuration flows intact. Styling was consolidated around reusable card treatments and a tighter black/white/blue palette so the app feels more consistent after the navigation and shell refactor. Constraint: Production static file serving now needs to resolve the frontend from roboclaw-web/ui/dist Rejected: Keep the frontend in ui/ and only copy build artifacts | leaves the project layout split and harder to maintain Confidence: medium Scope-risk: broad Reversibility: clean Directive: If the frontend location changes again, update both roboclaw/web/server.py and the frontend build docs in the same change Tested: Frontend production build from roboclaw-web/ui Not-tested: Browser smoke test after the latest visual and directory migration changes
…dling This bundles the workflow UI, remote explorer, quality validation pipeline, pause/resume controls, and the web chat/runtime changes needed to operate them from one branch. It also fixes the action validator so vector-based datasets such as DROID are no longer misreported as having 100% missing values. Constraint: Keep the workflow, explorer, and web runtime changes on the existing branch without adding new dependencies Rejected: Split the work into multiple commits | the current branch already interleaves the workflow backend, frontend, and test surfaces Confidence: medium Scope-risk: broad Directive: Re-run quality validation after pulling; historical quality results still reflect the pre-fix missing-value logic Tested: npm run build; .venv/bin/pytest tests/test_explorer_remote_api.py tests/test_workflow_annotation_api.py tests/test_workflow_validators.py tests/test_web_channel.py tests/test_loop_save_turn.py -q Not-tested: Full browser end-to-end exercise against a long-running remote quality batch Reversibility: clean
Collaborator
|
感谢这个 PR,导航 + 仿真的方向是对的。看完之后有几个建议,主要是关于代码组织方式。 1. 第三方 ROS 包不应该提交到仓库这个 PR 有 69 万行新增 / 2049 个文件,其中绝大部分来自直接复制进来的第三方包:
这些都是公开的上游包,不是我们的代码。直接 vendor 进来会导致:版本无法跟上游同步、仓库体积膨胀、review 不可能做。 |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…orkbench Merge origin/main into PR MINT-SJTU#30 branch. Conflict resolution: - Discard ui/ → roboclaw-web/ui/ directory move; keep main's ui/ structure - Move PR's new routes to roboclaw/http/ (main renamed embodied/web/ → http/) - Fix all import paths: roboclaw.embodied.web → roboclaw.http - Add PR's new workflow/explorer frontend components to ui/ - Register workflow + explorer routers in http/routes/__init__.py - Fix datasets_root() to respect manifest config (consistent with routes/datasets.py) - Add pyarrow dependency Preserved: dataset workflow workbench, explorer, quality validation, annotation pipeline, chat image upload, user metadata attachment. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… quality) Rename the dataset workflow module to "curation" for clarity. Fix critical path-traversal vulnerability in HF import, remove GET-triggered downloads, reject unknown validators, cap candidate_limit, split oversized validators.py, deduplicate shared helpers, fix error swallowing and deep nesting. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove media_path from image upload response (info disclosure) - Fix INSTALLATION.md paths (roboclaw-web/ui → ui/) - Slim down curation/__init__.py (211→17 lines) - Lazy import pyarrow in bridge.py - Add early size check before regex in image upload - Add CancellationToken for cooperative worker thread cancellation - Add per-path lock for annotation writes (prevents race) - Cache is_stage_pause_requested with mtime check - Add pagination (offset/limit) to /quality-results endpoint Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add centered modal popup on episode hover using React Portal - Display video player with time synchronization - Show all available joints dynamically (no hardcoded limits) - Add comprehensive chart features: - Y-axis labels with dynamic scaling - X-axis time labels - Both Action (orange) and State (blue) trajectory lines - Red time indicator line synced with video playback - Modal sized at 980px (70% of original design) - Add close button with hover effects - All values adapt dynamically to different robots
Unify the web UI into a streamlined control surface
PR MINT-SJTU#30 accidentally removed package.json, index.html, tsconfig, tailwind, postcss, and entry files — breaking `npm run build` and the auto-rebuild in `roboclaw web start`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…U#30 merge PR MINT-SJTU#30 moved ui/ to roboclaw-web/ui/, but the merge kept ui/ and discarded roboclaw-web/. This left old components importing deleted controllers and new components missing ux.tsx and i18n keys. Restored: dashboard.ts, connection.ts, provider.ts, chat.ts, Toast.tsx, ux.tsx Added: 60+ curation/quality/explorer translation keys (zh+en) Fixed: DatasetExplorerView null filtering, @dnd-kit dependency Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…rge state Reverts all changes after 8b283c7 (PR MINT-SJTU#29 merge). PR MINT-SJTU#30's directory restructure caused broken frontend builds and missing modules. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Ru-hulu <2422780148@qq.com>
Replace scattered sys.platform checks with serial_patterns_for_platform() that returns the correct glob patterns per OS: - macOS: cu.* only (correct communication endpoint, no duplicates) - Linux: ttyACM*, ttyUSB* Remove _dedupe_macos_serial_ports and related functions — no longer needed since we only scan cu.* on macOS. Keep port_candidates() for probe robustness (cu.* tried first on macOS). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- discovery.py: fix `dev=candidate if port.dev else port.dev` (no-op when port.dev is truthy) → always record the working candidate path - motion_detector.py: log warning when all port candidates fail to read positions, instead of silently returning empty dict Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ssions Allow curation to resolve explorer dataset sessions
…lorer-helpers Teach explorer helpers to inspect remote dataset episodes
…source-routes # Conflicts: # roboclaw/http/routes/explorer.py
…plorer-source-state # Conflicts: # ui/src/i18n/store.ts
…aset-explorer-source-page # Conflicts: # ui/src/domains/datasets/explorer/pages/DatasetExplorerPage.tsx # ui/src/index.css
…r4-episodes-density-cards
…sodes-right-rail # Conflicts: # ui/src/domains/datasets/explorer/pages/DatasetExplorerPage.tsx # ui/src/index.css
…tory-playback # Conflicts: # ui/src/domains/datasets/explorer/pages/DatasetExplorerPage.tsx
…r4-episodes-density-cards
…aset-explorer-source-page
…r4-episodes-density-cards
…ource-routes Route explorer requests across remote local and path datasets
…ource-state Keep Dataset Explorer source state across sessions
…plorer-source-page Let Dataset Loading browse remote local and path sources
…nsity-cards Add collapsed Dataset Loading insight cards
…ight-rail Put Dataset Loading episodes in a right rail
…playback Keep trajectory cursor smooth during playback
The data-reading implementation already matches the old account's main branch, but the curation route tests could still inspect real ~/.roboclaw session and dataset state on the developer machine. Isolating those roots keeps verification repeatable while preserving the current data reader behavior. Constraint: Direct push to main requested; product data-reading files already match Elvin-yk/RoboClaw. Rejected: Change dataset session listing behavior | would diverge from the requested old-account implementation. Confidence: high Scope-risk: narrow Directive: Keep tests isolated from real ~/.roboclaw state when exercising dataset session discovery. Tested: uv run pytest tests/test_explorer_remote_api.py tests/test_datasets_crud.py tests/test_embodied_dataset_ops.py tests/test_curation_annotation_api.py Not-tested: Full repository test suite.
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.
Summary
This PR adds the initial tb3 navigation-related ROS simulation module for RoboClaw. Although it is only for tb3 right now with basic slam and navigation functions. I will continue to add other mobile robots and possible CrazySwarm/drone navigation in this folder.