Hi all, I’m new to the forum.
I am making my quadcopter with 3 GPS receivers on it. I want to blend their data to increase the position estimation accuracy. I have successfully connected them through UAVCAN and while debugging it I saw the UAVCAN driver throws away messages from all but one (the first-heard) GPS receivers.
Even if I resolve that and publish gps data from different receivers on different topics, EKF2 is currently hardcoded to use exactly 2 gps receivers for blending. So I have to either:
- extend ekf2 to support more than 2 gps receivers, or
- blend all gps data on the UAVCAN level and send to ekf2 as if it were data from one physical receiver.
My questions are:
- Have anyone done anything similar, or am I reinventing the wheel?
- Will the community accept the pull request with EKF2 changed to support >2 GPS receivers?
Why do you assume that having more GPSs will increase the position estimation accuracy?
Possible it increase the reliability?
I my opinion for redundancy reason 3 is a good amount.
During log analysis, what I’ve noticed is:
when conditions are perfect (small DOP, big number of satellites), then redundant GPS don’t help much and output me pretty much the same data.
But when the conditions aren’t so perfect, then at any given point of time the receivers give me GPS data with eph/epv being significantly different. Since eph/epv is the indicator of position estimation accuracy, I can pick between the coordinates based on eph to only use the most accurate one, or, what I’m currently doing, calculate a weighted average.
Another reason is that after turning on the PX4, I noticed that all of the connected GPS receivers requires different time before they publish first “valid” GPS data (up to 30 seconds difference). So if I accept first valid data from first “woken up” receiver and start exploiting it, I will decrease time to first fix.
I am just experimenting anyway and may be completely wrong about the above, but there has to be solid reasons why Dji matrice 600 has 3 gnss modules onbard
Well redundancy definitely helps, but my understanding is (and I’d love some input from EKF2 devs) that 2 or more closely co-located GPS receivers would provide highly correlated data and at the same time would be subject to the same systematic errors. If you have 3 identical clocks agreeing with each other, it does not mean that all 3 show correct time.
As for DJI - it might as well be type of Veblen good.
I would suggest you to investigate moving baseline: Two GPS RTK that are connected together to be able to know the true north heading.
You could also investigate PPP performance & time to fix (UBX F9P).