1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
8 |
![]() |
||||||||||||||||||||||||||
switching between several controllers over time, possibly subject to some form of transition requirements.
|
![]() |
||||||||||||||||||||||||||
user [Wil86] [AGL87] [FW88] or based on measured or observed data [MZ90] [Mil88]. |
Other |
![]() |
|||||||||||||||||||||||||
controllers are based on state machines, dividing the motion into a number of phases, each of |
![]() |
||||||||||||||||||||||||||
which is represented by a single state. |
Controllers are designed by hand in many cases [RH91] |
![]() |
|||||||||||||||||||||||||
[SC92] |
[HSL92] |
[H+95]. |
Hand-designed |
controllers |
require |
the |
use |
of |
carefully |
chosen |
![]() |
||||||||||||||||
parameters to simplify the control program and are typically specific to a particular type of motion (e.g. hopping). |
![]() |
||||||||||||||||||||||||||
Controllers can also be automatically synthesized. |
Automatic synthesis uses various stochastic |
![]() |
|||||||||||||||||||||||||
search strategies to explore the space of possible controllers [VF93] [vKF94] [vKF94b] [vL95] [NM93] [A+95] [Sim94] [GT95]. Each controller is assigned a fitness value which characterizes its "goodness" and a mechanism is provided for keeping and refining good controllers and eliminating poor ones. In [Sim94], the structure of the creature itself is allowed to evolve, as well |
![]() |
||||||||||||||||||||||||||
as the controller. |
Current automatic synthesis techniques are best at finding controllers for |
![]() |
|||||||||||||||||||||||||
relatively stable creatures and motions such as a crawling ant or motion in a single plane. |
This is |
![]() |
|||||||||||||||||||||||||
because they rely on the fact that a good first guess can be stochastically determined with reasonable amount of computation. A relatively smooth fitness function is also typically required |
![]() |
||||||||||||||||||||||||||
to allow incremental progress toward an acceptable solution. |
Unstable motions such as human |
![]() |
|||||||||||||||||||||||||
walking do not meet these requirements since the solution space is exceedingly small compared to that of a more stable creature and motion, especially when motion in 3 dimensions is desired.
|
![]() |
||||||||||||||||||||||||||
requiring |
less |
direct |
animator |
intervention |
as |
compared |
to |
kinematic |
and |
trajectory-based |
![]() |
||||||||||||||||
approaches. The cost of this increased autonomy is in the degree of control the animator has over |
![]() |