Design, Implementation, & Impact Jeffrey Santos Hofstra University May, 2010.

Slides:



Advertisements
Similar presentations
From Local Patterns to Global Models: Towards Domain Driven Educational Process Mining Nikola Trčka Mykola Pechenizkiy.
Advertisements

Application a hybrid controller to a mobile robot J.-S Chiou, K. -Y. Wang,Simulation Modelling Pratice and Theory Vol. 16 pp (2008) Professor:
Sensor Based Planners Bug algorithms.
From Quark to Jet: A Beautiful Journey Lecture 1 1 iCSC2014, Tyler Dorland, DESY From Quark to Jet: A Beautiful Journey Lecture 1 Beauty Physics, Tracking,
Chapter 4.2 Collision Detection and Resolution. 2 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring.
Robocode. What is Robocode? Robocode is an easy-to-use robotics battle simulator. You create a robot, put it onto a battlefield, and let it battle to.
Flocking and more.  NPC groups can move in cohesive groups not just independently ◦ Meadow of sheep grazing? ◦ Hunting flock of birds? ◦ Ants? Bees?
NUS CS5247 Motion Planning for Camera Movements in Virtual Environments By Dennis Nieuwenhuisen and Mark H. Overmars In Proc. IEEE Int. Conf. on Robotics.
Graduate Capstone Project Breaking Walls: Developing a Successful Robot in Robocode Chris Velez Summer 2011 Advisor :Dr. Xiang.
Dynamics of Some Maps Associated with Number Theoretic Functions. ITEC809 Project Report. Semester 2, 2011 Jeffrey Smith – Supervisor : Igor Shparlinski.
Chapter 4.2 Collision Detection and Resolution. 2 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring.
Identifying "Good" Architectural Design Alternatives with Multi-Objective Optimization Strategies By Lars Grunske Presented by Robert Dannels.
1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line.
Multi-Action Situational Response by Jason Madden 5/1/2008.
Using a GA to Create Prey Tactics Presented by Tony Morelli on 11/29/04.
Game Mathematics & Game State The Complexity of Games Expectations of Players Efficiency Game Mathematics o Collision Detection & Response o Object Overlap.
Evolving Killer Robot Tanks Jacob Eisenstein. Why Must We Fight? Giving the people what they want Essence of embodiment: Moving around and surviving in.
Steering Behaviors For Autonomous Characters
Paper by Alexander Keller
Why teach coding?.
Learning Goals, Scales and Learning Activities
Science Inquiry Minds-on Hands-on.
Professional Learning Communities & My Learning Plan Laconia School District.
INTRODUCTION TO SCRATCH. About Me Resources Scratch Website Learn Scratch Washington-Lee Computer.
Biological Inspiration: Ants By Adam Feldman. “Encounter Patterns” in Ant Colonies Ants communicate through the use of pheromones perceived through their.
Kalman filter and SLAM problem
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Stochastic Radiosity K. H. Ko School of Mechatronics Gwangju Institute.
VIRTUAL BUSINESS RETAILING
Indoor Localization Carick Wienke Advisor: Dr. Nicholas Kirsch University of New Hampshire ECE 791H Using a Modern Smartphone.
Generating & Testing Hypotheses
1 Constant Following Distance Simulations CS547 Final Project December 6, 1999 Jeremy Elson.
How does Robocode work? In short it is a framework
HS-MASS 2 Project: Mathematics Overview of Sessions 1&2 for Teachers.
Brian Renzenbrink Jeff Robble Object Tracking Using the Extended Kalman Particle Filter.
Brute Force Average of 88 checks Worst possible algorithm if there is a ship in the bottom right cell Best search: 25.
CSE AI Game Programming. Installation 
Introduction to Programming G50PRO University of Nottingham Unit 3 : Introduction To Scratch 2 Paul Tennent
USING DATADIRECTOR ASSESSMENTS TO INCREASE USE OF FEEDBACK TO STUDENTS AND TEACHERS Stan Masters Coordinator of Instructional Data Services Lenawee Intermediate.
Introduction to Science: The Scientific Method. Vocab Hypothesis – if then because statement based on prior knowledge or experience Variable Independent.
Mapping and Localization with RFID Technology Matthai Philipose, Kenneth P Fishkin, Dieter Fox, Dirk Hahnel, Wolfram Burgard Presenter: Aniket Shah.
Patch Based Mobile Sink Movement By Salman Saeed Khan Omar Oreifej.
CSE AI Game Programming. Installation 
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby.
1 Distributed and Optimal Motion Planning for Multiple Mobile Robots Yi Guo and Lynne Parker Center for Engineering Science Advanced Research Computer.
Statistical Analysis of Inlining Heuristics in Jikes RVM Jing Yang Department of Computer Science, University of Virginia.
PAPER BY JONATHAN MUGAN & BENJAMIN KUIPERS PRESENTED BY DANIEL HOUGH Learning Distinctions and Rules in a Continuous World through Active Exploration.
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
A Passive Approach to Sensor Network Localization Rahul Biswas and Sebastian Thrun International Conference on Intelligent Robots and Systems 2004 Presented.
Improving Student Learning One Teacher at a Time Jane E. Pollock, Ph.D.
My Second Robot. Anatomy of a Robot A robot consists of 3 independently moving parts: Vehicle - determines the direction in which the robot will move.
Seminar for Participants An Introduction on Robocode.
1 Motion Fuzzy Controller Structure(1/7) In this part, we start design the fuzzy logic controller aimed at producing the velocities of the robot right.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
Marzano’s Essential 9 Instructional Strategies Engaged Time = Student Gains.
Data to collect and questions to ask to understand the meaning of the data.
(1) Introduction to Robocode Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Introduction to Game Programming & Design III Lecture III.
2D Simulation of Rigid Bodies
Crowd Modelling & Simulation
Winning Strategy in the Programming Game Robocode
Winning Strategy in Programming Game Robocode
Improving Student Learning One Teacher at a Time Jane Pollock
CIS 488/588 Bruce R. Maxim UM-Dearborn
Chapter 4.2 Collision Detection and Resolution
Navigation In Dynamic Environment
MTAT , 2CP Seminar Ilja Livenson
Chapter 5 Some Important Discrete Probability Distributions
Extract Object Boundaries in Noisy Images
An Information Evening for Parents
Modeling and Analysis Tutorial
Presentation transcript:

Design, Implementation, & Impact Jeffrey Santos Hofstra University May, 2010

Introduction  Robocode  Presentation Goals  Presentation Organization

Project Specifications Objectives 1. To design a robot that will effectively destroy CrazyBot 2. To design a tracking algorithm that will accurately predict CrazyBot’s movements based on observations 3. To design a shooting algorithm that will accurately predict where CrazyBot will be when a bullet passes through a potential area of contact

Project Specifications Functional Requirements 1. The robot program should compile and be loadable by the Robocode program. 2. The robot should handle the following events: a) When the radar detects the presence of an enemy robot. b) When the radar no longer detects the presence of an enemy robot. c) When the robot hits a wall or enemy robot. d) When the robot is hit by a bullet

Project Specifications Non-Functional Requirements 1. In a one-to-one battle against CrazyBot, the hit-ratio should be at least 75%. 2. In a one-to-one battle against CrazyBot, the energy level of the robot should be at least 90% when the battle is completed. 3. In a group of ten battles against CrazyBot, the average time to victory should be less than 1200 turns. 4. In a group of ten battles against CrazyBot, the robot should be victorious 100% of the time.

The Algorithms  Tracking  Movement  Targeting Unwritten Rule: Stay Simple!

The Algorithms:Tracking  Keep a detected robot in the radar arc at all times.  Generous radar arc allows for very simple design.  Delegated to targeting algorithm.

The Algorithms:Movement 1. Calculate enemy energy changes. 2. Calculate distance between CrazyDestroyer and target enemy robot. 3. If the energy change is between 0.0 and 3.0, the enemy likely fired on CrazyDestroyer, move at an angle orthogonal to the bearing to the enemy robot a distance of 50 pixels. 4. If the enemy is greater than 300 pixels away from CrazyDestroyer, move towards it.

The Algorithms: Targeting Finding a Circle

The Algorithms: Targeting A “Perfect” Algorithm Mathematically “Perfect” Too complex

The Algorithms: Targeting A Discrete Solution Method of Exhaustion Discrete Sampled Points

The Design

The Design *Data

The Design Circular Path

The Design DataControlSystem

The Design TrackingControlSystem

The Design CrazyDestroyer

Implementation & Testing  Robocode API  Sun Microsystems’ Netbeans 6.8

Implementation & Testing Design Changes  The Geometer Class  Changes to DataControlSystem  BattleData.calcEnemyPosition()

Implementation & Testing Major Bugs Encountered  Departure from a normal relative angle  Data storage and retrieval

Implementation & Testing Unit Testing  CircularPath.calcPosition  Geometer.getAngle  Geometer.calcCircumcenter  Note on Division By Zero

Implementation & Testing Unit Testing: CircularPath.calcPosition PointHeadingVelocityTimeExpected (0,0)111(0.8414, ) (0,0)11( , ) (3, 4)π/412(4.412, ) No Exceptions!

Implementation & Testing Unit Testing: Geometer.getAngle VertexABExpected (0,0)(0,3)(3,0)π/2 (0,0)(3,0)(0,3)π/2 (0,0)(0,3)(0,-3)π (0,0) (0,3)NaN/Infinity (0,0)(0,3)( , 3) The domain of arccosine…?

Implementation & Testing Unit Testing: Geometer.calcCircumcenter ABCExpected (0,1)(1,0)(0,-1)(0,0) (0,1)(0,-1)(1,0)NaN/Infinity (0,1)( , )(1,0)( , ) (1,0)(-1,0)(0,1)NaN/Infinity (0,1)(1,0)(-1,0)(0,0) (0,1)(1,2)(2,3)NaN/Infinity (0,1)(1, )(2,3)( , )

Experimental Results  Experimental Variables Battlefield Size Movement Algorithm  Gathering Data The DataControlSystem 100,000 Trials

Experimental Results Battlefield Size Discrepancies

Experimental Results Movement Algorithm Discrepancies  400x400 Battlefield Constant movement Collisions  800x600/1200x1200 Battlefield High success Successful by design  5000x5000 Battlefield

The Pedagogy of Robocode  Robocode: Assessment For Learning  Extending Robocode to meet the full requirements of an Introductory level Computer Science curriculum  Focus on Secondary Education

Conclusions  The Effectiveness of CrazyDestroyer  The Pedagogy of Robocode

References [1]“Alice”, available at retrieved 04/11/2010. [2]“A Model Curriculum for K-12 Computer Science”, CSTA, available at retrieved 04/11/2010. [3]Clark Aldrich. Learning Online with Games, Simulations and Virtual Worlds: Strategies for Online Instruction. Jossey-Bass, [4]“Computer Science A Course Description”, CollegeBoard AP, available at retrieved 04/11/2010. [5]Douglas Fisher and Nancy Frey. Checking for Understanding: Formative Assessment Techniques for Your Classroom. Prentice Hall, [6]Mathew Nelson, "Robocode", available at retrieved 04/11/2010. [7]Robert J. Marzano, Debra J. Pickering and Jane E. Pollock. Classroom Instruction That Works: Research-Based Strategies For Increasing Student Achievement. Prentice Hall, [8]“Scratch”, available at retrieved 04/11/2010.