GSoC24: All in one system identification toolkit for ardupilot (Update)


Hi, my name is Astik Srivastava, and I’m thrilled to present the final update on my Google Summer of Code (GSoC) 2024 project: All in one system identification toolkit for Ardupilot. It was an amazing learning experience for me, and I hope this work will be beneficial for researchers and hobbyists alike.

Project Goals and Status
This project was divided into two subgoals, namely:

Work to be done
Although the toolkit has given accurate results in predicting models for UAVs, some work is still needed to improve the versatility of this toolkit.

  • MIMO state space model estimation: The state space estimation currently works only for single input-multi output systems. This is very limiting is the user is trying to analyze a coupled system (like a fixed-wing aircraft). The pyAircraftIden solver is not equipped for MIMO systems, so further research is required.

  • Non-linear systems: UAVs like VTOLs have nonlinear dynamics during certain parts of their flight regime. Since the toolkit deals with frequency response data, it is not equipped to identify nonlinearities in the dynamics of the UAVs.

  • Lua interfacing with ArduPlane attitude controller: The Lua script used for frequency sweep interfaces with the pitch and roll rate controller, but no such interface is available for yaw axis. This forces the user to inject the sweep directly to rudder servo channel for yaw axis, which is both more dangerous in real flight tests, and also might be infeasible for vehicles with multiple channels for yaw control (i.e. aircrafts with split ailerons for yaw control or with V-Tails)

In order to make this webtool as versitile as CIFER (available for MATLAB), these modifications need to be added to the current webtool.

Please find attached the list of commits during this project. I will be uploading documentation and tutorials on how to use the toolkit and the lua script in coming days.
WebTool Commits
pyAircraftIden commits
Ardupilot commits for lua scripts