Section of Final Report: NASA ACRP NCC7-7, Bush Robots, Hans Moravec, Jesse Easudes


3: Graphics and Simulations

The following two pages show a side and bottom view of a (B =3, D =2) bush with ten levels of branching. The bush is shown holding 36 balls of various sizes, perhaps in preparation to juggle them.

The bush was configured by our "rubber tree" program included in the appendix A, with each ball exerting a repulsion on nearby nodes during the relaxation. The algorithm mostly succeeded, but some penetrations of the ball by branchlets can be seen in the smallest balls on the right.

The 3D images were rendered by Silicon Graphics "Cosmoplayer" VRML (Virtual Reality Modeling Language) plugin for Netscape, running on a high end SGI Reality Engine, capable of over 500 MIPS of general purpose computing and several times that for 3D graphics. It took just short of five hours on this machine to set up an internal 3D data structure, which could then be viewed from various viewpoints in tens of seconds. Each extra level of the tree, which multiplied the number of fingers threefold, multiplied the rendering time ninefold.



Arbitrary Pose Triangulations

It is quite easy to triangularly tessellate bushes with modest branch angles and little axial rotation at each branch. Here are views of a 7-level triangulated bush with equal-angle, non-twisting, branching:



It is much more difficult to find a triangulation for an arbitrary bush robot pose, which may contain sharp bend angles and significant twists at each joint. In particular, the only regular way for a B=3 D=2 bush to cover a surface is with a fractal pattern that involves a 45 degree twist from level to level. The pattern also tends to generate a pose where the smaller branchlets have increasingly wide splay angles, approaching 90 degrees for the smallest fingers. We modified our old "rubber tree" bush posing program to generate triangular tessellated skin. Here are images of the results.



Simulations

The most accessible modeling technique we have is simulation. We have used 3D graphics on desktop Silicon Graphics machines to produce static images of 10-level, three-way branching bush robots, composed of about 90,000 branches. On our fastest machine, it took five hours for the program to sort the data structure for those images, and several minutes to render each view. We've determined that we can obtain smooth real-time animation of 5-level bushes, and slightly jerky animation of 6-level bushes. We taped 30 minutes of animation of four simple bush robot scenarios that were chosen for ease of implementation, in that they involve regular oscillations of the branch angles that can be encoded directly into the animation file.

Scenario 1 is a 6-level B = 3 D = 2 bush oscillating between a left- and right-handed version of the surface-filling fractal arrangement that can be seen more clearly in the static images. Because the present animation simply moves the branch angles in a regular way, the folded bush takes on a rough-surface shape strongly resembling a vegetable sprig, rather than the deliberate smooth surfaces of the static images! Between the formation of the fractal interleaves, the robot undergoes fractal bunching, to keep the branchlets as far away from each other as possible.

Scenario 2 is a 5-level twig of the above bush, doing the same dance more smoothly, but with 1/3 the number of branches.

Scenario 3 shows a 6-level bush oscillating its branches at incommensurate rates, but with the oscillation periods at different levels proportional to the scale of the level. Thus the small branches wag faster than the large ones, as would be natural if all levels of actuation had equal power density.

Scenario 4 is a 5-level twig giving a smoother but reduced rendition of scenario 3.

Here are some stills from the motion sequences:

Scenario 1: Left-/Right-handed fractal fill oscillation



Scenario 3: Unsynchronized oscillations