Download presentation
Presentation is loading. Please wait.
Published byEric Merritt Modified over 8 years ago
1
Autonomous Dynamically Simulated Creatures for Virtual Environments Paul Urban Supervisor: Prof. Shaun Bangay Honours Project 2001
2
Problem Statement Traditional keyframing is inappropriate for animating realistic creatures in virtual environments, because it is Specified laboriously at a low level Strictly scripted, unvarying Often physically unrealistic Divided into sequences which don’t splice smoothly
3
Aim Our aim is to create virtual creatures that Are self-animating Exhibit physically realistic motion Have unscripted behaviour Are responsive to their unpredictable environment
4
The Solution: Animats Our approach is to construct complete artificial animals (animats). We draw upon theory and results from Artificial Life Physically Based Modelling Autonomous Mobile Robots
5
Anatomy of an Animat Dynamical model point-masses, springs, joints Sensors speed, food Actuators springs, joints Control mechanism finite state machine
6
Theory: Dynamical model The body and the environment are both modelled as a dynamical (mechanical) system A dynamics engine Animates the body and environment according to Newtonian mechanics Operates in (or near) real-time
7
Theory: Sensors Simulation Sensor Control mechanism Simulation data about creature body and environment Sensor activation level [0..1] Processing
8
Theory: Actuators Simulation Actuator Command to update some parameter in the simulated body Actuator activation level [0..1] Minimal processing Control mechanism
9
Theory: Control Mechanism Actuators Activation levels Sensors Control mechanism Solve the “action selection” problem In this project, FSMs are used
10
Design Overview Dynamics engine Roobot creature –Experiment to evolve hopping motion Jellyfish creature –Underwater environment Quadruped creature
11
Design: Dynamics engine No dynamics engine existed in greatdane Design criteria: –Conceptually simple –Applicable to a large variety of systems –Easily extendable –Computationally inexpensive
12
Design: Dynamics engine Object oriented decomposition Major abstract classes: –PointMass (single mass particle) –Force (applies force to several objects) –DiscreteEvent (detects and handles short-lived events) –Integrator (advances a system through time according physical laws)
13
Design: Roobot Springs Point masses Floor Torques Angular joints Gravity
14
Design: Roobot: Control Phases in the hopping motion corresponds to states in a FSM Transitions triggered by sensor values Different feedback algorithm for each state
15
Problem: Stable Hopping The roobot is dynamically unstable There are (14) parameters in the control FSM Values for stable hopping are unknown Parameters interact unpredictably “Fitness landscape” is unknown
16
Design: Hop Evolution Experiment Genetic algorithm is used Search for optimal sets of parameters Keep the best set so far Generate new sets through mutation Evaluate according to a fitness criterion (time till falling + distance travelled) Select if it beats the old best, replace old best
17
Design: Jellyfish Point masses Springs Gravity Buoyancy Pulse force Steering force
18
Design: Jellyfish: Control Three behaviours –Actively swimming –Pulsing occasionally to maintain depth –Drifting (sinking) passively Steering towards food occurs every pulse Action selection mechanism switches between these as appropriate
19
Design: Underwater environment Simulated fluid medium Currents to suggest waves overhead Swaying seaweed Rising bubbles Falling rocks
20
Design: Quadruped Flat torso defined by 4 point masses and 6 supporting springs Four legs (various models attempted) Control mechanism was to be based on that used for the roobot
21
Implementation Overview Dynamics engine Roobot creature Jellyfish creature –Underwater environment Quadruped creature
22
Implementation: Dynamics engine Coded in Java Compiles to a shared library, links into greatdane applications A number of additional objects defined, including –PointMass: SpherePointMass –Force: Spring, joints, Gravity, fluids, Floor –DiscreteEvent: Floor –Integrator: RungeKuttaIntegrator
23
Implementation: Creatures Coded in Java Models built from point masses, springs, angular joints and torque (rotational) joints Strict use of Sensor and Actuator interfaces
24
Implementation: Roobot Telescoping leg Hip & hip joint Tail Head Foot & ankle joint
25
Implementation: Jellyfish Dome Tentacles Stages in the pulsing motion
26
Implementation: Underwater environment Rocks Bubbles Seaweed
27
Implementation: Quadruped Torso Legs Control spring(s) Quadruped with supporting springs
28
Quadruped Abandoned Three different leg designs were tried A 2-segment jointed leg model couldn’t stand – knee joints twisted A 1-segment jointed leg model flipped over onto its back A 1-segment leg model with supporting springs was too complex to control
29
Results Overview Dynamics engine Stable Hopping Roobots Jellyfish swimming in an underwater environment
30
Results: Dynamics engine Object oriented dynamics engine implemented Highly applicable to particle systems Some difficulty with jointed structures
31
Results: Stable Hopping Roobots Stable hopping motion was evolved after a few hundred generations Separate evolutions from same starting parameters yielded different motions
32
Results: Swimming jellyfish Several jellyfish swim in a simulated underwater environment Interesting, physically realistic motion is generated automatically
33
Observations Dynamic simulation automatically produces realistic motion The design process is complex –Dynamics knowledge is crucial –Lazy modelling is optimal
34
Conclusions Our “bottom-up” approach to creature modelling using animats is validated The design process is complicated Genetic algorithms can be used to generate motor controllers Our dynamics engine simulates particle systems well, but jointed structures are not well handled
35
Thank you! Question time…
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.