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