Full-Speed Simulator Meeting 7 Jan 2015 Agenda * Project Objectives: - Make the simulator, which executes the actual GNC flight code, run as fast as possible. The simulator speed will be limited only by the speed of the processor, and will scale up on a faster processor. - Do this with the least amount of code change possible. - As much as possible, run the same code in the simulator that runs on the vehicle. * Design Approach: Get something simple working end-to-end first, then iteratively improve it. * Tasks: 1. Get at least one QNX VM working so that we're not limited to mvc-bi, and can bring the simulator to sea or anywhere else. 2. Synchronize Control Processes. Ensure the GNC processes always run in the following sequence: 1. Navigation 2. Layered Control 3. Dynamic Control 4. Simulator This change is to the flight code (that runs on the vehicle). It should not cause any significant difference in vehicle performance other than slightly to moderately improved dynamics. The simulator should then be running synchronously, as though a single task. That is, there are many tasks but they all run in sequence; none concurrently. This can be done with an event call back, as in DynamicControlServer. Alternatively we could move these four into a single process, possibly Supervisor. Take the path that requires the least code change first. Then come back and improve it. 3. Non-Blocking Operation. Change all clock calls so that in simulation mode, the clock returns simulation time without blocking. This should have no effect on vehicle flight performance. Possible subtask: Create a switch that reverts the simulator to real-time mode. This could be useful for evaluating some (not all) IPC issues, if it's not too much extra work 4. TRN Integration. Make any necessary changes to TerrainAid server/driver for non-blocking operation. Verify that TRN works at full speed. 5. Testing and Validation. Verify that Full-Speed simulation results match original real-time simulation results. 5. If time permits: -Develop DEM to octree conversion code. If necessary, modify the simulator so that it can easily switch between octree maps of different locations. -Water column modeling. Reuse old netcdf code? -Develop a small suite (3-5) mission files that exercise as many aspects as possible of the flight code. Include "lessons learned" situations. Create a single script that runs the simulations and -Any other good ideas: * Schedule: Put names and dates by tasks. * Other Considerations: - Source code control: Branch in current CVS? Hans mentioned moving to a Git repository. - Are formal reviews such as a PDR necessary for this project?