docs: roadmap — north star swervebot autonomous waypoints - #36
Merged
Conversation
The charters-and-gates principle applied at system level: the robot application is the consumer of the family; work queues behind gaps the milestone exposes. Gap walk across all repos: Phase 0 platform decision (PocketBeagle is armv7 — the seqlock primitives require lock-free 64-bit atomics; aarch64 SBC recommended) + app skeleton rework (standalone application, never umbrella-pinned); Phase 1 hardware teleop (steering-servo driver is the likely xmDriver gap; safety envelope first); Phase 2 estimation (odometry model, MEKF L0-L5 ladder on robot data); Phase 3 waypoint autonomy (messaging's first production composition, lineage-gated actuation, sim-first); Phase 4 tuning/soak/the end-to-end observability claim. Plus the 70/20/10 portfolio, the four-question test, the standing debt lane, and the explicitly gate-deferred list (iceoryx2, Zenoh, EventHub, reserved taxonomy rows).
Owner clarification folded in: swervebot_controller keeps its firmware role on the existing PocketBeagle (motors/servos/kinematics/ RC failsafe, high-level interface over CAN); the autonomy tier (estimation/planning/control/messaging/observability) runs on an aarch64/x86 upper computer that sees the base as a CAN device. armv7 support scoped to the driver tier only (xmDriver + xmBase core); corrects the earlier over-claim — Cortex-A8 is ARMv7-A with ldrexd/strexd, so the seqlock atomics are likely available, status 'unverified' not 'incompatible'. New Phase 0 gap: the base CAN protocol spec (command/state/heartbeat/timeout-failsafe, versioned wire vocabulary, owned by the swervebot repo); new Phase 0.5: the swerve_base CAN device driver in xmDriver (upper side), replacing the steering-servo gap at that tier (steering stays base-internal).
The application naming rule made derivable (xmApp + function word; compose released components, never umbrella-pinned; type-and-tier over instance — instances are named by config files): codifies the existing xmAppCamera precedent and the swervebot_controller -> xmAppSwerveBase rename. Roadmap links updated.
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.
The system-level answer to 'what next, without blind expansion': the milestone (measured, falsifiable), the phase-ordered gap walk across all repos, the 70/20/10 portfolio, the four-question task test, the debt lane, and the explicitly gate-deferred list. Two decisions surfaced for the owner inside Phase 0/2: the compute platform (PocketBeagle is 32-bit ARM — incompatible with the seqlock primitives' 64-bit atomic requirement; aarch64 SBC recommended) and the localization source honesty check (dead-reckoning drift vs an absolute reference). Docs-only.