Geographic Coordinates
Important to know this if you’re working with self-driving cars / underwater robots that travel longer distances, as you will need to work with those coordinates provided by a GPS.
Geographic coordinates are mainly represented in 4 ways:
- Local Tangent Plane Coordinates coordinate system (cartesian)
- Arbitrary Cartesian coordinate system that you set origin yourself
- Actually useful so there isn’t a HUGE transform between
earth
frame andodom
frame
- World Geodetic System (WGS84) (lat/long/altitude)
- UTM Coordinate System (cartesian + region based)
- ECEF Coordinate System (cartesian) (standard used in ROS2)
Resources
- https://www.ros.org/reps/rep-0105.html
- https://dirsig.cis.rit.edu/docs/new/coordinates.html
- https://de.mathworks.com/help/map/choose-a-3-d-coordinate-system.html
When do you need to think about geographic coordinates?
You don’t need to worry about this unless you’re working with robots that travel long distances (think kilometers), thus you’d be using a GPS, which give you geographic coordinates.
For smaller robots, you usually just define an origin (the
map
frame) at an arbitrary location yourself, without needing locate it relative to the earth.
- In that sense, all position is relative. When we start going across the milky way, perhaps we will not use
earth
as the origin, but rather thesun
I'm confused, why can't you just use latitude, longitude, and altitude?
Because robots often rely on precise 3D calculations. Cartesian coordinates (like ECEF) make distance and movement planning simpler and faster, avoiding complex conversions needed with latitude and longitude.
- There’s a package navsat_transform that does that for you