Hi there!
I am trying to use Eagleye in a V2X project. The V2X device on the vehicle estimates its position using Eagleye, based on NMEA messages from a GNSS receiver and an IMU. This setup does not use RTK.
Problem description
After initialization, the Eagleye latitude/longitude output shows noticeable error. Over time, the position begins to drift and occasionally exhibits sudden jumps.
After debugging, I identified two likely causes:
- NMEA conversion issue (hemisphere handling)
Since I am operating in Brazil, I noticed that the conversion from NMEA GGP to latitude/longitude does not correctly account for hemispheres (S/W).
I have implemented a fix locally and will submit a PR.
- Irregular publishing of enu_absolute_pos
The enu_absolute_pos topic sometimes stops publishing for extended periods (up to ~15 seconds). During these gaps, the position interpolation node accumulates significant drift. When a new message finally arrives, the output position “jumps” to the corrected value.
Additional observations
- My GNSS (u-blox M9N) is not high-precision, but when visualized on a map, the raw measurements appear reasonably stable (It is collected in the OBU through
gpsd, then I receive the NMEA at my laptop through TCP). I expected Eagleye to improve the trajectory slightly using IMU data (Xsens MTi-3), but instead the output degrades over time.
I am unsure whether the issue is due to GNSS quality, configuration, or a problem in the processing pipeline.
Reproduction data
I recorded a video demonstrating the issue and provided a ROS bag with the collected data: https://drive.google.com/drive/folders/1eyJCYip92aSTOBz34YeXIAzTBFyX06ll?usp=sharing.
Code
I am using my fork of Eagleye on the Autoware branch: https://github.com/LMA-FEM-UNICAMP/eagleye/tree/autoware-main.
Steps to reproduce
# Terminal 1
ros2 launch eagleye_can_velocity_converter can_velocity_converter.xml
# Terminal 2
ros2 launch eagleye_rt eagleye_obu.launch.py
Note:
It seems more stable to start the rosbag in a paused state first (-p flag), then launch Eagleye. If Eagleye is started before playback, the GPGGA subscriber sometimes stops working unexpectedly.
Questions
- Is the intermittent publishing of enu_absolute_pos expected behavior?
- Are there recommended configurations or filters for lower-quality GNSS (non-RTK) setups?
- Could this issue be related to timing/synchronization between GNSS and IMU?
Thank you very much for your time!
Hi there!
I am trying to use Eagleye in a V2X project. The V2X device on the vehicle estimates its position using Eagleye, based on NMEA messages from a GNSS receiver and an IMU. This setup does not use RTK.
Problem description
After initialization, the Eagleye latitude/longitude output shows noticeable error. Over time, the position begins to drift and occasionally exhibits sudden jumps.
After debugging, I identified two likely causes:
Since I am operating in Brazil, I noticed that the conversion from NMEA GGP to latitude/longitude does not correctly account for hemispheres (S/W).
I have implemented a fix locally and will submit a PR.
The enu_absolute_pos topic sometimes stops publishing for extended periods (up to ~15 seconds). During these gaps, the position interpolation node accumulates significant drift. When a new message finally arrives, the output position “jumps” to the corrected value.
Additional observations
gpsd, then I receive the NMEA at my laptop through TCP). I expected Eagleye to improve the trajectory slightly using IMU data (Xsens MTi-3), but instead the output degrades over time.I am unsure whether the issue is due to GNSS quality, configuration, or a problem in the processing pipeline.
Reproduction data
I recorded a video demonstrating the issue and provided a ROS bag with the collected data: https://drive.google.com/drive/folders/1eyJCYip92aSTOBz34YeXIAzTBFyX06ll?usp=sharing.
Code
I am using my fork of Eagleye on the Autoware branch: https://github.com/LMA-FEM-UNICAMP/eagleye/tree/autoware-main.
Steps to reproduce
Note:
It seems more stable to start the rosbag in a paused state first (
-pflag), then launch Eagleye. If Eagleye is started before playback, the GPGGA subscriber sometimes stops working unexpectedly.Questions
Thank you very much for your time!