rotors_simulator icon indicating copy to clipboard operation
rotors_simulator copied to clipboard

Ardrone Arm Length And Stability

Open ttdm opened this issue 6 years ago • 1 comments

Hello,

In the ardrone.xacro file and in the ardrone_yaml, an arm length = 9cm is defined, then the rotors are placed at xyz="${sqrt2 * arm_length} -${sqrt2 * arm_length} ${rotor_offset_top}" with sqrt2 = 1.41

It's a little weird because each rotors is at 2*arm length of the origin.

This situation causes stability issues : Giving a simple position step, the drone oscillate quickly around it's end point and does not stabilize with its default settings. On the other hand, when modifying the value of sqrt2 from 1.41 to 0.707 ( which correspond at a reduction of the arm length to 9cm), the drone answer to a position step seems a lot smoother and it very quickly stabilize itself at its final commanded position. (The simplest way to check it is to start the mav_hovering_exemple with the ardrone and to move in the gazebo simulator the drone at around 1m of it's initial position).

This stability issue probably comes from the fact that in the ardrone.yaml, used in the gazebo_multirotor_plugin, the arm length is defined at 9cm which is different from the default effective one in gazebo. When correcting the arm length in either file to make it identical, the drone seems a lot more stable.

After some tests and a measurement of the real arm length ( which is 18cm ( and which fit the mesh) ), what I advise is :

  • in ardrone.yaml, to change the arm_length from 9cm to 18cm
  • (to keep consistency (and logic), in ardrone.xacro change the arm_length from 9cm to 18cm AND transform sqrt2 en sqrt2_inv = 0.707

TTDM,

ttdm avatar May 09 '18 13:05 ttdm

I have also found this problem, and I agree with your solution!

scarlett-sun avatar Dec 03 '23 13:12 scarlett-sun