Beginner understanding of attitude control

I have a very, very basic understanding of attitude control as it relates to general aviation and want to apply some knowledge so that I could work with px4_sitl gazebo_iris_opt_flow, basically for testing a quadrotor in offboard mode. I’d like to basically limit the quadrotor to only move up/down (vertical) and left/right (roll). As I understand it, the thrust value is for moving up/down…and 0.5 keeps it at the current altitude? The greater the value above 0.5, the faster it moves up? Is that the same for moving down for values below 0.5? Also, what level of precision can you use for the thrust value? Is something like 0.51234 valid? If you wanted to keep the drone steady at the current altitude, would you constantly be streaming attitude quaternion with thrust at 0.5?

As for moving with roll, does the increase in degrees equate to increased velocity? For example, 30 degrees vs. 45 degrees. Also, if you want to roll on the horizontal plane, thrust is always 0.5? If so, what happens if you roll and thrust is for example 0.7?

Finally, I’m not too familiar with bitmask, but if you want to ignore pitch and yaw, what would the corresponding type_mask and quaternion look like?

Hi @cswkim ,

As a quick answer, you first need to understand that the thrust is directly related to the acceleration of the drone (F = m*a) and not the velocity. This means that if the normalized hover thrust of your vehicle is at -for example- 0.5 (force that counteracts the weight of the vehicle), any deviation from this value creates an acceleration that will generate an increasing speed. Note that realistically, the hover thrust of your vehicle won’t be exactly 0.5, so sending 0.5 of thrust will make it climbe or descend with an increasing speed.
This is the reason why we need feedback controllers to control the velocity and position of the drone.

You will be able to find dozens of documents about this topic online, you could start with .

Good luck!

1 Like