Assignment 2

2D Inverse Kinematics

DUE: 2/16/00

In Assignment1 you learned how to use different tools in Maya to keyframe an animation. In this assignment, you will be implementing your own version of the IK Handle Tools used in Maya.

NOTE: In this assignment you will not be using Maya.

In /net/hn41/animation_class/ik you will find:

1) ik.h
2) ik.c++
3) Makefile

To compile the skeleton program type: make ik
This should generate a executable called ik.

If you need help, please contact the TA:

Alan Chen
smile@cc.gatech.edu
(404) 894-4998
Animation Lab (CCB 206)

Model of the Arm

Open Inventor code is provided for you to generate a graphical interface, but you do not need to know Open Inventor. There are detailed comments on how each part of ik.c++ functions. Read through those comments to better understand what code to write and where it should go.

ik.c++ creates a graphical interface called the examiner window. In this window you will see a model. The descriptions of the model are as follows:

1) There are 3 joints (small spheres)
2) There are 3 limbs (cylinders)
3) There is 1 handle (large sphere)
4) The arm will only move in 2D space (x, y)

The Inventor user interface will display a hand where your mouse pointer is at. This hand is used to rotate the object in the window. To select objects in the window click on the arrow on the side of the window.

IK

Your assignment is to write a set of functions that will use inverse kinematics to calculate the position of each of the joints and limbs of the arm based on the position of the handle.
Use the algorithm discussed in class and the 3 handouts provided with this assignment.

What to hand in

Turn in the source files for your program and an analysis of what positions for the handle produce the expected results and which do not.

Grading will be broken down as follows:

functionality 60%
comments 25%
analysis 15%