docs: CAMP user manual (plan)#62
Draft
rolker wants to merge 5 commits into
Draft
Conversation
Capture the agreed outline, scope decisions, and source-of-truth references for the operator-facing CAMP user manual. Audience = rotating Summer Hydro operator cohorts; documents the deployed CCOMAutonomousMissionPlanner (not camp2); troubleshooting links to the framework guide (unh_marine_autonomy#132 / PR #133). Covers platform self-advertisement (/marine/platforms), display reading, survey planning, and send/override + update-vs-replace task semantics. Part of #61. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add docs/camp_user_manual.md for student operators at the operator station: starting & connecting, reading the display, planning a survey, sending a mission, and overrides. Add a Documentation section to README linking it. UI flow verified against src/camp/: Execute -> replace_task (working path); Hover Here / Goto Here / Idle in place map overrides; Standby / Autonomous helm buttons. Outline corrected against source: CAMP has no camera/sonar/segmentation/ annunciator panels (redirect imagery to separate rqt windows); the Mission Update menu sends update_task which is a no-op downstream (#50) -- documented use Execute. Mechanism/troubleshooting defers to the framework guide; boat side defers to the BizzyBoat operator manual. Closes #61
…61) Add an example CAMP-window screenshot (docs/images/, cropped from the 2026-06-01 operator capture; terminals excluded) to 'Reading the display'. Trim the camera/sonar/segmentation imagery and annunciator coverage to a brief pointer: those are separate operator-station windows and are documented in the BizzyBoat operator manual, not here (Roland's scope call -- CAMP is not where they are viewed). Part of #61
…shot (#61) Remove the Summer-Hydro / student-operator framing so the manual doesn't go stale. CAMP is platform-neutral: refer to 'the boat' / 'the boat's operator manual', with BizzyBoat kept only as the explicit See-also example. Background chart framed as a configurable default (currently 13283). Replace the example screenshot with a June-2 mid-survey frame showing the working windowed costmap with detected obstacles/targets and the survey-pattern tracklines (costmap confirmed at CAMP from 13:09 EDT per the deployment log). Terminals excluded. Part of #61
…re (#61) Swap to the June-2 19:12 UTC frame (operator's pick): it shows the pier as a charted obstacle (magenta costmap), a camera-derived obstacle marked between the pier and the survey area, the survey-pattern tracklines, and the heartbeat panel caught mid-color-change in its yellow warning state (a comms hiccup) -- a good teaching frame for the display. Caption and the heartbeat-panel description updated to call these out. Part of #61
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.
Plan-first draft PR. The committed work plan (
.agent/work-plans/issue-61/plan.md) is reproduced below; the manual itself will be added to this branch as implementation proceeds.Work Plan — Issue #61: CAMP user manual (operator-facing)
Issue: #61
Context & forcing function
Part of the Summer Hydro 2026 documentation push (driver: June 4 dev-freeze /
class start; audience = rotating student-operator cohorts). Companion to the
BizzyBoat operator manual (
rolker/unh_echoboats_project11#202) and the frameworkguide (
rolker/unh_marine_autonomy#132, drafted as PR #133). Decisions agreedwith Roland 2026-06-01.
Audience & scope decisions
CCOMAutonomousMissionPlannerbinary, NOT the unusedcamp2rewrite. Develop/document againstsrc/camp/(RosContext / TopicBridge /GeoGraphicsItem arch; Markers is the overlay template).
Outline
CCOMAutonomousMissionPlanner) at the operator station;what it is and isn't.
camp_launch.py);confirming the boat link. A boat advertises itself on
/marine/platformsand CAMP's
PlatformManagerauto-creates a tab + map drawing per platform —so "boat not showing up" → check
/marine/platformsreaching the station andthe boat's
platform_publisherlifecycle node being activated (frameworkguide §3).
annunciators (naming distinguishes diagnostic source — boat vs operator —
not where the display lives; both run at the operator station); heartbeat.
Goto); update-vs-replace task semantics (mid-run plan modify =
replace_task,which works; in-place
update_taskis unhandled / deferred to the Field import: camp (2026-05-01) #50 BTredesign — document current behavior, don't promise update_task).
Source-of-truth references (verify against, don't assume)
ui_ws/src/camp/src/camp/platform_manager/(
platform_manager.cppsubscribes/marine/platforms) ↔ boat-sideunh_marine_autonomy/marine_autonomy/scripts/platform_send.py.docs/how_the_stack_works.mdin
unh_marine_autonomy(PR #133) and themarine/mission_manager/commandrouting (command_bridge / camp_interface). Topic prefix is
marine/(theproject11/prefix is retired; PR #133 cleaned the autonomy docs).boat):
camp_launch.pyauto-loads chart 13283;ros2 bag play --start-offsetis safe (earth→bizzy/map is dynamic
/tf); no zenoh needed locally.late-join; fixed by TopicBridge + executor contract: restructure ROS callback / Qt thread / TF interaction #48/PR#49 — note current state).
attaches (subscriber-gated lazy publish) — not a CAMP bug per se.
Cross-links
rolker/unh_marine_autonomy#132/ PR #133 (link for the"how it works" / troubleshooting-by-understanding material).
rolker/unh_echoboats_project11#202.Open items / notes
docs/camp_user_manual.md) and link from thecamp README.
§5 (read the relevant
src/camp/UI code; don't document from memory).Authored-By:
Claude Code AgentModel:
Claude Opus 4.8 (1M context)