This shows you the differences between two versions of the page.

— |
courses:pro:labs:hw08 [2018/09/03 17:27] (current) |
||
---|---|---|---|

Line 1: | Line 1: | ||

+ | ~~NOTOC~~ | ||

+ | ===== Homework 8 - Inverse Kinematics by GB Computation ===== | ||

+ | The goal of this task is to solve the inverse kinematic task for a general 6R mechanism using a general Groebner Basis computation. This consists of the six main elements | ||

+ | |||

+ | - Formulate the algebraic equations describing the inverse kinematics task. | ||

+ | - Provide mechanism parameters (cosines and sines of \alpha's, a's, d's) as rational numbers satisfying identities on cosines and sines. | ||

+ | - Provide the end effector pose as a rational matrix with rotation matrix satisfying the rotation identities. | ||

+ | - Solve for (some) sines and cosines of joint angles using Groebner Basis computation. | ||

+ | - Recover solutions for (all) sines and cosines using back-substitution. | ||

+ | - Recover the joint angles from their sines and cosines. | ||

+ | |||

+ | Groebner Basis computation is done in exact arithmetics over rational numbers and therefore input must be provided in rational numbers. At the same time, the input must to satisfy all identities on rotations, otherwise the systems would have no solution. Therefore, we have to implement | ||

+ | |||

+ | === Task === | ||

+ | |||

+ | Finalise the Groebner Basis solution to IK 6R Mechanism {{https://cw.fel.cvut.cz/wiki/_media/courses/pro/pro-2017-ik-6r-gb-assignment.zip|PRO-2016-IK-6R-GB-Assignment.mw}}. | ||

+ | |||

+ | -(A1) Implement function constructing a rotation matrix from a unit quaternion. | ||

+ | -(A2) Implement function constructing a unit quaternion from a rotation matrix. | ||

+ | -(A3) Implement function returning a rational point on the circle, which is close to a given point with angle th. | ||

+ | -(A4) Implement function returning a rational approximation to a given motion matrix E = <R|t>. | ||

+ | -(A5) Solve the four given mechanisms. | ||

+ | -(A6) Check that rational approximation of \lambda^2 & \mu^2=1. | ||

+ | -(A7) Check that input MhV is not an exact rotation. | ||

+ | -(A8) Check that MhR, which is a rational approximation to MhV, is an exact rotation. | ||

+ | -(A9) Evaluate the Frobenius norm of the difference of the original pose MhV and the approximated pose MhR. | ||

+ | -(A10) {{http://cmp.felk.cvut.cz/cmp/courses/PRO/2016/Lecture/PRO-2016-Lecture-12.pdf|Formulate}} the algebraic equations of the 6R Inverse Kinematics. | ||

+ | -(A11) Solve the 6R IK by a general Groebner basis construction, solving for all variables using back-substitution. | ||

+ | -(A12) Check that the the equations have no solution for the input transformation MhV. | ||

+ | -(A13) Select and show the real solutions for sines and cosines and their difference from the ground truth. | ||

+ | -(A14) Recover the remaining sines and cosines if necessary. | ||

+ | -(A15) Recover joint angles from their sines and cosines. | ||

+ | |||

+ | |||

+ | |||

+ | === Upload === | ||

+ | |||

+ | Upload via the [[https://cw.felk.cvut.cz/upload/|course ware]] the zip archive ''hw08.zip'' containing | ||

+ | - hw08.mw Maple script (functions) solving the assignment. | ||

+ | - hw08.pdf description of the solution (algorithms, results, comments). |

courses/pro/labs/hw08.txt · Last modified: 2018/09/03 17:27 (external edit)