A graph network learns the avoidance side of each obstacle from a multimodal MPC expert, cutting sixteen OCPs per control period to at most two while the safety constraints stay in the optimization.
1Kongju National University · 2NVIDIA Research · 3KAIST
† Corresponding author
With TC-CBF constraints, each obstacle is passed on a fixed side, so the expert solves one OCP per side combination: K = 2Nb per control period.


4 branch and 8 guard obstacles, by the expert's rule.
SideNet predicts one side per branch obstacle.
The previous mode is the second candidate.
At most two TC-CBF constrained OCPs.
The expert's rule keeps the previous mode unless the proposal is clearly cheaper.


A neighbor can close the gap an isolated side choice would use, so SideNet links the branch obstacles in a complete graph with pair-gap edges.

Relative position, velocity and radius, plus the ego state. Permutation-equivariant.
Current gap, gap at the encounter time, and closing rate.
94,851 parameters, 0.4 ms per forward pass.
The partner obstacle slides away, widening the pair gap from 0.3 to 7.4 m. The expert switches sides between 3.22 and 3.54 m.

Baselines change only the proposer and share the training data: Slot-MLP and Slot-MLP-wide see one obstacle at a time, Deep-set pools them without pair edges.
Each scene gives the three controllers identical obstacles. Trails run from red at the start to violet at the end; rings mark the obstacles whose sides are being decided.
Around, or through before it shuts. The gate narrows from 8 to 2 m as the vehicle arrives. The expert and SideNet-MPC go around the lower obstacle on the same path. Slot-MLP speeds up to 3.5 m/s and slips through the closing gap with 0.14 m to spare.
Every gate must be bypassed. Each 2.6 m gap is narrower than the vehicle needs. The expert and SideNet-MPC go around all three gates. Slot-MLP aims at the blocked gap of the first gate and stops in front of it at 19 s, where it stays until the 150 s timeout.
Stay on the open side. All three pass the first obstacle on the left. Once the gate’s second obstacle comes into play, the expert and SideNet-MPC bypass the gate on the left as well. Slot-MLP heads back toward the path, steers into the hull-wide gap and stops in front of it at x ≈ 42 m.
Arrival time · minimum clearance. The closing gate plays at 2× real time and the other two at 3×; those two replays end shortly after the expert arrives, while Slot-MLP stays stopped until the 150 s timeout. Click to replay. Slot-MLP-wide and Deep-set take the same early pass at the closing gate and also time out at the staggered gates (Deep-set at gate 1, Slot-MLP-wide at gate 2); at the obstacle and gate, Slot-MLP-wide times out and Deep-set arrives at 29.4 s.
Ten head-on, crossing, overtaken and static obstacles per seed. SideNet-MPC is seven runs behind the expert and ahead of every proposer without pair edges.
successful runs as % of the expert's 97; axis starts at 50%
mean, milliseconds
| Controller | Success | Rel. SR | Threads | Time [ms] |
|---|---|---|---|---|
| Expert | 97 | 1.00 | 16 | 35.5 |
| SideNet-MPC | 90 | 0.93 | 1 | 18.6 |
| Slot-MLP | 82 | 0.85 | 1 | 19.0 |
| Slot-MLP-wide | 83 | 0.86 | 1 | 19.2 |
| Deep-set | 80 | 0.82 | 1 | 19.1 |
100 seeds, identical across controllers. Rel. SR is the success count divided by the expert's. Time is the mean computation time per control period, measured with the listed number of CPU threads in one session (Intel Core Ultra 7 270K Plus, 24 cores, no simultaneous multithreading).

Each seed gives the three controllers identical traffic. Trails run from red at the start to violet at the end; rings mark the obstacles whose sides are being decided.
Same side, same path. SideNet-MPC reproduces the expert’s pass below the crossing group at a third of its computation time. Slot-MLP keeps straight, north of their route, and is hit at 12.4 s.
A closing gap. The expert and SideNet-MPC pass above the obstacles crossing the corridor. Slot-MLP stays low, in the gap they are closing, and collides at 11.2 s.
A dense cluster. All three slow to a crawl in front of a cluster near x = 75 m. SideNet-MPC clears it over the top at 28 s and the expert at 48 s; Slot-MLP is still inside it when it is hit at 23.2 s.
Arrival time · mean computation time per control period. Seeds chosen for illustration among runs that the expert and SideNet-MPC complete and Slot-MLP does not; the table counts all 100. 3× real time, click to replay.