3-D Physics-Based Interaction
In 2000, Laszlo, van de Panne, and Fiume examined the potential for close to real-time interactive control of various 2-dimensional figures. These authors presented captivating interactions that require the user perform complex motor skill coordination and motion planning. Since motions generated by human interaction in a physics-based simulation can produce realistic motions, the research may be useful to animation design packages or virtual puppetry systems. The generated motions may also serve as training data input to machine learning systems. Additionally, this physics-based interaction gives the user an increased sense of embodiment and can be used in virtual reality and gaming systems. It is with this latter goal in mind that my project extended the work by Laszlo et al. by examining interactive control in 3-dimensions using input devices with more degrees of freedom (DOFs). I researched, designed and implemented various methods of controlling additional DOFs with continuous inputs. The implementation focused on applying the six continuous DOFs provided by a two-mouse set-up.
The guiding question for
this research was whether a user can coordinate more DOFs than was attempted
in the previous research. The increased input DOFs can provide the user
with more control and provide an increased sense of embodiment only
if she is capable of competently manipulating them. The implementation
presented here shows promising results, as users were capable of generating
many different motions for various 3-dimensional figures using up to
6 simultaneous continuous DOFs.
For all implemented systems, user-in-the-loop controllers were used and all DOFs from the various figures were mapped to continuous inputs. All forces in the systems were provided by internal joint torques of the figure (simulating muscles), gravitational forces, or ground forces. The implementations tested both of the following types of controllers:
Proportional: T=Kp(desiredAngle - currentAngle) , where Kp is a constant
Proportional-Derivative: T=Kp (desiredAngle - currentAngle) - Kd(currentAngularVelocity), where Kp and Kd are constants
As described in Laszlo et al, such a system with continuous inputs allows the user to perform various controlled acrobatics such as jumps and flips. Movie 1 provides an example of the input with a reproduction of the Luxo lamp that is extended into three dimensions. In this example, the X dimension of the mouse maps to the lower Luxo joint, the Y dimension of the mouse maps to the upper joint, and the wheel (W dimension) allows a rotation of the lamp around its base. Note also that spheres hovering above Luxo represent the mouse positions in each of the three dimensions.
Luxo (3 Continuous DOFs)
(Note that the performances
in all of the movie recordings presented here were very difficult to
perform as the recording process significantly slowed the system.)
In an attempt to extend the 2-dimensional cat figure used by Laszlo et al., I implemented a dog that allows control of 2 continuous DOFs for each side of the body. In the previous work, the interactive input was only provided to one side at a time and the other side was inferred by symmetry. In my dog figure the user is capable of simultaneously interacting with both sides of the dog using two mice. One mouse controls the desired lower elbow joint angle of both legs on one side with the y-dimension and the desired shoulder joint angle with x-dimension. The mapping is symmetrical for the second mouse on the opposite side.
Bipedal Locomotion (4 Continuous DOFs)
I experimented with many bipedal systems. The most successful of which is shown in Movie 4. Of all the figures presented here, this figure was the most difficult to maneuver but with practice users were capable of walking and turning. As with the dog, the y-direction is mapped to the lower knee joint and the x-direction is mapped to the hip joint.
Two Luxos - Two Users (6 Continuous DOFs)
The last system I implemented was one that implemented two Luxo lamps that interact together simultaneously (mappings are the same as in the single Luxo described above).
The preliminary tests suggest that users are capable of physics-based control of a variety of 3-dimensional figures using common computer or game console input devices. The system was tested on three users for each of the figures described above. At first all of the users were generally surprised at the difficulty of physics-based control, but all users enjoyed the challenge and became more competent within a short time period. All of the users became capable of performing a variety of walking, running, and acrobatic movements within a short learning period (approximately 15 minutes) for all of the figures described in the previous section. However, to become expert (and consistent) at many of the moves requires a significant time investment (hours). <-- which was only invested by one user :-).
This method of interactivity also provided a much more realistic and emersive sense of interaction to the user. Both the challenge of the task and the embodiment that it provides suggests it would be an appropriate addition to many virtual reality or gaming systems.
Further study is required to locate the limitations of control in the current system. I suspect that users would perform better with haptic feedback providing information regarding the joint range and torques. This redundant sensory feedback would be especially helpful when certain joints are occluded in the 3-dimensional display. The haptic feedback should also increase the sense of embodiment.
Although complete user control of a higher-DOF figures would require specialized and expensive systems and input devices, the system presented here strikes a balance of providing the maximum amount of physically-based interaction given standard devices found in today computer and gaming systems. The system is also an excellent demonstration system for learning and illustrating biomechanical motions for any given figure.
Open Dynamics Engine
To provide the physical dynamics simulation, I used the Open Dynamics Engine (ODE). ODE is dynamics computation engine that is capable of various joint constraints, internal forces and external forces (gravity), as well as collision detection. The ODE library also provides a simplistic graphical output environment (named Drawstuff) based on OpenGL. For a beta release, there is a significant amount of documentation, however, there is limited sample programs so it was difficult to get up and running.
Simultaneous Continuous Inputs
The most difficult technical hurdle for the project was finding a software and hardware system that appropriately maps multiple mice inputs. Many of the old two mice systems for Windows 98 have been rendered obsolete with new Microsoft XP restrictions. The SDGToolkit system provides multiple inputs functionality for XP but it requires the .Net framework to run and Visual Studio.Net to develop. On the Linux side, many of the two mice solutions provide the sharing of a single pointer with two mice but since I needed the mice to act independently these were of no use for this project. Finally, after many dead ends, I was able to successfully implement the input library provided by the GGI Project (General Graphics Interface) for mapping multiple mice. This enables relative inputs along the two planar (dimensions x and y) dimensions as well as the wheel (dimension w).
 Laszlo, J.F., van de Panne, M., and Fiume, E. Interactive Control For Physically-Based Animation. Proceedings of SIGGRAPH 2000, 201-208.