Hi,
I have been doing some testing on the new version which has these fixes. For one thing, I can confirm that the GPS speed problem seems to have been fixed. The sensor_gps.00/vel_d_m_s now parses and logs correctly.
So I am going to try to reactivate the use of 3D velocity in the EKF2_GPS_CTRL parameter, which I had disabled, and make a test flight.
On the other hand, I see that many other things are still not working properly.
The heading value in sensor_gps.00/heading is still not logged. Although it is parsing correctly as it can be seen live in QGC Mavlink inspector.
The flag cs_gnss_yaw, which indicates whether gps yaw is being used, is never set to 1, even though the yaw measurements given by Unicore are being used correctly. And I can confirm that as the drone navigates in flight correctly and shows the correct heading in QGC and has no other heading source such as a compass in use.
And finally, the problem that bothers me the most. When initialize the drone and leave it still on the ground, no matter how long you wait it never fixes global position until you “move it”.
It remains constantly in a state where it has not performed the Heading alignment (Local frame orientation), so the drone heading is still seen in QGC as 0 even though it is already receiving heading data from Unicore (it is seen in Mavlink inspector). In addition, GNSS data fusion has not yet started.
When the drone is moved all this things happen at once. The heading alignment (Local frame orientation) is performed, the GNSS data fusion start and therefore the global position is fixed.
As to what I mean by “ move the drone”. I have done multiple experimental tests and have concluded that what it needs is to be moved horizontally with a certain speed. Rotating it about any axis, regardless of the rotational speed and without horizontal movement, has no effect. In addition, moving the drone horizontally, very very slowly, regardless of the distance it moves, has no effect either. The key is to move it horizontally, it does not need to be a long distance (around 1m is enough), but with a certain speed measurable by GPS.
The only thing I can think of is that a certain GPS speed is needed to get a ground course measurement and there is some confusion between ground course and heading that prevents the heading alignment from being performed. This is purely my speculation and I have not been able to verify it.
If someone could help me out and try to figure out what might be going on with this last thing. I would appreciate it very much.
I attach flight LOGs, from boot and disarmed, where this event con be seen (I download the log and analyze it in PlotJuggler):
https://review.px4.io/plot_app?log=78232b58-eb00-4078-8f60-5eb129246d4f
https://review.px4.io/plot_app?log=57174495-6172-4dd2-b977-911eedb8c1a1
If any of you can think of a test I can perform, let me know and I will do it.
Thank you!