RCI Lab · Kyung Hee University

There and Back
Are Not the Same

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.

Anonymous authors · under review

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.
quadruped-class envelope · forward 1.2 / backward 0.5 / lateral 0.4 m/s · loops

The envelope is a metric

Take the gauge function of the envelope,

\[ F(q,v)=\inf\{\alpha>0:\ v/\alpha\in\mathcal{B}(q)\}, \]

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:

\[ T^\star(q_s,q_g)=\inf_{\gamma}\int_0^1 F(\gamma,\dot\gamma)\,dt \;=\; d_F(q_s,q_g). \]

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\}\)
→
Geodesics\(\mathrm{Exp}^F,\ \mathrm{Log}^F\) — time-optimal paths
→
Flow matching\(v_\theta(t,q\mid q_g,\hat{\mathcal{E}})\)
→
Planone ODE solve, 13–29 ms

The conditional probability paths of the flow model are the minimizing Finsler geodesics, traversed at constant Finsler speed:

\[ q_t=\mathrm{Exp}^F_{q_0}\!\big(t\,\mathrm{Log}^F_{q_0}(q_1)\big). \]

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 geometryGoal aheadGoal to the sideGoal behindAll
Euclidean interpolation (OT-CFM)1.2371.2991.1831.254
Symmetric Riemannian geodesics1.0001.1001.0931.073
Finsler geodesics (ours)0.9600.9850.9860.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 geometryIndicatrix errorMean time ratioWorst
Symmetric (Riemannian)15.1 %1.1261.74
Randers9.0 %1.0361.14
p-sum Finsler (ours)7.2 %1.0231.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.
MethodPlaneSE(2)
Shooting boundary value problem22 s75 s
Grid search, per new goal11 ms + 0.14 s build330 ms + 9.9 s build
Finsler flow, single query13 ms29 ms
Finsler flow, batch of 1000.7 ms1.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.

05 / Read & explore

Paper, supplement, code

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