Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIS 488/588 Bruce R. Maxim UM-Dearborn

Similar presentations


Presentation on theme: "CIS 488/588 Bruce R. Maxim UM-Dearborn"— Presentation transcript:

1 CIS 488/588 Bruce R. Maxim UM-Dearborn
Formalizing Motion CIS 488/588 Bruce R. Maxim UM-Dearborn 11/8/2018

2 Background - 1 Robotics Artificial Life
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 11/8/2018

3 Background - 2 Academic Projects Game AI
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 11/8/2018

4 Context The main consideration is determining how to model animat’s 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 animat’s personal experiences 11/8/2018

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 11/8/2018

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) 11/8/2018

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) 11/8/2018

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 11/8/2018

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 11/8/2018

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/8/2018

11 Interfaces Motion module output Physics module
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 11/8/2018

12 Code Skeleton void Think( ) { //check for contact
bool col = physics->Collision( ); // locate obstacles in front float front_obstacle = vision->TraceWalk(0.0f); // decide what actions to call motion->Move(Forward); if (col || front_obstacle < 2.0f) motion->Turn(orientation); } 11/8/2018

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 11/8/2018


Download ppt "CIS 488/588 Bruce R. Maxim UM-Dearborn"

Similar presentations


Ads by Google