Skip to content

[Feature/Bug] Improve Vehicle Heading Setting and Synchronization in SimControl #11

@daohu527

Description

@daohu527

Title: [Feature/Bug] Improve Vehicle Heading Setting and Synchronization in SimControl

Description

Currently, setting the vehicle's heading in Dreamview's sim_control mode has synchronization issues and suboptimal user interaction. Manual adjustments to the heading are often ignored by downstream modules or are difficult to perform accurately.

Identified Issues

  1. Sync Failure: The updated heading in the UI is not consistently propagated to the Planning and Routing modules, causing the vehicle to reset to its original orientation when the simulation starts.
  2. UI Precision: The current "click-and-drag" or "point" method lacks precision, especially when trying to align the vehicle perfectly with a specific lane or a narrow path.

Proposed Improvements

1. Data Synchronization (Backend)

  • Ensure that any change in the vehicle's Heading triggers an immediate update to the LocalizationEstimate and RoutingRequest protobuf messages.
  • Implement a SetVehiclePose service that broadcasts the new state to all active modules while the simulation is in a "Paused" or "Setup" state.

2. Interactive Rotation Gizmo (Frontend)

  • Introduce a 3D Rotation Ring around the vehicle when it's selected.
  • Allow users to rotate the vehicle by dragging the ring, with real-time degree feedback.

3. Lane Alignment (Smart Snapping)

  • Add a "Snap to Lane" toggle. When enabled, the vehicle's heading should automatically align with the centerline of the nearest map lane.

4. Two-Point Setup

  • Implement a mode where:
  • Click 1: Sets the position (X, Y).
  • Drag & Release: Sets the heading vector from the initial click point.

Expected Behavior

The vehicle should stay at the user-defined heading, and downstream modules (like Planning) should immediately generate a trajectory consistent with this new orientation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions