septentrio-gnss / septentrio_gnss_driver

ROS 1 & 2 driver for Septentrio GNSS & INS receivers
BSD 3-Clause "New" or "Revised" License
72 stars 37 forks source link

Error "/septentrio_gnss: gnss" after launching rover.launch #80

Closed paulo-belarmino closed 1 year ago

paulo-belarmino commented 1 year ago

Hello guys,

When I launched septentrio_gnss_driver rover.launch param_file_name:=rover, I got the error: [ERROR] [1684219558.118107529]: /septentrio_gnss: gnss. The hardware and software setup are described below:

Additional notes:

I have tried to build the package from source and binary install, but both lead to the same error. In addition, I'm able to connect via Ethernet-over-USB IP address 192.128.3.1. A screenshot is attached below:

Screenshot from 2023-05-16 09-04-18

After some minutes I got the message in the terminal: [ INFO] [1684220890.105052450]: /septentrio_gnss: TryParsing() method finished since it did not receive anything to parse for 10 seconds..

Configuration Settings for the Rover Rx in the rover.yaml file:

GNSS/INS Parameters

device: tcp://192.168.3.1:28784

serial: baudrate: 921600 rx_serial_port: USB1 hw_flow_control: off

login: user: "" password: ""

frame_id: gnss

imu_frame_id: imu

poi_frame_id: base_link

vsm_frame_id: vsm

aux1_frame_id: aux1

vehicle_frame_id: base_link

local_frame_id: odom

insert_local_frame: false

get_spatial_config_from_tf: false

lock_utm_zone: true

use_ros_axis_orientation: true

receiver_type: gnss

multi_antenna: true

datum: Default

poi_to_arp: delta_e: 0.0 delta_n: 0.0 delta_u: 0.0

att_offset: heading: 0.0 pitch: 0.0

ant_type: "Unknown" ant_serial_nr: "Unknown" ant_aux1_type: "Unknown" ant_aux1_serial_nr: "Unknown"

leap_seconds: 18

polling_period: pvt: 500 rest: 500

use_gnss_time: false

rtk_settings: ntrip_1: id: "" caster: "" caster_port: 2101 username: "" password: "" mountpoint: "" version: "v2" tls: false fingerprint: "" rtk_standard: "auto" send_gga: "auto" keep_open: true ip_server_1: id: "" port: 0 rtk_standard: "auto" send_gga: "auto" keep_open: true serial_1: port: "" baud_rate: 115200 rtk_standard: "auto" send_gga: "auto" keep_open: true

publish:

For both GNSS and INS Rxs

navsatfix: false gpsfix: true gpgga: false gprmc: false gpst: false measepoch: false pvtcartesian: false pvtgeodetic: true basevectorcart: false basevectorgeod: false poscovcartesian: false poscovgeodetic: true velcovgeodetic: true atteuler: false attcoveuler: true pose: false twist: false diagnostics: false

For GNSS Rx only

gpgsa: false gpgsv: false

For INS Rx only

insnavcart: false insnavgeod: false extsensormeas: false imusetup: false velsensorsetup: false exteventinsnavcart: false exteventinsnavgeod: false imu: false localization: false tf: false

INS-Specific Parameters

ins_spatial_config: imu_orientation: theta_x: 0.0 theta_y: 0.0 theta_z: 0.0 poi_lever_arm: delta_x: 0.0 delta_y: 0.0 delta_z: 0.0 ant_lever_arm: x: 0.0 y: 0.0 z: 0.0 vsm_lever_arm: vsm_x: 0.0 vsm_y: 0.0 vsm_z: 0.0

ins_initial_heading: auto

ins_std_dev_mask: att_std_dev: 5.0 pos_std_dev: 10.0

ins_use_poi: false

ins_vsm: ros: source: "" config: [false, false, false] variances_by_parameter: false variances: [0.0, 0.0, 0.0] ip_server: id: "" port: 0 keep_open: true serial: port: "" baud_rate: 115200 keep_open: true

Logger

activate_debug_log: false

thomasemter commented 1 year ago

Hi @paulo-belarmino,

I am sorry for the inconvenience. The printed error is actually not an error, see here. This indicates that you are receiving data.

Somehow the connection seems to get lost after a few minutes. Are you still able to access the web interface or ping the device when this happens?

paulo-belarmino commented 1 year ago

Hi @thomasemter

Thanks for your quick reply. You are right even if this message I'm able to echo the rostopic /gpsfix, for example, but I still get the error "/septentrio_gnss: TryParsing() method finished since it did not receive anything to parse for 10 seconds..". When that happens the messages are no longer published, however the web interface is accessible and updating the data.

thomasemter commented 1 year ago

Unfortunately, I do not know exactly where the problem might lie. Can you please provide a screenshot of this page, when it happens?

image

Also, we have rewritten the communication core and it is now able to reconnect in case the connections is interrupted. It is not released yet, but you might test the development branch, if you like.

paulo-belarmino commented 1 year ago

Now it's mostly working, I couldn't reproduce the error again under the same conditions. I just got the error when I tried to launch the package without getting PVT. Below you can take a look at the requested page.

Screenshot from 2023-05-17 12-55-59

thomasemter commented 1 year ago

Thank you for the screenshot. It indeed seems like the connection (IP13 in this case) gets lost. Can you please try out the development branch, if it's not too much trouble?

paulo-belarmino commented 1 year ago

Sorry for the late reply. I was performing many tests on different days. So far my conclusion is the warning "/septentrio_gnss: TryParsing() method finished since it did not receive anything to parse for 10 seconds.." raises intermittently, especially when PVT solution is not provided. Maybe this happens because I'm using cheap antennas and the weather is not nice, mostly cloudy. I didn't get the warning using the dev branch, but I've tested fewer times. By the way, even in the dev branch I get the error message "/septentrio_gnss: gnss", but the messages are being published.

thomasemter commented 1 year ago

Ah ok, then the reason was that in fact no data was received :-) In the newest version, we have overhauled the communication core, which will not timeout anymore.

If you still get the error message you do not have the latest development version. I did overlook, that the development branch did not have the latest pull requests merged until last week.

paulo-belarmino commented 1 year ago

Okay, thank you so much.