Include isometric transformation to translate and rotate the origin of the maliput inertial frame.
- Dominant language
- C++
- Stars
- 16
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
**Feature request**
`maliput` is aware of only one inertial and Cartesian frame for which `InertialPosition` is used. In the context of simulation, a different origin to the inertial frame might be needed (a translation might not be enough).
**Context**
Previously, at the API level we had two queries:
- `GeoPosition Lane::ToGeoPosition(const LanePosition& lane_position)`
- `GeoPosition Lane::ToInertialPosition(const LanePosition& lane_position)`
`ToGeoPosition` returned the frame conversion to the `maliput` inertial frame. `ToInertialPosition` returned the frame converion to the _transformed_ `maliput` inertial frame, i.e. with a different origin.
We simplified the API and kept just one API method, `ToGeoPosition`. Later, we renamed `GeoPosition` to `InertialPosition` ( #361 ) and with it all the related APIs.
Also, we evaluated to incorporate lat-long-elev conversions and / or including proj4 in #356 . The decision was to remove it.
**Victory condition**
Add the isometric transformation and make `ToInertialPosition` aware of it for all backends.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the Lane::ToGeoPosition and ToInertialPosition APIs across all backends, using the issue's prior API history and the related changes in #361 and #356 as context. Define the isometric transformation's API and integration points before implementation. Done means every backend makes ToInertialPosition honor the transformed origin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100