Add Record & Replay feature for mission sessions#10
Open
Customize5773 wants to merge 7 commits into
Open
Conversation
…g-eaz5bn feat(autonomy): deteksi hook + docking closed-loop misi 3b (HANG) & m…
- Implemented recording.js to manage mission session recordings, including trajectory and video streams. - Added functionality to record telemetry and commands, store them in structured files, and manage session metadata. - Introduced a .gitignore file to prevent committing session data. - Created unit tests for the recording manager, covering session start/stop logic, telemetry logging, command tapping, and session listing/access.
Control page
Merge pull request #6 from Customize5773/claude/hook-detection-dockin…
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
Implements a complete Record & Replay system for mission sessions, allowing operators to record ROV telemetry, video streams, and commands during missions, then replay them with synchronized video and 3D trajectory visualization. This is an optional value-add feature (§4.7) for KKI 2026.
Key Changes
Frontend (Browser)
New Replay page (
public/js/pages/replay.js):record_start/record_stopvia WebSocketNew 3D trajectory scene (
public/js/pages/replay-scene.js):Camera switching (
public/js/app.js):WebSocket integration (
public/js/app.js,public/js/core.js):record_statusmessages from serverwsSendfunction for record control messagesBackend (Node.js Server)
Recording manager (
server/recording.js):MAX_RECORD_MINenv var)server/recordings/<session_id>/with meta.json, trajectory.jsonl, commands.jsonl, and per-camera video filesHTTP endpoints (
server/server.js):GET /api/recordings: List all saved sessions with metadataGET /recordings/<id>/<file>: Serve session data files (meta.json, trajectory.jsonl, commands.jsonl, index files)GET /replay/frame: Retrieve individual JPEG frames by session/camera/indexTelemetry/command tapping (
server/server.js):Raspberry Pi (Python)
rov_agent.py,manual_control.py):manual_control.pymodule: Pure mapping from axis percentages (-100..100) to MAVLink MANUAL_CONTROL messageTesting
Unit tests (
server/test/recording.test.js):Manual control tests (
test_manual_control.py):https://claude.ai/code/session_01FBeZKmoVCYY5uBPiMHVwCx