目次
概要
AdamAppSDK(i-PRO AIカメラ向けアプリケーション開発キット)はLinux環境で動作します。
AdamAppSDK動作要件
開発用PC :x86_64(amd64)のPC
開発用PCのOS :Ubuntu Linux 16.04 LTS (64bit版)
Ubuntu Linux 18.04 LTS (64bit版)開発用言語 :C/C++, Python
本チュートリアルでは、開発用PCのOSがwindowsであった場合を想定して、仮想化ソフトウェアVirtualBoxとUbuntuのインストール手順を解説します。
※開発用PCのOSがUbuntuである場合は、SDK開発環境を構築するための準備 から始めてください。
VirtualBoxをインストールする
インストーラをダウンロードする
WebサイトからVirtualBoxのインストーラをダウンロードします。
チュートリアルでのインストール対象バージョン
VirtualBox 6.1.36 platform packages
「Windows hosts」をクリックすると、インストーラがダウンロードされます。
VirtualBoxをインストールする
ウィザードに従ってインストールを行います。
変更は必要ありません。
完了するとVirtual Boxが起動します。
Ubuntu環境を作成する
イメージファイルをダウンロードする
WebサイトからUbuntuのDesktopイメージファイルをダウンロードします。
チュートリアルでのインストール対象OS
Ubuntu 18.04.6 LTS
仮想マシンを作成する
VirturalBoxを起動し、「新規(N)」ボタンをクリックします。
仮想マシン名とOSタイプを選択します。
仮想マシン名:任意
OSタイプ:Linux
バージョン:Ubuntu (64bit)
仮想マシン用のメモリを任意に割り当てます。推奨は1024MB以上です。
AIモデル変換ツールを使用する予定があれば、4096MB以上としてください。
仮想ハードディスクを作成します。
ハードディスクのファイルタイプは変更不要です。
仮想ハードディスクは、「可変サイズ」をお勧めします。
任意のサイズを設定します。
完了すると、仮想マシンが作成されます。
Ubuntuをインストールする
作成した仮想マシンにUbuntuをインストールします。
作成した仮想マシンを起動します。
起動したウィザードでフォルダマークをクリックします。
「追加」をクリックします。
ダウンロードしたイメージファイルを選択します。
「選択」をクリックします。
「起動」をクリックすると、インストールが始まります。
Ubuntuをセットアップする
Ubuntuの初期設定を行います。
言語を選択し、「Ubuntuをインストール」をクリックします。
キーボードレイアウトを選択して「続ける」をクリックします。
変更せずに「続ける」をクリックします。
変更せずに「インストール」をクリックします。
「続ける」をクリックします。
地域を選択して「続ける」をクリックします。
ログイン情報を設定して「続ける」をクリックします。
インストールが完了したらOSを再起動します。
再起動後Enterを入力し、起動できれば完了です。
外部と通信するためのネットワーク設定
VirtualBox の外部からネットワークアクセスを行うための設定を行います。なお、デフォルトで、NAT の設定がされていますので、その設定はそのままで利用してください。
VirtualBox を動作させている Windows PC と VirtualBox を通信させたい場合は、次の URL を参考にし て、Host only network の設定を行ってください。
http://christophermaier.name/blog/2010/09/01/host-only-networking-with-virtualbox
以上で仮想化ソフトウェアVirtualBoxとUbuntuの環境構築は完了です。
SDK開発環境を構築するための準備
ソフトウェアをダウンロードおよびインストールするための設定
各種ツール類を導入するために、Ubuntu のパッケージ管理システムである apt の設定を行います。
Proxy 経由でネットワーク接続されている場合、Proxy の設定を行います。(必要な環境のみ実施してください)
/etc/apt/apt.conf を以下のように変更します。
Acquire::http::proxy "http://my.http-proxy.co.jp:Port_Number";
Acquire::https::proxy "http://my.https-proxy.co.jp:Port_Number";
# http://my.http-proxy.co.jp:PortNumber と http://my.https-proxy.co.jp:Port_N umber には環境に応じた設定をしてください。
apt のパッケージ情報を更新します。
$ sudo apt-get update
ホストマシン用ツールをインストール
ホストマシン用ツール類のインストールを行います。具体的には、コンパイラやリンカ、アセンブラなど の開発用ツールチェーンや、各種ライブラリを導入します。 導入には、apt-get コマンドを用います。
g++ toolchain をインストールします。
$ sudo apt-get install g++
g++-multilib をインストールします。
$ sudo apt-get install g++-multilib
libjpeg パッケージをインストールします。
$ sudo apt-get install libjpeg-turbo8-dev
もう一度、g++-multilib をインストールします。
$ sudo apt-get install g++-multilib
64-bit システム上で 32-bit バイナリを実行するためのパッケージをインストールします。
$ sudo dpkg --add-architecture i386 $ sudo apt-get update $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
失敗した場合、下記コマンドも実行してください。
$ sudo apt-get install multiarch-support
i-proカメラのSoCについて
i-proカメラはambarella社が提供しているSoCを利用しています。以降、ambarella社のCV2X(CV2, CV22, CV25, などのチップ種類の総称)のSoCを略してambaCV2Xと呼びます。
SoCには、より高性能のCV52などがありますが、その場合はambaCV5Xと呼びます。
カメラと利用しているSoCの対応につきましては下記を参照ください。
i-PROカメラへのソフトウェアインストール条件 - Technology Partner - Confluence (atlassian.net)
各ターゲットに応じたモジュールのインストール
i-pro の ambaCV2X モデル向けの AdamApp を作成するには、クロスコンパイラとして AdamAppSDK_ DevTools_YYYYMMDD.zip(こちらから取得できます)に含まれている Ambarella_Toolchain_Linaro_2018.08 をインストールしてく ださい。ambaCV2X モデル以外の場合は適宜読み替えてください。
コンパイラは、 AdamAppSDK_DevTools_YYYYMMDD/toolchain/Ambarella_Toolchain_Linaro_2018.08 にあります。なお、コンパイラは、Ubuntu 64bit 版のみです。
下記のように、このファイルを実行して、クロスコンパイラをインストールし てください。
VirtualBox上の環境の場合、共有ディレクトリ上ではインストールに失敗する可能性がありますので、Ubuntu上のディレクトリにてインストールしてください。
$ sudo apt-get install python3 $ tar xvf Ambarella_Toolchain_Linaro_2018.08.tar.xz $ cd Ambarella_Toolchain_Linaro_2018.08 $ sudo chmod +x ubuntuToolChain-201808 $ ./ubuntuToolChain-201808
./ubuntuToolChain-201808
を実行したときにTOOLCHAIN PATH[/usr/local]: の入力を求められた場合、何も入力せずにエンターキーを押下します。その後、インストール先パスが自動生成されますのでYキーを入力してください。
Google Chrome ブラウザのインストール
下記の URL にアクセスをして、Google Chrome ブラウザをインストールしてください。Chrome のイン ストール先としては、Windows 上で、VirtualBox 中の Ubuntu 上でも、どちらでも構いません。
Google Chrome ブラウザ:
Adam Operation UI を Chrome にインストール
次に、Adam Operation UI の Google Chrome 用 Extension をインストールします。
Chrome の「メニューボタン→その他のツール→拡張機能」を選択して、拡張機能ページを表示してください。
ファイルマネージャで、<iPRO_CAMERA_SDK_Vx_xxx>/toolを開き、AdamControlExtensionフォル ダを拡張機能ページ上にドラックアンドドロップをしてください。
インストールできない場合は、拡張機能ページの「デベロッパーモード」を有効にしてください。
ADAM OPERATION UIに接続する際にAuthエラーが表示される場合は下記FAQを確認してください。
ADAM OPERATION UIでAuthエラーが表示される - Technology Partner - Confluence (atlassian.net)
リソースモニター拡張機能をChromeにインストール
リソースモニターをインストールしてください。インストール方法は Adam Operation UI の Google Chrome 用 Extension と同じです。
ファイルマネージャで、<iPRO_CAMERA_SDK_Vx_xxx>/toolを開き、ResourceMonitorExtension フォル ダを拡張機能ページ上にドラックアンドドロップをしてください。
リソースモニターの使い方はこちらを参照してください。
AdamAppSDK のインストール方法
AdamAppSDK のインストール
iPRO_CAMERA_SDK_Vx_xx.zip(こちらから取得できます)を、開発用 PC の任意の場所で展開してください。(Vx_xx の部分は、 AdamAppSDK のバージョンに応じた数値が入ります。)
$ cd <開発者が AdamAppSDK をインストールするディレクトリ> $ unzip iPRO_CAMERA_SDK_Vx_xx.zip $ ls –CF iPRO_CAMERA_SDK_Vx_xx/
必ずUbuntu内にSDKのzipファイルをコピーしてからzipファイルを展開してください。Windowsなど他OSで展開してからUbuntuに移動させると正常に動作しません。
これで、AdamAppSDK のインストールは完了です。
VirtualBox上の環境の場合、共有ディレクトリ上ではシンボリックリンクの作成やコンパイルに失敗する可能性がありますので、Ubuntu上のディレクトリにインストールしてください。
開発ライセンスの取得
市販されている i-PRO カメラには、本来、暗号化された AdamApp のみインストール可能です。 開発ライセンスを組み込んだ SDK を用いることで、暗号化されていない AdamApp を、特定の MAC ア ドレスを持つ i-PRO カメラへインストールすることが可能です。
こちらを参考にし、i-PRO 株式会社から開発ライセンスを入手してください。
開発ライセンスが入手できたら、 <AdamAppSDK のインストールディレクトリ>/conf/development.key
として保存してください。
サンプルアプリをビルドする
サンプルアプリ「additional_info_sample_app」をビルドして、カメラにインストールすることで、SDK開発環境の構築が完了しているか確認します。
必要最低限の手順のみ記載しているので、詳細な開発方法はこちらを参照してください。
ソースファイルと Makefile を生成する
AdamAppSDK では、AdamApp のソースコードは、
<AdamAppSDK の イ ン ス ト ー ル デ ィ レ ク ト リ >/src/adamapp
以下に置くことを前提としています。
Pythonのソースコードは、
<AdamAppSDK のインストールディレクトリ>/src/adamapp-py
となります。
その前提に従って、AdamAppSDK 付属のサンプルプログラム(additional_info_sample_app)のソースコード
は、
<AdamAppSDK の イ ン ス ト ー ル デ ィ レ ク ト リ >/src/adamapp/additional_info_sample_app
に配置されています。
このため、新規に AdamApp を作りたい場合は、
<AdamAppSDK のインストールディレクトリ>/src/adamapp/<新規 AdamApp のディレクトリ名>
のディレクトリを作成し、その下にソースコード、及び、ヘッダファイル、Makefile を作成・配置する
ようにしてください。
skeleton_sample_app ディレクトリをコピーして新規ディレクトリを作成することで、新規 AdamApp 作成に必要なファイル一式もコピーされます。新規 AdamApp を作る場合は、 skeleton_sample_app ディレクトリをコピーして利用することをお薦めします。
※Pythonの場合はjpeg_appディレクトリを利用することをお薦めします。
サンプルアプリをビルドする
ビルド用環境設定ファイルとして、setup_env.sh が用意されています。これを source コマンドを用い て読み込むことで、環境設定が完了します。その際、AdamApp を動作させる実行環境に応じて、引数 を指定する必要があります。
指定できる引数は下記の通りです。
i-pro ambaCV2X 用の AdamApp を作成する場合 ipro-ambaCV2X
下記に、それぞれの場合の詳細な手順を示します。
※[実機環境(i-pro ambaCV2X モデル)実行用の AdamApp を作成する場合]
$ cd <directory of installed AdamAppSDK> $ source setup_env.sh ipro-ambaCV2X ***** /usr/local/linaro-aarch64-2018.08-gcc8.2/bin/aarch64-linux-gnu-gcc found. ***** PF_BASEDIR = /home/user/adamappsdk BUILD_TARGET = ipro-ambaCV2X TARGET_FOR_ADAM = ambaCV2X TARGET_ARCH = aarch64-linux-gnu VERBOSE = 0 PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
make の実行(AdamApp のビルド&パッケージの作成)
続いて、AdamApp(追加アプリ)のビルドとパッケージ作成を行うために、make を実行します。
make を実行すると、ビルドとパッケージの作成を一気に行います。
make が成功した場合には、additional_info_sample_app ディレクトリ直下に、
AdditionalInfoSampleApp :additional_info_sample_app の実行プログラム
AdditionalInfoSampleApp.zip :additional_info_sample_app のパッケージ
AdditionalInfoSampleApp.ext :additional_info_sample_app.zip を Base64 化したもの
の 3 つのファイルが生成されます。
$ cd <directory of installed AdamAppSDK> $ cd src/adamapp/additional_info_sample_app $ make
make時に下記のエラーが発生する場合があります。make: execvp: <AdamAppSDK のインストールディレクトリ>/tool/adamapp_configurator: Permission denied
その際は下記のようにadamapp_configuratorの権限を設定し、再度makeしてください。
cd <AdamAppSDK のインストールディレクトリ>/tool
sudo chmod +x adamapp_configurator
サンプルアプリの動作確認
作成した「AdditionalInfoSampleApp.ext」をカメラにインストールして動作確認します。
ここでは下記のようにWebブラウザからカメラにアクセスし、インストールを試します。
画像の緑枠からインストールします。ファイルの選択ボタンを押下し作成した
「AdditionalInfoSampleApp.ext」を選択し、インストールを実行します。
インストールが完了したら、画像の赤枠ボタンを押下しサンプルアプリの動作を確認します。
アプリ画面に以下の文字列が表示されていれば開発環境の構築は成功です。
{"r_appDataType":"0","r_appData":"e3tMYW5ndWFnZTowfX0="}