help
#
actdk help
は actdk
のヘルプを表示します。
$ actdk help
他のサブコマンドのヘルプの表示もできます。
$ actdk help <subcommand>
setup
#
actdk setup
は ActDK の初期設定を行います。
$ actdk setup <TOKEN>
Web UI 上で発行したデベロッパトークンを <TOKEN>
引数に指定します。
これにより、ホームディレクトリ配下に.actdk
ディレクトリが作成されます。
.actdk
ディレクトリについて詳細は.actdk ディレクトリのドキュメントを参照下さい。
もし外部サイトへのアクセスにプロキシが必要であれば、http_proxy
/https_proxy
環境変数を設定した上で actdk
コマンドを実行して下さい。
init
#
actdk init
は Actcast アプリケーション用プロジェクトを初期化します。
$ actdk init -i <APP_ID> <APP_NAME>
開発 PC にて、以下の手順でプロジェクトを作成します。
$ mkdir <APP_DIR>
$ cd <APP_DIR>
$ actdk init -i <APP_ID> -s <SHORT_DESCRIPTION> <APP_NAME>
<APP_NAME>
- 任意のユニークな名称
- Docker イメージ名の一部として使われるため、小文字、数字、区切り(
.
、1 つまたは 2 つの_
、1 つ以上の-
)のみ使えます。区切りは連続してはならず、先頭または末尾にも使えません。
<APP_ID>
- Actcast で発行されたアプリケーション ID
<APP_DIR>
- 任意のディレクトリ名
<SHORT_DESCRIPTION>
- アプリケーションを表す任意の 1 行説明
- Actcast サービス上ではアプリケーション一覧に表示されます
これにより以下のディレクトリが作成されます。
app
model
include
manifesto
.actdk
各ディレクトリについては プロジェクトディレクトリの構成を参照下さい。
プロジェクトの再初期化 #
以前作成したプロジェクトを元に始める場合は --derive
オプションをつけて初期化することもできます。
$ cp -a <OLD_APP_DIR> <NEW_APP_DIR>
$ cd <NEW_APP_DIR>
$ actdk init --derive -i <APP_ID> -s <SHORT_DESCRIPTION> <APP_NAME>
--derive
オプションをつけるとスキーマなどのいくつかのファイルは再初期化されないのであるアプリケーションから派生して別のアプリケーションを作るときに使えます。
compile
#
model
ディレクトリ下にある .nnoir
をオフラインでコンパイルし、 .so
ファイルを作ります。また、 .so
ファイルを利用するための C 向けのヘッダファイルと Python 向けのバインディングを生成します。
$ actdk compile
このコマンドで app/libmodel.so
、 app/model.py
、 include/model.h
が生成されます。
コンパイルに関しては コンパイラの仕様を参照下さい。
build
#
actdk build
は Actcast アプリケーションをビルドします。
$ actdk build <IDENTIFIER_YOU_LIKE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイス名
このコマンドでは確認用リモートデバイス上でアプリケーションをビルドします。
別途、リリース用にアプリケーションをビルドする際に利用するオプション --release
が存在し、
このオプションを付けた時は actdk
を動かしている開発環境上でビルドします。
$ actdk build --release
通常ビルドとリリースビルドの違い #
リモートデバイス上でビルドするかローカルマシン上でビルドするかが異なります。それ以外の違いはありません。 リモートデバイスへのビルド済みイメージの転送は時間がかかるため、リモートデバイス上でビルドする通常ビルドの方が手早く動作確認に至れます。 リリースビルドで作成されたイメージのキャッシュがオンラインビルド時に再利用されるため、リリース用のイメージのテストをしたい場合に有用です。
clean
#
actdk clean
はローカルマシンやリモートデバイス上にある不要なビルド成果物を削除します。
$ actdk clean
--all
をつけた場合はその他のイメージも削除します。
remote
#
actdk remote
はリモートデバイスの管理をするコマンドグループです。
add
#
actdk remote add
は新しいリモートデバイスを管理下に追加します。
$ actdk remote add <IDENTIFIER_YOU_LIKE>@<REMOTE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する任意の名称
<REMOTE>
- 作業用に用いるマシンからアクセス可能なホスト名あるいは IP アドレス
list
#
actdk remote list
は管理下にあるリモートデバイスの一覧を表示します。
$ actdk remote list
del
#
actdk remote del
はリモートデバイスを管理から外します。
$ actdk remote del <IDENTIFIER_YOU_LIKE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する名称
deploy
#
actdk deploy
は --release
オプション付きでビルドしたアプリケーションをリモートデバイスに転送します。
$ actdk deploy <IDENTIFIER_YOU_LIKE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する名称
--release
オプション付きでビルドしたアプリケーションを動作確認する場合、
actdk deploy
により作成したアプリケーションをリモートデバイス上に転送する必要があります。
run
#
actdk run
は作成したアプリケーションをリモートデバイス上で動作させます。
$ actdk run -a <IDENTIFIER_YOU_LIKE>
actdk build
時と同様にリリース版を動作確認する場合は --release
オプションを付与します。
$ actdk run -a --release <IDENTIFIER_YOU_LIKE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する名称
-a
により作成した Actcast アプリケーションの標準出力が作業用 PC の端末に表示されます。
-a
を付けない場合、アプリケーションの標準出力を受け取らずコマンドの処理を終了しますが、リモートデバイス上では処理が継続されます。
-a
を付けていた場合、C-c
で中断するとリモートデバイス上でのアプリケーションは終了します。
アプリが設定に応じて動作を変更できることを確認するため、カレントディレクトリにact_settings.json
が存在する場合は、actdk run
の際にリモートデバイスに転送します。
act_settings.json
は JSON スキーマファイルsetting_schema.json
に従う必要があり、actdk run
実行時に検査されます。
検査をパスしないとリモートデバイスでの実行は行えません。
-a
オプションの下ではアプリの出力が data_schema.json
に適合しているか検査をし、適合していなければエラーメッセージを表示します。
この挙動は --no-check-act-log
オプションで抑制できます。
validate-json
#
actdk validate-json
は act_settings.json
、 マニフェスト及び各スキーマファイルの検査を行います。
$ actdk validate-json
actdk run
時に走るバリデーションを単体で動作させます。
photo
#
actdk photo
はデバイスに Take Photo コマンドを送ります。
$ actdk photo
data:image/png;base64,iVBORw0KGgoAAAANS.....QLQ+IAAAAASUVORK5CYII=
Take Photo コマンドについて詳細は アプリケーション - Actcast エージェント間通信についてを参照下さい。
stats
#
actdk stats
はリモートデバイス上でのメモリ利用に関する情報を取得します。
$ actdk stats <IDENTIFIER_YOU_LIKE>
CPU 108.84% MEM 33.266MiB / 494.262MiB 6.730%
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する名称
stop
#
actdk stop
はリモートデバイス上で動作するアプリケーションを終了させます。
$ actdk stop <IDENTIFIER_YOU_LIKE>
<IDENTIFIER_YOU_LIKE>
- リモートデバイスを区別する名称
upload
#
acdk upload
は作成したアプリケーションのビルドイメージと学習済みモデルを Actcast にアップロードしてビルドします。
$ actdk upload
このときアップロードされるビルドイメージはリリース用のものとなります。
アプリの説明文も同時にアップロードする場合はプロジェクトディレクトリ内に.actdk/long_description.md
というファイルを作成してください。
このファイルにはアプリケーションの詳細説明を Markdown フォーマットで記述します。
コマンド実行後しばらくして、次のような表示が出ればアップロードは成功です。
start uploading
Build ID for Raspberry Pi: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Build ID
に表示されるのは Actcast から発行されたビルド ID です。
なおアップロード時、-d
オプションをつけることで、詳細説明用の Markdown ファイルを明示的に指定することもできます。
$ actdk upload -d <DESCRIPTION_FILE>
<DESCRIPTION_FILE>
- Markdown ファイルのパス
同様に --long-descriptions-dir
を指定することで英語以外の言語での説明用の Markdown ファイル群を置いたディレクトリを指定できます。
$ actdk upload -d <DESCRIPTION_FILE> --long-descriptions-dir <DESCRIPTIONS_DIR>
<DESCRIPTIONS_DIR>
- Markdown ファイル群を置いたディレクトリのパス
詳細は プロジェクトディレクトリの構成を参照下さい。
check
#
actdk check
はオンラインビルドのビルド状況を表示します。
$ actdk check status
これにより、直前のアップロードのビルドステータスを確認できます。 このコマンドが正常に実行されると、次のような表示が出力されます。
Succeeded at 2019-06-07 10:27:26.682066134 UTC
先頭のSucceeded
が現在のビルドステータスで、その後ろにそのステータスになった日時が表示されます。
ビルドステータスには以下の 4 種類が存在します。
- Submitted (ビルド開始待ち)
- Running (ビルド実行中)
- Succeeded (ビルド成功)
- Failed (ビルド失敗)
なお、次のようなコマンドを実行することで、<POS>
回前のアップロードのステータスを確認することもできます。
回数として指定できるのは 0〜4 です。
$ actdk check status <POS>
あるいはビルド ID を直接指定することで、そのビルドのステータスを確認することもできます。
$ actdk check status <BUILD_ID>
generate
#
act_settings
#
actdk generate act_settings
は setting_schema.json
の記述に基き、 actdk run
時に必要になる act_settings.json
を生成します。
次のコマンドを実行すると setting_schema.json
に記述された各プロパティについて値入力を求められます。そしてそれらの値に基いて act_settings.json
が生成されます。
$ actdk generate act_settings
--auto-fill
オプションを付与した場合は入力を求められず、自動で act_settings.json
が生成されます。このときの値は setting_schema.json
に設定された default
の値か default
がなければ type
ごとに決められた値( 0
、 ""
など)が充てられます。
shell-completion
#
actdk generate shell-completion
は高機能シェルのための補完スクリプトを生成します。
次のコマンドを実行すると現在使用しているシェルに補完のための設定を読み込み、以後のセッションで補完を有効にします。
$ source <(actdk generate shell-completion)
シェル起動時に有効にする場合はこのコマンドを .bashrc
や .zshrc
などのシェルの起動時設定ファイルに記述します。
生成する際に SHELL
環境変数からシェルが推定されますが、 --shell
オプションでシェルを指定することも可能です。これはシェルから別のシェルを立ち上げている場合などにで有用です。現在有効なオプションは以下です。
- bash
- elvish
- fish
- powershell
- zsh