Simulation Proposal
Brief Introduction
A simulator will be employed within ZeroPilot 3.0, for the purpose of testing the autonomy of an aircraft without the need of physically flying the aircraft itself. However, this simulator will not only be limited to testing the aircraft, but in general to assess the autonomy features which can be applied to a vehicle in general (e.g. RC Car).
Overview of Integration in Architecture
In this architecture, the simulator would act as a LOS Driver, where similar to how LOS could be configured to use certain drivers, it could instead interface with the simulator. The simulator in this case would simulate inputs to ZP through the LOS interface which would include controls and sensor data. The simulator would also receive actuator controls from ZP through LOS interface to change the state of the simulated aircraft.
Simulator Candidates
A simulator program must be chosen in order to simulate the drone in a testing environment. Potential simulation programs that can be used are:
MATLAB/Simulink
Chrono
MuJuCo
Research is required and will be done for each candidate. The chosen simulation program will be based on best fit in the current architecture (how it works with the LOS interface, input and outputs, etc.), efficiency, and ease of use.
MATLAB/Simulink
Link: Simulink - Simulation and Model-Based Design
The simulator in ZeroPilot 1.0 used a Simulink model, which allows an advantage of reusing the same idea/concepts rather than using a new simulator and starting from scratch. This would save a bit of confusion and time.
There are a number of resources for programming a drone using Simulink, whereas Chrono and MuJuCo do not. Having available resources on programming drones using the said simulator can be useful and helpful when starting out. In terms of ease of use, Simulink works by using block diagrams which can be more useful rather than writing lines of code when it comes to visualizing the system.
Chrono and MuJuCo
Link: https://projectchrono.org/ https://mujoco.org/
As mentioned previously, there are not many resources on Chrono and MuJuCo in terms of simulating a drone. The simulators work by writing code, compared to connecting visual blocks in Simulink, which is more likely not to be prefered.
Chosen Simulator
MATLAB/Simulink will be used for the simulator in ZeroPilot 3.0 due to the previous use of it in the simulator for ZeroPilot 1.0 (passed down knowledge), ease of use (visual blocks of code), and availability of training and resources for our case of using a drone.
Resources
Resources below can be found which can be used for learning more about simulation, from describing the geometry of the drone and using simulation programs (e.g. Simulink) to simulate drones. The resources are included within learning and researching of finding the best simulation program. Update: MATLAB/Simulink is now the chosen simulation program.