Repository navigation
Conversation
Instruction is an order and a queue of up to four Queued instructions, each started by a When: out of contact for some seconds, the order before it done (told from the drone's own camera and position), or the battery down to some seconds. Standing is the queue of one. ToServer::Order carries the queue beside the old standing field. The fast arena and the server fly the whole queue; the ground still uploads only the first Silent instruction as the flight controller's one standing plan. New arena policies Chain and Timed, measured in the denial example; the existing rows are unchanged. Co-Authored-By: Claude <noreply@anthropic.com>
This branch has not been deployed
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.
Step 1 of
plans/actors.md: a unit holds a queue of instructions, not one order and one standing order.What changed
recreation_towers:Instruction { order, queue: Vec<Queued>, taken },Queued { when: When, order },When::{Silent(f32), Done, Battery(f32)},MAX_QUEUE = 4(a longer queue is cut, tested).Standingstays, and is the queue of one (From<Standing> for Queued,Instruction::give,Instruction::standing()). Entries are taken only out of contact, in order. The failsafe (home on a lost link or at bingo) holds for a drone with no instruction that waits for the silence and none started.edge.rs:order_done,Game::order_done):Takewhen its camera sees its team holding the tower,Gotowithin 35 m,Hold/Circle/Homenever.ToServer::Orderhasqueue: Vec<Queued>beside the oldstanding(bothserde(default), an old seat still works; a queue wins overstanding; tested).Matchflies the queue (Captain::queue, default fromstanding;Autonomy::queue). New policiesChain(persist, the nearest tower the team does not hold when done, home) andTimed(the same by the clock).denialmeasures them.World::command_queue, queue flown for drones with no wing. Commander app: only compiles (queue: vec![]).expectations/09-towers/rules/17-queue.expect, glossary term Queue, vocabulary in09-towers/section.expect, driver support.expectation checkhas 0 errors.Not done
Silentinstruction as the standing plan, as today.cognition_plan,cognition_executor, the MAVLink encoding andardupilot/are untouched. The on-board queue is a later step.acceptance.rsalso has aqueuemodule that plays each queue scenario by hand.Results (
denial, 100 seeds, both sides)Existing rows identical before and after:
A longer queue does not beat persisting in the valley.
chainplays exactly as persist: a drone that takes a tower ends the shadow, is in contact again, and a drone in contact takes no instruction, so "done" never starts the next one.timedpulls drones off their towers and loses.Tests
cargo test --release -p recreation_towers -p cognition_towers -p recreation_towers_ground -p recreation_towers_serverpass.cognition_league: unit tests pass; its acceptance test fails with "The suite's 120 s ran out" (the nested builds of its challenger tests); not shown to be caused by this change.cargo clippy --workspace --all-targetsandcargo fmt: clean.cargo build --release -p recreation_towers_server -p teleoperation_command: OK.🤖 Generated with Claude Code