3D Studio MAX 3.1 tutorials
© 2000 Aaron F. Ross. Unauthorized duplication or publication is a violation of international copyright laws.
Tutorial 10: Forward Kinematics (Robot Arm)
This tutorial will introduce you to animation hierarchies and forward kinematics. I will not
be giving you as explicit instructions as before, so to some extent you will have to figure out how
to accomplish these tasks yourself.
1. Reset 3DS MAX, and create a short, wide box in the center of the world. You will
achieve best results if you create the box in the
Top viewport and use 3D Snaps, snapping to
Grid Points only. Right-click on the 3D Snap icon to set the snap type to Grid Points.
If your cursor is not a blue crosshatch which always snaps to grid points, then Snaps are
not really on. You can press the "S" key to toggle Snaps on and off, even if the button is
greyed out.
This box will serve as a platform for the robot arm, so rename it
Platform.
2. Create another box in the center of the world, this time taller and not as wide or deep as
the platform. This will be the base of the robot arm, which rotates on top of the platform.
Rename this object Base. Move the base up so its bottom is aligned with the top of the platform.
You can use 3D Snaps or the Align tool to do this.
It is very important that all objects end up centered in the world XY plane. Otherwise,
you will get unpleasant, asymmetrical animation. The easiest way to ensure this alignment is
to simply create the boxes in the Top viewport, centered on the world origin.
3. In the Front viewport, create a cylinder at the top of the Base object. The cylinder should
be big enough to completely cover the top faces of the Base. This is to ensure that there are
no gaps in the model which will be visible when the animation is rendered.
Rename the cylinder Shoulder. Move it into position so that it, too, is centered on the
world XY plane. You may notice that its Pivot Point is not at the center of the world XY plane.
This doesn't matter, because unlike a human shoulder, the cylinder will only rotate in one axis,
and the default Pivot Point position is OK.
4. In the Top viewport, create another box centered on the world origin. Give it a
rectangular aspect rather than a square like the other boxes. Rename it
Arm, and move it up to the top of the Shoulder. Make sure there is a little bit of overlap between the Arm and Shoulder;
we don't want a gap between the two objects. See the Front viewport closeup in the
following illustration.
5. Using the same technique as with the Shoulder, create another cylinder on top of the
Arm object. Rename the new cylinder Elbow. Center it as shown below.
Remember, you can use the Transform Type-In dialog to enter absolute world
coordinates for your objects if the Snaps aren't giving you enough control. Right-click the
Select and Move icon to get the Transform Type-In dialog.
6. Create one more box in the Top viewport, not as thick or deep as the Arm object. Make it
at least as tall as the Base object. Rename the new box
Forearm and move it up into position so it slightly overlaps the Elbow joint.
7. Create a cylinder in the Top viewport, rename it
Wrist, and move it to the top of the
Forearm. Make it shaped like a disc as seen below.
8. Finally, create two small boxes which will sit atop the Wrist. Name them
Palm and Thumb. The completed model should look something like this:
9. Now we are ready to create the animation hierarchy. Click on the
Select and Link button. The status line reads,
"Click to select an object, then drag to assign it a parent."
10. Zoom in on the Front viewport. Click the Palm object; it turns white to show that it is
selected. Now, when your cursor is over a selected object, the cursor turns to the Link
icon. Click and drag the Link icon from the Palm to an empty space. A dotted line appears
immediately. When your cursor hovers over a valid object, the slightly different-looking Link
icon reappears.
Click and drag from the Palm to the Wrist. The Wrist briefly turns white to indicate that it
has been assigned as the Parent of the selected object (the Palm).
11. Repeat this process for the Thumb. Assign the Wrist to be the parent of the Thumb.
12. Continue down the robot arm assigning each object to be the
Child of the object below it. Thus:
the parent of the Wrist is the Forearm
When you are done, click the Select Object button to stop assigning parental links. Then
click the Select by Name button to get the dialog. Click the box labeled
Display Subtree in the dialog. You should see the hierarchy you have created, with each child indented from
its parent in the list. See the illustration on the following page. (A graphical display of the
hierarchy can also be seen with the Schematic View.)
13. At this point it is a good idea to save your work to a temporary file on your local disk.
14. Select and move the Platform object. Since all other objects in the robot arm are
Descendents of the platform, the entire hierarchy moves as a single unit. Undo the move to restore
the hierarchy to its initial position.
15. Select and move an object in the middle of the heirarchy, such as the Shoulder. All
objects which are descendents of the Shoulder move with it, but the
Ancestors of the Shoulder remain in place. Undo the move.
16. This particular robot has a limited range of motion. To make it work, we only need to use
a few of the available transforms. These are always in the object's Local coordinate system.
See the following illustrations.
Here's a tip: if you click on an object and MAX selects the wrong one, click again in the
same place. MAX will cycle through all objects under the cursor, selecting each one in turn.
17. Create a short (at least 100 frames) animation of the robot arm in motion. Use your
imagination. (Animating one object picking up another requires more advanced techniques such as
the Link Controller, or the Don't Affect Children option in the Hierarchy panel.)
For extra credit, create some materials for your robot arm, put a camera and some lights in
the scene, and render an .avi movie.
Return to 3D Studio MAX 3 tutorials
the parent of the Forearm is the Elbow
the parent of the Elbow is the Arm
the parent of the Arm is the Shoulder
the parent of the Shoulder is the Base
the parent of the Base is the Platform
rotate the Base object in its local Z
axis to spin the entire assembly
rotate the Shoulder in its local Z axis
to tilt the Arm up and down
rotate the Elbow in its local Z axis to
tilt the Forearm up and down
rotate the Wrist in its Z axis to twist it