These tags have been carefully chosen to reflect the object-oriented
architecture of the simulation. The tags revolve completely around the
objects which are being simulated, rather than focusing on GUI and such
non-simulation related appurtenances. This allows humans to easily read,
understand, and modify the XML files without constantly referencing the
documentation. Great care has been taken to choose logical tag names, and
to utilize the conventions that you presented in the earlier draft.
Main Tags
<parameter_file>
This is the root tag. It contains simulation worlds.
Contains:
<sim_world>
This tag represents a self-contained simulated environment, and contains
all tags of its constituents.
Attributes:
- name - the name of the simulation world (for GUI)
- x_size - length in meters of the simulation world.
- y_size - width in meters of the simulation world.
- z_size - height in meters of the simulation world.
- in_latency - latency in number of frames for AI-sim communication.
- out_latency - latency in number of frames for sim-AI
communication.
- frame_rate - Frame rate at which the simulator runs.
- noise_radius - A parameter for simulating noise in the simulator
Contains:
- field,decoration,wall,robot,ball,goal,geometry,COMMENT
Object Attribute Tags
<geometry>
Every physical object contains a geometry tag. This describes the
geometry of the object.
Attributes:
- start_position - initial position in meters of the object. [x,y,z]
- start_velocity - initial velocity in meters/sec of the object.
[x,y,z]
Contains:
<shape>
This describes the shape of the object.
Contains:
- line, circle, rectangle, Plane, arc
<appearance>
Any object in the program that can be viewed by the GUI has an appearance
tag. This tag contains attributes and other tags which provide
information to the GUI about what the object should look like. This is
currently not implemented. It can be used in future if we plan to integrate
a GUI with the simulator.
Attributes:
- fill_color - color to fill in inside of object with.
- edge_color - color to draw around edges with.
- edge_thickness - thickness of edges in pixels.
Contains:
Object Tags
<robot>
This defines a robot and all of its characteristics.
Attributes:
- name - the name of the robot. (for debugging/logging purposes)
- id - unique identification number used in communication with the AI.
Negative means it doesn't exist in the simulation, is only a template.
- team - the team of the robot. (for better description)
- mass - the mass of the robot
- elasticity - the elasticity of the robot.
- inherits - the name of the robot from which properties are inherited.
Contains:
- appearance
- geometry
- dribbler
- kicker
- COMMENT
<wall>
This defines a wall and all of its characteristics.
Attributes:
- name - unique identifying name. If it ends with "_TEMPLATE" it is only
a template, and is not instantiated.
- elasticity - The elasticity of the wall
- inherits - the name of the wall from which properties are inherited.
Contains:
- appearance
- geometry
- COMMENT
<goal>
This defines a goal and all of its characteristics.
Attributes:
- team - this is 0 or 1, depending on what team owns the goal.
- inherits - the name of the wall from which properties are inherited.
Contains:
- appearance
- geometry
- COMMENT
<field>
This defines the playing field and all of its characteristics.
Attributes:
- static_friction - the coefficient of static friction of the surface.
- kinetic_friction - the coefficient of kinetic friction of the surface.
- elasticity - the fraction of energy conserved in collisions.
- inherits - the name of the wall from which properties are inherited.
Contains:
- appearance
- geometry
- COMMENT
<ball>
This defines a ball and all of its characteristics.
Attributes:
- mass - the mass of the ball.
- name - the name of the ball (RoboFlag)
- id - the id of ball (RoboFlag)
- team - the team of the ball (RoboFlag)
- static_friction - the coefficient of static friction.
- kinetic_friction - the coefficient of kinetic friction.
- elasticity - the fraction of energy conserved in collisions.
- inherits - the name of the wall from which properties are inherited.
Contains:
- appearance
- geometry
- COMMENT
<decoration>
This is used to define decorations that are visible in the GUI but do not
have any effect on the physical system. This is not implemented yet.
Attributes:
Contains:
Shape Tags
<line>
This gives a linear geometry to an object.
Attributes:
- length - the length of the line.
- angle - the orientation of the line counterclockwise from î.
Contains:
<plane>
This gives a planar geometry to an object.
Attributes:
- length - the length of the plane.
- width - the width of the plane.
- normalangle - the angle between the X-Y plane and the normal of the
plane.
Contains:
<circle>
This gives a circular geometry to an object.
Attributes:
- radius - the radius of the circle.
- orientation - to indicate the mouth of the circle.
Contains:
<arc>
This gives is a semicircular geometry. It is used for decorations only.
Attributes:
- radius - the radius of the semi circle.
- begin_angle - the starting angle of the semi circle counterclockwise from
î.
- end_angle - the ending angle of the semi circle counterclockwise from
î.
Contains:
<rectangle>
This represents a rectangular prism.
Attributes:
- length - the length of the rectangular prism.
- width - the width of the rectangular prism.
- height - the height of the rectangular prism.
- orientation - the orientation of the rectangular prism
Contains:
Robot Devices Tags
<kicker>
This is the kicking mechanism mounted on the robots.
Attributes:
- kick_impulse - impulse imparted on the ball, in newton-seconds
- reset_time - time taken to reset the mechanism, in seconds
Contains:
<dribbler>
This is the dribbling mechanism mounted on the robots.
Attributes:
- stickiness - The stickiness of the dribbler
Contains:
©February 4'th, 2002.