MIGHTY is the default local planner; DROAN extracted to the asm_droan module (0.21.0-dev.11) - #424
Merged
Merged
Conversation
… module (0.21.0-dev.11) Default stack swap: full_default, lite_default and lite_offload_global:onboard include the MIGHTY module launch (asm_mighty v0.1.4: planner + acl-mapping voxel world model + NavigateTask bridge) in place of droan_gl and pin it in their modules.repos. The six DROAN packages (droan_gl, droan_local_planner, disparity_expansion, disparity_graph, disparity_graph_cost_map, cost_map_interface) leave trunk for castacks/asm_droan v0.1.0 (history preserved with git filter-repo). Dockerfile.robot swaps the droan_gl GL link deps for MIGHTY's nlohmann-json3-dev header dep, so the default stack runs on the base image with no composed module layer. Stacks: new full_droan = the previous default (GPU DROAN) topology pinning asm_droan, inheriting the old full_default wiring baseline; full_droan_cpu and full_macvo pin asm_droan; full_mighty folded into full_default. lite_default's stale wiring baseline dropped (bootstrap path, like full_default's new MIGHTY graph). airstack up now reconciles the selected stack's modules.repos pins before launch (add + sync missing pins, keep and name differing local pins, module lock --build uncomposed layers unless AIRSTACK_NO_IMAGE_BUILD=1; dry-run/config-only report only; AIRSTACK_NO_STACK_MODULE_SYNC=1 opts out) — a module-pinned default stack must work out of the box. Contract tests pin the dry-run report. Docs: local-layer pages (planner table, world-model pairing), stacks and autonomy-modes tables, walkthrough, module/stack guides, skills, mkdocs nav, registry fixture + regenerated catalog (droan page, full_droan stack), release notes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
andrewjong
force-pushed
the
feat/mighty-default-local-planner
branch
from
September 11, 2026 03:26
6d56479 to
1434054
Compare
Contributor
Test Metrics —
|
| Test | Pass | Fail | Skip | Rate |
|---|---|---|---|---|
| test_colcon_build_gcs | 0 | 1 | 0 | 0% |
| test_colcon_build_ms_airsim | 0 | 1 | 0 | 0% |
| test_colcon_build_robot | 0 | 1 | 0 | 0% |
| test_colcon_test_robot | 0 | 1 | 0 | 0% |
Metrics
| Test | Metric | Value |
|---|---|---|
| test_colcon_build_robot | duration_s | 0.82s |
| test_colcon_test_robot | duration_s | 0.63s |
| test_colcon_build_gcs | duration_s | 0.631s |
| test_colcon_build_ms_airsim | duration_s | 0.619s |
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.
Summary
MIGHTY becomes AirStack's default local planner; DROAN leaves trunk as the
asm_droanmodule.full_default,lite_defaultandlite_offload_global:onboardnow include the MIGHTY module launch (mighty_module.launch.xml: planner + acl-mapping voxel world model + NavigateTask bridge, CPU-only, lidar-fed) in place ofdroan_gl, and pin asm_mighty v0.1.4 in theirmodules.repos. Motivation: the judged obstacle-route comparison in the asm_mighty README — DROAN 0/5 and 0/10 (absorbing hovers, near-contacts) vs MIGHTY 5/5 with 1.59–1.65 m clearances behind the same controller.droan_gl,droan_local_planner,disparity_expansion,disparity_graph,disparity_graph_cost_map,cost_map_interface) move to castacks/asm_droan (git filter-repo, 65 commits of history preserved; tagged v0.1.0; registered as thedroanmodule). Thedroan_glGL link deps leaveDockerfile.robotand become the module's tier-1 apt deps; the trunk image gains MIGHTY'snlohmann-json3-devheader dep so the default stack runs on the base image with no composed module layer (asm_mighty v0.1.4 declares no deps).full_droan= the previous default topology (GPU DROAN) pinning asm_droan — it inherits the oldfull_defaultwiring baseline (identical graph; only the H1 stack name changed).full_droan_cpuandfull_macvopin asm_droan.full_mightyis folded intofull_default.airstack upreconciles stack pins. A stack'smodules.reposis honoured at launch: missing pins are added + synced, differing local pins are kept and named, uncomposed dependency layers are built (module lock --build, unlessAIRSTACK_NO_IMAGE_BUILD=1).--dry-run/--config-onlyonly report;AIRSTACK_NO_STACK_MODULE_SYNC=1opts out. Without this the module-pinned default stack would fail on first run.full_droan+droanin), registry fixture + regenerated catalog, release notes, VERSION → 0.21.0-dev.11. New contract tests pin the dry-run reconcile report.Companion PRs (merge the registry one first — the docs deploy regenerates the catalog from the live registry): castacks/airstack-modules-index (
droan+full_droanentries,full_mightyremoved,mightyre-pinned to v0.1.4).Validation
pytest tests -m unit(stack layout, single-locus lint, docs catalog--check, launch-intent dry-run, CLI help, new reconcile tests)tools/validate_module.pyasm_droan / asm_mighty; registryvalidate_entry.pymkdocs buildcolcon build(robot 0.21.0-dev.9 base + the new apt deps, trunk ws with the six packages removed + asm_droan/asm_mighty overlaid;--packages-up-tothe module packages)airstack up --dry-run(default /full_droan_cpu)Version note
The module compat floors (
>=0.21.0-dev.10) and the module READMEs were written before #423 landed on dev.10; the swap itself ships in dev.11. dev.10 is a catalog-only sync nobody targets, so the floors are left one dev release permissive rather than re-tagging asm_droan v0.1.0 / asm_mighty v0.1.4.Not done in this PR (needs a sim session)
full_default(MIGHTY) andlite_defaulthave no committedwiring.md— the stale DROAN baselines were dropped; the snapshot test passes with the bootstrap instruction untilairstack test -m wiring --stack full_default --sim isaacsim --num-robots 1is run and its observed file committed. (full_mightyshipped the same way.)droan/*keepalive rows stay intopic_keepalive_node.py: removing them drifts thefull_droan/full_droan_cpu/full_macvogoldens, which must be regenerated in the same change (tracked in asm_droanTRUNK_REMOVAL.md§4).🤖 Generated with Claude Code