How to change the dynamic model in the code?

Hello everyone. I’m new to this community and have just started learning px4. Recently, I am trying to implement a control method from a paper Neural Lander. I have a DJI F450 drone with a pixhawk board on it. The development environment is also ready to use.

From a very high level, the ideal dynamics for a drone is Ma = Mg + thrust. I want to edit this equation by adding a new term about the disturbance force. My question is that which parts of the code should I examine and edit? Has anyone done this before? I would be really appreciated it if you guys could give me some hints. Thanks a lot.

Hello. What you are trying to implement is very interesting!

These links helped me dive through the PX4 control-codebase:

  1. Controller Diagrams | PX4 User Guide
  2. PX4 Architectural Overview | PX4 User Guide

Check out PX4-Autopilot.
For Quadcopters, the only relevant files are mc_pos_control and mc_att_control

Not sure a dynamics model is explicitly coded in the codebase though (because my naive understanding is that you would do that in the simulation…)
However, there is a thrust-vector update here around Line-73 that might probably help.

I am in the process of attempting to document the PX4 control architecture (code-focused) for my grad research and hopefully for the community in general. Any feedback is welcome :slight_smile: