← All projects

Flagship research

FFStreams / FFStreams++

From FFStreams task-and-motion planning to FFStreams++ prediction-aware maneuver planning, developed during my Ph.D.

Ph.D. research · MIPT · Algorithm developer · First author

  • TAMP
  • QCNet
  • CommonRoad
  • C++
  • Python

FFStreams++ demonstrations

Passing an intersection

Animated FFStreams++ intersection-passing scenario showing vehicle motion and trajectories.
FFStreams++ plans the vehicle’s passage through an intersection while accounting for surrounding traffic. Open original animation ↗

Unprotected left turn

Animated FFStreams++ unprotected left-turn scenario showing vehicle motion and trajectories.
FFStreams++ plans an unprotected left turn in the presence of another vehicle. Open original animation ↗

The problem

Autonomous vehicles must choose safe maneuvers while accounting for vehicle constraints and the possible future movements of surrounding traffic.

My contribution

  • I developed FFStreams during my Ph.D., combining heuristic search with Streams for task-and-motion planning.
  • I then developed FFStreams++, extending the approach with QCNet multi-agent trajectory prediction for prediction-aware maneuver planning.
  • I evaluated maneuver planning in driving scenarios, including intersection passing and unprotected left turns.

Technical approach

I first developed FFStreams to connect high-level maneuver decisions with low-level motion planning through heuristic search and Streams. I then developed FFStreams++, incorporating predicted trajectories of surrounding vehicles into maneuver planning. The demonstrations and experiment plots below show the FFStreams++ stage of this research.

Results & validation

Evaluated on CommonRoad driving scenarios

These two FFStreams++ experiments show intersection passing and an unprotected left turn. Each result figure pairs the maneuver sequence with velocity, acceleration, and jerk over time, with YIELD and FOLLOW decision annotations. They illustrate behavior in individual scenarios; the linked papers provide the broader experimental evaluation.

Intersection passing — experiment results

Intersection-passing experiment: velocity, acceleration, jerk, YIELD and FOLLOW decisions, and four scenario snapshots at 1.4, 2.8, 4.2, and 7.0 seconds.
Velocity, acceleration, and jerk are shown alongside planner decisions and scenario snapshots at 1.4, 2.8, 4.2, and 7.0 seconds. View full-resolution plot ↗

Unprotected left turn — experiment results

Unprotected left-turn experiment: velocity, acceleration, jerk, YIELD and FOLLOW decisions, and four scenario snapshots at 1.6, 3.4, 4.6, and 6.6 seconds.
Velocity, acceleration, and jerk are shown alongside planner decisions and scenario snapshots at 1.6, 3.4, 4.6, and 6.6 seconds. View full-resolution plot ↗