May 1, 2026
Learning the Metric of Task Constraint Manifolds for Constrained Motion Planning, Zha et. al.
Collision-Free Motion Planning Problem:
\[\begin{array}{rl}\min_\gamma & L(\gamma)\\ \operatorname{s.t.} & \gamma:[0,1]\to\mathbb R^n\\ & \gamma(0)=q_0,\gamma(1)=q_1\\ & g(\gamma(t))\le 0,\forall t\in[0,1]\end{array}\]
Constrained Collision-Free Motion Planning Problem:
\[\begin{array}{rl}\min_\gamma & L(\gamma)\\ \operatorname{s.t.} & \gamma:[0,1]\to\mathbb R^n\\ & \gamma(0)=q_0,\gamma(1)=q_1\\ & g(\gamma(t))\le 0,\forall t\in[0,1]\\ & h(\gamma(t))=0,\forall t\in[0,1]\end{array}\]
Constrained Collision-Free Motion Planning Problem:
\[\begin{array}{rl}\min_\gamma & L(\gamma)\\ \operatorname{s.t.} & \gamma:[0,1]\to\mathbb R^n\\ & \gamma(0)=q_0,\gamma(1)=q_1\\ & g(\gamma(t))\le 0,\forall t\in[0,1]\\ & h(\gamma(t))=0,\forall t\in[0,1]\end{array}\]
\[\begin{array}{rl}\min_\gamma & L(\gamma)\\ \operatorname{s.t.} & \gamma:[0,1]\to\mathbb R^n\\ & \gamma(0)=q_0,\gamma(1)=q_1\\ & g(\gamma(t))\le 0,\forall t\in[0,1]\\ & h(\gamma(t))=0,\forall t\in[0,1]\end{array}\]
\[\begin{array}{rl}\min_{\tilde\gamma}& L(\xi\circ\tilde\gamma)\\ \operatorname{s.t.} & \tilde\gamma:[0,1]\to\mathcal U\\ & \tilde\gamma(0)=\tilde q_0,\tilde\gamma(1)=\tilde q_1\\ & g((\xi\circ\tilde\gamma)(t))\le 0,\forall t\in[0,1]\\ & h((\xi\circ\tilde\gamma)(t))=0,\forall t\in[0,1]\end{array}\]
\[\begin{array}{rl}\min_{\tilde\gamma}& L(\xi\circ\tilde\gamma)\\ \operatorname{s.t.} & \tilde\gamma:[0,1]\to\mathcal U\\ & \tilde\gamma(0)=\tilde q_0,\tilde\gamma(1)=\tilde q_1\\ & g((\xi\circ\tilde\gamma)(t))\le 0,\forall t\in[0,1]\\ & h((\xi\circ\tilde\gamma)(t))=0,\forall t\in[0,1]\end{array}\]
"Reachability Constraint"
Assume we can construct \(\tilde q_i\) such that \(\xi(\tilde q_i)=q_i\), \(i\in\{0,1\}\).
Becomes more Complicated
Eliminated by Construction: \(\tilde\gamma(t)\in\mathcal U\Rightarrow h((\xi\circ\tilde\gamma)(t))=0\)
Analytic IK can be written as a function
\[\operatorname{IK}:\operatorname{SE}(3)\times\mathcal{C}\times\mathcal{D}\to\mathbb{R}^n,\]
where \(\mathcal{C}\) are continuous redundancy parameters and \(\mathcal{D}\) are discrete redundancy parameters.
Forward kinematics can be written as a function
\[\operatorname{FK}:\mathbb{R}^n\to\operatorname{SE}(3)\]
Note: we often have \(n>6\), so \(\operatorname{FK}\) is not locally invertible.
Analytic IK can be written as a function
\[\operatorname{IK}:\operatorname{SE}(3)\times\mathcal{C}\times\mathcal{D}\to\mathbb{R}^n,\]
where \(\mathcal{C}\) are continuous redundancy parameters and \(\mathcal{D}\) are discrete redundancy parameters.
\(\mathcal{C}\) and \(\mathcal{D}\) parameterize the self-motion of a robot arm:
Safety-Enhanced Human-Robot Interaction Control of Redundant Robot for Teleoperated Minimally Invasive Surgery, Su et al.
Redundancy parameterization and inverse kinematics of 7-DOF revolute manipulators, Elias and Wen.
Key idea:
A kinematics-based probabilistic roadmap method for high DOF closed chain systems, Xie and Amato.
Reminder: we want to solve
\[\begin{array}{rl}\min_{\tilde\gamma}& L(\xi\circ\tilde\gamma)\\ \operatorname{s.t.} & \tilde\gamma:[0,1]\to\mathcal U\\ & \tilde\gamma(0)=\tilde q_0,\tilde\gamma(1)=\tilde q_1\\ & g((\xi\circ\tilde\gamma)(t))\le 0,\forall t\in[0,1]\end{array}\]
To use gradient-based optimization, need to compute \(D\xi\)
If you implement analytic IK by hand, easy to make it compatible with an autodiff framework
Intuition: to differentiate through inverse kinematics, we just need to differentiate through forward kinematics!
Calculus on Manifolds, Michael Spivak
Rough procedure:
For invertibility, need the augmented forward kinematics
\[\operatorname{FK}_A:q\mapsto({}^W\!X^G,\psi),\]
which returns the end-effector pose and the self-motion parameters.
We want the output partials
\[\frac{\partial q}{\partial y}=D\operatorname{IK}({}^W\!X^G,\psi)\frac{\partial ({}^W\!X^G,\psi)}{\partial y}=(D\operatorname{FK}_A(q))^{-1}\frac{\partial ({}^W\!X^G,\psi)}{\partial y}\]
Suppose \(q=\operatorname{IK}({}^W\!X^G,\psi)\), and we're given partials \(\frac{\partial ({}^W\!X^G,\psi)}{\partial y}\).
To avoid the matrix inversion, we solve the linear system
\[D\operatorname{FK}_A(q)\frac{\partial q}{\partial y}=\frac{\partial ({}^W\!X^G,\psi)}{\partial y}\]
Remember, we're using the augmented forward kinematics
\[\operatorname{FK}_A:q\mapsto({}^W\!X^G,\psi),\]
which returns the end-effector pose and the self-motion parameters.
\(D\operatorname{FK}_A\) is well structured:
\[D\operatorname{FK}_A=\begin{bmatrix}D\operatorname{FK}\\ D\psi\end{bmatrix}\]
If we use the \(n\)th joint as the self motion parameter, then
\[D\psi=[\ldots,0,1,0,\ldots]\]
Consider the leader-follower bimanual iiwa setup:
Notation
The full parameterization can be written as \((q_c,q_s)=\xi(q_c,\psi_s)\),
\[\xi(q_c,\psi_s)=(q_c,\operatorname{IK}({}^W\!X^{E_s}(q_c),\psi_s))=(q_c,\operatorname{IK}(\operatorname{FK}_c(q_c){}^{E_c}\!X^{E_s},\psi_s))\]
The full parameterization can be written as \((q_c,q_s)=\xi(q_c,\psi_s)\),
\[\xi(q_c,\psi_s)=(q_c,\operatorname{IK}({}^W\!X^{E_s}(q_c),\psi_s))=(q_c,\operatorname{IK}(\operatorname{FK}_c(q_c){}^{E_c}\!X^{E_s},\psi_s))\]
Derivative block structure:
\[D\xi=\frac{\partial(q_c,q_s)}{\partial(q_c,\psi_s)}=\begin{bmatrix}I\quad 0\\ \frac{\partial q_s}{\partial(q_c,\psi_s)}\end{bmatrix}\]
Apply the chain rule:
\[\frac{\partial q_s}{\partial (q_c,\psi_s)}=\frac{\partial q_s}{\partial({}^W\!X^{E_s},\psi_s)}\frac{\partial({}^W\!X^{E_s},\psi_s)}{\partial (q_c,\psi_s)}\]
Apply the chain rule:
\[\frac{\partial q_s}{\partial (q_c,\psi_s)}=\frac{\partial q_s}{\partial({}^W\!X^{E_s},\psi_s)}\frac{\partial({}^W\!X^{E_s},\psi_s)}{\partial (q_c,\psi_s)}\]
Second term:
\[\frac{\partial({}^W\!X^{E_s},\psi_s)}{\partial (q_c,\psi_s)}=\begin{bmatrix}D\operatorname{FK}_c(q_c){}^{E_s}\!X^{E_c} & 0\\ 0 & 1\end{bmatrix}\]
First term:
\[\frac{\partial q_s}{\partial({}^W\!X^{E_s},\psi_s)}=\left(\frac{\partial({}^W\!X^{E_s},\psi_s)}{\partial q_s}\right)^{-1}=\left(D\operatorname{FK}_A(q_s)\right)^{-1}\]
Putting it all together
\[D\xi=\begin{bmatrix}I\qquad\qquad\qquad 0\\ \\ \left(D\operatorname{FK}_A(q_s)\right)^{-1}\begin{bmatrix}D\operatorname{FK}_c(q_c){}^{E_s}\!X^{E_c} & 0\\ 0 & 1\end{bmatrix}\end{bmatrix}\]
We can avoid the matrix inversion.
Given incoming partials \((\frac{\partial q_c}{\partial y},\frac{\partial \psi_s}{\partial y})\), obtain \(\frac{\partial q_s}{\partial y}\) by solving the linear system
\[D\operatorname{FK}_A(q_s)\frac{\partial q_s}{\partial y}=\begin{bmatrix}D\operatorname{FK}_c(q_c){}^{E_s}\!X^{E_c} & 0\\ 0 & 1\end{bmatrix}\begin{bmatrix}\frac{\partial q_c}{\partial y}\\ \frac{\partial \psi_s}{\partial y}\end{bmatrix}\]
Procedure (for \(\xi:\tilde q\mapsto q\)):
\(D\operatorname{FK}\) loses rank
Kinematic singularity: end-effector loses a degree of freedom
Representational singularity: self-motion not represented by redundancy parameter
\(D\operatorname{FK}_A\) loses rank, \(D\operatorname{FK}\) may not
Joints limits and singularity avoidance, Takla and Layous
A naive idea...
Differences from numerical IK via Jacobian pseudoinverse
Intuition: preserve gradient flow along directions we can, truncate directions we cannot
EECS 367 Lecture 12, Jenkins
Our prior work:
Ignore self-motion parameter for now. Suppose we write
\[\hat{\operatorname{IK}}({}^W\!X^G) = \left\{ \begin{array}{ll} \begin{array}{rl} \displaystyle \arg\min_{q} & \|\operatorname{FK}(q) - {}^W\!X^G\|^2 \\ \text{s.t.} & q \in \mathbb{T}^n \end{array} & {}^W\!X^G\;\text{not reachable} \\ \operatorname{IK}({}^W\!X^G) & {}^W\!X^G\;\text{reachable} \end{array} \right. \]
Note: this is not actually what our extensions are doing.
But perhaps it's a reasonable approximation?
\[\begin{array}{rl} \displaystyle \arg\min_{q} & \|\operatorname{FK}(q) - {}^W\!X^G\|^2 \\ \text{s.t.} & q \in \mathbb{T}^n \end{array}\]
IRIS-NP2: Generating convex collision-free polytopes in parameterized C-space
Kinematic trajectory optimization
TOPPRA: Retiming trajectories for robot dynamics limits
A New Approach to Time-Optimal Path Parameterization based on Reachability Analysis, Pham and Pham
Param: torso + both arms following frame between gripper
May 1, 2026