fwt_software/docs/roadmap.md

55 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Fire Gimbal Control — Roadmap
Forward-looking plan for the software/firmware. Present-state docs live alongside
this one ([architecture.md](architecture.md), [modules-reference.md](modules-reference.md),
[known-issues.md](known-issues.md), …); this file records **intent**, not status.
Keep entries dated; move shipped items into the reference docs.
## Near-term / in progress
- **Hardware self-test framework (`test` command).** Modular on-rig validation
with profiles, on-disk text reports, and baseline/drift comparison — replaces
`gimbal diag`. Covers gimbal (homing, encoder, friction, backlash, balance), IMU
(config, health, drift), and host/LattePanda (thermal, disk, memory, load). See
[test-command.md](test-command.md); tests blocked on not-yet-integrated
components are tracked in [test-roadmap.md](test-roadmap.md).
- **Firmware support (next):** a homing-report `HM` line (firmware-measured
homing duration + endstop counts) and a load-capture `LP` primitive
(peak/mean CS, SG, PWM during a move) so the friction/balance/homing-time
metrics come off the firmware clock instead of host `ST` sampling; plus a
`PING`/`PONG` link-health command for `test system link`.
## Planned components & integrations
- **MQTT → RabbitMQ migration.** Move the control/telemetry channel onto the
project's RabbitMQ stack. Decision pending between (a) RabbitMQ's MQTT plugin
(near-zero firmware change, keeps QoS/retain/reconnect) and (b) native AMQP via
a new `IControlChannel` implementation (richer routing/durable queues, but must
re-engineer retained "last value" semantics). The abstraction seam already
exists (`IControlChannel`). _(TODO: confirm approach, target release.)_
- **RGB camera.** _Largely landed._ The Alvium 1800 U-2040c runs end-to-end on the
rig (software-triggered acquire → quality gate → JXL → `CamEvent`), so the
`camera/rgb` self-test is no longer blocked on integration. What remains is
tuning against a real scene — see [known-issues.md](known-issues.md) #15#18 —
and the capture logic itself is described in
[architecture.md](architecture.md#image-capture).
- **Per-angle white balance.** Exposure and gain are already remembered per
heading; WB is still left to the camera's continuous auto. Extending the store
to WB ratios is the natural follow-on once exposure gating is proven on a lit
scene. _(TODO: confirm it is worth the extra state.)_
- **Thermal camera.** Add the thermal sensor with radiometric handling (NUC,
temperature range); enables the `camera/thermal` self-test. _(TODO: model/SDK,
calibration workflow.)_
## Cross-cutting / later
- **Supply-voltage telemetry** (bus-voltage sense → firmware) to enable
`gimbal/supply` and brown-out detection. _(TODO: hardware path.)_
- **Generic, multi-tower deployment.** Continue removing site-specific
assumptions (tower identity is already config-driven). _(TODO.)_
- _Stubs to expand: long-term storage/offload, remote update,
observability/metrics, security hardening._
> Detailed, implementer-ready specs for tests blocked on the above hardware live
> in [test-roadmap.md](test-roadmap.md).