Skip to content

NavSat / GPS sensor noise has wrong description? Or gz-sensors wrong implementation? #1572

@peci1

Description

@peci1

navsat/horizontal noise says the noise is in meters:

Noise parameters for horizontal position measurement, in units of meters.

NavSat sensor in gz-sensors adds noise in degrees of lat/lon:

https://github.com/gazebosim/gz-sensors/blob/d266990ace6bb0d4da1ac79e55731d3b47890616/src/NavSatSensor.cc#L180

this->SetLatitude(GZ_DTOR(iter->second->Apply(this->Latitude().Degree())));

There is a related issue in gazebosim/gz-sensors#325 .

We need to decide what is correct and what is not.

I'd vote for meters because that is how the error really manifests. Error in degrees of longitude has a different metric meaning for each latitude and is thus much less useful.

The migration consequences of choosing meters wouldn't be that bad. If somebody had specified noise of 1e-5 to get a +- meter precision, he'd end up with a super precise sensor. If we chose that degrees are correct, the user would end up with a GPS that jumps kilometers.


To be precise, this is what gz-sim currently does:

  • position:
    • horizontal: degrees
    • vertical: meters
  • velocity:
    • horizontal: meters/s
    • vertical: meters/s

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions