Working Notes: a commonplace notebook for recording & exploring ideas.
Home. Site Map. Subscribe. More at expLog.
Flight control for visors
Simulation Testing <- quick/thorough
Visors: satellite space mission 24/10
distributed space telescope -- 2 sats in formation
high resolution image of the corona
ambitious & low cost -- proof of concept
40m apart spacecraft
1.5cm by 1.5cm tolerance
for 10s
RTM frame -- relative motion
R = up away from earth
T = direction of motion
N = normal direction
GNC subsystem
stateful software component
motion estimation
gnc / software / linux / flight computer - {actuators, sensors, crosslink}, gps, ground radios
relies on gpus for high precision navigation for cm accurate and
API
exposes callbacks to update the state of the world in GNC
which is interesting, would have expected it to be inside out
outputs are: maneuvers, saving telemetry, ticks
Tick abstraction for delayed work
Fault detection
request current system time and time
~10,000 lines of C++ O_O
ECOS: numerical optimization
SOFA: coordinate frame defs, etc. } 50k lines
threading model?
~5 people
set a reminder to check in if they succeed :)
https://slab.stanford.edu/projects/visors
simulation: replace all the inputs to the software
simulation testing framework
high fidelity (extreme)
deterministic
faster than real time
single process & single thread here
very good debugging capabilities
also being used for performance (cpu utilization measurements)
BUT THIS DOESN'T TEST THE SYNCHRONIZATION
runs against the actual software
model as many sources of noise in the simulation
network crosslink -- datagram
makes it easy because it's deterministic to do print statement
deterministic system and deterministic simulation
make it a pure function of inputs
like a large state machine
except for memory management
multi-threading?
simulation maintains an event loop
takeaways -- different set of tradeoffs against
unit testing
end to end testing
talks
testing distributed systems with deterministic simulation / will wilson
comparison: can do this with discipline
but they don't have much code
Simulation Testing / Michael Nygard
clojure
dynamic input generation, etc.
explicitly provide apis for interaction
file access, scheduling, etc.
have taken the simulation to different types of hardware
(reminds me of dependency injection)
more coverage than unit testing
— Kunal