AirSDK Command Line Interface#
airsdk-cli
is a command-line tool for building and testing airsdk missions.
It aims to ease the development of AirSDK missions by providing a simplified build environment that
should fit most missions.
Note
The previous build environment (using the airsdk_samples manifest) is still supported, either for already deployed missions, or for missions too complex for this tool. Hopefully those cases should be rare.
Creating a new mission#
A new mission can be created by calling airsdk init
. The init command will ask a few questions
about the mission, and will then create a directory for the mission.
This directory contains the following:
The mission.yaml file is the core of an
airsdk-cli
-based mission. It contains all the information about the mission, and is the only configuration file needed.A
.gitignore
file configured to ignore the.airsdk
generated directory.An empty mission template. All of these source files can be freely edited to make the mission do what it should do.
A mission directory can be versioned as a single git repository, where the mission source files and
the mission.yaml
files should be checked-in.
Note
airsdk-cli
uses a hidden directory (.airsdk
) inside the mission directory to store any
generated code or build artifact. It assumes that this directory only contains its own files,
and might modify/delete any of its content without notice.
airsdk-cli
users should not store anything in this directory, and this directory should
not be added to version control.
Building a mission#
Once a mission is created, building the mission is achieved with the airsdk build [--simulator]
command. Changes to the mission.yaml
should be picked-up automatically and should not require
cleaning the mission before building again.
The airsdk clean
command forces a mission clean. This should only be needed to reclaim the disk
space used by the build folder of a mission.
Installing a mission#
Once built, the mission can be installed on a drone with the airsdk install [--simulator]
command. This command installs the current mission on a connected drone or simulator, then reboot
the drone/simulator to finish the mission installation.
In order to test a mission, it might be easier to set the mission as the default mission. In this
case the mission will be automatically loaded when the drone is booted. This can be achieved by
adding the --default
option to the install line. Note that a drone can only have a single
default mission, and that installing a mission as the default one will automatically remove the
default flag from the previous default mission.
Note
Most the airsdk-cli
commands can be executed from sub-directories of a mission. The tool will
search parent directories until it finds a mission.yaml
file, and consider this as the root
of the mission.
Listing and uninstalling missions#
The tool provides the airsdk list
and airsdk uninstall
commands to manage installed missions
on a drone.
The list
command simply prints the list of installed missions, while the
uninstall [uid]
command will uninstall the mission with the given UID (if no UID is given, the
UID of the current mission.yaml
file will be used)
Warning
While Parrot missions can be uninstalled by the uninstall
command), it is not advised to
do so. Most of those basic missions will be automatically reinstalled when doing a factory reset,
but the drone behavior might be strongly affected until that.
Adding assets to a mission#
A mission might require some files to be directly copied in the mission file without building it
first. This can be done by creating a directory named assets
within the mission directory.
airsdk-cli
will copy all files found in this directory into the mission storage, where it can be
accessed by the mission.
Note
When the content of the assets
directory is copied into the mission file, symbolic links are
dereferenced, even if they point to another file into the assets
directory.