ardupilot
ardupilot copied to clipboard
Add support for system ID of position controller
This PR adds additional inputs to conduct System ID on the position controller. It adds the following inputs longitudinal velocity (body axis fwd/aft) lateral velocity (body axis left/right) position disturbance in body longitudinal axis position disturbance in body lateral axis velocity disturbance in body longitudinal axis velocity disturbance in body lateral axis
this also includes the PSC logging during the system ID at the system ID logging rate. It allows the pilot to make velocity command inputs over top of the axis being swept but it is debatable whether this is even necessary since it should hold position except for the axis being swept.
so far i have tested this in SITL. would like @lthall to look at it. Not getting the expected response for the pilot velocity commanded inputs.
@lthall could you review this to make sure I did this right. I have flown this in a heli and got velocity drb results.
This all looks great but using loiter like this is over kill I think.
I would suggest using the simple reposition code or just holding position without human input. People can always switch out of sysid mode.
https://github.com/ArduPilot/ardupilot/blob/c1831bae320c00338307c7c5f15e1b6b6b50abcc/ArduCopter/mode.cpp#L759C33-L759C33
@rmackay9 functionally checked this in SITL and have conducted several sysid flights on a real heli using the position controller sweep settings. Everything checks out. Ready to be merged.
@lthall and @IamPete1 could you guys give an approval on this.
I've tested this in a real heli. No issues. @IamPete1, would you approve please. I plan to put this on tomorrow's devcall unless @rmackay9 is happy to merge once it is approved. Thanks!
Here is the technical paper that this PR supported. OuterLoop_HQs_Paper_VFS_2024_final.pdf