Closed yishaiSilver closed 3 months ago
Okay, just to follow up, I was providing RTCM3 data. The default setting of uart1/in
only provides RTCM. By setting it to 35 (UBX+NMEA+RTCM3), I can now provide correction data, but only if the driver is started after the provider. Otherwise it will crash with the following message: [ublox_gps_node]: U-Blox ASIO input buffer read error: End of file, 0
. Is there any way of fixing this?
Another issue is that the accuracy as reported by hAcc seems to differ wildly from the covariance reported by the following: https://github.com/sparkfun/Qwiic_Ublox_Gps_Py/blob/9956dbca971d5c4273aff13decd89716c1a4a97c/ublox_gps/ublox_gps.py#L461C9-L461C81
It seems like hAcc might be a better estimate according to the datasheet, but I thought it was an interesting discrepancy worth bringing up.
I have been experiencing the same U-Blox ASIO input buffer read error: End of file, 0
issue. Waiting for a solution
@yishaiSilver I am working on the same thing to receive RTCM messages. Can you share what is your config setting in https://github.com/gokulp01/ros2-ublox-zedf9p/tree/master/ublox_gps/config?
In addition, I have one more question about the message type. Did you install rtcm msg type in the same colcon work space?
I don't have access to the file right now, but I remember making the following changes:
uart1: \ baudrate: 460800
to uart1: \ baudrate: 460800 \ in: 35
, which allows RTCM3 data, not the default of RTCM.I have been experiencing the same
U-Blox ASIO input buffer read error: End of file, 0
issue. Waiting for a solution
Beginning the transmission of correction data before running the ros2 node fixed this for me after making the changes listed above. Maybe just add a delay in your launch file?
It would be nice if there were a better way to integrate correction data into this node, but a separate process seems to be working for me, so I'm closing this issue.
I was previously using a simple driver that I wrote myself (which just interfaces with the python library provided by SparkFun), but this one seems to be vastly superior. The only exception is that I see no way to provide RTCM3 correction data to the board. I have tried writing it to the same UART device as the one connected to by the driver, but then the driver crashes. If I run the correction data and then the driver, it seems like the board never receives the correction data.
If I use a separate USB cable, I can send correction data to the board (and the RTK light flashes), but it doesn't seem like I ever get a fix (and for some reason, the light stops flashing after a bit). This was not the behavior when I was using my own, simple driver. Likewise, I can see that the position_covariance in /fix never seems to go down, which is odd.
For context, my base station is about 51 Km, away, but this was close enough for a fix using my driver. It seems like it may be an issue with this driver, however, because the following line got printed by this driver:
[ublox_gps_node-1] [WARN] [1716407245.322928566] [ublox_gps_node]: INF: DGNSS long baseline (51 km)