![Page 1: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/1.jpg)
mjb – August 26, 2019Computer Graphics
1
Forward Kinematics
forwardkinematics.pptx
Mike [email protected]
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
![Page 2: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/2.jpg)
mjb – August 26, 2019Computer Graphics
2Forward Kinematics:You Start with Separate Pieces, all Defined in their Own Local Coordinate System
1
2
3
![Page 3: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/3.jpg)
mjb – August 26, 2019Computer Graphics
3Forward Kinematics:Hook the Pieces Together, Change Parameters, Things Move
(All Children Understand This)
1
2
3
![Page 4: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/4.jpg)
mjb – August 26, 2019Computer Graphics
4
1
2
3
Ground
1
2
3
Forward Kinematics: Where do the Pieces Move To?
Locations?
![Page 5: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/5.jpg)
mjb – August 26, 2019Computer Graphics
5Positioning Part #1 With Respect to Ground
Write it
Say it
1. Rotate by Θ12. Translate by T1/G
1/ 1/ 1*G GM T R
![Page 6: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/6.jpg)
mjb – August 26, 2019Computer Graphics
6Why Do We Say it Right-to-Left?
It’s because in the matrix notes, we adopted the convention that the coordinates are multiplied on the right side of the matrix:
1/ 1/ 1
''
* *'
1 1 1
G G
x x xy y y
M T Rz z z
So the right-most transformation in the
sequence multiplies the (x,y,z,1) first and the left-most transformation multiples it last
![Page 7: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/7.jpg)
mjb – August 26, 2019Computer Graphics
7Positioning Part #2 With Respect to Ground
Write it
Say it
1. Rotate by Θ22. Translate the length of part 13. Rotate by Θ 14. Translate by T1/G
2/ 1/ 1 2/1 2* * *G GM T R T R
2/ 1/ 2/1*G GM M M
![Page 8: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/8.jpg)
mjb – August 26, 2019Computer Graphics
8Positioning Part #3 With Respect to Ground
Write it
Say it
1. Rotate by Θ32. Translate the length of part 23. Rotate by Θ24. Translate the length of part 15. Rotate by Θ16. Translate by T1/G
3/ 1/ 1 2/1 2 3/2 3* * * * *G GM T R T R T R
3/ 1/ 2/1 3/2* *G GM M M M
![Page 9: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/9.jpg)
mjb – August 26, 2019Computer Graphics
9Sample Program
1
2
3
Ground
1
2
3
![Page 10: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/10.jpg)
mjb – August 26, 2019Computer Graphics
10
DrawLinkOne( ){
glColor3f( 1., 0., 0. ); // red, green blueglBegin( GL_QUADS );
glVertex2f( -BUTT, -THICKNESS/2 );glVertex2f( LENGTH_1, -THICKNESS/2 );glVertex2f( LENGTH_1, THICKNESS/2 );glVertex2f( -BUTT, THICKNESS/2 );
glEnd( );}
1BUTT
THICKNESS
LENGTH_1
Sample Program, using OpenGL’s Automatic Transformation Concatenation
![Page 11: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/11.jpg)
mjb – August 26, 2019Computer Graphics
11
DrawMechanism( float 1, float 2, float 3 ){
glPushMatrix( );glRotatef( 1, 0., 0., 1. );glColor3f( 1., 0., 0. );DrawLinkOne( );
glTranslatef( LENGTH_1, 0., 0. );glRotatef( 2, 0., 0., 1. );glColor3f( 0., 1., 0. );DrawLinkTwo( );
glTranslatef( LENGTH_2, 0., 0. );glRotatef( 3, 0., 0., 1. );glColor3f( 0., 0., 1. );DrawLinkThree( );
glPopMatrix( );}
Sample Program
Write itSay it
![Page 12: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/12.jpg)
mjb – August 26, 2019Computer Graphics
12Sample Program
glViewport( 100, 100, 500, 500 );
glMatrixMode( GL_PROJECTION );glLoadIdentity( );gluPerspective( 90., 1.0, 1., 10. );
glMatrixMode( GL_MODELVIEW );glLoadIdentity( );
done = FALSE;while( ! done ){
<< Determine 1, 2, 3 >>glPushMatrix();gluLookAt( eyex, eyey, eyez,
centerx, centery, centerz,upx, upy, upz );
DrawMechanism( 1, 2, 3 );glPopMatrix();
}
Where in the window to
display (pixels)
Viewing Info: field of view
angle, x:y aspect ratio, near, far
Set theeye position
![Page 13: Forward Kinematics - College of Engineeringweb.engr.oregonstate.edu/.../forwardkinematics.1pp.pdf · Forward Kinematics: 2 You Start with Separate Pieces, all Defined in their Own](https://reader035.vdocument.in/reader035/viewer/2022063011/5fc4d8e593dc9267812adaec/html5/thumbnails/13.jpg)
mjb – August 26, 2019Computer Graphics
13Sample Program
In your Forward Kinematics project, you won’t be allowed to do this.
You will need to create each full matrix separately using your own Matrix class methods.