Difference between revisions of "XanderFramework"

From Robowiki
Jump to navigation Jump to search
(added detail on Xander framework)
 
m (→‎Xander Guns: added StatGun)
Line 12: Line 12:
 
==== CircularGun ====
 
==== CircularGun ====
 
This gun is for targeting opponents that drive in circles.  If the opponent does not appear to be going in circles, this gun will not fire on the target.
 
This gun is for targeting opponents that drive in circles.  If the opponent does not appear to be going in circles, this gun will not fire on the target.
 +
==== StatGun ====
 +
This gun is a "guess factor" gun that relies on statistics to determine how to aim.  If will not fire until there are sufficient stats to make a good guess.  It relies on a Segmenter to determine how to categorize the statistics it collects (Segmeneter is a seperate interface).
 
==== CompoundGun ====
 
==== CompoundGun ====
 
Combines two or more other guns.  Compound gun delegates gunning to other guns based on the order they were added to the compound gun.  Compound gun will check the guns in order until it finds a gun that claims it can fire on the designated target, and then allows that gun to fire.
 
Combines two or more other guns.  Compound gun delegates gunning to other guns based on the order they were added to the compound gun.  Compound gun will check the guns in order until it finds a gun that claims it can fire on the designated target, and then allows that gun to fire.

Revision as of 22:44, 23 May 2011

The Xander framework is an AdvancedRobot framework that makes it easy to build new bots by combining different guns, radars, and drives. It is based on an abstract class named AbstractXanderBot that extends AdvancedRobot. For a gun, drive, or radar to be used in the Xander framework, it has to implement the corresponding interface Gun, Drive, or Radar.

Below is a list of pluggable components I've built so far. I have more planned.

Xander Radars

BasicRadar

Basic radar scan the field, and locks onto the first target it finds. Target can switch if another robot happens to be closer and drives through the scan beam.

Xander Guns

LinearGun

This gun is for targeting opponents that drive in a straight line. It fires on the opponent based on the opponents current speed and heading. It does not attempt to determine whether the target is actually moving in a straight line or not.

CircularGun

This gun is for targeting opponents that drive in circles. If the opponent does not appear to be going in circles, this gun will not fire on the target.

StatGun

This gun is a "guess factor" gun that relies on statistics to determine how to aim. If will not fire until there are sufficient stats to make a good guess. It relies on a Segmenter to determine how to categorize the statistics it collects (Segmeneter is a seperate interface).

CompoundGun

Combines two or more other guns. Compound gun delegates gunning to other guns based on the order they were added to the compound gun. Compound gun will check the guns in order until it finds a gun that claims it can fire on the designated target, and then allows that gun to fire.

Xander Drives

OrbitalDrive

This drive approaches the target using linear targeting and then, when it range, orbits around the target, changing direction periodically. It also uses "inverse gravity bullet avoidance", which I will describe elsewhere.

AvoidanceDrive

This drive relies exclusively on "inverse gravity bullet avoidance" to control movement. Not really meant for real combat, this drive was created to test various aspects of bullet avoidance.