Camera in the plan: roadmap Phase 5 split into camera then inference; proposed decisions 27 (live view) and 28 (paced Orin -> tablet senders)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
2026-10-11 17:21:41 +09:00
parent e6ca835992
commit a290a01f03
4 changed files with 37 additions and 8 deletions
+26 -4
View File
@@ -1,7 +1,7 @@
---
type: plan
status: active
updated: 2026-10-09
updated: 2026-10-11
---
# Roadmap
@@ -24,6 +24,9 @@ Getting the Jetson to see the hardware at all.
documented, sources kept in `~/infra`; still manual, and breaks silently
if forgotten
- [x] Network time pinned to NICT; timezone `Asia/Tokyo`
- [x] USB camera (IMX662, Sunplus UVC bridge) recognised on the car unit with
in-tree drivers: MJPEG up to 1080p60, microphone; measured in
orin-nano-env-setup `docs/impl/reports/USB-CAMERA.md`
- [ ] Optional: RTC backup battery (CR2032) — without it the clock boots stale
until NTP or GPS corrects it
- [ ] Power and mounting in the car: clean shutdown on ignition off
@@ -79,10 +82,29 @@ Order chosen by feedback speed, not ambition.
car unit and a text-readout starter app; not yet run on the tablet
- [ ] `app-esp32` — RLCD/e-ink glanceable subset. Deferred, no hardware in scope
## Phase 5 — Camera and inference · *separate task*
## Phase 5 — Camera, then inference
Deliberately deferred. It is the reason the compute is a Jetson rather than a
Pi, but it shares nothing with the CAN work beyond the bus.
The camera is on the car unit (2026-10-11). Capturing and recording need no
model and no GPU, so they can come before inference, which stays deferred: it is
the reason the compute is a Jetson rather than a Pi, but it shares nothing with
the CAN work beyond the bus, and it competes with voice for memory.
What the hardware gives (USB camera report): MJPEG only, ~7.3 MB/s at 1080p30;
no hardware video encoder on the Orin Nano, so H.264 is software, ~1.3–2 of 6
cores at 1080p; frame rate falls with the light.
- [ ] Decide the camera's roles and mounting: dash recording, live view on the
tablet, inference input, or several
- [ ] Measure in the car: daylight and night frame rate and MJPEG size on a road
scene
- [ ] One capture process owns `/dev/video0` (V4L2 is single-reader) and feeds
the others; sets UVC controls on open, since they reset on re-enumeration
- [ ] Recording: H.264 segments on the recorder's clock and session marks,
bounded like CAN sessions (~2.7 GB per hour at 6 Mbit/s)
- [ ] Live view in `app-flutter` (decision 27, proposed): 720p MJPEG passthrough
(~3.4 MB/s, no CPU) or H.264, paced per decision 28
- [ ] Inference — deferred; plan for evicting voice, not for coexisting with it
([ORIN-RUNTIME.md](ORIN-RUNTIME.md))
## Navigation · *parallel workstream*