OpenGL tidbits

Wednesday, February 16, 2005

E-Day Right Around the Corner

Every year, Auburn University's College of Engineering has an open house called E-Day where we get high school students from around the area and try to make them come study at Auburn in the Engineering Department. For the past 3 years or so, I've always had a graphics demo to kind of impress some of the high school students. Of course, most of my demos were pretty crappy and did only a few neat things.

Last year, I presented a project me and my advisor was working on called IDEA (Interactive Distributed Evolutionary Algorithms). It sounds complex, but all it is is simply a network application where users (clients) can use the front end to evolve smiley faces. What the user is given is basically the task of choosing a face out of the 9 candidates they are presented with that satisfies the criterion we give. Like say, "a face that shows pain." Then the one they choose is fed to the server, thrown into a gene pool, and mutated. The user is then presented with 9 new faces based on their last choice. It really is more like distributed interactive design. The smiley faces were simple, but it could be extended to stuff like designing more complex things....like a comfortable chair. The project was eventually dumped off to others after the prototyping phase, which was like.....I think a month?

Then the year before, I presented a visualization of the 2D game of life in OpenGL. The plane that was used also had the ability to morph into a torus. It was kind of cool, but not especially thought stimulating.

Then the year before that, I showed off some of the 3D stuff I did, but those were not too interesting either, beyond the normal stuff, since back then I wasn't really into texture mapping yet.

Then, going back further, 2001, I showed a product of my particle swarm research. It was kind of funny because back then I didn't realize the importance of that piece of code. I basically built a robotic arm in OpenGL which had 1 finger. The user then moved a target around in 3D space and the finger will follow it. The cool thing was that the arm movement did not involve any form of inverse kinematics (IK) because back then I didn't know what it was either. All I did was drop in a particle swarm optimizer that tried to find rotational combinations of the joints that brought the finger as close to the target as possible. It was pretty darn fast too. With a few tweaks with wrap around search spaces and large scale local searches, it worked pretty well. It wasn't until recently that I got into skeletal animation that I realized how neat my little invention was.

So, this year for E-Day, I'm going to take the arm and replace it with legs and see if I can make legs that can shift to accomodate for a shifting center of gravity. This is the complete reverse of what most people do with the problem. From a robotics point of view, you'd be more concerned with the position of the feet and legs and how joints bend. For me, what's important is the location of the center of gravity (CoG). So, instead of a bottom up approach, I'm going with a top down approach. Well, its not really top down either. The problem will actually be tackled from both ends. The keys are the feet and the CoG. It doesn't really matter how your knees or hips are positioned, as long as the CoG is satisfying a specific criterion. So, I can then optimize the rotation of the knee and hip joints with a particle swarm with a chance of infeasible solutions. Then we bring in the research I've done with distributed constraint satisfaction and treat each leg as seperate agents that are working together for a common fitness. So, there really are 2 sets of particles being used, one for each leg. Then based on their fitness, they then decide which leg moves. Its a very interesting combination of ideas. I've completely given up "learning" and am just treating the problem as a real time optimization problem. Its processor intensive, but not memory intensive. If things go well, this may have quite a few commercial applications. Imagine a Segway with feet instead of wheels.

0 Comments:

Post a Comment

<< Home