# A generic framework of adiabatic approximation for nonlinear evolutions

Jingxuan Zhang

###### Abstract.

In the study of nonlinear evolutions, the method of adiabatic approximation is
an essential tool to reduce an infinite dimensional dynamical system to a
simpler, possibly finite dimensional one. In this paper, we formulate a
generic scheme of adiabatic approximation that is valid for an abstract
dissipative, conservative or dispersive evolution under mild regularity
assumptions. The key prerequisite for the scheme is the existence of what we
call approximate solitons. These are some low energy but not necessarily
stationary configurations, which we use to approximate nearby evolutions with
systematically minimized errors.

The main result is analogous to nonlinear stability: Given an initial
configuration sufficiently close to the manifold of approximate solitons, the
evolution generated by the former stays close to this manifold. Moreover, the
full evolution reduces in a suitable sense to an evolution on the moduli space
of the approximate solitons. Both assertions hold in a long but possibly
finite interval, determined by the type of evolution and the properties of the
approximate solitons.

##  1\. Introduction

Consider an abstract evolution equation

(1) $\partial_{t}u=JE^{\prime}(u).$

Here $u=u_{t}\in U$ is a $C^{1}$ path in some open set $U$ in a real Hilbert
space $H$. $E\mathrel{\mathop{\mathchar 58\relax}}H\to\mathbb{R}$ is $C^{2}$
functional on $U$. The vector $E^{\prime}(u)\in H$ is the $H$-gradient of $E$
at $u$. The operator $J$ is either the negative of the identical map, or a
symplectic operator, which respectively turns (1) into either a first-order
energy dissipative dynamics, or a Hamiltonian system.

In general, (1) is an infinite dimensional dynamical system. We are interested
in the following problem:

> Can one reduce (1) in a suitable sense to an evolution in a possibly finite
> dimensional manifold $\Sigma$?

Here are some examples when this problem arises:

  1. (1)

Let $H$ be a suitable space of functions from $\Omega\to\mathbb{R}^{m}$, where
$\Omega\subset\mathbb{R}^{d}$ is a domain. Suppose $u_{0}$ is localized in the
sense that outside a neighbourhood of some lower dimensional concentration set
$\sigma_{0}\subset\Omega$, all derivatives of $u_{0}$ vanish rapidly. Then one
is interested in whether the evolution $u_{t}$ remains localized near some
concentration set $\sigma_{t}$, and if so, what kind of geometric flow governs
the motion of $\gamma_{t}$. This problem arises from the study of phase
transition, see [MR1177477, MR2032110, MR2195132].

  2. (2)

Let $H$ and $u_{0}$ be as before. Suppose $\sigma_{0}$ is given by a
collection of distinct points in $\Omega$. Then the evolution of $\sigma_{0}$
is the motion law of interaction between the points of localization. One is
interested in to what extent the full dynamics can be reduced to this
renormalized dynamics of points. This is a classical many-body problem from
high energy physics [MR1257242, MR1309545, MR2525632].

  3. (3)

Let $H$ be a suitable space of geometric objects. Suppose $u_{0}\in H$ is
determined by a number of parameters, for instance center, radius, axial
direction, etc. Then one is interested whether $u_{t}$ is still characterized
by these parameters at time $t>0$. This problem is essential to the study of
rigidity under various geometric flows [MR3397388, gang2017dynamics,
MR3824945].

In this study we propose an abstract scheme to answer the question above,
known in the physics literature as the method of _adiabatic approximation_.
Essentially, this is a nonlinear perturbation theory. The idea dates back at
least to Manton’s moduli space approximation scheme for monopole dynamics
[MR647883]. In addition to the cited above, rigorous results along this line
include [MR1644389, MR1644393, MR2097576, MR2189216, MR2465296, MR2576380,
MR2805465, MR3803553, MR4135093], with diverse applications to superfluidity,
superconductivity, particle physics, and geometric flow. The point in common
of these applications is that solitonic configurations arise naturally due to
focusing nonlinearity, or some kind of fixed content constraint.

The main assumption is the existence of a parametrized family of
configurations $v_{\sigma}\in H,\sigma\in\Sigma$, where $\Sigma$ is called the
moduli space. The space $\Sigma$ is finite-dimensional if it represents
finitely many concentration points or parameters. In general, $\Sigma$ can be
infinite-dimensional, for instance as a space of geometric objects or local
gauge symmetries. We call this family $v_{\sigma}$ the _approximate solitons_.
In Section 2 we list the precise requirements for $v_{\sigma}$.

The adiabatic approximation scheme goes roughly as follows: First, we find an
evolution equation $\partial_{t}\sigma=F(\sigma)$ for a path
$\sigma_{t}\in\Sigma$ with the following property: If $u_{t}$ solves (1) and
remains close to $v_{\sigma_{t}}\in M$, then $\sigma_{t}$ evolves according to
this equation up to the leading order. This equation for $\sigma$ is the
effective dynamics for (1). We calculate the velocity $F(\sigma)$ explicitly.
In this step we use the approximate critical point property of $v_{\sigma}$.

Then, we show that so long as the initial configuration $u_{0}$ is close to
$M$, then the flow $u_{t}$ generated by $u_{0}$ stays close to $M$ uniformly
up to a large time determined by certain stability property of $v_{\sigma}$.
This justifies the validity of the effective dynamics we derived in the
previous step. This step is analogous to proving dynamical stability, except
for that $v_{\sigma}$ need not to be stationary.

We refer the readers to an excellent review on the applications of adiabatic
approximation to classical field theory [MR2360179]. The review contains
several examples of effective dynamics describing interating solitons, and
discusses a different approach of adiabatic approximation, namely through a
compactness argument. The latter finds applications to a very large
literature, which among others include the now-classical geometric theory of
phase transitions [MR866718, MR1177477, MR2032110], relating the flow of a
real order parameter under the Allen-Cahn equation to the mean curvature flow
of its nodal set. This kind of connection has important consequences to both
sides of statistical physics and geometric analysis. On the mathematical side,
we mention the resolution of De Giorgi’s conjecture [MR2846486] among others.
See an excellent review [MR3729052] on the analogous codimension-two problems,
which largely remain open. The author is undertaking to apply the theory we
develop here to this end.

The arrangement of this paper is as follows. In Section 2, we describe the
manifold of approximate solitons. We find a nonlinear projection from a
tubular neighourhood of this manifold into the moduli space, and using this,
we find the candidate for the effective dynamics (17) of (1). In Section 3-4,
we show that for both dissipative and conservative (1), the effective dynamics
(17) is valid for long time (global in the dissipative case). In Section 5, we
discuss the application of the abstract theory to study the motion of
interface of matters, a central problem in condense matter theory. In the
Appendix, we list the basic concepts of variational calculus that we have used
repeatedly.

##  2\. The manifold of approximate solitons

Let $\Sigma$ be a possibly finite dimensional Riemannian manifold. Let
$f\mathrel{\mathop{\mathchar 58\relax}}\Sigma\to H$ be an immersion, in the
sense that $f$ is $C^{1}$ and $df(\sigma)$ is injective.(See Appendix for the
definition of Fréchet derivative.) Define $M=f(\Sigma)$. This forms a
manifold, with tangent space $T_{f(\sigma)}M$ given by
$df(\sigma)(T_{\sigma}\Sigma)$

We assume every element $v=f(\sigma)\in M$ satisfies

(2) $\displaystyle\mathinner{\\!\left\lVert
E^{\prime}(v)\right\rVert}_{X}\leq\epsilon,$ (3)
$\displaystyle\text{$L_{\sigma}\mathrel{\mathop{\mathchar
58\relax}}=E^{\prime\prime}(v)$ is self adjoint and
}\mathinner{L_{\sigma}\Biggr{\rvert}}_{\mathinner{\left(JT_{v}M\right)}^{\perp}}\geq\alpha>0,$
(4) $\displaystyle\mathinner{L_{\sigma}\Biggr{\rvert}}_{JT_{v}M}\leq\epsilon.$

Condition (2) says that elements in $M$ are approximate critical points of
$E$. Conditions (3)-(4) assert certain stability property regarding the
linearized operator $L_{\sigma}$.

We call the space $M$ the manifold of approximate solitons, and $\Sigma$ the
moduli space. When $M$ consists of exact critical points of $E$, then (2)
holds with $\epsilon=0$. If, moreover, $\Sigma$ is the symmetry group of $E$
and $f$ is the action of $\Sigma$ on $M$, then (3)-(4) follow if the elements
in $M$ are (linearly) stable, and $L_{\sigma}$ has a spectral gap at $0$. In
this case the tangent space $T_{v}M$ consists exactly of the zero modes
generated by the broken symmetries. This explains our the terminology for $M$
and $\Sigma$.

For sufficiently smooth $E$ (say $C^{4}$), we can find the approximate
solitons by perturbing a given stable stationary solution to (1), an _exact_
soliton. By translation, assume $u=0$ is such a solution, and
$\mathinner{\\!\left\lVert\phi\right\rVert}_{X}\ll 1$. Then (2) follows by the
continuity of $E^{\prime}$. If $E$ is at least $C^{4}$, then the map
$\phi\mapsto L_{\phi}\mathrel{\mathop{\mathchar
58\relax}}=E^{\prime\prime}(\phi)$ is $C^{2}$, and it follow from
[MR2006008]*Thm. (D) that for sufficiently small
$\mathinner{\\!\left\lVert\phi\right\rVert}_{X}$, the second lowest eigenvalue
of $L_{\phi}$ is at least $\alpha/2$. Thus

$\mathinner{L_{\phi}\Biggr{\rvert}}_{\ker L_{\phi}^{\perp}}\geq\alpha/2>0.$

Trivially, $L_{\phi}=0$ on its kernel.

Thus it suffices to find $f$ s.th. $f(\sigma_{0})=0$, and
$\operatorname{ran}df(\sigma)=T_{f(\sigma)}\sigma$ sufficiently close to
$J\ker L_{\phi}$. If necessary, we would shrink $\Sigma$ towards $\sigma_{0}$
so that (2) is satisfied. We given some concrete examples in Section 5.

To simplify notation, we fix the coordinate spaces $X,Y$ for
$T_{\sigma}\Sigma,\,T_{v}M$ respectively. $X,Y$ are both Hilbert space, w.r.
to the inner product of $H$ and the Riemannian metric on $\Sigma$
respectively. We fix a basis for every fibre and identify an element in the
fibre with its coordinate.

Write $g_{\sigma}\mathrel{\mathop{\mathchar 58\relax}}Y\to X$ for the action
of $df(\sigma)\mathrel{\mathop{\mathchar
58\relax}}T_{\sigma}\Sigma_{\epsilon}\to T_{f(\sigma)}M$ on each fibre. Let
$g_{\sigma}^{*}$ be the adjoint to $g_{\sigma}$.

Define

(5)
$\begin{array}[]{ccrcl}{\mathcal{J}_{\sigma}}&\colon&{Y}&\longrightarrow&{Y}\\\
\mbox{}&\mbox{}&{\xi}&\longmapsto&{g_{\sigma}^{*}J^{-1}g_{\sigma}\xi}\end{array}.$

If $J$ is a symplectic operator, then so is $\mathcal{J}_{\sigma}$ on the
tangent bundle $T\Sigma$, since

$\langle\mathcal{J}_{\sigma}\xi,\xi\rangle=\langle
g_{\sigma}^{*}J^{-1}g_{\sigma}\xi,\xi\rangle=\langle
J^{-1}g_{\sigma}\xi,g_{\sigma}\xi\rangle=0\quad(\xi\in T_{\sigma}\Sigma).$

Moreover, $\mathcal{J}_{\sigma}$ is invertible, since $g_{\sigma}$ is
injective. Thus in this case $\mathcal{J}_{\sigma}$ induces a nondegenerate
symplectic form on $T\Sigma$.

We assume the map $f$ satisfies for some $\alpha>0$ that

(6) $\mathinner{\\!\left\lVert g_{\sigma}\right\rVert}_{Y\to
X}\sim\epsilon^{-\alpha}.$

In Section 5 we show this is a natural assumption when $f(\sigma)$ describes a
perturbation of some stable interface. Using (6) we can show

(7)
$\displaystyle\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}\right\rVert}_{Y\to
Y}\leq C\epsilon^{-2\alpha},$ (8)
$\displaystyle\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}_{Y\to
Y}\leq C\epsilon^{2\alpha},$ (9)
$\displaystyle\mathinner{\\!\left\lVert\mathcal{E}^{\prime}(\sigma)\right\rVert}\leq
C\epsilon^{1-\alpha}.$

Here $\mathcal{E}\mathrel{\mathop{\mathchar 58\relax}}\Sigma\to\mathbb{R}$ is
the pull-back of $E$ by $f$. The first two estimates are straight forward. For
(9) we use the identity

$g_{\sigma}^{*}E^{\prime}(f(\sigma))=\mathcal{E}^{\prime}(\sigma).$

This follows from the chain rule.

The following key lemma allows us to define a nonlinear projection from a
tubular neighbourhood around the manifold of approximate soliton $M$ into
$\Sigma$. We call the projection $\sigma$ of $u$ the moduli of $u$.

######  Lemma 2.1 (existence of moduli).

There is $\delta>0$ s.th. for evert $u\in X$ and
$\operatorname{dist}(\phi,M)<\delta$, there exists
$\sigma\in\Sigma_{\epsilon^{\alpha}}$ s.th.

(10) $\mathinner{\\!\left\lVert
u-f(\sigma)\right\rVert}_{X}=\inf\mathinner{\left\\{\mathinner{\\!\left\lVert
u-v\right\rVert}_{X}\mathrel{\mathop{\mathchar 58\relax}}v\in M\right\\}}.$

###### Proof.

First, define the linear projection $Q_{\sigma}$ by

(11)
$\begin{array}[]{ccrcl}{Q_{\sigma}}&\colon&{X}&\longrightarrow&{T_{f(\sigma)}M\subset
X}\\\
\mbox{}&\mbox{}&{\phi}&\longmapsto&{g_{\sigma}\mathcal{J}_{\sigma}^{-1}g_{\sigma}^{*}J^{-1}\phi}\end{array}.$

In the definition of $Q_{\sigma}$, each factor is uniformly bounded. So we get
the uniform estimate $\mathinner{\\!\left\lVert Q_{\sigma}\right\rVert}_{X\to
X}\leq C.$ One can check $Q_{\sigma}\phi=\phi$ if and only if $\phi\in
T_{f(\sigma)}M$ by writing $\phi=g_{\sigma}\xi$ for some $\xi\in Y$. Condition
(10) is satisfied if and only if $Q_{\sigma}(\phi-f(\sigma))=0$.

Next, we find the moduli $\sigma$ using Implicit Function Theorem. Consider
the map

$\begin{array}[]{ccrcl}{F}&\colon&{X\times\Sigma}&\longrightarrow&{Y}\\\
\mbox{}&\mbox{}&{(\phi,\sigma)}&\longmapsto&{g_{\sigma}^{*}J^{-1}(\phi-f(\sigma))}\end{array}.$

It is clear that if $F(\phi,\sigma)=0$, then $Q_{\sigma}(\phi-f(\sigma))=0$.
By construction, the partial Fréchet derivative

$\mathinner{\partial_{\sigma}F\Biggr{\rvert}}_{(f(\sigma),\sigma)}=-\mathcal{J}_{\sigma}.$

This invertible as we showed earlier. The equation $F(\phi,\sigma)=0$ has the
trivial solution $(f(\sigma),\sigma)$. It follows that for any fixed
$\sigma\in\Sigma$, there is $\delta=\delta(\sigma,\epsilon)>0$ and a map
$S_{\sigma}\mathrel{\mathop{\mathchar
58\relax}}B_{\delta}(f(\sigma))\to\Sigma$ s.th. $F(\phi,S(\phi))=0$ for
$\phi\in B_{\delta}(f(\sigma))$.

It remains to show that in fact $\delta$ can be made independent of $\sigma$.
This is essential for our purpose because we would like the tubular
neighbourhood to contain a definite volume for a flow to fluctuate.

Write

$L_{\phi}\mathrel{\mathop{\mathchar
58\relax}}=\mathinner{\partial_{\sigma}F\Biggr{\rvert}}_{(\phi+f(\sigma),\sigma)},\quad
V_{\phi}\mathrel{\mathop{\mathchar 58\relax}}=L_{\phi}-L_{0}.$

Then

$L_{0}=-\mathcal{J}_{\sigma},\quad
V_{\phi}=\mathinner{(d_{\sigma}g_{\sigma}^{*})\mathinner{\left(\cdot\right)}\Biggr{\rvert}}_{J^{-1}\phi}.$

The size of $\delta$ is determined by the condition that for every $\phi\in
B_{\delta}(f(\sigma))$,

(12) $\displaystyle L_{\phi}\text{ is invertible},$ (13)
$\displaystyle\mathinner{\\!\left\lVert L_{\phi}^{-1}\right\rVert}_{Y\to
Y}\leq\frac{1}{4\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}_{X\to
X}},$ (14) $\displaystyle\mathinner{\\!\left\lVert
F(\phi+f(\sigma),\sigma)\right\rVert}_{Y}\leq\frac{\delta_{0}}{4\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}_{X\to
X}},$

where $\delta_{0}$ is determined that for every $\xi\in
B_{\delta_{0}}(\sigma)$ and $\phi\in B_{\delta}(f(\sigma))$,

(15) $\displaystyle\mathinner{\\!\left\lVert
R(\phi,\xi)\right\rVert}_{Y}\leq\frac{\delta_{0}}{4\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}_{X\to
X}},$ $\displaystyle R(\phi,\xi)\mathrel{\mathop{\mathchar
58\relax}}=F(\phi+f(\sigma),\sigma+\xi)-F(\phi+f(\sigma),\sigma)-\partial_{\sigma}F(\phi+f(\sigma),\sigma)\xi,$
(16)
$\displaystyle\mathinner{\\!\left\lVert\mathcal{J}_{\sigma+\xi}-\mathcal{J}_{\sigma}\right\rVert}_{X\to
X}\leq\frac{1}{4\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}_{X\to
X}}.$

See for instance [MR1336591]*Sec. 2. Note that the r.h.s. of (13)-(16) are
independent of $\sigma$ by the uniform estimate for $\mathcal{J}_{\sigma}$.

Conditions (15)-(16) are satisfied for some $\delta_{0}=C(\Omega)\epsilon$. To
get (15), one uses the fact that $\mathinner{\\!\left\lVert
R(\phi,\xi)\right\rVert}_{Y}=o(\mathinner{\\!\left\lVert\xi\right\rVert}_{Y})$,
since it is the super-linear remainder of the expansion of $F$ in $\sigma$. To
get (16), one uses the continuity of the map
$\sigma\mapsto\mathcal{J}_{\sigma}\in L(Y,Y).$

The claim now is that (12)-(14) are satisfied for some $\delta=O(\delta_{0})$.
Indeed, using the uniform estimate for $g_{\sigma}^{*}$ and
$\mathcal{J}_{\sigma}^{-1}$, one sees that (14) is satisfied so long as
$\delta=O(\delta_{0}).$

By elementary perturbation theory, since $L_{0}$ is invertible, and the
partial Fréchet derivative $L_{\phi}$ is continuous in $\phi$ as a map from
$X\to L(Y,Y)$, it follows that condition (12) is satisfied provided
$\mathinner{\\!\left\lVert V_{\phi}\right\rVert}_{Y\to
Y}<\mathinner{\\!\left\lVert L_{0}^{-1}\right\rVert}_{Y\to
Y}^{-1}=\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\right\rVert}^{-1}.$
By the uniform estimate on $d_{\sigma}g_{\sigma}^{*}$, we can arrange this
with sufficiently small $\delta$.

Lastly, referring to the Neumann series for the inverse

$L_{\phi}^{-1}=\sum_{n=0}^{\infty}L_{0}^{-1}\mathinner{\left(-V_{\phi}L_{0}\right)}^{n},$

one can see that $L_{\phi}^{-1}$ is also continuous in $\phi$, and
$\mathinner{\\!\left\lVert L_{\phi}^{-1}\right\rVert}_{Y\to
Y}\to\mathinner{\\!\left\lVert L_{0}^{-1}\right\rVert}_{Y\to Y}$ as
$\mathinner{\\!\left\lVert\phi\right\rVert}\to 0$. By assumption
$\mathinner{\\!\left\lVert L_{0}^{-1}\right\rVert}_{Y\to
Y}\leq\epsilon^{2\alpha}\ll 1$, so (13) follows for sufficiently small
$\delta$. ∎

If $\sigma$ is the moduli of $u$, then $\mathcal{E}(\sigma)$ is the effective
energy of the latter. This suggests that the effective dynamics governing the
motion of the moduli $\sigma_{t}$ of a flow near $M$ is given by

(17)
$\partial_{t}\sigma=\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma).$

In particular, the type of (17) (i.e. dissipative or conservative) agrees with
that of (1). In Sections 3-4, we justify (17) can indeed be used to
approximate the full evolution $u_{t}$ under (1) starting near $M$, uniformly
up to some large time. The argument is based on the following lemma.

######  Lemma 2.2.

Let $u_{t}$ be a solution to (1). Suppose
$\operatorname{dist}(u_{t},M)<\delta$ for some $0\leq\delta\ll 1$. Write
$u_{t}=v_{t}+w_{t}$ with $v_{t}=f(\sigma_{t})$, where $\sigma_{t}$ is given by
Lemma 2.1. Then there is $C>0$ in dependent of time s.th.

(18)
$\mathinner{\\!\left\lVert\partial_{t}\sigma-\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma)\right\rVert}_{Y}\leq
C\mathinner{\left(\epsilon^{2}\mathinner{\\!\left\lVert
w\right\rVert}_{X}+\epsilon^{\alpha}\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}\right)}$

###### Proof.

1\. Expand (1) as

(19) $\partial_{t}v+\partial_{t}w=J(E^{\prime}(v)+L_{\sigma}w+N_{\sigma}(w)),$

where $L_{\sigma}$ is the linearized operator at $v_{t}=f(\sigma_{t})$, and
$N_{\sigma}(w)$ defined by this equation.

Recall $Q_{\sigma}$ is the projection defined in (11), Applying $Q_{\sigma}$
to both sides of (19), we have

(20)
$\partial_{t}v-Q_{\sigma}JE^{\prime}(v)=Q_{\sigma}(JL_{\sigma}w-\partial_{t}w+JN_{\sigma}(w)).$

Consider the identity

$\mathcal{J}_{\sigma}^{-1}g_{\sigma}^{*}J^{-1}(\partial_{t}v-Q_{\sigma}JE^{\prime}(v))=\partial_{t}\sigma-\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma).$

To verify this, one uses two facts that follow readily from the chain rule:

$\partial_{t}v=g_{\sigma}\partial_{t}\sigma,\quad
g_{\sigma}^{*}E^{\prime}(f(\sigma))=\mathcal{E}^{\prime}(\sigma).$

Thus by the uniform estimates for $g_{\sigma}^{*}$ and
$\mathcal{J}_{\sigma}^{-1}$, we have

(21)
$\mathinner{\\!\left\lVert\partial_{t}\sigma-\mathcal{J}_{\sigma}^{-1}d_{\sigma}E(f(\sigma))\right\rVert}_{Y}\leq
C\epsilon^{\alpha}\mathinner{\\!\left\lVert\partial_{t}v-Q_{\sigma}JE^{\prime}(v)\right\rVert}_{X}.$

2\. Consider now the r.h.s. of (20). These three terms can be bounded
respectively as follows:

(22) $\displaystyle\mathinner{\\!\left\lVert
Q_{\sigma}JL_{\sigma}w\right\rVert}_{X}\leq C\epsilon\mathinner{\\!\left\lVert
w\right\rVert}_{X},$ (23) $\displaystyle\mathinner{\\!\left\lVert
Q_{\sigma}\partial_{t}w\right\rVert}_{X}\leq
C\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}\mathinner{\\!\left\lVert
w\right\rVert}_{X},$ (24) $\displaystyle\mathinner{\\!\left\lVert
Q_{\sigma}JN_{\sigma}(w)\right\rVert}_{X}\leq C\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}.$

Here $C$ is independent of $\sigma$. In all these three inequalities we use
the uniform bound $\mathinner{\\!\left\lVert Q_{\sigma}\right\rVert}_{X\to
X}\leq C$.

For (22) we use the identity

(25) $\displaystyle\mathinner{\\!\left\lvert\langle
Q_{\sigma}JL_{\sigma}w,w^{\prime}\rangle\right\rvert}$
$\displaystyle\leq\mathinner{\\!\left\lvert\langle
w,L_{\sigma}Q_{\sigma}Jw^{\prime}\rangle\right\rvert}$
$\displaystyle\leq\mathinner{\\!\left\lVert
L_{\sigma}Q_{\sigma}\right\rVert}_{X\to X}\mathinner{\\!\left\lVert
w\right\rVert}_{X^{1}}\mathinner{\\!\left\lVert
w^{\prime}\right\rVert}_{X}\quad(w,w^{\prime}\in X).$

To get (25), one uses that $J$ commutes with $Q_{\sigma}$ (since the latter is
projection), and that $Q_{\sigma}^{*}=Q_{\sigma}$. Plugging
$w^{\prime}=Q_{\sigma}J_{\sigma}Lw$ into (25), we get

$\mathinner{\\!\left\lVert
Q_{\sigma}JL_{\sigma}w\right\rVert}_{X}\leq\mathinner{\\!\left\lVert
L_{\sigma}Q_{\sigma}\right\rVert}_{X\to X}\mathinner{\\!\left\lVert
w\right\rVert}_{X}\leq C\epsilon\mathinner{\\!\left\lVert
w\right\rVert}_{X}).$

The last inequality follows from the approximate zero mode property (4).

(24) follows from the remainder estimate
$N_{\sigma}(w)=o(\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2})$, since $E$
is $C^{2}$.

For (23), differentiating $Q_{\sigma}w=0$ w.r. to $t$, we find

(26)
$0=\partial_{t}(Q_{\sigma}w)=(\partial_{t}Q_{\sigma})w+Q_{\sigma}\partial_{t}w=(d_{\sigma}Q_{\sigma}\partial_{t}\sigma)w+Q_{\sigma}\partial_{t}w.$

Here $d_{\sigma}Q_{\sigma}$ is an operator from $Y$ to the space of linear
operators $L(X,X)$. Since $Q_{\sigma}$ is the projection onto $T_{\sigma}M$,
and $\sigma$ is slowly varying, one can check the uniform estimate
$\mathinner{\\!\left\lVert d_{\sigma}Q_{\sigma}\right\rVert}_{Y\to L(X,X)}\leq
C.$ Plugging this to (26) gives (23).

Plugging (22)-(24) to (20)-(21) gives

(27)
$\mathinner{\\!\left\lVert\partial_{t}\sigma-\mathcal{J}_{\sigma}^{-1}d_{\sigma}E(f(\sigma))\right\rVert}_{Y}\leq
C\mathinner{\left(\epsilon^{\alpha}\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y})\mathinner{\\!\left\lVert
w\right\rVert}_{X}+\epsilon^{1+\alpha}\mathinner{\\!\left\lVert
w\right\rVert}_{X}\right)}$

If
$\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}<\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma)\right\rVert}_{Y}$,
then $\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}\leq
C\epsilon^{1-\alpha}$ by (9). Otherwise, if
$\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}\geq\mathinner{\\!\left\lVert\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma)\right\rVert}_{Y},$
then (27) implies for $\mathinner{\\!\left\lVert
w\right\rVert}_{X}\leq\delta\ll 1$ that

(28) $\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}\leq
C\mathinner{\left(\epsilon^{2}+\epsilon^{\alpha}\mathinner{\\!\left\lVert
w\right\rVert}_{X}\right)}.$

In either case we have (18). ∎

##  3\. Effective dynamics for gradient flow

In this section we consider (1) with $J=-1$ on the tangent bundle $TU$,

(29) $\partial_{t}u=-E^{\prime}(u).$

This turns (1) into the gradient flow of $E$. We show any flow starting near
the manifold of approximate soliton $M$ can be approximated uniformly for all
by a gradient flow of some effective energy on the moduli space $\Sigma$.

######  Theorem 3.1.

There is $0\leq\delta\ll 1$ with the following property: Let $u_{0}\in H$ be
an initial configuration s.th. $\operatorname{dist}(u_{0},M)<\delta$. Let
$u_{t}$ be the flow generated by $u_{0}$ under (29). Then for all $t\geq 0$ we
have

(30) $\operatorname{dist}(u_{t},M)<\epsilon.$

Moreover, if $\sigma_{t}$ is the moduli associated to $u_{t}$ as in Lemma 2.1,
then

(31)
$\partial_{t}\sigma=-(g_{\sigma}^{*}g_{\sigma})^{-1}\mathcal{E}^{\prime}(\sigma)+o(\epsilon^{2}).$

_Remark_. The remainder in (31) is of lower order by (8)-(9).

###### Proof of Theorem 3.1.

By the continuity of flow, for $\delta<\epsilon$, claim (30) holds at least up
to some small $T_{1}>0$. For $t\leq T_{1}$, we have (31) by Lemma 2.2. It
remains to show in fact (30) holds for a long time.

To this end, we derive a differential inequality for the quantity
$\frac{1}{2}\langle L_{\sigma}w,w\rangle,$ which accounts for most of the
energy dissipation. Then (30) follows from the coercivity condition (3). To
simplify writing, we assume $\mathinner{\\!\left\lVert w\right\rVert}_{X}\leq
1$, an ansatz that we justify at the end of the proof.

Compute

(32) $\displaystyle\frac{1}{2}\dfrac{\operatorname{d\\!}{}\langle
L_{\sigma}w,w\rangle}{\operatorname{d\\!}{t}}$
$\displaystyle=\langle\partial_{t}w,L_{\sigma}w\rangle+\frac{1}{2}\langle(\partial_{t}L)w,w\rangle$
$\displaystyle=\langle-\partial_{t}v-(E^{\prime}(v)+L_{\sigma}w+N_{\sigma}(w)),L_{\sigma}w\rangle+\frac{1}{2}\langle(\partial_{t}L)w,w\rangle$

Here we have use the expansion (19). We bound the two inner products in the
r.h.s. of (32). To bound the one, we use the identity
$\partial_{t}L_{\sigma}=(d_{\sigma}L_{\sigma})\partial_{t}\sigma$ and the
uniform bound on $d_{\sigma}L_{\sigma}$ to get

(33)
$\mathinner{\\!\left\lvert\langle(\partial_{t}L)w,w\rangle\right\rvert}\leq
C\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}$

Next, by rearranging (19) we find

(34) $\displaystyle\langle-\partial_{t}v-E^{\prime}(v),L_{\sigma}w\rangle\leq
C(\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}+\mathinner{\\!\left\lVert
w\right\rVert}_{X})\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}+\epsilon\mathinner{\\!\left\lVert w\right\rVert}_{X},$
(35) $\displaystyle-\langle
L_{\sigma}w,L_{\sigma}w\rangle\leq-\beta\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}\text{ for some }\beta>0,$ (36) $\displaystyle-\langle
N_{\sigma}(w),L_{\sigma}w\rangle\leq C\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{3}.$

For (34) and (36), we use (2). and the nonlinear estimate
$\mathinner{\\!\left\lVert N_{\sigma}(w)\right\rVert}\leq
C\mathinner{\\!\left\lVert w\right\rVert}^{2}$. For (35), we use the fact that
$L_{\sigma}$ has positive spectrum with a gap at $0$. This is due to the
stability condition (3).

Combining (34)-(36), we can bound the first inner product in (32) as

(37) $\langle\partial_{t}w,L_{\sigma}w\rangle\leq
C(\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}+\mathinner{\\!\left\lVert
w\right\rVert}_{X}-\beta)\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2}.$

Plugging (37)-(33) into (32), we have

(38) $\frac{1}{2}\mathinner{\\!\left\lvert\dfrac{\operatorname{d\\!}{}\langle
L_{\sigma}w,w\rangle}{\operatorname{d\\!}{t}}\right\rvert}\leq
C(\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}+\mathinner{\\!\left\lVert
w\right\rVert}_{X}-\beta)\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}+\epsilon\mathinner{\\!\left\lVert w\right\rVert}_{X}.$

Since $L_{\sigma}$ is uniformly bounded, by (38), we can find $\gamma>0$ s.th.

(39) $(\partial_{t}+\gamma)\langle L_{\sigma}w,w\rangle\leq
C(\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}+\mathinner{\\!\left\lVert
w\right\rVert}_{X}-\beta/2)\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}+\epsilon\mathinner{\\!\left\lVert w\right\rVert}_{X}.$

We now make the ansatz

(40)
$\mathinner{\\!\left\lVert\partial_{t}\sigma\right\rVert}_{Y}+\mathinner{\\!\left\lVert
w\right\rVert}_{X}\leq\beta/2,$

which we shall justify later. Then we can drop the first term in the r.h.s. of
(39), and multiply both side by $e^{\gamma t}$ to get

(41)
$\dfrac{\operatorname{d\\!}{}}{\operatorname{d\\!}{t}}\mathinner{\left(e^{\gamma
t}\langle L_{\sigma}w,w\rangle\right)}\leq C\epsilon e^{\gamma
t}\mathinner{\\!\left\lVert w\right\rVert}_{X}.$

Integrating (41), and then dividing the integration factor, we find

(42) $\displaystyle\langle L_{\sigma}w,w\rangle$ $\displaystyle\leq
C\mathinner{\left(e^{-\gamma t}\langle
L_{\sigma_{0}}w_{0},w_{0}\rangle+\epsilon M(t)\right)}$ $\displaystyle\leq
C\mathinner{\left(e^{-\gamma t}\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}^{2}+\epsilon
M(t)\right)}\quad\mathinner{\left(M(t)\mathrel{\mathop{\mathchar
58\relax}}=\sup_{t^{\prime}\leq t}\mathinner{\\!\left\lVert
w\right\rVert}_{X}\right)}.$

Together with the coercivity (3), we find

$M(t)\leq C\mathinner{\left(e^{-\gamma t}\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}+\epsilon\right)}.$

Choosing $\delta<\epsilon$, we can conclude from here that $M(t)<C\epsilon$
for all time. For $\epsilon$ sufficiently small, the intermediate assumptions
are satisfied. ∎

##  4\. Effective dynamics for Hamiltonian system

In this section we consider (1) with $J$ given by a symplectic operator on the
tangent bundle $TU$. Two cases arise from physics:

1\. The configuration space $H\subset L^{2}(\Omega,\mathbb{C})$ is equipped
with the real inner product $\langle u,v\rangle=\int\Re(\overline{u}v),$ and
$J\mathrel{\mathop{\mathchar 58\relax}}\psi\mapsto-i\psi$. Then (1) becomes a
Schrödinger type equation

(43) $\partial_{t}u=-iE^{\prime}(u).$

This is the typical setting of evolutions from quantum mechanics.

2\. The configuration space is of the form $H=H_{1}\times H_{2}$, and
$J\mathrel{\mathop{\mathchar 58\relax}}(u_{1},u_{2})\mapsto(u_{2},-u_{1})$.
Then (1) becomes a a Hamiltonian equation for $u\in H$ as

(44) $\partial_{t}u=\begin{pmatrix}0&1\\\ -1&0\end{pmatrix}E^{\prime}(u).$

Here, for consistency of notation, we denote $E$ the Hamiltonian. Equation
(44) is the first-order reduction of the second order dynamics

$\partial_{tt}v=-E^{\prime}(\tilde{v}),$

where $\tilde{E}$ is an energy functional on $H_{1}$ s.th.
$E^{\prime}(u)=(\tilde{E}^{\prime}(u_{1}),u_{2})$, and
$u=(u_{1},u_{2})=(v,\partial_{t}v)$.

######  Theorem 4.1.

There is $0\leq\delta\ll 1$ with the following property: Let $u_{0}\in H$ be
an initial configuration s.th. $\operatorname{dist}(u_{0},M)\leq\delta$. Let
$u_{t}$ be the flow generated by $u_{0}$ under (29). Then there is
$T=O(\epsilon^{-\alpha})$ s.th. for every $t\leq T$,

(45) $\operatorname{dist}(u_{t},M)<\epsilon.$

Moreover, if $\sigma_{t}$ is the moduli associated to $u_{t}$ as in Lemma 2.1,
then

(46)
$\partial_{t}\sigma=\mathcal{J}_{\sigma}^{-1}\mathcal{E}^{\prime}(\sigma)+O(\epsilon^{2}),$

where $\mathcal{J}_{\sigma}$ is the symplectic operator defined in (5).

###### Proof.

As in the proof of Theorem 3.1, we want to apply the coercivity of
$L_{\sigma}$ (3) to bound the remainder $\mathinner{\\!\left\lVert
w\right\rVert}_{X}$ uniformly in time, and then the conclusion would follow
from (18). To begin with, chooes $\delta<\epsilon$ so that (45) holds at least
up to some small $T_{1}>0$.

The main ingredient in the following arguments is the conservation of $E$
along (43)-(44). Consider the expansion

(47) $E(u)=E(v+w)=E(v)+\langle E^{\prime}(v),w\rangle+\frac{1}{2}\langle
L_{\sigma}w,w\rangle+R_{\sigma}(w),$

where $R_{\sigma}(w)$ is the super-quadratic remainder. By condition (3), (47)
implies

(48) $\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2}\leq
C(E(v+w)-E(v)-\langle E^{\prime}(v),w\rangle-R_{\sigma}(w)).$

Since $E(u)$ is conserved along (43)-(44), we have

$E(v+w)=E(v_{0}+w_{0})=E(v_{0})+\langle
E^{\prime}(v_{0}),w_{0}\rangle+\frac{1}{2}\langle
L_{\sigma}w_{0},w_{0}\rangle+R_{\sigma}(w_{0}).$

Plugging this into (48), we have

(49) $\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2}\leq
C\alpha^{-1}\mathinner{\left(E(v_{0})-E(v)+\langle
E^{\prime}(v_{0}),w_{0}\rangle-\langle
E^{\prime}(v),w\rangle+\frac{1}{2}\langle L_{\sigma_{0}}w_{0},w_{0}\rangle-
R_{\sigma}(w_{0})+R_{\sigma}(w)\right)}.$

The last five terms in (49) can be controlled as follows: By the approximate
critical point property (2), we have

$\langle E^{\prime}(v_{0}),w_{0}\rangle-\langle E^{\prime}(v),w\rangle\leq
C\epsilon(\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}+\mathinner{\\!\left\lVert w\right\rVert}_{X}).$

Since $L_{\sigma}$ is uniformly bounded, we have

$\langle L_{\sigma_{0}}w_{0},w_{0}\rangle\leq C\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}^{2}.$

Lastly, since the remainder $R_{\sigma}(w)$ is of the order
$o(\mathinner{\\!\left\lVert w\right\rVert}_{X}^{3})$ for $C^{3}$ functional
$E$. Thus

$R_{\sigma}(w)+R_{\sigma_{0}}(w_{0})\leq C(\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{3}+\mathinner{\\!\left\lVert w_{0}\right\rVert}_{X}^{3}).$

Thus (49) becomes

(50) $\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2}\leq
C\alpha^{-1}\mathinner{\left(E(v_{0})-E(v)+\epsilon\mathinner{\\!\left\lVert
w\right\rVert}_{X}+\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{3}+\epsilon\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}+\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}^{2}+\mathinner{\\!\left\lVert
w_{0}\right\rVert}_{X}^{3}\right)}.$

It remains to control the first two terms in the r.h.s. of (50). This
difference is the energy fluctuation of the approximate filaments, and it can
be controlled as follows. Differentiate the energy $E(t)=E(f(\sigma_{t}))$ and
using (20), we have

(51) $\displaystyle\dfrac{\operatorname{d\\!}{}E}{\operatorname{d\\!}{t}}$
$\displaystyle=\langle E^{\prime}(v),\partial_{t}v\rangle$
$\displaystyle=\langle E^{\prime}(v),Q_{\sigma}JE^{\prime}(v)\rangle+\langle
E^{\prime}(v),Q_{\sigma}(JL_{\sigma}w-\partial_{t}w)\rangle+\langle
E^{\prime}(v),Q_{\sigma}JN_{\sigma}(w))\rangle.$

We now bound the three inner products respectively.

Since $Q_{\sigma}$ and $J$ commute (which follows from the definition of
$Q_{\sigma}$ as projection), and since $J$ is a symplectic operator, it
follows that

$\langle E^{\prime}(v),Q_{\sigma}JE^{\prime}(v)\rangle=\langle
E^{\prime}(v),Q_{\sigma}^{2}JE^{\prime}(v)\rangle=\langle
Q_{\sigma}E^{\prime}(v),Q_{\sigma}JE^{\prime}(v)\rangle=\langle
Q_{\sigma}E^{\prime}(v),JQ_{\sigma}E^{\prime}(v)\rangle=0.$

Thus the first term in (51) vanishes.

Using (22)-(23) and (28), the second inner product can be bounded as

(52) $\mathinner{\\!\left\lvert\langle
E^{\prime}(v),Q_{\sigma}(JL_{\sigma}w-\partial_{t}w)\rangle\right\rvert}\leq
C\mathinner{\left(\epsilon^{2}\mathinner{\\!\left\lVert
w\right\rVert}_{X}+\epsilon^{\alpha}\mathinner{\\!\left\lVert
w\right\rVert}_{X}^{2}\right)}.$

Lastly, by the uniform nonlinear estimate (24), the third inner product in
(51) can be bounded as

(53) $\mathinner{\\!\left\lvert\langle
E^{\prime}(v),Q_{\sigma}JN_{\sigma}(w))\rangle\right\rvert}\leq
C\epsilon\mathinner{\\!\left\lVert w\right\rVert}_{X}^{2}.$

Combining (51)-(53) and integrating from $0$ to $t$, we have

(54) $\mathinner{\\!\left\lvert E(v(t))-E(v(0))\right\rvert}\leq
Ct\mathinner{\left(\epsilon^{2}M(t)+\epsilon^{\alpha}M(t)^{2}\right)},$

where $M(t)\mathrel{\mathop{\mathchar 58\relax}}=\sup_{t^{\prime}\leq
t}\mathinner{\\!\left\lVert w(t^{\prime})\right\rVert}_{X}$. Plugging(54) into
(50) and dividing both side by $M(t)$, we have

(55) $M(t)\leq\gamma\mathinner{\left(t\mathinner{\left(\epsilon
M(t)+\epsilon^{2}M(t)+\epsilon^{\alpha}M(t)^{2}\right)}+\mathinner{\left(\epsilon+\delta+\delta^{2}\right)}\right)},$

for some $\gamma>0$ independent of $\epsilon$ and $\delta$.

Let $T_{1}>0$ be the first time s.th. $\mathinner{\\!\left\lVert
w\right\rVert}_{X}\geq\epsilon$, and recall we have chosen
$\delta\leq\epsilon$. If

$T_{1}<\frac{1}{2}\gamma^{-1}\epsilon^{-\alpha},$

then we have by (55) that

$\epsilon<\epsilon+O(\epsilon^{2-\alpha}).$

For $\epsilon$ sufficiently small, this is impossible. Thus claim (45) hold up
to a large time $T=O(\epsilon^{-\alpha})$ as desired.

∎

##  5\. Application to interface dynamics

In this section we consider a typical situation arising from the study of
phase transition.

Consider a suitable function space $X$ consisting of vector-valued order
parameters $u\mathrel{\mathop{\mathchar
58\relax}}\mathbb{R}^{n}_{x}\times\mathbb{R}^{k}_{z}\to\mathbb{R}^{k}$.
Suppose there is a $k$-dimensional interface at
$\mathinner{\left\\{x=0,z\in\mathbb{R}^{k}\right\\}}$, separating two
homogeneous phases. Suppose we are given a stable equilibrium $\psi$ of (1).
That is, for some $0<\alpha<1$ and small $\epsilon$,

(56)
$\displaystyle\mathinner{\\!\left\lVert\nabla_{x}\psi\right\rVert}_{X}\sim\epsilon^{-\alpha}\text{
due to the phase transition at the interface},$ (57) $\displaystyle
E^{\prime}(\psi)=0,\quad L_{\psi}\mathrel{\mathop{\mathchar
58\relax}}=E^{\prime\prime}(\psi)\geq 0\text{ and $0$ is isolated from the
spectrum of $L_{\psi}$}.$

Consider a space $Y$ consisting of smooth perturbations of the $k$-dimensional
interface of the form $\sigma\mathrel{\mathop{\mathchar
58\relax}}\mathbb{R}^{k}\to\mathbb{R}^{n}$. Define

(58) $f\mathrel{\mathop{\mathchar
58\relax}}\sigma\mapsto\psi_{\sigma}\mathrel{\mathop{\mathchar
58\relax}}=\psi(x-\sigma(z),z).$

This map is smooth if $\psi$ is smooth. The Fréchet derivative of $f$ is given
by

(59) $df(\sigma)\mathrel{\mathop{\mathchar
58\relax}}\xi\mapsto-\nabla_{x}\psi_{\sigma}\cdot\xi.$

As we have discussed in Section 2, it is possible to choose
$\Sigma_{\epsilon}$ consisting of $\sigma$ with sufficiently small
$\mathinner{\\!\left\lVert\sigma\right\rVert}_{Y}\ll 1$ s.th. (2)-(4) hold.

Moreover, using the formula (59), one can see that (56) implies (6)-(9), and
therefore the framework we laid in the previous sections work.

We give a concrete example from condensed matter theory. Let
$\Omega\subset\mathbb{R}^{d},\,d=2,3$ be an open domain. Consider the
Ginzburg-Landau energy functional

(60) $E(\psi)=E_{\Omega}^{\epsilon}(\psi)\mathrel{\mathop{\mathchar
58\relax}}=\int_{\Omega}\frac{1}{2}\mathinner{\\!\left\lvert\nabla\psi\right\rvert}^{2}+\frac{1}{4\epsilon^{2}}\mathinner{\left(\mathinner{\\!\left\lvert\psi\right\rvert}^{2}-1\right)}^{2}.$

Here $\psi\mathrel{\mathop{\mathchar 58\relax}}\Omega\to\mathbb{C}$ is a
complex order parameter representing, for instance, the Bose-Einstein
condensate in superfluidity. The energy (60) has translation, rotatoin, and
$U(1)$-gauge symmetries.

It is well known that there is non-trivial stable critical point
$\psi\mathrel{\mathop{\mathchar 58\relax}}\mathbb{R}^{2}\to\mathbb{C}$
satisfying

(61)
$\displaystyle\mathinner{\\!\left\lVert\nabla_{x}\psi\right\rVert}_{L^{2}}\sim|\log\epsilon|^{1/2},$
(62) $\displaystyle E^{\prime}(\psi)=0,\quad L_{\psi}\geq
0,\quad\mathinner{L_{\psi}\Biggr{\rvert}}_{Z^{\perp}}\geq\alpha>0.$

See for instance [MR1479248]. Here $Z$ denotes the space of symmetry zero
modes, in this case generated by the broken translation and global gauge
symmetry. This $\psi$ is known as the _vortex_ solution.

The characteristic feature of the vortex $\psi$ is its concentration property.
This is due to the structure of nonlinearity in (60), which forces the non-
homogeneous equilibrium to rapidly increase from $0$ to $1$ in all directions
away from (up to translation) the origin.

The planar vortex obvious lift to a steady state in $\mathbb{R}^{3}$ through
$\psi(x)\mapsto\psi(x,z)$, where $z\in\mathbb{R}$ parametrizes the vertical
direction. This spatial configuration concentrates near the vertical axis
$\mathinner{\left\\{x=0\right\\}}$. We consider perturbations of the form

(63) $f(\sigma)=\psi(x-\sigma(z),z),\quad\sigma\mathrel{\mathop{\mathchar
58\relax}}\mathbb{R}\to\mathbb{R}^{2}.$

Each $f(\sigma)$ describes a vortex filament that curves around the vertical
axis. In the companion paper [zhang2021adiabatic], we show that under some
small curvature assumption, we can reduce the dispersive Ginzburg-Landau (or
Gross-Pitaevskii) equation

(64)
$i\dfrac{\partial{}\psi}{\partial{t}}=-\Delta\psi+\frac{1}{\epsilon^{2}}\mathinner{\left(|\psi|^{2}-1\right)}\psi.$

to an evolution of concentration set (or moduli), namely the binormal
curvature flow

(65)
$\partial_{t}\sigma=\partial_{s}\sigma\times\partial\sigma,\quad\mathinner{\\!\left\lvert\partial_{s}\sigma\right\rvert}\equiv
1.$

Let us remark that most results relating the geometry of high dimensional
interfaces to the full configurations rely on rather involved measure
theoretic arguments, see for instance [MR1491752, MR2195132]. Moreover, these
results do not retain the structure of the interface, as they take the limit
as the length scale $\epsilon\to 0$. On the other hand, results using
adiabatic approximations are mostly for rather simple geometry of interfaces
(e.g. finite collection of points), see the cited works in the Introduction.

##  Appendix A Basic variational calculus

Here we recall some basic elements of variational derivatives that we used
repeatedly. For details, see for instance [MR2431434]*Appendix C

Let $X,\,Y$ be two Banach spaces, $U$ be an open set in $X$. For a map
$g\mathrel{\mathop{\mathchar 58\relax}}U\subset X\to Y$ and a vector $u\in U$,
the Fréchet derivative $dg(u)$ is a linear map from $X\to Y$ s.th.
$g(u+v)-g(u)-dg(u)v=o(\mathinner{\\!\left\lVert v\right\rVert}_{X})$ for every
$v\in X$. If $dg(u)$ exists at $u$, then it is unique. If $dg(u)$ exists for
every $u\in U$, and the map $u\mapsto dg(u)$ is continuous from $U$ to the
space of linear operators $L(X,Y)$, then we we say $g$ is $C^{1}$ on $U$. In
this case, $dg(u)$ is uniquely given by

$v\mapsto\mathinner{\dfrac{\operatorname{d\\!}{}g(u+tv)}{\operatorname{d\\!}{t}}\Biggr{\rvert}}_{t=0}\quad(v\in
X).$

Iteratively, we can define higher order derivatives this way.

If $X$ is a Hilbert space over the scalar field $Y$, then by Riesz
representation, we can identify $dg(u)$ as an element in $X$, denoted
$g^{\prime}(u)$. The vector $g^{\prime}(u)$ is called the $X$-gradient of $g$.
Similarly, we denote $g^{\prime\prime}(u)$ the second order Fréchet derivative
$d^{2}g(u)$. If $g$ is $C^{2}$, then $g^{\prime\prime}$ can be identified as a
linear map uniquely determined by the relation

$\langle
g^{\prime\prime}(u)v,w\rangle=\mathinner{\dfrac{\partial{{}^{2}}g(u+tv+sw)}{\partial{t^{1}}\partial{v^{1}}}\Biggr{\rvert}}_{s=t=0}\quad(v,w\in
X).$

Let $\Omega\subset\mathbb{R}^{d}$ be a bounded domain with smooth boundary.
Fix $r>d/2,\,f\in C^{r+1}(\mathbb{R}^{n})$. For $u\mathrel{\mathop{\mathchar
58\relax}}\Omega\to\mathbb{R}^{n}$, define a map $g\mathrel{\mathop{\mathchar
58\relax}}u\mapsto f\circ u$. Then $g\mathrel{\mathop{\mathchar
58\relax}}H^{r}(\Omega)\to\mathcal{H}^{r}(\Omega)$, and is $C^{1}$. The
Fréchet derivative is given by $v\mapsto\nabla f\cdot v$.

## References


#  Taming the Panda with Python: A Powerful Duo for Seamless Robotics
Programming and Integration

Jean Elsner1,∗ 1 Munich Institute of Robotics and Machine Intelligence
(MIRMI), Technical University of Munich (TUM), Munich, Germany$*$
Correspondence<EMAIL_ADDRESS>
###### Abstract

Franka Emika robots have gained significant popularity in research and
education due to their exceptional versatility and advanced capabilities. This
work introduces panda-py – a Python interface and framework designed to
empower Franka Emika robotics with accessible and efficient programming. The
panda-py interface enhances the usability of Franka Emika robots, enabling
researchers and educators to interact with them more effectively. By
leveraging Python’s simplicity and readability, users can quickly grasp the
necessary programming concepts for robot control and manipulation. Moreover,
integrating panda-py with other widely used Python packages in domains such as
computer vision and machine learning amplifies the robot’s capabilities.
Researchers can seamlessly leverage the vast ecosystem of Python libraries,
thereby enabling advanced perception, decision-making, and control
functionalities. This compatibility facilitates the efficient development of
sophisticated robotic applications, integrating state-of-the-art techniques
from diverse domains without the added complexity of ROS.

###### Index Terms:

robotics, software, python, control, franka, emika, panda, panda-py

##  I Introduction

In recent years, Python has emerged as a dominant language in the machine
learning community, thanks to its extensive libraries and frameworks such as
TensorFlow, PyTorch, and scikit-learn [1, 2, 3]. However, its popularity is
not limited to machine learning alone. Python is gaining significant traction
in the robotics community as well [4]. While there have been occasional voices
of concern from the robotics community regarding Python’s performance for
real-time and resource-intensive robotics tasks, it is worth noting that
performance-critical components can be implemented in languages like C or C++
and seamlessly integrated with Python [5]. This combination allows developers
to harness the high-level features and ease of use provided by Python while
still achieving the desired performance [6]. Additionally, Python’s cross-
platform compatibility, portability, and extensive ecosystem of libraries make
it an attractive choice for robotics. The language’s ease of use and rapid
prototyping capabilities further contribute to its growing adoption in the
robotics community, enabling researchers and developers to quickly iterate,
experiment, and deploy robotics systems with ease. Finally, the programming
language’s immense popularity and ease of use make it an excellent choice for
robotics education, enabling students to quickly learn and experiment with
robotics concepts.

Franka Emika robot manipulators have gained significant popularity in research
and education due to their exceptional capabilities and versatility. These
robots are highly sought after for their industrial repeatability, force
sensitivity, and torque control interface, making them well-suited for various
applications. The ability to precisely repeat tasks with high accuracy and
their sensitive force feedback capabilities, enables researchers to explore
areas such as human-robot interaction, collaborative robotics, and intricate
manipulation tasks [7]. Efforts are already underway to integrate Franka Emika
robots into educational settings, including schools in Germany, where the
user-friendly browser-based interface called ”Desk” enables users to program
the robots graphically using drag and drop for simple tasks, facilitating
robotics education at various levels [8]. However, for more advanced
applications, users will have to use either the provided interface through an
open-source C++ library called libfranka directly or a ROS version of the same
interface. The C++ library has rather strict real-time requirements, and
setting it up and effectively programming it can be a daunting task for novice
programmers. Similarly, using ROS comes with a considerable overhead, a steep
learning curve, and limited portability and cross-platform support.

The panda-py111Earlier models of the Franka Emika robot were known as Panda,
hence the name. framework simplifies the programming, deployment, and
installation process for Franka Emika robot systems. It offers an all-in-one
solution with pre-packaged dependencies, ensuring a seamless experience out of
the box. With panda-py, researchers and developers can focus on their work
without the hassle of manual setup, benefiting from its user-friendly
interface, extensive Python ecosystem, and effortless integration. It
streamlines the process, making programming and experimentation with Franka
Emika robots more accessible and efficient for research and education
purposes. In this paper, the author aims to demonstrate the utility of panda-
py in a tutorial style222All of the provided examples are also available
online and are ready to run on real hardware..

##  II Installation and Setup

The panda-py software is implemented as a Python package. Specifically, it is
distributed as a Python wheel, i.e., a pre-built binary that can be installed
using the package manager pip. The wheel includes all the needed dependencies
to connect to and control the robot, while the package manager will install
the appropriate versions for the local platform. To install the package,
execute

⬇

pip install panda-python

from a terminal333Visit the online repository at
http://github.com/JeanElsner/panda-py for more information on how to build
from source or install specific versions.. Upon initiating the robotic system,
a prerequisite for controlling the robot involves the release of its brakes
and the activation of the interface. Typically, this procedure is done through
the browser-based Desk interface [7]. Nonetheless, this approach may prove
inconvenient when dealing with headless setups or highly integrated systems.
To address this challenge, panda-py incorporates a specialized Desk client,
facilitating the seamless execution of these essential tasks more efficiently
and user-friendly. (cf. Code Block 1).

import panda_py

desk = panda_py.Desk(hostname, username, password) desk.unlock()
desk.activate_fci()

Figure 1: Use the Desk client to connect to the web application on the control
unit to unlock the brakes and activate the Franka Research Interface (FCI) for
robot torque control.

Once the robot is prepared, a connection can be established by instantiating
the Panda class with the robot’s hostname as an argument, as exemplified in
Code Block 2.

from panda_py import libfranka

panda = panda_py.Panda(hostname) gripper = libfranka.Gripper(hostname)

Figure 2: Connect to the robot using the Panda class. The default gripper from
Franka Emika does not support real-time control and can be controlled using
the libfranka bindings directly.

The Panda class is a high-level wrapper with various convenience functions
over libfranka’s robot class. However, panda-py also includes bindings for all
the low-level libfranka types and functions as part of a subpackage that may
be used directly. This feature is used in Code Block 2 to connect to the
Franka Emika Hand.

For the remainder of the tutorial, we will assume that a connection to the
robot hardware was established, and the Panda and Gripper instances were
assigned to the variables panda and gripper, respectively.

##  III Basic Robot Control

The panda-py package offers its users powerful features out of the box. There
are modules for time-optimal motion generation [9], analytical inverse
kinematics [10], a library of proven robust standard controllers, integrated
state logging, and more. These components are implemented as CPython modules
in C++ and can seamlessly be used in Python code. Table I compares the
runtimes of common API calls between the Python bindings and native C++.
Motion generation can be accessed through the methods of the Panda class. The
robot’s neutral or starting pose can be reached with a single call to
move_to_start. The phase space around this pose is characterized by high
manipulability, reachability, and distance to joint limits. Code Block 3
further demonstrates motion in joint space by adding a displacement to the
homogeneous transform describing the end-effector pose and using the built-in
inverse kinematics to compute the goal joint positions.

API Call | Python Runtime ($\mathrm{s}$) | C++ Runtime (s)
---|---|---
fk | $2.49\text{\times}{10}^{-06}$ | $1.84\text{\times}{10}^{-06}$
ik | $2.34\text{\times}{10}^{-06}$ | $7.65\text{\times}{10}^{-07}$
JointMotion | $1.73\text{\times}{10}^{-02}$ | $1.70\text{\times}{10}^{-02}$
CartesianMotion | $9.66\text{\times}{10}^{-03}$ | $8.10\text{\times}{10}^{-03}$
TABLE I: Average runtimes of common panda-py API calls executed in Python 3.10
and C++17. Each call was executed and timed $10\,000$ times with random state-
space samples (5 waypoints for motion generation) on an Intel® Core™ i7-8565U
CPU @ 1.80GHz.

panda.move_to_start() pose = panda.get_pose() pose[2,3] -= .1 q =
panda_py.ik(pose) panda.move_to_joint_position(q)

Figure 3: Simple motion generation in joint space. The call to get_pose
produces a $4\times 4$ matrix representing the homogeneous transform from
robot base to end-effector. The indices $2,3$ refer to the third row and
fourth column, respectively, i.e., the z-coordinate. The position in z is
lowered by $0.1\text{\,}\mathrm{m}$ and passed to the inverse kinematics
function to produce joint positions. Finally, the call to
move_to_joint_position generates a motion from the current to the desired
joint potions.

Similarly, Cartesian motions can be executed directly by providing a goal pose
as seen in Code Block 4. Note that the interface can also compute motions with
multiple waypoints. The integrated motion generators will compute time-optimal
trajectories between the points while ensuring the robot adheres to velocity,
acceleration, and joint limit constraints. Internally the trajectory will be
traced by a joint impedance controller. In panda-py, the user can set various
advanced parameters, such as control gains and allowed path deviation, when
generating motion.

panda.move_to_start() pose = panda.get_pose() pose[2,3] -= .1
panda.move_to_pose(pose)

Figure 4: Simple motion generation in Cartesian space. The z-coordinate of the
current end-effector pose is lowered by $0.1\text{\,}\mathrm{m}$ as in Code
Block 3. However, the resulting pose is passed directly to move_to_pose to
produce a motion in Cartesian space.

While the software features numerous shorthands and convenience methods, users
can always access the full breadth of the libfranka library. For instance, a
call to

⬇

panda.get_state()

will retrieve the latest libfranka RobotState received from the robot.
Similarly, the Panda class also provides a reference to the libfranka Model
associated with the running instance.

⬇

panda.get_model()

These Python wrappers offer the entire C++ API, i.e., class member variables
and functions. The same is true for the previously initialized gripper. The
gripper can be controlled using the class member functions grasp and move.

⬇

gripper.grasp(width, speed, force, epsilon_inner, epsilon_outer)

⬇

gripper.move(width, speed)

Function calls in panda-py allow users to use native Python types as
arguments. More than that, the backend uses the powerful Eigen [11] library
for linear algebra and will transparently and efficiently convert Eigen
matrices to numpy [12] arrays without modifying the underlying memory
structure.

Logging robot states is a ubiquitous requirement in robotics experiments, yet
it can be challenging to set up, particularly when capturing states at high
frequencies. However, panda-py offers a convenient solution with its
integrated mechanism to write the whole state of the robot into a circular
buffer at $1\text{\,}\mathrm{kHz}$ when activated. This feature simplifies the
logging process, allowing users to easily capture and store data for
subsequent evaluation, plotting, and other signal-processing tasks. Code Block
5 illustrates how to enable logging and store the resulting buffer, while
Figure 6 shows plots of some of the captured telemetry.

from panda_py import constants

T_0 = panda_py.fk( constants.JOINT_POSITION_START) T_0[1,3] = 0.25 T_1 =
T_0.copy() T_1[1,3] = -0.25

panda.move_to_pose(T_0) panda.enable_logging(2e3) panda.move_to_pose(T_1)
panda.disable_logging() log = panda.get_log()

Figure 5: Using the integrated logging mechanism, the libfranka RobotState can
be logged at a frequency of $1\text{\,}\mathrm{kHz}$. Based on the starting
pose, this example creates two end-effector poses, T_0 and T_1, displaced
$0.25\text{\,}\mathrm{m}$ to the left and right, respectively. Logging is
enabled for this Panda instance before a motion is generated between these
poses (line 9). The enable_logging function takes the buffer size in the
number of steps as an argument. As such, $2\text{\times}{10}^{3}$ steps at
$1\text{\,}\mathrm{kHz}$ correspond to a buffer holding the state of the past
2 seconds. After the motion is finished, logging is disabled, and the buffer
is retrieved (line 12). Figure 6: Plotting the robot’s internal state during
motion recorded with the integrated logging mechanism. The plots show the
traced path of the end-effector in the robot base frame projected onto the xy-
plane. The motion is generated as seen in Code Block 5, i.e., using two
waypoints displaced $0.5\text{\,}\mathrm{m}$ along the y-axis. The motion of
the left plot was generated using move_to_pose and resulted in a linear path
in Cartesian space. In contrast, the motion of the right plot is the result of
a call to move_to_joint_position with the same waypoints, resulting in a non-
linear path in Cartesian space.

Finally, for more advanced applications, there is a library of standard
controllers. Controllers are classes instantiated by users and passed to the
Panda class for execution. The controllers will run independently of the
Python Global Interpreter Lock in the background and meet all of libfranka’s
real-time requirements. At the same time, the user may provide an input signal
asynchronously.

import numpy as np

panda.move_to_start() ctrl = controllers.CartesianImpedance() x0 =
panda.get_position() q0 = panda.get_orientation() runtime = np.pi*4.0
panda.start_controller(ctrl)

with panda.create_context(frequency=1e3, max_runtime=runtime) as ctx: while
ctx.ok(): x_d = x0.copy() x_d[1] += 0.1*np.sin(ctrl.get_time())
ctrl.set_control(x_d, q0)

Figure 7: Running a panda-py controller. After initializing the controller,
the current position and orientation are stored in x0 and q0, respectively,
where q0 is a quaternion representation of the end-effector orientation. After
starting the controller, a PandaContext is created from the Panda object (line
10). PandaContext is a convenient context manager that executes a loop at a
fixed frequency. The call to PandaContext.ok throttles the loop and raises any
control exceptions that may have been raised by libfranka. The use of
PandaContext is optional, and users are free to manage the control flow how
they wish. This example adds a periodic linear displacement along the y-axis
to the initial pose (line 13). This results in the end-effector moving
periodically from left to right in straight lines.

Code Block 7 demonstrates the essentials of using a panda-py controller. The
controller CartesianImpedance is instantiated and passed to the Panda class
for execution. While the controller is running, the user can use its
set_control method asynchronously to provide an input signal. The panda-py
controllers provide many configuration options specific to the individual
controller, such as control gains or filter settings. These options may be
changed at run-time as well. In this example, the input signal is provided in
a high-frequency loop without filtering for more fine-grained control. All
controllers include virtual joint walls, so the input signal need not
explicitly consider the joint limits. While various methods exist to control
aspects such as the robot’s reflex behavior and error recovery, the content
covered in this chapter already provides a foundational level of control over
the robot.

##  IV Integration with Python Packages

A notable aspect of panda-py is its ability to seamlessly integrate with
popular Python packages, such as the Robotics Toolbox for Python [4] or MuJoCo
[13]. Using Python bindings to integrate the robot hardware makes for
singularly lightweight and straightforward integration. The middleware layer
can be avoided entirely while all necessary hardware setup and preparation can
be centralized. In our previous work, we found this aspect particularly
convenient when running MuJoCo simulations with hardware in the loop for
haptic interaction and predictive modeling [14].

By leveraging the capabilities of these existing packages, researchers can
easily extend the functionalities of Franka Emika robots, as is demonstrated
in this final example. Specifically, a resolved rate motion controller
utilizing reactive control based on quadratic programming is integrated with
panda-py, leveraging the Robotics Toolbox for Python. This integration
exemplifies the ease of extending panda-py to incorporate more complex
functionalities, such as reactive collision avoidance and mobile manipulation.
The code snippet in Code Block 8 provides a clear representation of the
integrated implementation. Notably, the solution to the controller’s quadratic
program yields joint velocities that seamlessly interface with the
IntegratedVelocity controller.

import qpsolvers as qp import roboticstoolbox as rtb import spatialmath as sm

ctrl = controllers.IntegratedVelocity() panda.move_to_start()
panda.start_controller(ctrl)

# Initialize roboticstoolbox model panda_rtb = rtb.models.Panda()

# Set the desired end-effector pose Tep = panda_rtb.fkine(panda.q) *
sm.SE3(0.3, 0.2, 0.3)

# Number of joints in the panda which we are controlling n = 7 arrived = False

# The original example runs in simulation with a control frequency of 20Hz
with panda.create_context(frequency=20) as ctx: while ctx.ok() and not
arrived:

# The pose of the Panda’s end-effector Te = panda_rtb.fkine(panda.q)

# Transform from the end-effector to desired pose eTep = Te.inv() * Tep

# Spatial error e = np.sum(np.abs(np.r_[eTep.t, eTep.rpy() * np.pi / 180]))

# Calulate the required end-effector spatial velocity for the robot # to
approach the goal. Gain is set to 1.0 v, arrived = rtb.p_servo(Te, Tep, 1.0)

# Gain term (lambda) for control minimisation Y = 0.01

# Quadratic component of objective function Q = np.eye(n + 6)

# Joint velocity component of Q Q[:n, :n] *= Y

# Slack component of Q Q[n:, n:] = (1 / e) * np.eye(6)

# The equality contraints Aeq = np.c_[panda_rtb.jacobe(panda.q), np.eye(6)]
beq = v.reshape((6,))

# Linear component of objective function: the manipulability Jacobian c =
np.r_[ -panda_rtb.jacobm().reshape((n,)), np.zeros(6)]

# The lower and upper bounds on the joint velocity and slack variable lb =
-np.r_[panda_rtb.qdlim[:n], 10 * np.ones(6)] ub = np.r_[panda_rtb.qdlim[:n],
10 * np.ones(6)]

# Solve for the joint velocities dq qd = qp.solve_qp(Q, c, None, None, Aeq,
beq, lb=lb, ub=ub, solver=’daqp’)

# Apply the joint velocities to the Panda ctrl.set_control(qd[:n])

Resolved rate controller with reactive manipulability maximization. This
example is from the Robotics Toolbox for Python [15]. To run it on the real
hardware with panda-py requires only connecting the inputs and outputs of the
control loop to panda-py, i.e., using the joint positions Panda.q and
providing the control signal to IntegrateVelocity.set_control. Additionally,
the inequality constraints to avoid the joint limits were removed, as panda-py
controllers already have integrated joint limit avoidance using impedance
control.

##  V Conclusion

In conclusion, this research paper has introduced panda-py as a Python
interface and framework that facilitates the programming of Franka Emika
robots. The inclusion of concise and approachable code examples throughout the
paper highlights panda-py’s user-friendly nature and effectiveness in
controlling the robots. It is worth noting that this paper provides only a
glimpse into the extensive capabilities of panda-py, as it represents a
dynamic and evolving ecosystem. Online resources, including additional
examples, documentation, and the help of the robotics community, contribute to
the continual maintenance and expansion of panda-py. Researchers and users are
encouraged to explore these resources for a comprehensive understanding of
panda-py’s potential. The author aims to apply the same paradigm and lessons
learned from developing panda-py to other robot hardware in future work.
Additionally, integrating panda-py with reinforcement learning environments
opens up exciting opportunities to explore robot learning.

## ACKNOWLEDGMENT

The author gratefully acknowledges the funding support provided by the
Lighthouse Initiative Geriatronics by StMWi Bayern (Project X, grant no.
IUK-1807-0007// IUK582/001).

## References

  * [1] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, R. Jozefowicz, Y. Jia, L. Kaiser, M. Kudlur, J. Levenberg, D. Mané, M. Schuster, R. Monga, S. Moore, D. Murray, C. Olah, J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker, V. Vanhoucke, V. Vasudevan, F. Viégas, O. Vinyals, P. Warden, M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng, “TensorFlow, Large-scale machine learning on heterogeneous systems,” Nov. 2015.
  * [2] A. Paszke, S. Gross, F. Massa, A. Lerer, J. Bradbury, G. Chanan, T. Killeen, Z. Lin, N. Gimelshein, L. Antiga, A. Desmaison, A. Kopf, E. Yang, Z. DeVito, M. Raison, A. Tejani, S. Chilamkurthy, B. Steiner, L. Fang, J. Bai, and S. Chintala, “PyTorch: An Imperative Style, High-Performance Deep Learning Library,” in _Advances in Neural Information Processing Systems 32_ , H. Wallach, H. Larochelle, A. Beygelzimer, F. d’Alché Buc, E. Fox, and R. Garnett, Eds. Curran Associates, Inc., 2019, pp. 8024–8035. [Online]. Available: http://papers.neurips.cc/paper/9015-pytorch-an-imperative-style-high-performance-deep-learning-library.pdf
  * [3] L. Buitinck, G. Louppe, M. Blondel, F. Pedregosa, A. Mueller, O. Grisel, V. Niculae, P. Prettenhofer, A. Gramfort, J. Grobler, R. Layton, J. VanderPlas, A. Joly, B. Holt, and G. Varoquaux, “API design for machine learning software: experiences from the scikit-learn project,” in _ECML PKDD Workshop: Languages for Data Mining and Machine Learning_ , 2013, pp. 108–122.
  * [4] P. Corke and J. Haviland, “Not your grandmother’s toolbox–the robotics toolbox reinvented for python,” in _2021 IEEE International Conference on Robotics and Automation (ICRA)_. IEEE, 2021, pp. 11 357–11 363.
  * [5] D. Abrahams and R. W. Grosse-Kunstleve, “Building hybrid systems with boost. python,” _C/C++ Users Journal_ , vol. 21, no. LBNL-53142, 2003.
  * [6] W. Jakob, J. Rhinelander, and D. Moldovan, “pybind11–seamless operability between c++ 11 and python,” _URL: https://github. com/pybind/pybind11_ , 2017\.
  * [7] S. Haddadin, S. Parusel, L. Johannsmeier, S. Golz, S. Gabl, F. Walch, M. Sabaghian, C. Jähne, L. Hausperger, and S. Haddadin, “The franka emika robot: A reference platform for robotics research and education,” _IEEE Robotics & Automation Magazine_, vol. 29, no. 2, pp. 46–64, 2022.
  * [8] S. Haddadin, L. Johannsmeier, J. Schmid, T. Ende, S. Parusel, S. Haddadin, M. Schappler, T. Lilge, and M. Becker, “roboterfabrik: A pilot to link and unify german robotics education to match industrial and societal demands,” in _Robotics in Education_ , W. Lepuschitz, M. Merdan, G. Koppensteiner, R. Balogh, and D. Obdržálek, Eds. Cham: Springer International Publishing, 2019, pp. 3–17.
  * [9] T. Kunz and M. Stilman, “Time-optimal trajectory generation for path following with bounded acceleration and velocity,” in _Robotics: Science and Systems_ , July 2012, pp. 09–13.
  * [10] Y. He and S. Liu, “Analytical inverse kinematics for Franka Emika Panda – a geometrical solver for 7-DOF manipulators with unconventional design,” in _2021 9th International Conference on Control, Mechatronics and Automation (ICCMA2021)_. IEEE, Nov. 2021.
  * [11] G. Guennebaud, B. Jacob _et al._ , “Eigen v3,” http://eigen.tuxfamily.org, 2010.
  * [12] C. R. Harris, K. J. Millman, S. J. van der Walt, R. Gommers, P. Virtanen, D. Cournapeau, E. Wieser, J. Taylor, S. Berg, N. J. Smith, R. Kern, M. Picus, S. Hoyer, M. H. van Kerkwijk, M. Brett, A. Haldane, J. F. del Rio, M. Wiebe, P. Peterson, P. Gérard-Marchant, K. Sheppard, T. Reddy, W. Weckesser, H. Abbasi, C. Gohlke, and T. E. Oliphant, “Array programming with NumPy,” _Nature_ , vol. 585, no. 7825, pp. 357–362, Sep. 2020. [Online]. Available: https://doi.org/10.1038/s41586-020-2649-2
  * [13] E. Todorov, T. Erez, and Y. Tassa, “Mujoco: A physics engine for model-based control,” in _2012 IEEE/RSJ International Conference on Intelligent Robots and Systems_. IEEE, 2012, pp. 5026–5033.
  * [14] J. Elsner, G. Reinerth, L. Figueredo, A. Naceri, U. Walter, and S. Haddadin, “Parti-a haptic virtual reality control station for model-mediated robotic applications,” _Frontiers in Virtual Reality_ , vol. 3, 2022. [Online]. Available: https://www.frontiersin.org/articles/10.3389/frvir.2022.925794
  * [15] J. Haviland and P. Corke, “Maximising manipulability during resolved-rate motion control,” _CoRR_ , vol. abs/2002.11901, 2020. [Online]. Available: https://arxiv.org/abs/2002.11901