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
.gitignorefile configured to ignore the.airsdkgenerated 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 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 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 rebooting the drone,
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.