Full-Speed Simulator Meeting 11 March 2015 Project Labor Budget Remaining: 69% Definition of terms: * Phase I - Faster-than-real-time simulation that retains the current separate processes and is done with event-callbacks. * Phase II - The big three (Nav, Layered, Dynamic) are moved into a single process. This process also contains the simulator during simulations. ********Progress: * Rich: Found the cause of the mysterious long-standing, "resource temporarily unavailable." Fixed in the simulator. * Rich: Added a comprehensible error message so if some other process triggers it again we'll know what it is. * Rich: Replaced all clock calls with consistent calls to the TimeIF. * Rich: Reworked navigation to trigger on DynamicControl/Simulator task completion for simulation. ***Sim now runs 13 - 40x *** *******Decisions: * Expend the effort to make the event-callback version on our branch flyable? -Tag it and be ready for a merge? (Probably) * Expend further effort to speed up the 13-40x? (Probably not) * (Discussed post-meeting) Expend the effort to get TRN working in Phase I, before starting Phase II. (Probably). ********Next Tasks: * Rich: Add code so that absence of the -bisim argument causes the code to run for flight. * Rob: Merge the CVS head into the FastSim branch. The objective is to keep the branch up to date so that the eventual merge back into the head will take minimum effort. * Rich/Rob: (Optional for now) Create a triggered version of TerrainAidDriver. Get TRN to run in the fast simulation. * Rich: (Phase II) Massage the big three GNC tasks into a single task that runs real-time for flight, fast for simulation. * Rob: Download xcode and get CVS running on the Mac. Checkout the code tree. * Rob: Get the Qnx Vm to share memory with the Mac. If this works, I can checkout the code tree from CVS on the Mac, then compile it with the Qnx vm. * Rob: Review the difference between the -bisim and -sim arguments. Merge them if possible. * Rob: Assist Rich where possible. * Kent: (If time permits) Come up to speed on the code. Rob will help. * Kent: (If time permits) Run a sim. Rob will help. * Hans: (If time permits) Provide example code showing how to link the GNC process with the simulated sensor IFs and the simulator to create a single process for simulation. The GNC code is unchanged between flight and simulation. *******Last Meeting: What causes the IPC error? Fixed with 2 ms sleep. Discovered that the VM's run the initial full-speed version slower than on mvc-bi, even though mvc-bi logs over the network. Will try again with the simulation logging locally on mvc-bi to see how fast. Possible cause is that a signal is interrupting a "send" call. May also be related to timers ( which are signals ). Priorities are a possibility. Lowering QNX ticksize from 10 to 5 ms sped up the sim. Lowering it further slowed it down. Rich is showing his slides. timespec returnged by Time::gettime has two longs; seconds, nanoseconds clock_getime has members tv_sec tv_nsec. Use a macro that does the cast? See the slides for the plan Rob will work on learning how to merge head changes into the FastSim branch. This is to avoid a big merge at the end when we rejoin the branch. Kent may help with cvs questions. ******Overall Objectives: 1. Qnx Vm (Rob) (DONE) -Desktop -Laptop 2. Synchronize Layered Control(Rich) (DONE) -Done using event call backs. 3. Non blocking operation (Rich, Rob, Kent, Hans) -First pass using event callbacks. -Second pass moves GNC processes into a single process. 4. TRN Integration (Rich, Rob) 5. Testing and Validation (Rob) ********Meeting Notes: Rich: millisleep(2) is between the end of the simulation and the time increment and start of Navigation. Ticksize of 5 or 10 then sets the sleep time because it's greater. Kent: Do we need Jira? Possibly. Rob: Yes, let's make the branch flyable, tag it, meet with Hans, and merge with the head. To merge our branch with the head we need to: * Finish code that triggers Nav on real-time versus sim completion. * Down-merge the ongoing head development first. * Review changes with Hans and make a test plan. * Possibly piggy back a sea-trial. Rich: The qnx VM compiles much faster than mvc-bi, but simulates slower than mvc-bi. Kent: The VM may be slower due to the amount of system resources such as allocated RAM and processor cores. Increase this?