Hi, I am new to the forum and working with APM. I am looking to build my very own simulation and integrate it in to the current system. There is a function called “Update” in the SIM_Multicopter.cpp file under libraries/SITL that I am going to look to replace with my own version. I am going to wrap up my simulation in a dll(which I already have done) and I would like to drop it into the system. From some things I have read online I should be able to use a .dll with cygwin (yes, I am on windows). I am having a hard time figuring out the makefile setup and where I need to add linkage to my dll. Can anyone help point me in the right direction for this problem??
The arducopter sitl is a very simple built in simulation environment. I was looking to tackle the same problem you are having a few weeks ago so I have created my own sim which I then struggled to figure out how to connect to ardupilot sitl. It was a week worth of work but I have finally gotten it working.
My sim is using a 3d engine and bullet physics engine for copter body simulation. I had to modify the sitl code to get it out of the way. My sim backend is here: https://github.com/mkschreder/ardupilot/blob/master/libraries/SITL/SIM_QuadSim.cpp
One problem I had was that update delay when using udp socket was seriously messing up my simulation but i have solved it by using shared memory (on linux).
Source code for the sim is here: https://github.com/mkschreder/quadsim
This will give you all the information you need to get it working on your end.
Does anyone know where to find out what equations of motion were used in the standard SITL? Before building my own environment I would like to better understand how the team developed theirs.