Finsler Flow Matching for Asymmetric Robot Planning
A legged robot walks forward faster than it walks backward, and sideways slower still.
Reversible geometry cannot say that. We make the asymmetry the geometry itself, and amortize
time-optimal planning into a single pass of a learned flow.
In preparation for submission to Robotics: Science and Systems (RSS).
Results on this page are from simulation; the quadruped hardware study is in progress.
01 / The central idea
Forward is not backward
The set of velocities a robot can actually hold at a configuration — its
velocity envelope \(\mathcal{B}(q)\) — is a convex body that is not centered on the origin.
Forward 1.2 m/s, backward 0.5, sideways 0.4. A Riemannian metric measures \(\|v\|_G=\|-v\|_G\),
so it can express that sideways is expensive, but never that backward is expensive.
It is structurally blind to exactly the asymmetry that legged robots have.
What a reversible metric throws away. Left: the true envelope (blue) against the best
symmetric stand-in (orange dashed) — the same ellipse fitted without the offset. Right: how far the robot
really gets driving straight for \(t\) seconds. The symmetric model reports arrival at a goal 2.5 m behind
after 3.5 s; backing up truly takes 5.0 s.
which is positively one-homogeneous and convex but not even: \(F(q,v)\neq F(q,-v)\).
That is a Finsler metric, and its forward distance is exactly the minimum travel time:
Nothing here is a cost we designed. Measure the envelope from rollouts, and the time-optimal planning
geometry follows. The minimum-time plan is a forward geodesic traversed on the envelope boundary.
Why this is worth the trouble
A planner built on the symmetric part of the envelope backs up at the wrong speed, approaches goals
from the wrong side, and misjudges its own travel time. The error is systematic, not noise.
Why it is not free
Finsler geodesics cost what any time-optimal control solution costs: a boundary value problem per
query, or a graph search whose memory grows exponentially with dimension. That is what we amortize.
02 / See it in motion
The same goal, two geometries
Every video below compares planners that receive the same information and differ only in
the geometry they plan with. Clocks run in real time. The comparison runs across four bodies: a
humanoid, a drift field, a manipulator, and a mobile manipulator.
A goal behind the robot
Turn and walk, or back up. Both plans come from the same network architecture and the
same training pairs. The symmetric planner cannot tell reversing from walking, so it reverses along a
shallow arc. The Finsler planner turns toward the goal, walks forward, and aligns the heading at the end
— a maneuver nobody scripted; it falls out of the geometry.
SE(2) pose planning · learned flow integrated with RK4 · real time
On the robot
Unitree H1-2, MuJoCo, goal 2.5 m behind with the heading reversed. The envelope is
identified from a command sweep of the robot's own locomotion policy, then handed to the planner, whose
body-velocity commands the policy tracks. Knowing the asymmetry arrives 29 % earlier:
4.76 s against 6.70 s. Neither run falls.
MuJoCo 3.13 · Unitree pretrained velocity-command policy at 50 Hz · commands at 20 Hz · real time
Same robot, goal 2 m to the side. The symmetric planner sidesteps at the averaged
speed; the asymmetric one turns into its fast direction. 3.98 s against 5.20 s, a 23 % saving.
same identified envelope · same feedback rule · real time
Not only legs: a UR5, and effective mass
A manipulator looks like the symmetric case until you ask what limits it. Effective mass
\(m_{\mathrm{eff}}(u)=(u^ op\Lambda^{-1}u)^{-1}\) is quadratic in \(u\), so by itself it is reversible.
The asymmetry arrives with the constraint: capping the energy transferred on contact bounds how fast the
arm may close on a workpiece, by \(\sqrt{2E_{\max}/m_{\mathrm{eff}}}\), and leaves retreat
unbounded.
What that buys an arm is not the same as what it buys a walking robot, and the difference is worth
being precise about. The symmetrised metric picks routes within 1.0 % of optimal here, so route
selection barely changes. What it gets badly wrong is the clock.
The same plan, played on two clocks, on a UR5e in MuJoCo. Both panels execute the
plan the symmetrised metric produced. The left runs it at the speed that metric believes it can hold;
the right runs it at the speed the arm actually has, because the end effector rises at 0.51 m/s where
it descends at 0.78. The plan arrives 54 % later than its own planner expected, and
45 % later on average over four approaches. For a manipulator the non-reversible geometry buys
a travel time you can believe, which is what a cycle-time budget consumes, rather than a shorter
route.
MuJoCo UR5e (mujoco_menagerie) · joint angles solved against the model · real time
Gravity, by contrast, changes nothing about the routes either, and our own theory says why:
gravitational power is the derivative of a potential, so the asymmetric part of the metric is a closed
one-form and only travel times change. The asymmetries that do move routes are the ones with
non-vanishing curl, which is what the legged and drift-field settings above have.
When the environment is the asymmetry
Asymmetry does not need legs. A head-wind channel makes eastward motion cost more than westward at the
same place — a drift field, and Zermelo's classical navigation problem, whose solutions are Randers geodesics.
Three planners, one start, one goal. The Euclidean flow drives straight into the
channel core and crawls at 0.1 m/s. The Riemannian flow knows the wind is anisotropic but not which way it
blows, so it detours and still enters upwind. The Finsler flow detours wide and enters the goal downwind,
reproducing the structure of the Zermelo-optimal path. 6.8 s against 19.3 s for this start, which is
the median case among the starts shown in the paper.
planar Randers field, β = 0.9 · goal-conditioned flow · real time
03 / The method
Geodesics in, one network pass out
Rolloutssweep body-velocity commands, record what is achieved
→
Envelope \(\hat{\mathcal{E}}\)fit the indicatrix \(\{F=1\}\)
Integrating the trained field from a start pose is the plan; its Finsler length is its travel
time, and its final speed predicts the time still to go. Two things break if you simply swap a Riemannian
metric for a Finsler one, and both are easy to get wrong.
Pitfall 1 — the direction to the goal is not the negative gradient
For a non-reversible metric, \(\nabla^F(-f)\neq-\nabla^F f\). The initial velocity of the geodesic
that actually reaches \(x_1\) is \(\mathcal{L}^{-1}(-d\rho)\), the inverse Legendre transform of the
distance differential, not \(-\nabla^F\rho\). Shooting along the negative gradient misses the goal even
for a constant Randers metric.
Pitfall 2 — do not weight the loss by \(g_{u_t}\)
The Finsler fundamental tensor depends on velocity, so weighting the regression by \(g_{u_t}\)
weights every sample by its own target. The population minimizer stops being the marginal flow and the
generated distribution collapses toward the slow direction. Any weight \(M(t,q_t)\) is safe; this one is
not. The paper proves it and shows the collapse on a three-mode target.
Both statements are specific to non-reversible geometry: in the Riemannian case
\(g_v\equiv g(q)\), the gradient identity holds, and the metric-weighted loss is admissible.
04 / Evidence
Time-optimal, and fast to ask
Pose planning on SE(2)
192 held-out start poses, quadruped-class envelope. Executed travel time over the best-known
reference time, split by where the goal is. Every planner reaches every goal.
Conditional path geometry
Goal ahead
Goal to the side
Goal behind
All
Euclidean interpolation (OT-CFM)
1.237
1.299
1.183
1.254
Symmetric Riemannian geodesics
1.000
1.100
1.093
1.073
Finsler geodesics (ours)
0.960
0.985
0.986
0.979
A grid reference is an upper bound, so a ratio below one cannot by itself prove
optimality. Re-scoring the same plans against exact shooting geodesics, on the poses where the grid
certifies the geodesic minimal, removes that bias: Finsler 0.998, symmetric Riemannian 1.064,
Euclidean 1.212. The remaining gap below one is the 0.2 m position tolerance, which lets a plan stop
marginally short. Optimality here is verified, not inferred.
Learn the envelope from noisy rollouts, then plan with it
The true envelope is a box that lies outside every metric family we fit. Plans are made under the
fitted geometry and executed under the true envelope, 96 poses.
Fitted geometry
Indicatrix error
Mean time ratio
Worst
Symmetric (Riemannian)
15.1 %
1.126
1.74
Randers
9.0 %
1.036
1.14
p-sum Finsler (ours)
7.2 %
1.023
1.12
Throwing the asymmetry away costs 13 % on average and 74 % in the worst case. Even a crude one-term
Randers fit, 9 % wrong on the envelope, plans within 3.6 % of the true optimum — time-optimal paths use the
forward and turning faces, which every asymmetric fit captures.
What amortization buys
Per-query wall-clock on one CPU, no GPU. The learned flow answers queries the solvers that
produced its training data cannot answer at interactive rates.
Method
Plane
SE(2)
Shooting boundary value problem
22 s
75 s
Grid search, per new goal
11 ms + 0.14 s build
330 ms + 9.9 s build
Finsler flow, single query
13 ms
29 ms
Finsler flow, batch of 100
0.7 ms
1.5 ms
The sharper point is what the query ranges over. A grid reference is built for one metric: change
the envelope — the robot picked up a payload, the terrain changed, the battery sagged — and the graph is
rebuilt from scratch, which is the 0.14 s and 9.9 s above rather than the per-goal sweep. The
envelope-conditioned field answers a start, a goal and an envelope it has never seen in the same
13–29 ms. Amortizing over capability is a difference in kind, not a constant factor, and it is the regime a
robot whose envelope drifts during operation actually lives in.
Capability it has never seen
One field conditioned on the drift strength, trained on β ∈ [0.30, 0.85], stays time-optimal at
β = 0.90 and 0.95 — 0.999 and 1.000 — where the Euclidean baseline degrades to 2.5× and 3.7×.
The planner learned the geometry as a function of capability, not one environment's answer.
Obstacles
Entered as a conformal factor that preserves the Randers form. 91 % reach, zero collisions,
median 0.999× optimal, worst 1.05×. The wind-blind Riemannian baseline collides on 5 % of queries.
Closed loop
Re-evaluated every 50 ms and projected onto the envelope, the same field is a feedback law. Under slip,
unmodeled lateral drift and repeated 0.3 m pushes it matches or beats greedy descent of the reference
value function, reaching every goal.
Feasible by construction
Commands are projected onto the measured envelope, \(\xi_{\mathrm{cmd}}=v_\theta/F(q,v_\theta)\),
so what the planner asks for is always something the robot can do.
The supplement carries the closed forms, the proofs, the loss-weight experiment, the
full result tables and the grid convergence study. The code ZIP contains the Finsler library, the
experiments and the MuJoCo pipeline; every number in the paper maps to a script in its README.
Cite
@inproceedings{finslerflowmatching,
title = {There and Back Are Not the Same:
Finsler Flow Matching for Asymmetric Robot Planning},
author = {Anonymous},
booktitle = {Under review},
year = {2026}
}
Research lineage
CAMP-MPPIDynamics-level wrench constraints→UP-MPPIExplicit margins and adaptation→Finsler Flow MatchingAsymmetric capability as geometry