robotic_manipulators_ik
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
robotic_manipulators_ik [2016/08/06 21:18] – joaomatos | robotic_manipulators_ik [2016/10/23 20:14] (current) – dwallace | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Inverse Kinematics Solver using Damped Least Squares Method ===== | ===== Inverse Kinematics Solver using Damped Least Squares Method ===== | ||
+ | |||
+ | **Author:** Joao Matos Email: < | ||
+ | \\ | ||
+ | **Date:** Last modified on 6/8/2016 | ||
+ | \\ | ||
+ | **Keywords: | ||
+ | \\ | ||
+ | |||
+ | This tutorial presents an algorithm to implement the Damped Least Squares method to calculate Inverse Kinematics problems. | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
| | ||
Line 38: | Line 52: | ||
===== Pseudo Algorithm ===== | ===== Pseudo Algorithm ===== | ||
- | The algorithm | + | * [[robotic_manipulators_ik_cpp|Inverse Kinematics Using Damped Least Squares method in Cpp]] |
+ | * Example of the method programmed in Cpp using Visual Studio and Eigen library | ||
+ | * [[robotic_manipulators_ik_matlab|Inverse Kinematics Using Damped Least Squares method in Matlab]] | ||
+ | * Example of the method programmed in Matlab and Simulated by RVC toolbox | ||
+ | |||
+ | These two codes above were programmed using the same algorithm. | ||
- Calculate A1,A2,A3,A4 and A5 given the initial position. | - Calculate A1,A2,A3,A4 and A5 given the initial position. | ||
Line 72: | Line 91: | ||
- | Running in Visual Studio ,C++ and Eigen library (library to deal with matrices). | + | Running in Visual Studio ,Cpp and Eigen library (library to deal with matrices). |
< | < | ||
Line 135: | Line 154: | ||
Be careful here , the rotation matrix R , is from frame 0 to frame i-1 , but our homogeneous transformation matrices are from frame j-1 to frame j. For example , A1 is from frame 0 to frame 1 , A2 is from frame 1 to frame 2. But to find the Jacobian linear velocity we will need frame 0 to frame 2 , frame 0 to frame 3 , and so on... We can easily find this multiplying the transformation matrices. This way ,R(00) is the k vector itself , R(01) come from A1 , R(02) come from A1.A2 , R(03) come from A1.A2.A3 , R(04) come from A1.A2.A3.A4 . | Be careful here , the rotation matrix R , is from frame 0 to frame i-1 , but our homogeneous transformation matrices are from frame j-1 to frame j. For example , A1 is from frame 0 to frame 1 , A2 is from frame 1 to frame 2. But to find the Jacobian linear velocity we will need frame 0 to frame 2 , frame 0 to frame 3 , and so on... We can easily find this multiplying the transformation matrices. This way ,R(00) is the k vector itself , R(01) come from A1 , R(02) come from A1.A2 , R(03) come from A1.A2.A3 , R(04) come from A1.A2.A3.A4 . | ||
- | Note here that the R matrix will multiply the " | + | Note here that the R matrix will multiply the " |
So, the next step of the IK code is to find the result from the homogeneous transformation matrices multiplication. Just create new matrices , for example: | So, the next step of the IK code is to find the result from the homogeneous transformation matrices multiplication. Just create new matrices , for example: | ||
Line 189: | Line 208: | ||
The end effector position can be found in the multiplication A1.A2.A3.A4.A5 . O(00) is 0 because is the distance from frame 0 to frame 0. 0(01)can be found in A1, O(02) can be found in A1.A2 , O(03) can be found in A1.A2.A3 , O(04) can be found in A1.A2.A3.A4. | The end effector position can be found in the multiplication A1.A2.A3.A4.A5 . O(00) is 0 because is the distance from frame 0 to frame 0. 0(01)can be found in A1, O(02) can be found in A1.A2 , O(03) can be found in A1.A2.A3 , O(04) can be found in A1.A2.A3.A4. | ||
- | | + | For example (is convenient to define a vector with the difference - the second term of the cross product ) to organize better the code: |
| | ||
< | < | ||
Line 381: | Line 400: | ||
</ | </ | ||
- | **RESUMING** : | + | |
+ | ---- | ||
+ | |||
+ | ===== Applying the Damped Least Squares method ===== | ||
Until now we calculated the Jacobian Matrix to be used in the equation from the damped least squares method. However , we still need to get the " | Until now we calculated the Jacobian Matrix to be used in the equation from the damped least squares method. However , we still need to get the " |
robotic_manipulators_ik.1470543507.txt.gz · Last modified: 2016/08/06 21:18 by joaomatos