MapIV / eagleye

Precise localization based on GNSS and IMU.
BSD 3-Clause "New" or "Revised" License
633 stars 140 forks source link

Fix/smooth height estimation(autoware) #304

Closed KYabuuchi closed 10 months ago

KYabuuchi commented 10 months ago

I modified the smoothing_node to only enqueue subscribed positions when the vehicle is in motion. This change ensures that the altitude estimation continues accurately even when the vehicle stops.

In the past, the smoothing_node pushed the data in queue every time and extract data with velocity when calculating the moving average. As a result, when the vehicle stoped, values couldn't be extracted from the queue, causing the altitude to become 0.

The following figure shows the estimated height being zero when the vehicle stops. image

Note

rsasaki0109 commented 10 months ago

Thank you. The changes look fine, so I'll merge them.

rsasaki0109 commented 10 months ago

@Aoki-Takanose Just to confirm, I understand that the moving_judgment_threshold is a threshold used because there are issues with the Doppler velocity at low speeds. However, the Doppler velocity is not used here. Do you know why we are filtering with the moving_judgment_threshold here?

Aoki-Takanose commented 10 months ago

This is because Eagleye requires that GNSS fusion, not just GNSS Doppler, be above a certain speed. This is Eagleye's concept, and the same process is applied to other estimation parts as well.

If there are any problems with this part of the estimation, they can be solved by modifying the parameter values.