The BOXO model is relatively simple. His torso is a minimum-sized 1x1x1 cube. He has six ‘arms’, one attached to each face. BOXO is an unnatural creature in that he has muscles that act more like springs than conventional contracting muscles. He will always come to rest in a tripod position, and by applying an outward-sliding force on two of the three legs connected to the ground he can twist himself so that he moves in a desired direction. The three legs he is currently thinking about pushing off of light up in yellow. These movement capabilities were implemented in the model by attaching each of the legs to the torso with a slider joint. The maximum extension is quite short, but with a decent amount of force applied BOXO can propel himself around quite nicely.

 

The controller for BOXO is designed to allow the model to first come to rest on three of the legs in a tripod formation and then make a decision about which legs to activate. The controller waits a set amount of time and then calculates the position of all six legs. From this, the controller determines the three legs that are the furthest distance from the goal direction. Finally, the controller applies an outward sliding force to the two legs (of the three possible choices) contacting the ground. Since these two legs of the tripod are opposite the goal direction, activating them will twist and propel BOXO toward the goal. In this initial version the goal direction must be statically set at compile time, but the code is set up to easily be modified to allow dynamically changing goal locations/directions.

The design of BOXO was a long process. In thinking about this competition and coming up with initial creature designs, I knew I wanted a very agile creature. I started by working on a snake-like creature, then moved on to a more traditional quadruped. I found ODE to be quite a challenge to work with at first, and many of my designs simply exploded when placed in the physics engine. I actually went to the whiteboard and drew some simple, small creatures and finally came up with BOXO. The big advantage with this design is that he has the agility I was looking for. Because the model’s movement is a bit random and a bit erratic, it is very difficult for BOXO to get stuck or blocked by an object. The controller moves him in the goal direction, but there is variation in the orthogonal direction in the plane. This means BOXO can implicitly move around obstacles. The one disadvantage in the design that I didn’t realize until after completing it is that it is not well-suited for uphill challenges, as it has a difficult time generating traction and making progress. I think this is a reasonable tradeoff, as it is otherwise very difficult for it to get stuck or trapped.