April 18, 2025
What do different people mean when they talk about "IK"?
IK is the process of finding joint angles for a robot arm to put the hand at a given pose.
https://thewanderingtech.blogspot.com/2009/06/educational-flash-application-on.html
IK is a broad class of optimization problems, broadly asking to find "postures of the robot satisfying certain constraints".
(Then use a general solver to optimize.)
Main research directions:
In some sense, subsumes the mainstream perspective
MIT DARPA Robotics Challenge
Dai, Izatt, and Tedrake 2017
IK is a coordinate system, where the pose of a robot is described by the position of its end effector(s), along with additional values to disambiguate kinematic redundancy.
Can be practically defined in terms of a change of variables, induced by an analytic IK solution. We might write
\[\phi:\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.
Besides singularities, for fixed \(d\in\mathcal{D}\), \(\phi\) is a smooth injection.
Kinematics of Serial Manipulators, Virgala et. al.
There are some automatic tools for constructing solutions
Does my intuition on why this should work make sense?
We have a robot with an analytic IK solution
\[\phi:\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.
Note that \(\mathcal{C}\) can include additional joints.
\[\begin{array}{rl}\min_q & f(q)\\ \operatorname{subject\; to} & {}^WX^G=\operatorname{FK}(q),\\ & g_i(q)\ge0,\;\forall i\in I,\\ & h_j(q)=0,\;\forall j\in J.\end{array}\]
\[\begin{array}{rl}\min_{X,\psi} & f(q)\\\operatorname{subject\; to} & T\in\operatorname{SE}(3),\psi\in\mathcal C,\\ & q:=\phi(X,\psi),\\ & \textrm{$q$ satisfies joint limits},\\ & {}^WX^G(q)=X,\\ & g_i(q)\ge0,\;\forall i\in I,\\ & h_j(q)=0,\;\forall j\in J.\end{array}\]
What would it take for me to convince you that this works?
\[\begin{array}{rl}\min_q & ||q||^2\\ \operatorname{subject\; to} & {}^WX^G=\operatorname{FK}(q),\\ & \operatorname{SignedDistance}(q)\ge 0.\end{array}\]
\[\begin{array}{rl}\min_q & ||q||^2\\ \operatorname{subject\; to} & {}^WX^G_{\operatorname{left\;arm}}=\operatorname{FK}_{\operatorname{left\;arm}}(q),\\ & {}^WX^G_{\operatorname{right\;arm}}=\operatorname{FK}_{\operatorname{right\;arm}}(q),\\ & {}^WX^G_{\operatorname{left\;leg}}=\operatorname{FK}_{\operatorname{left\;leg}}(q),\\ & {}^WX^G_{\operatorname{right\;leg}}=\operatorname{FK}_{\operatorname{right\;leg}}(q),\\ & \pi_{xy}(x_{\operatorname{com}})\in\operatorname{SupportPolytope}(q).\end{array}\]
Kinematics and Inverse Kinematics for the Humanoid Robot HUBO2+, O'Flaherty et al.
\[\begin{array}{rl}\min_q & ||q||^2\\ \operatorname{subject\; to} & \operatorname{FK}(q)\in\{{}^WX^G:\textrm{some conditions}\}.\end{array}\]
Possible sets include
Dai et al. 2019
Porta et al. 2009
April 18, 2025