Transcript Slide 1

MOTION PLANNING IN REAL AND VIRTUAL ENVIRONMENTS
FALL 2007
Second Life:
Introduction
Russell Gayle
Comp 790-058 – Robot Motion Planning
Fall 2007
September 24, 2007
7/16/2015
1
What is Second Life?
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• The Grid: The hardware behind the SL
Metaverse
What is Second Life?
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
• The Grid is organized into Simulators
» Single server instances
Connecting to Isle 1
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
Side
connections to
adjacent
simulators
Isle 1
Isle 2
Isle 3
Isle 4
Isle 5
Isle 6
Simulators
What is Second Life?
SL OVERVIEW
THE GRID
SIMULATORS
• Simulators are where the real work happens
» Each simulator is responsible for its avatars
AVATARS
PRIMITIVES
Isle 1
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
Communications (chat/IM)
Physical State, Collisions
Inventory
Animations
SL Identifier
What is Second Life?
SL OVERVIEW
THE GRID
SIMULATORS
• Simulators are where the real work happens
» Each simulator stores and distributes its prims
AVATARS
PRIMITIVES
Isle 1
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
Transformations
Textures
Physics
Embedded items
What is Second Life?
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Primitives can hold any type of object
» Primitives, scripts, animations, sounds, etc
• LSL makes the world interactive
» Embedded into prims
LSL Scripts
Change primitive appearance
Interact with other primitives
Interact with avatars
Physics
Query remote resources
Many more!
What’s missing?
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
• Important features of SL that we will not
cover
» Economy
•
•
•
•
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
Linden Dollars
Content creation
and IP rights
Land ownership
» In world attractions
• Virtual sightseeing
• “Live” music
7/16/2015
7
The Grid
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Collectively can be considered “The World”
» A large array of Debian servers
• Each server can support several simulations
» Centralized network topology
• All communications goes through the Grid
» Beta Grid: A test bed for upcoming
technologies
Simulators
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Also referred to as a Region
» e.g. Natoma, UNC CH I, UNC CH II
• Typically has a dedicated CPU
• Each region is 256 m by 256 m
» Larger islands are made by connecting
several regions
• Responsibilities
»
»
»
»
»
Geometry / Prims
Avatars
Local messaging (whisper, say, shout)
Voice-chat
Client-server networking
Simulators
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
• SLUIDs
» Every object (prims, avatars, animations,
audio, etc) has a (global) SL Unique ID
number
» Each simulator also has local references to
avatars and primitives
INTRO: SL BOTS
• Multi-simulator islands
» In reality, connected to multiple island
simultaneously in case you cross borders
» Note: You may need to keep track of this in
your work!
7/16/2015
10
Avatars
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Your virtual representation (or your bot’s)
» Stored in a central database
• Important features
» Appearance
• How you look
(height, clothing, etc)
» Inventory
• What you can use
and what you can DO
• Local animations
• Local sounds
• Other primitives or scripts
» Communication
» State and Motion
• Position, orientation, velocity, colliding, physics, etc
Avatars: What they can do
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Create primitives
• Interact with (touch) primitives
» This often activates scripts
• Attach prims to themselves
• Chat (whisper, say, shout)
» This can also activate scripts
• Navigate
» Ground-based (walk, run)
» Air-based (fly)
• Predefined animations
» Instant navigation (teleportation)
• You may not always end up where you expect!
7/16/2015
12
Avatars: Limitations
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Precision
» Not easy to reach a specific location
» Occasionally collisions are missed
• Bandwidth
» Not always enough to update all objects
» May cause missed collisions or stalled motion
7/16/2015
13
Primitives
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Belongs to a Region (simulator)
• 7 base types
» Box, cylinder, prism, sphere, torus, tube, ring
» All items built by transformations of these
• 1 special type
» Sculpted prim
• Prim whose shape is determined by a “Sculpt
Texture”
Primitives
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Seven base material types
» Stone, metal, glass, wood, flesh, plastic,
rubber
• Has several other state parameters
»
»
»
»
»
»
»
7/16/2015
Physical
Flexible (automatically non-physical)
Texture
Color
Bumpiness
Lighting
Transparency
15
Linden Script Language (LSL)
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Embedded in a prim (or a group of prims)
»
»
»
»
Not in avatars
Each prim in a group can have a script
Scripts between linked prims are faster
All scripts in a prim are run
• Similar to C or Java
• But with an emphasis on states and events
» Events trigger behaviors (functions)
» Can also cause a change of state
• And now for a crash course in LSL!
LSL: Getting Started
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Creating a script
1.
2.
3.
4.
Open the prim “Create” menu
Select a prim
Find the contents of the prim
Select “Create a new script”
• The default script
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}
7/16/2015
17
LSL: States
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
• State is used to determine which “behavior”
should be used
default //default state is mandatory
{
state_entry()
{
llSay(0, "turning on!");
llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES);
}
LIVE DEMO
touch_start(integer total_number)
{
state off;
}
INTRO: SL BOTS
}
state off
{
A new state
Triggers a change
of state
state_entry()
{
llSay(0, "turning off!");
llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES);
}
touch_start(integer total_number)
{
state default;
}
}
7/16/2015
18
LSL: Events
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• We’ve seen two events
» state_entry - When a state is activated
» touch_start – When an object is touched
• A few others which may be useful
at_target – when a prim reaches its target
collision – when a prim collides
http_response – response to http request (used
when working with remote resources)
sensor – when a sensor call returns something
» Note: Sensors are useful for tracking and
following
Documentation:
http://wiki.secondlife.com/wiki/LSL_Portal
7/16/2015
19
Live Demo!
SL OVERVIEW
• Overview of the main features in Second Life
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
7/16/2015
20
Introduction: Robots in SL
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
LIVE DEMO
INTRO: SL BOTS
• Two varieties
» LSL (primitives)
» Simulated network traffic (avatars)
• Tradeoffs
» LSL is stored and run on the simulator (serverside)
• Only works with prims
» Network traffic is subject to missed packets
and limited by client performance
• Note
» Both can access remote utilities!
LIBSecondLife
SL OVERVIEW
THE GRID
SIMULATORS
AVATARS
PRIMITIVES
SCRIPTING (LSL)
• http://www.libsecondlife.org
• Reverse engineering of SL network protocol
» Inspect, insert, or remove packets from the
client
» Create your own client
• We will control an autonomous avatar this way
LIVE DEMO
INTRO: SL BOTS
• More of this next time
7/16/2015
22