Assignment 3
Controlling a Dynamic Simulation for Upper Body Motion
DUE: 6/03/98

Simulation and Control

In this assignment, you are given a working dynamic simulation of an alien similar to the one you used in assignment 1. The simulation is grounded at the waist and has joints at the waist, back, lower and upper neck, shoulders, elbows, and wrists. The simulation can be found in /net/hg27/animation/class/torso. There is a README file in this directory that will give some basic instructions on running the simulation and using the interface.

Currently the simulation has a simple state-machine controller like those discussed in class. This example controller switches states according to contact information and state information. A collision model provides contact information for state changes in this sample code. The different states set new values for the gains and the desired values for a PD-Servo like the one described in class. You will modify this state machine controller to perform an interesting sequence of behaviors. Some suggested behaviors include:

  • Dancing with arm movement (like the YMCA or Macarena)
  • Story-telling and gesturing
  • Crowd motions (rowdy hand motion, the wave)
  • Body to body contact motions (clapping hands, beating chest)

    The behaviors you simulate should be believable and obey reasonable joint limits. Your simulated motion should be at least 3 seconds long and include some body to body interaction.

    Body to Body Interaction

    This simulation includes a collision/reaction model that can keep the hands from penetrating the other body parts and each other. In this way, each simulated hand may be used to contact a body part (chest, head, arm, etc.) and the two rigid bodies will respond accordingly. Note that the hands are the only parts that are being tested with the other parts, so the lower arm can still penetrate the chest for example. The collision code can be turned on and off to speed up the calculations as well. However, your final animation should include some behavior where body/hand contact is exercised.

    Rendering in Alias

    Once you are satisfied with your motion in the simulation environment, you will write a motion track and import your motion into Alias. The program provides a method for recording a motion track by setting the global time clock to zero at the beginning of the motion, running the simulation and setting the variable "trackdmp" to 1 when you are ready to record the motion. An output file called output.mot will be generated.

    To load your motion into Alias:

  • Start Alias8.1 with: /usr/aw/alias8.1/bin/Alias
  • Load the wire file /net/hg27/animation/models/alias/aux_nurb
  • Load the plugin /net/hn25/oob/plugins/loadtrack.plugin from the Utilities->plugin manager.

    This will create a menu item under the file menu called "Load Motion Track" which will load the track file you saved from your simulation. The motion will take a few seconds to load but then can be played back like the wire files from assignment 1. Have fun decorating and rendering your scene.

    What to Turn In

    You will render images and create a moviefile in the same way you did in assignment one. You should turn in a pointer to your images and moviefile. You will describe your findings in a short report. Your report should include:

  • what you did to modify the controller
  • how you made the simulation interact between body parts and hands
  • what you learned about controlling dynamic simulations
  • your final impression of simulation as a method of animating

    For this assignment you should submit a pointer to your documented code, your report (or hard copy if you prefer), and movie/image files.

    Grading will be broken down as follows:
    Total .........25
    Motion.......10
    Contact........5
    Report.........5
    Creativity...5*

    *Please, be creative. This assignment is an open-ended one. The requirements are meant to exercise your technical and creative skills. If any of these requirements restrict your ideas, feel free to contact us to discuss possible modifications to the assignment.