Criteria for rapid prototyping Minimize time to compose a behavior. Strategy: library of low-level behaviors and controls Minimize edit-execution loop (Requires execution be real-time or close to it.)
Components of rapid prototyping system Language for describing behaviors Behavior interpreter Feedback tool--- see behavior as it executes
Role of Impulse Virtual world manager Simulation loop includes behavior interpretation step Graphical output of Impulse simulation provides execution feedback
Exploring behavior description languages Java Simulink
Java as language for behavior descriptions Abstract Class structures the interface between Impulse and the behavior Rapid edit-execution loop Java code compiled into byte code Behavior loaded at run-time Java interpreter simplifies networked simulation architecture
Impulse loading new object geometry mass properties behavior“Foo” Read_object LoadClass(“Foo”,) Object Description Add_to_db Foo.class
Impulse simulation loop Evolve behavior Update(@foo) Exec_Java_proc(@foo,...) F,T X,q Foo.Update Update_forces
Java based blimp behavior Physical modeling Buoyancy Aerodynamic drag Propulsion User interaction Propulsion levels from human pilot Communicates with Java applet client
Flight simulation behavior Client machine Server machine Browser Impulse blimp Web server Internet
Graphical modeling using Simulink PID Controller
Simulink as language for behavior descriptions Graphical programming using blocks and connections Rapid composition of behaviors using libraries Interface with Impulse RealTime Workshop translates blocks to C code (extensible to Java) Code compiled to shared library and loaded at run-time
Graphical programming of behaviors link1 link2 spring link1 spring link2 Impulse model Simulink model