A quick note about Droidplanner 'Follow-Me'

311 views
Skip to first unread message

Fredia Huya-Kouadio

unread,
Jun 16, 2014, 12:38:17 PM6/16/14
to Brandon Basso, Arthur Benemann, droidp...@googlegroups.com

While I'm excited about Follow-Me being reintroduced in droidplanner v2, I have some misapprehensions about such an early 'public' reveal, and availability (via the beta tester group).

I had an earlier conversation with Arthur regarding the Follow-Me feature. In short, the feature reliance on the android device internal gps is also one of its major drawback and in my opinion presents several safety issues.
The strength of android is its ability to run on a wide range of devices. That also means that droidplanner will be running on devices that have wildly different internal gps make up, each with their own inaccuracies, quirks and bugs.

In my own testing of the feature (http://youtu.be/c8O6OOwsAY0) , 3 out of 5 times I had difficulties getting it to work as expected. With one instance where I had to quickly get control back to avoid an obstacle collision. And that was using a Samsung galaxy S4 phone, running the latest version of android, and which until a few months ago, was still Samsung latest flagship device.

From my own (quick and short) research, these issues are solvable:

  1. Option 1: white-list devices that have a 'good' gps, and only enable 'Follow-Me' once these devices.
  2. Option 2: It's possible to associate an external gps to an android device, via bluetooth or usb, and use that external instead of the device internal one. Thus option 2 would be to test, and select an accurate 'enough' external gps, and make that a requirement for the 'Follow-Me' feature. 
Option 2 seems the best, as it allows us to control the level of accuracy desired, and provides support for a wider variety of devices than option 1, with significantly less work. 

Arthur, you brought up the fact that either options will reduce the size of the target audience. That's inherently true, but there's no denying, especially when dealing with copters, that it's better to have a feature that work safely, and reliably for a smaller group of users, than one that works 'so-so' for a large one.

Additionally, from a quick look, these external gps seem to be fairly cheap (within the price-range of a telemetry module).

From the 3DR uBlox GPS store page:  'Recommended for multicopters and rover in particular, where GPS accuracy is paramount'. With the two GPS (android device and copter) working in concert for the Follow-Me feature, the level of accuracy offered by the copter's GPS is render mount by the inaccuracies of the phone/tablet GPS.

On a side note, I think (correct me if I'm wrong) both IRIS, and the pixhawk ship with a disclaimer notice. With its growing array of features, it might be time to start introducing a disclaimer notice within DroidPlanner as well.

- Fredia Huya-Kouadio

Craig Elder

unread,
Jun 16, 2014, 2:32:29 PM6/16/14
to droidp...@googlegroups.com, Brandon Basso, Arthur Benemann
Fredia,

Regarding Options 1 & 2, it would be interesting to add the positions recorded by the phone/ tablet, but I suspect you are are experiencing the limit of the precision of (almost) any GPS in any device without the addition of inertial navigation being used in the GCS.

At best we can develop some better smoothing algorithms to the position of the GCS. 




--
## Please take care to answer by email to the original GROUP address, not only to the sender ##
---
You received this message because you are subscribed to the Google Groups "DroidPlanner" group.
To unsubscribe from this group and stop receiving emails from it, send an email to droidplanner...@googlegroups.com.
To post to this group, send email to droidp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/droidplanner/CADzs4xG9QomWyGZt3aGouCkJgCHBAcQ6tR5QpFbzTwMgDAm%2BYQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

squilter

unread,
Jul 11, 2014, 11:06:44 PM7/11/14
to droidp...@googlegroups.com, bra...@3drobotics.com, art...@3drobotics.com
I have now experimented with follow-me on different devices and have gotten wildly different results.  I have tested on a Nexus 5, Nexus 7 and Galaxy S3.  Sometimes it tracked incredibly well, other times it was so inaccurate that I would consider it dangerous.  I think there should be many more safeties built in, even for people with the newest, bestest phone.

It takes a GPS a while to get a good lock.  The google location service will report that the phone has "locked on" to it's location within about 10 seconds.  I have realized that waiting another 30 seconds after that will give a much more accurate location.

Putting a phone into your pocket will decrease GPS accuracy.  But if you already have a solid lock beforehand, this issue is minimized.  When I pulled out my phone, clicked follow me and immediately put it onto my pocket, the copter was off by 20 meters.  When I fiddled around for a few minutes (with GPS searching) and then put it into my pocket, the following was deadly accurate.

The current follow me mode blindly accepts the location that the Android API gives and forwards it to the drone.  I think it is incredibly important for DP to somehow verify that this location is at least somewhat accurate, otherwise pause follow me.  The API location data is not raw GPS data, it also uses wifi triangulation and cell tower triangulation and velocity information to compute it's location.  This allows it to give a semi-accurate location when the GPS does not have a good lock, but we really want to pause follow me when we lose GPS lock.

The Android API does allow reading raw NMEA info from the GPS module.  The GPS module reports it's accuracy.  This could be a solution.

I will do more testing next week and report back.

Craig Elder

unread,
Jul 11, 2014, 11:23:36 PM7/11/14
to droidp...@googlegroups.com, Arthur Benemann, Brandon Basso

What part of the world are you located in?
Unless you are someplace where there is SBAS coverage, I would expect to see 15-30 meter excursions on a good day.

--
## Please take care to answer by email to the original GROUP address, not only to the sender ##
---
You received this message because you are subscribed to the Google Groups "DroidPlanner" group.
To unsubscribe from this group and stop receiving emails from it, send an email to droidplanner...@googlegroups.com.
To post to this group, send email to droidp...@googlegroups.com.

squilter

unread,
Jul 11, 2014, 11:31:57 PM7/11/14
to droidp...@googlegroups.com, bra...@3drobotics.com, art...@3drobotics.com
I am located in the US of A.  We have WAAS here, and the self-reported accuracy of my Garmin etrex is always less than 10 meters.  My GS3 is reporting 3 meter accuracy right now.

Next week I will perform scientific tests.  I will try to calculate the average deviation of multiple different phone GPSs, rather than relying on self-reported accuracy.

squilter

unread,
Jul 14, 2014, 6:01:27 PM7/14/14
to droidp...@googlegroups.com, bra...@3drobotics.com, art...@3drobotics.com
I did some more testing:

GPS ACCURACY
I tested gps accuracy against a known coordinate point.  I got 3m accuracy the first time.  The exact same experiment gave me 9m accuracy 10 minutes later.  This doesn't seem to be very useful data, but here are the average errors:
Samsung Galaxy S3 ~12m
Nexus 5 ~5m
Nexus 7 ~24m

Again, I wouldn't consider this data very reliable.

FUSED LOCATION
The Google "Fused" locationmanager (the most accurate) seems to return either: 1) GPS Location, or 2) Wifi/Cell triangulation Location.  It returns whichever it deems to be more accurate.  Method 2 usually reports an error of exactly 10m in a space with lots of wifi networks.  Probably less out at a flying field with no wifi.  But in my testing it seems to be a lot less reliable than it thinks.  What this means:

If the GPS reports an error of more than 10 meters, FusedLocation will return an inaccurate wifi/cell estimate.  It reports that the error is 10m, when it is probably worse than that.

I wouldn't trust this wifi/cell triangulation.  I think that Follow Me should pause if GPS error is worse than 15m OR if FusedLocation begins returning wifi/cell location.  The problem is that the API won't tell you where the data is coming from.  But it is possible to parse raw NMEA data from the GPS module directly.

REFRESH RATE
The Location updates are coming in at 1Hz through the Google API.  We probably want more.  That's most likely just a setting in our code somewhere.  Most GPS modules work at 5Hz.

Fredia Huya-Kouadio

unread,
Jul 14, 2014, 6:33:52 PM7/14/14
to droidp...@googlegroups.com, Brandon Basso, Arthur Benemann
Thanks for the update, and great work!

While we debate/investigate ways to improve the location data, we can start by abstracting the way the 'Follow Me' module receives, and handles location data. 
That will allow to implement alternative location providers, and to test them against the current option.
For example, as you mention, a location provider can be implemented that parses raw NMEA data from the GPS module.

Brandon, there were mentions a couple days (week?) ago of a collaboration between 3DR, and the AirDog's team: http://www.suasnews.com/2014/07/30012/airdog-and-3d-robotics-team-up-on-next-gen-follow-me-copters/

Is there any plans to integrate some/any of their work on 'Follow-me' into the DroidPlanner code base?

-Fredy

--
## Please take care to answer by email to the original GROUP address, not only to the sender ##
---
You received this message because you are subscribed to the Google Groups "DroidPlanner" group.
To unsubscribe from this group and stop receiving emails from it, send an email to droidplanner...@googlegroups.com.
To post to this group, send email to droidp...@googlegroups.com.

zach...@gmail.com

unread,
Jul 16, 2014, 1:06:10 PM7/16/14
to droidp...@googlegroups.com, bra...@3drobotics.com, art...@3drobotics.com
Regarding the decision to allow only external GPS devices for follow me to work,
There are many many different android devices using a variety of chips so I see whitelisting as an uphill battle of constantly testing different devices.

Only allowing tested external GPS makes sense but it is also worth considering the extra cost and lack of flexibility.

Im suggesting putting an option (with a disclaimer) that will allow Follow Me using any devices internal GPS and then implementing error checking. For example, use returned location data if it is within a certain radius of the last know good location.

Defaulting to a whitelist is good for beginners but advanced users with an untested phone should also have the option to use their devices at their own risk.

PS Keep up the great work!

seb flippers

unread,
Jul 23, 2014, 3:43:46 PM7/23/14
to droidp...@googlegroups.com
As is, Droidplanner will turn off the gps when the screen is turned off (unless you are in follow mode).  This means that if you start follow-me from your pebble (and your phone is off and in your pocket without a gps lock), the phone will start up the gps module, but will pretty much make up locations and send them to the drone until it has a gps lock.  The first couple of seconds will send the drone to some random points, but then it gets a gps lock and the drone goes where it is supposed to go. 

This is a safety problem, so I submitted a pull request to only send guidedpoints when the location accuracy is less than 10m.  This is a good temporary solution.  This means you will press follow and the drone will stay still for 10 seconds until the phone has a gps lock, without any sort of feedback that it is waiting for a lock.  At a bare minimum, we should inform the user as to why it is waiting.


--
## Please take care to answer by email to the original GROUP address, not only to the sender ##
---
You received this message because you are subscribed to the Google Groups "DroidPlanner" group.
To unsubscribe from this group and stop receiving emails from it, send an email to droidplanner...@googlegroups.com.
To post to this group, send email to droidp...@googlegroups.com.

Hsin Ching Sun

unread,
Jun 1, 2015, 12:20:07 PM6/1/15
to droidp...@googlegroups.com, bra...@3drobotics.com, sebfl...@gmail.com, art...@3drobotics.com
Hi,

Thanks for the great information regarding GPS.

I'm now testing follow-me feature on Tower with my partners.

We may encounter a problem which is regarding to the GPS refreshing rate like mentioned on the phone/tablet.

We put Tower v3.1.6 on HTC E9+ which is relatively new phone model in Taiwan.

We noticed a slow refreshing rate for GPS blue point which indicating where the phone is.

For example, we take a walk for about 20 meters but the blue point will be updated like 10 seconds after.

The follow-me feature may not work well due to this slow refreshing rate since the drone kept knowing an old location?

We are wondering the cause, is that a Tower software polling rate problem?  

Is that possible for Tower to do the GPS update smoothly like navigating feature in google map app or it is limited by the nature of GPS on phone/tablet? 

seb flippers於 2014年7月15日星期二 UTC+8上午6時01分27秒寫道:
Reply all
Reply to author
Forward
0 new messages