Because of the controller limitations, I find the crazyflie thrust control very difficult with regards to vertical stability: small inputs put the copter in orbit and, as soon as I release the force... say 'hello' to the earth again! Besides, the spring-loaded controls means that you have to maintain a constant force very precisely if you want to get a constant thrust. The ability to maintain a near-constant thrust is a key requirement for hovering. In fact, the interest for a hover mode in the forum probably indicates that other crazyflie pilots are enduring the same frustrations than me.
I am also very interested in the development of a hover mode. However, a little modification in the "thrust control law" might significantly improve the vertical stability. My thrust control law (implemented in PC-client input.py) is the following:
- The joystick lever angle commands a "rate of change" for thrust.
- Lever forward increases thrust and lever backward decreases it.
- The rate of increase/decrease is proportional to the lever angle.
- Lever at zero (the spring-loaded neutral) commands "no thrust change".
I'd love to have your opinion on this hack and your ideas for improvement. You may find it in my repository