Implement a "Localization History & Pose Visualization" feature in Apollo Dreamview.
Requirement 1: TF-style Pose Display
- Goal: Render a 3D coordinate frame (X-red, Y-green, Z-blue) at the vehicle's current location.
- Input:
apollo.localization.LocalizationEstimate (contains pose.position and pose.orientation).
- UI: Use Three.js
AxesHelper or a custom Shader to represent the orientation.
Requirement 2: Historical Trajectory (Breadcrumbs)
-
Goal: Store and render the past $N$ seconds (e.g., 60s) of localization points.
-
Buffer: Implement a ring buffer to store
(x, y, z) coordinates to prevent memory leaks.
-
Visualization: * Use a
Line or Points object in Three.js.
-
Fade Effect: Apply vertex colors where
alpha decreases as the point gets older.
-
Comparison: Allow overlaying "LiDAR Localization" vs "GNSS-only" trajectories in different colors to spot drifts.
Requirement 3: Performance & Toggle
- Provide a toggle in the Layer Menu to enable/disable "Pose History".
- Downsample the history (e.g., only record at 10Hz even if localization is at 100Hz) to save GPU resources.
Implement a "Localization History & Pose Visualization" feature in Apollo Dreamview.
Requirement 1: TF-style Pose Display
apollo.localization.LocalizationEstimate(containspose.positionandpose.orientation).AxesHelperor a custom Shader to represent the orientation.Requirement 2: Historical Trajectory (Breadcrumbs)
(x, y, z)coordinates to prevent memory leaks.LineorPointsobject in Three.js.alphadecreases as the point gets older.Requirement 3: Performance & Toggle