Repository navigation
feat: validate external simulator bridge against Basilisk - #39
Merged
Merged
Conversation
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.
Closes #24.
Summary
This PR completes validation of the generic external simulator bridge against Basilisk while preserving ASTRO's existing ROS-facing contract.
It keeps the bridge simulator-agnostic, isolates Basilisk-specific behavior behind an internal backend, and adds both deterministic regression coverage and pinned-runtime Basilisk validation.
What changed
external_sim_bridgeROS 2 package as a generic bridge between ASTRO and external simulatorsenv_dataremains a 6-elementFloat64MultiArrayordered[x, y, z, vx, vy, vz]actuation_cmdremainsdistributed_satellite_sim/srv/ActuationCmdgnc_nodeunchangedsrc/external_sim_bridge/doc/design_note.mddistributed_satellite_simdistributed_satellite_simso downstream tests can resolve it throughament_indexbsk==2.10.0Basilisk validation details
bsk==2.10.0gnc_node -> actuation_cmd -> bridge -> Basiliskloop0 nsWhy this matters
This PR moves the branch from “generic bridge implemented” to “generic bridge validated against Basilisk” without turning the bridge into a Basilisk-only design.
The simulator-specific logic remains in the Basilisk backend. The ROS-side contract remains unchanged and reusable for additional external simulators later.
Testing
Validated in
ghcr.io/accommodus/astro:latestwith ROS 2 Kilted andbsk==2.10.0:rosdep install --from-paths src --ignore-src -ycolcon build --packages-select distributed_satellite_sim external_sim_bridgeASTRO_EXPECT_BASILISK=1 colcon test --packages-select external_sim_bridgecolcon test-result --verboseResult:
11 tests, 0 errors, 0 failures, 0 skippedNotes for reviewers