CECS 461 Computer Graphics II
Assignment #2: Robot Arm Animation
Dr. K. Palaniappan
Dept. of CECS, UMC
The second assignment consists of the following three tasks: (1)
implement an "object centered" model (instead of a
"viewer centered" coordinate system as in the first
assignment) to enable the viewer to remain stationary and control the
motion of the robot arm, (2) design a graphical user interface that
allows for controlling the motion of various segments of the arm and
the end effector (i.e. gripper), and (3) implement several typical arm
motion sequences including global rotation and translation, grasp,
point, crush and swing.
(1) Degrees of Freedom
-
Base - one rotational degree of freedom, plus three tanslational
degrees of freedom
-
Spherical joint 1 - connected to clylindrical segment 1
-
Cylindrical segment 1 - three rotational degrees of freedom
-
Spherical joint 2 - connected to cylindrical segment 2
-
Cylindrical segment 2 - three rotational degrees of freedom
-
Thumb - two degrees of freedom (sliding and bending)
-
Fingers 1, 2, 3: long cylinder (base segment) - two degrees of freedom
(sliding and bending
-
Fingers 1, 2, 3: short cylinder - one degree of freedom (bending)
(2) User Interface
-
Maintain the same integrated display window system from the first
assignment. Display integrated windows for: Perspective projection,
Top, Side and Front views for orthographic or oblique projections and a
Text window with the current projection and animation parameters.
-
Design an intuitive interface for controlling 'global' arm motion, and
the animation of various arm segments and the end effector.
-
Convenient way to activate, start, stop, step forward or step backward
through each of the four typical motion sequences (grasp, point, crush
and swing).
-
Implement using Motif or OpenGL glut/mui widgets
(3) Animation of Motion Control Sequences for Arm
-
No self-collision detection is needed.
-
Optional: Modelling and enforcing higher order realistic
"arm-like" constraints (i.e. elbow behavior with 0 deg to 150
deg maximum bending constraints)
-
'Global' rotation and translation of arm (segments and end effector)
with constraints (i.e. segments and base cannot independently
translate)
-
Simple motion sequences:
-
rotation of segment 1 with segment 2 and gripper rigidly connected,
-
rotation of segment 2 with segment 1 stationary and gripper rigidly
connected (i.e. wave); note that segment 2 has 3 rotational degrees of
freedom,
-
Complex motion sequences:
-
Grasp - rotate (bend) gripper fingers and thumb so that
they all touch
-
Point - bend the second finger joints for two fingers
and thumb while keeping one finger extended
-
Crush - slide fingers and thumb inwards towards center
of end effector
-
Swing - with segment 2 and gripper in rigid (arbitrary)
orientation, rotate segment 1 about axis defined by segment 2 for
swinging motion (about an arbitrary axis of rotation; i.e. twist about
segment 2 axis)
-
Motion interpolation
-
Allow the user to define two different positions of the robot arm (i.e.
specification of two key frames)
-
Let the user specify the number of in-between frames
-
Use quaternions to interpolate the intermediate orientations of the arm
segments for the in-between frames
-
Incorporate motion acceleration and deceleration during the motion
interpolation in generating the in-between frames (i.e. slow start,
fast middle, slow stop)
-
Optional: simulate the arm dropping and bouncing as if
it were under the influence of gravity (note you may need to do
collision detection with the base plane)
Figure 1 Robot arm model, example user interface and display
What to hand in:
-
In class interactive demonstration of your program.
-
A print out of the source code file.
-
A quicktime movie file showing one of the complex motion sequences in
action.
-
Be sure and comment the algorithms that you code to show that you
understand how the algorithm is working. Such as how you are keeping
track of the objects in the scene, their current transformations, and
viewer selected viewing parameters.
-
For your interactive features provide a key with your listing for how
to use these features. Preferrably have an online help key to get a
quick summary.