Plugin / XML File Discovery¶
This tutorial assumes you have completed the section
Installation. Let’s start with the command we ran to run the
straight.xml
mission:
$ cd ~/scrimmage/scrimmage
$ scrimmage ./missions/straight.xml
When executing this line, scrimmage first reads in the mission file
straight.xml
. This file allows for quite a few customizations such as how
to visualize terrain and entities (aircraft in this case), how long we want the
simulation to run, where it takes place, and quite a few other items. For our
purposes though, the entity
block is the one of interest. In the scenario,
we have 2 teams each with fixed-wing aircraft. Thus, we have two entity blocks.
The team is set with the team_id
block and the entity type is set with the
autonomy
block. 1 When scrimmage
sees the autonomy
block
pointing to Straight
it does the following:
Looks for the file
Straight.xml
in yourSCRIMMAGE_PLUGIN_PATH
and loads it.Looks for the
params
xml tag inStraight.xml
.It loads the custom autonomy specified by the
library
tag (we will discuss how to create these libraries below)It saves all other items in the
params
block and passes these variables to theinit
method of thelibrary
as a map of strings pointing to strings (we will discuss this below as well).
Later tutorials will discuss how to implement custom autonomy plugins.
Finding Plugins¶
A command line utility called scrimmage-plugin
can be used to find a plugin
and print its properties. For example, to find the Straight
autonomy
plugin, type the following:
$ scrimmage-plugin Straight
This utility is useful for debugging file path problems.
- 1
We actually fully specify an entity with the
motion_model
,visual_model
,controller
, andautonomy
. The first item concerns how a vehicle moves. In the case of a fixed-wing vehicle it can only move forward, roll, and pitch so we specifySimpleAircraft
as the motion model. Quadrotors have more degrees of freedom so they have theSimpleQuadrotor
motion model. As the names imply, there are higher fidelity motion models available.