Comments (13)
FYI the feedback I got from Ublox regarding this issue:
it seems to be a delay in the information coming through. Then it seems to come through all at once with some of it being rejected.
We reviewed the logs for FCUUART1COM15__9600230319_125817.ubx
and can see that there are bytes on UART1 interface that are unknown in UBX-MON-MSGPP - not perceived by the receiver as SPARTN (see following screen shot).
Please check in UBX-RXM-COR if all the SPARTN message types come through. HPAC messages are really important to be all there to get in RTK . There might be limitation on UART buffer not letting all the HPAC messages get through.
It appears that not all messages are coming through - see below screen shot snip for UBX-RXM-COR when I debugged FCUUART1COM15__9600230319_125817.ubx
.
The file they analyze where I send the SPARTN through a Pixhawk 4 using send_rtcm_data
:
FCU_UART1_COM15___9600_230319_125817.zip
from px4-gpsdrivers.
I guess the limitation of 180 bytes of the GPS_RTCM_DATA could be an issue as we have sometimes bigger messages.
You can split up the SPARTN messages, and always fill the full buffer. That's what RTK is doing.
I would check if there's some buffering anywhere in between on the link.
from px4-gpsdrivers.
Actually, I did not explain well. I first sent the full data with send_rtcm_data(), but I was receiving "Too Long" from MAVSDK so I split the SPARTN data into messages of 180 bytes like you propose and this is the error ublox provided the support.
The same code (splitting the messages in 180 bytes) is working well when not forwarded by PX4 so I guess PX4 is buffering somewhere
from px4-gpsdrivers.
What is the data rate? And what hardware do you use (client, link, autopilot)?
from px4-gpsdrivers.
- Host:
Linux Ubuntu 21.04 running MAVSDK C++ v1.4.9 - FCU:
Pixhawk 4 with PX4 v1.13.2 (+ custom version with SPARTN enabled as mentioned above) - F9P:
CUAV F9P RTK
Host with MAVSDK <-- USB @921600 --> Pixhawk 4 through UART (TELEM4) @ 115200 ---> CUAV F9P through UART1
from px4-gpsdrivers.
That's fairly direct. You can monitor the injection rate with gps status
or uorb top gps_inject_data
from px4-gpsdrivers.
Here is the output of gps status
. I see that RTCM injection rate is at 0.39 Hz. Is it this value which should be increased and if yes, could you help me to define where is the place to do it ?
from px4-gpsdrivers.
@bkueng I tried to increase value of some variables which I supposed to be related to RTCM limitation:
RTCM_INITIAL_BUFFER_LENGTH
inrtcm.h
max_num_injections
ingps.cpp
- always return false for
RTCMParsing::addByte(uint8_t b)
inrtcm.cpp
but it does not fix my issue. I probably misunderstand where the RTCM is still truncated or adapted. If you have any guidance to provide it is more than welcome :)
from px4-gpsdrivers.
0.39 Hz is rather low. I'm not familiar with SPARTN though. You can compare it against the sending rate (before MAVSDK). I'd look into how MAVSDK handles the data. On PX4, the data is forwarded as is. The only risk is if the data rate is too high, leading to drops.
@bkueng I tried to increase value of some variables which I supposed to be related to RTCM limitation:
None of these things should make a difference, as RTCM parsing is only used for reading RTCM output from a GPS. In your case I assume you get the SPARTN data from an internet provider?
from px4-gpsdrivers.
does fix my issue. I probably misunderstand where the RTCM is still truncated or adapted. If you have any guidance to provide it is more than welcome :)
Did you mean "doesn't fix my issue" or did it actually fix the issue?
from px4-gpsdrivers.
Did you mean "doesn't fix my issue" or did it actually fix the issue?
arf yes sorry it does not fix my issue. I corrected in the previous comment thank you.
I'm running out of time to dig into the code unfortunately so I will go back to my previous solution (stream PointPerfect through USB of F9P device instead of forwarded by PX4 as I wanted to do). At the end of the day, it could be really interesting to implement that capability
from px4-gpsdrivers.
So it's a dead end with ARK GPS RTK (that only has debug port for that and it's no longterm solution).
Also I don't have that level expertise to try and fix this; but I vote this up 👍 Trying to figure out this on conceptual level
from px4-gpsdrivers.
@paujar The ARK RTK GPS has UART2 exposed from the F9P. SPARTN could be injected directly there. Or there is no reason preventing it from being transmitted over CAN and injected through the MCU over UART1.
from px4-gpsdrivers.
Related Issues (20)
- SBF driver HOT 3
- sensor_gnss_relative_s type not defined HOT 6
- Disabling UBX configuration HOT 3
- Convert ITOW to UTC
- Feature Request: Enable and Parse RXM-COR and RXM-RTCM messages from a UBX module HOT 2
- GNSS accuracy loss for Trimble MB-two caused by wrong Type casting HOT 3
- Holybro UM982 GPS heading HOT 1
- Wrong mapping when reading UBX-NAV-SAT messages HOT 1
- SBF GPS Support HOT 5
- UBX with u-blox neo-m9n does not work HOT 2
- @Femtomes did you see my comment here?
- uBlox Protocol Parser Issue with NAV-SAT and NAV-SVINFO HOT 2
- After fixing the baudrate, M8N module can not be detected.
- UBX _buf.payload_rx_nav_pvt.nano can become negative
- Feature Request: Implement configuration of used GNSS systems
- M9N UART Broken on Latest Commit HOT 6
- cant connect Emlid Reach M+
- Submodule not working HOT 2
- Potential bug in GPSDriverUBX::receive HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from px4-gpsdrivers.