Guiding Questions
What is the proposed scope for this/ eventual scope?
Are we only trying to simulate a specific manager, or the entire ZP?
Simulate entire ZP (test the logic, entire ZP software is being tested)
What features do we need in simulation software?
Ability to visualize whats happening, simulate physics/dynamics, being able to customize plane model (either by inputting a CAD file or changing parameters), ability to change the environment (location, visuals, weather simulation[tentative could be hard])
What is our plan to run ZP without stm32.
Remember, ZP uses freertos so there has to be a plan to build and run it on a computer.
Alternatively we can run it on stm32 but then it becomes more like a hil
Run two instances of code, one is ZP running with FreeRTOS simulated and it would communicate with a matlab instance that takes the data from ZP to run the simulation.
Look into simulating FreeRTOS in matlab (something like this) and instead modify ZP code to interact with this FreeRTOS, this way all the code would run on one instance, but this would be harder to create.
What is the purpose of simulating this?
Are we testing mainly path planning logic and am?
Testing the integration between systems?
Can we get away with simulating just PM and AM?
It would be ideal to simulate just PM and AM if they are all that is needed to be tested, but it depends on what needs to be tested. Since simulating all of ZP, although it would nice to have, it would also increase complexity, and that make things difficult. Also depends on the inputs of the simulator, is it taking in the thrust commands or forces and moments (more dynamics to take into consideration). If so, what would simulink provide to help with that or would we have to design our own?
How are you going to communicate with ZP?
You need to send it commands and or connect the receiver to it.
Connecting a receiver would complicate things. Also since main priority is to test AM and PM, connecting a receiver wouldn’t be needed.
Do we want to connect IMACs to this?
Not really required, since any other ground control software could be used to simplify integration with simulink just to feed the simulator waypoints, since the purpose of the simulator is to validate ZP and how the autopilot functions.
Recap of ideas:
Using a simulink model where it takes the actuator outputs from ZP that would go to LOS to get the thrust outputs.
Another option with simulink as well, is to take the actuator outputs and then calculate the forces these would create, this would depend on what simulink would offer from resources. (for example if it doesn’t have a way to control every individual motor’s thrust).
In simulink using the simulated sensor data blocks to produce mock position data for ZP to take in, this would replace the data inputted from los position.
If IMACs is being used, then that can be an input for the different waypoints that the simulated drone should follow.
Running ZP on a FreeRTOS simulator that would communicate with the simulink simulation model, since ZP relies on FreeRTOS (like this one)
Only simulating AM and PM just to test out the logic and functionality of the ZP autopilot, leaving out RC control.
Simulating in Simnet would simply a lot of things. IMACs would not have to be used, rather any other ground station app could be used. Would have to create a work around to get the simulation to use ZP by possibly injecting the ZP commands through ardupilot.
More research has to be done on gazebo to evaluate it as an option for the simulator.
Question:
Is simulating AM & PM enough? As it would make simulator development easier and would be testing how ZP autopilot works.