GPS Accuracy, Refresh Rate, and Kalman Filtering?

Hello All!
I am working on a project where I have two devices that constantly trying to locate eachother using GPS modules and LoRa transcievers.
Its a buddy tracker for spearfishermen, to make it easier to locate your partner when you're out in the ocean.

Here's a quick example:

And a less quick demo:


However, I am having some growing pains with the precision of my gps modules.
I'd like to be able to use the two gps coordinates to calculate a bearing between the two devices, and use the IMU heading to determine its actual heading.
The IMU is actually working great (BNO055), its actually the gps precision that is gumming up the works.

For example, imagine the red markers are the devices true location, and the circle around them represents their maximum error.
The green line represents the true bearing between devices, and the red the worst case bearing output.

8390777863?profile=RESIZE_584xBearing Error vs Distance:

8390914897?profile=RESIZE_710x

This small plot shows how severe the bearing error can be in degrees (y axis), and the distance between devices in meters (x axis) given that both units are off by 2m.
So, if you're 5 meters away from your partner, the device could be 40 degrees off - not exactly what I'm shooting for.


Heres about 5 minutes of data from my gps modules at the beach:

8390854488?profile=RESIZE_710xIn this setup, the modules are about 10cm apart from eachother and stationary the entire time. Modules 1 & 2 are some NEO-6M cheapies, and module 3 is an adafruit 'ultimate' gps. 
I'm wondering what options are available to me to help improve this performance a bit and I know the DIY drones community has a lot of experience with this sort of thing.


Some specific questions:
1) If I use a faster refresh rate on my gps module, can I use a moving average to improve the accuracy of the units? Or do the GPS modules already do that kind of thing automatically if you have them in a slow refresh mode?

2) Given that I have some linear acceleration data in global reference frame from the BNO055, it seems like some sort of Kalman filter should be possible to improve the GPS accuracy. I know that the acceleration is noisy, and that some versions of ardupilot have this option available, but I've never deployed a Kalman filter before (lots of FIR filters...) and I was wondering if anybody had really good example or literature of this? What kind of performance improvements would be reasonable to expect if I deployed it correctly? Just need a little hand holding XD

Thanks for your time! Let me know what you think!

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Activity

DIY Robocars via Twitter
yesterday
DIY Robocars via Twitter
yesterday
DIY Drones via Twitter
Thursday
DIY Robocars via Twitter
RT @Heavy02011: @diyrobocars : A Home-brew computer club* for Connected Autonomous Driving on Jan 23rd, 2021 https://www.meetup.com/Connected-Autonomous-Driving/events/275728684/ #Meetu…
Thursday
DIY Robocars via Twitter
Thursday
David Hori liked Isabella Domi's profile
Wednesday
DIY Robocars via Twitter
RT @Heavy02011: ⁦@diyrobocars⁩ Autonomous Driving Assembly at #rC3. join us at https://rc3.world/rc3/assembly/diyrobocars-f1tenth/ ⁦@f1tenth⁩ ⁦@DAVGtech⁩ ⁦@DWalmroth⁩…
Monday
DIY Robocars via Twitter
RT @chr1sa: New car designs coming for our next @DIYRobocars @donkey_car virtual race on the 23rd. Choose any one you want at race time Le…
Monday
DIY Robocars via Twitter
RT @RoboticMasters: Thanks to @EllerbachMaxime and the Sydney Uni Capstone Students the @donkey_car @diyrobocars simulator is getting a ma…
Monday
DIY Robocars via Twitter
Jan 6
DIY Robocars via Twitter
Dec 28, 2020
DIY Robocars via Twitter
An interesting line-following simulator to use with with your robocars: https://github.com/ron-grant/LFS
Dec 23, 2020
DIY Robocars via Twitter
Dec 23, 2020
DIY Robocars via Twitter
An improved version of the @IntelAIResearch OpenBot: https://diyrobocars.com/2020/12/14/an-improved-version-of-the-intel-openbot/
Dec 14, 2020
DIY Drones via Twitter
An improved version of the Intel OpenBot https://ift.tt/2KkHT8Q
Dec 14, 2020
DIY Robocars via Twitter
Dec 10, 2020
More…