ardrone_autonomy icon indicating copy to clipboard operation
ardrone_autonomy copied to clipboard

Accuracy of Navdata and controlling the drone through velocity command.

Open sinamr88 opened this issue 5 years ago • 6 comments

Hi All,

I wonder if anyone has an estimation of the accuracy of Navdata for indoor environments, in particular velocities and accelerations. Moreover, how accurate the drone can be controlled through the velocity command? Is there a big difference between indoor and outdoor situations? I don't need to know the exact value, an order of magnitude would be enough 😃 Thanks a lot in advance. Best, Sina

sinamr88 avatar Aug 01 '18 16:08 sinamr88

The short answer is: not very accurate. I've never found dead-reckoning to be useful on these drones as there is just too much noise, you need to use some sort of state-estimation.

For the velocity command control, see #116 . I implemented a fairly accurate control scheme in the uga_tum_ardrone package (https://github.com/thinclab/uga_tum_ardrone) based on a specialized PID controller (https://github.com/thinclab/uga_tum_ardrone/blob/732b3a132a0b35e42f350d09d31a26643eea5422/src/autopilot/DroneController.cpp#L148).

I would suggest trying that package first to see if it meets your needs before trying to do control yourself.

kbogert avatar Aug 02 '18 14:08 kbogert

Thanks a lot for the reply. It was indeed very helpful. :+1: :+1: Just to clarify, your control works in indoors environment and there is no need to external measurements, am I right?

sinamr88 avatar Aug 02 '18 14:08 sinamr88

I have controlled the drones in both indoor and outdoor environments with uga_tum_ardrone. I'm not sure what you mean by external measurements, the package does use the front camera to detect features in the environment in order to estimate its pose.

kbogert avatar Aug 02 '18 14:08 kbogert

It is more clear now.... Thanks a lot :) I meant, ,measuring the position of the drone by using external sensors, e.g., pozyx or Optitrack.

sinamr88 avatar Aug 02 '18 14:08 sinamr88

If you want to rely only on internal measurements (not ptam for example) I implemented a very simple PID velocity controller for the Ardrone some time ago: https://github.com/raultron/ardrone_velocity

Later, Tobias Tüylü during his master thesis in our institute tried to improve it by including a state estimator: https://github.com/raultron/ardrone_velocity_ekf

The last one works with internal measurements with the possibility of integrating external measurements into the state estimator.

The biggest challenge for us was the delays in wifi communication which are hard to deal with in the controller since the delays are not constant. We found that the internal odometry measurements are quite good but with the Wifi delay is hard to do real-time control.

raultron avatar Aug 03 '18 10:08 raultron

Thank you "raultron" for these vailable informations about ardrone_velocity_ekf packages, I appreciate

ahmedallam900 avatar Nov 21 '18 10:11 ahmedallam900