[Bug] Normalized 3D Thrust and control allocation #22746
Labels
bug-report
Flight Controls 🦅
Anything about flight control algorithm (Navigation, Attitude control, etc)
Describe the bug
Currently, the 3D thrust setpoints are assumed to be normalized, basically resulting in a bounding box ranging from [-1, 1].
There are two issues with this approach.
For the second issue, the problem is that the pseudo inverse in control allocation assumes that the maximum thrust is uniform around all direction and therefore resulting in different thrust scalings depending on the direction of thrust.
For the omnicopter, the maximum attainable thrust is the shape of a polygon, rather than a sphere:
(Source: Brescianini, Dario, and Raffaello D’Andrea. "An omni-directional multirotor vehicle." Mechatronics 55 (2018): 76-93.)
Therefore by assuming a spherical maximum thrust (1.0 is maximum thrust), we end up having scaling effects of thrust depending on the direction where the thrust command is sent.
To Reproduce
This can be easily reproducible in SITL
Expected behavior
Possible Fixes
Screenshot / Media
This explains the behavior of the vehicle moving around while rotating: https://youtu.be/nsPkQYugfzs?si=g2c6UyJeXZD7LFzI&t=6
Flight Log
Software Version
latest
main
Flight controller
SITL
Vehicle type
Other
How are the different components wired up (including port information)
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: