Formalizing Motion - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

Formalizing Motion

Description:

Systems use sensors to gather info, decide where to go next, and ... on 2D navigations as practical applications of algorithms (e.g. reinforcement problems) ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 14
Provided by: BMA2
Category:

less

Transcript and Presenter's Notes

Title: Formalizing Motion


1
Formalizing Motion
  • CIS 488/588
  • Bruce R. Maxim
  • UM-Dearborn

2
Background - 1
  • Robotics
  • Systems use sensors to gather info, decide where
    to go next, and activate motors to make it happen
  • Artificial Life
  • Studies behaviors of synthetic creatures as part
    of a group (e.g. flocking and steering)
  • Each agent sensors to detect obstacles in range
  • Steering force comes from mathematical equations
    that translate sensor input into velocities

3
Background - 2
  • Academic Projects
  • Tend to focus on 2D navigations as practical
    applications of algorithms (e.g. reinforcement
    problems)
  • Game AI
  • Simplified navigation to reduce computational
    overhead
  • Data structures often pre-computed
  • NPC position can be updated directly at run-time
    to simulate conscious movement

4
Context
  • The main consideration is determining how to
    model animats state in space
  • Both position and orientation are important
    concepts for movement, but not AI
  • AI can base decision by acquisition of local
    information
  • Absolute vectors are expressed in global
    coordinates matching the world axis
  • Relative coordinates are based on animats
    personal experiences

5
Actions
  • Can be designed at different levels
  • AI requests one step at a time or full paths
  • Actions provided as actual functions or
    implicitly using parameters
  • Turns can be measured discretely or continuously
    (with several tradeoffs)
  • Getting the grain size right for movement and
    commands is important to the quality of game play

6
Senses - 1
  • Animat needs to sense free space to perform
    navigation
  • If environment info is not provide before game
    starts, it can be acquired by
  • Point content (functions return type matter at
    specific locations)
  • Line traces (used to find first segment with the
    structure of the world, can be used to find free
    space)

7
Senses - 2
  • Animat can simplify its task by using simpler
    sensors
  • Collision sensors (detect when animate has hit an
    obstacle)
  • Odometers (measure relative distance traveled
    relative to current state)
  • Proprio-sensors (allow animat to detect its own
    state by monitoring its relative angular momentum)

8
Senses - 3
  • It is possible to understand environment layout
    just using contact sensors and position tracking
  • Terrain learning is needed to prevent collisions
  • Historically game developers have used failure
    relative load movement to determine that
    collisions have already taken place
  • A better strategy would be to have the physics
    engine pass collision information directly to AI
    system rather than making it rediscover it again

9
AI and Environmental Interface Concerns
  • Consistency
  • Information provide to animat must match the game
    environment
  • Flexibility
  • Keep specification as customizable as possible to
    ensure that similar problems can be handled by
    single interface
  • Efficiency
  • Minimize data exchange and limiting number of
    queries so that they can be optimized

10
Proposed Specification
  • Motor control requires two actions
  • Move (continuous)
  • Turn (continuous)
  • Sensors
  • Line traces return first obstacle from origin
  • Physical feedback on collision (lowest level)
  • Information passing
  • AI lazy queries of environment info pull
  • Environment broadcasts info info push

11
Interfaces
  • Motion module output
  • void Move(const Vec3f direction)
  • void Turn(const Vec3f orientation)
  • Physics module
  • bool Collision( ) // T or F on collision
  • Visual interface simulation
  • float Tracewalk(const float angle,
  • const float steps 4.0f) const
  • // returns how far animat got form origin
  • // before bumping into something

12
Code Skeleton
  • void Think( )
  • //check for contact
  • bool col physics-gtCollision( )
  • // locate obstacles in front
  • float front_obstacle vision-gtTraceWalk(0.0f)
  • // decide what actions to call
  • motion-gtMove(Forward)
  • if (col front_obstacle lt 2.0f)
  • motion-gtTurn(orientation)

13
Pinbot
  • Can detect orientation of the wall when
    collisions occur
  • Knowing direction of collision allows Pinbot to
    ricochet off the wall link a pin ball
Write a Comment
User Comments (0)
About PowerShow.com