Skip to main content

Getting Started

Create a project from the template

We have created a template repository for your mission model, scheduling procedures, and constraint procedures here. If you don't already have a mission model project, you can just copy that template and follow the instructions. If you do, you can follow these steps to add a place for your procedures:

  1. Move your mission model code into a gradle subproject if it isn't already.
  2. Create a scheduling and constraints subproject.
  3. Copy the build.gradle from the scheduling and constraints subprojects of the mission model template repo.
  4. You can now create procedures in a java package in your respective subprojects, as long as the package path ends in procedures. (i.e. src/main/java/myorg/mymission/procedures)

Compiling

It is a two-part process to build your scheduling or constraint jars (we will show the scheduling jar creation below, but simply replace "scheduling" with "constraints" to compile your constraints).

  1. Run ./gradlew :scheduling:compileJava (or any command that delegates to it, such as :scheduling:build or a top-level build).
  2. Run ./gradlew :scheduling:buildAllProcedureJars. This produces the jar artifacts for each procedure.

There should now be one jar for each scheduling procedure, at scheduling/build/libs/<OriginalSourceCodeFileName>.jar.

Creating a Goal

See some examples in the mission model template repo, or see the scheduling page in this section.

Creating a Constraint

See some examples in the mission model template repo, the Aerie mission model tutorial, or see the procedural constraints page of the docs.