Stéphane on Locomotion - Comments: Inverse kinematicshttps://scaron.info/robotics/inverse-kinematics.html/2023-02-27T08:42:00+02:00Posted by: Stéphane2023-02-27T08:42:00+02:002023-02-27T08:42:00+02:00Stéphanetag:scaron.info,2023-02-27:/robotics/inverse-kinematics.html//comment-reply-nullspace-projection<p>Nullspace projection is an algorithm that resolves conflicts between tasks with priorities rather than weights: when two tasks conflicts, one is solved fully while the other one is solved at best. This is a form of <em>lexicographic</em> optimization, which differs from the <em>weighted</em> optimization we followed in this post. In …</p><p>Nullspace projection is an algorithm that resolves conflicts between tasks with priorities rather than weights: when two tasks conflicts, one is solved fully while the other one is solved at best. This is a form of <em>lexicographic</em> optimization, which differs from the <em>weighted</em> optimization we followed in this post. In weighted optimization, when two tasks conflict, both are solved approximately, with the outcome biased in favor of the tasks with larger weights. Lexicographic optimization is actually a limit case of weighted optimization when the weights go to infinity.</p>
<p>Note that lexicographic optimization still couples tasks as soon as there is a conflict, as tasks with lower priority are solved in a way that does not perturb tasks with higher priority.</p>
<p>These two strategies are discussed in <a href="https://hal.inria.fr/hal-01418462">Geometric and numerical aspects of redundancy</a> (Wieber <em>et al.</em>, 2017), which also shows the limit property (in Section 4). The first two sections of <a href="https://hal.science/hal-00751924">Hierarchical quadratic
programming: Fast online humanoid-robot motion generation</a> are also a good read on this topic.</p>Posted by: Emre Tanfener2023-02-22T09:42:00+02:002023-02-22T09:42:00+02:00Emre Tanfenertag:scaron.info,2023-02-22:/robotics/inverse-kinematics.html//comment-nullspace-projection<p>Thank you for the great content.</p>
<p>I have also seen some implementations utilizing null space projection technique
for the multi task IK problem. I have a limited understanding but as far as I
understand it somehow decouples the tasks from each other. Can you suggest any
resource/reading for me …</p><p>Thank you for the great content.</p>
<p>I have also seen some implementations utilizing null space projection technique
for the multi task IK problem. I have a limited understanding but as far as I
understand it somehow decouples the tasks from each other. Can you suggest any
resource/reading for me to understand this issue better? If you have any
comment I would also be appreciated.</p>
<p>Thank you in advance.</p>Posted by: Stéphane2022-10-26T11:42:00+02:002022-10-26T11:42:00+02:00Stéphanetag:scaron.info,2022-10-26:/robotics/inverse-kinematics.html//comment-reply-formulation-as-quadratic-program<p>Inverse kinematics will yield a quadratic program (QP) rather than a linear program (LP), so we end up calling a <a href="https://github.com/qpsolvers/qpsolvers#usage"><code>solve_qp</code></a> rather than <code>solve_lp</code> function. Rather than <code>c</code>, we thus get a matrix <code>P</code> and a vector <code>q</code> for the cost function. The derivation of <code>P</code>, <code>q</code>, <code>G</code> and <code>h …</code></p><p>Inverse kinematics will yield a quadratic program (QP) rather than a linear program (LP), so we end up calling a <a href="https://github.com/qpsolvers/qpsolvers#usage"><code>solve_qp</code></a> rather than <code>solve_lp</code> function. Rather than <code>c</code>, we thus get a matrix <code>P</code> and a vector <code>q</code> for the cost function. The derivation of <code>P</code>, <code>q</code>, <code>G</code> and <code>h</code> is detailed in the <a href="#inequality-constraints">inequality constraints</a> section above, which assumes some familiarity with kinematics, linear algebra and quadratic programming. Feel free to ask more specific questions on that part. You can also check out the code of <a href="https://github.com/tasts-robots/pink">Pink</a> to see how these matrices are built in practice.</p>Posted by: David2022-10-21T17:04:00-06:002022-10-21T17:04:00-06:00Davidtag:scaron.info,2022-10-21:/robotics/inverse-kinematics.html//comment-formulation-as-quadratic-program<p>I'm having a hard time bridging the gap between the theory here and the inputs to the solver (for example, the <code>solve_lp</code> function you link to elsewhere on your site). Could someone help me understand what variables here lead to the inputs <code>c</code>, <code>G</code>, and <code>h</code> to the function? Thanks …</p><p>I'm having a hard time bridging the gap between the theory here and the inputs to the solver (for example, the <code>solve_lp</code> function you link to elsewhere on your site). Could someone help me understand what variables here lead to the inputs <code>c</code>, <code>G</code>, and <code>h</code> to the function? Thanks for your help.</p>Posted by: sjauhri2022-08-30T09:02:00+02:002022-08-30T09:02:00+02:00sjauhritag:scaron.info,2022-08-30:/robotics/inverse-kinematics.html//comment-thanks-useful<p>Thanks for this post! It's super useful.</p>