HARK designer 0.5.0 documentation

概要

«  HARK Designer ドキュメント   ::   コンテンツ

概要

HARK Designer はウェブブラウザベースで ロボット聴覚ソフトウェア HARK (HRI-JP Audition for Robots with Kyoto university) の ネットワーク を作成するための GUI です。

HARK Designer を使えば、次のことが可能になります。

Screen shot

Screen shot of the HARK Designer

最初の一歩

インストールの前に

HARK Designer は以下のソフトウェアに依存しています。 HARK Designer をインストールする前にこれらをインストールする必要があります。

  • node.js (アプリケーションサーバとして)
    • Windowsユーザ: http://nodejs.org/ から最新バージョンをダウンロードしてください。
    • Ubuntuユーザ
  • graphviz (自動並び替えのため)
    • Windowsユーザ: 最新バージョンを http://www.graphviz.org/ からダウンロードしてインストールしてください。
    • Ubuntu ユーザ: sudo apt-get install graphviz を実行してください。
  • Google Chrome
    • 現時点で、|hark-designer| は最新バージョンの Google Chrome をサポートしています。https://www.google.com/chrome からダウンロードしてインストールしてください。
    • ただし、 HARK Designer は基本的には Firefox と Safari でも動作します。

インストール

Linux ユーザ:

  • HARKのリポジトリを追加してください。詳しくは http://winnie.kuis.kyoto-u.ac.jp/HARK を参照。
  • HARK Designer をインストールしてください。 sudo apt-get install hark-designer を実行。

Windows ユーザ:

  • http://winnie.kuis.kyoto-u.ac.jp/HARK からインストーラをダウンロードしてください。
  • インストーラをダブルクリックしてインストールしてください。

ステップ 1: HARK Designer を開く

HARK Designer をインストールしたら、デスクトップに HARK Designer のアイコンが表示されます。それをダブルクリックすると、 (1) node.js のアプリケーションが実行され、 (2) Google Chrome が開いて自動的に http://localhost:3000 にアクセスします。

そして、下図のようなウェブページが表示されます。

Screen shot

Step 1: The initial screen.

ステップ 2: ノードの追加

まず、ノードを追加する必要があります。この場合は ConstantInputStream を追加しましょう。これらは General カテゴリにあります。

ノードの追加には2種類の方法があります。

  1. 画面の左側にある Node listGeneral をクリックして Constant をクリック、再度 General をクリックして InputStream をクリック。
  2. Node list の上にある入力ボックスに Constant または InputStream を入力するすると、インクリメンタルサーチができます。ノードをクリックするか、矢印キーで選択してからエンターキーを押すと追加できます。
Screen shot

Step 2: Two nodes are added to the MAIN network.

ステップ 3: ノードの接続

次に、ノードを接続します。 Constant ノードの VALUE 端子をドラッグし、 InputStream ノードの INPUT 端子でドロップします。

Screen shot

Step 3: Two nodes are connected.

ステップ 4: シートの追加

次は、複数のノードを追加できる新たなシートを追加します。”MAIN” タブの隣のシート追加ボタンをクリックしてください (図中の赤丸で表示)。すると、ダイアログが表示されます。シート名を入力し、シートタイプを選択してください。この例の場合は、名前は LOOP0 、タイプは iterator としました。

Screen shot

Step 4: A dialog for adding a new sheet

ステップ 5: 新しいシートへのノードの追加と接続

ステップ 1 と同様に、5つのノード、 AudioStreamFromMic MultiFFT LocalizeMUSIC SourceTracker DisplayLocalization を追加します。そして、それらを図のように接続します。

Screen shot

Step 5: Five nodes are connected.

ステップ 6: 自動整列

HARK Designer の機能をいくつか試してみましょう。最初は、自動的にノードを整列する自動整列機能です。図に赤丸で表示されているボタンを繰りくしてください。すると、 HARK Designer はノードを並べ替えます。

Screen shot

Step 6: The result of automatic alignment

ステップ 7: ノードリストを隠す

ノード検索ボックスの横にある “Hide list” ボタンをクリックすると、ノードリストが隠されてネットワークを表示するエリアが広がります。

Screen shot

Step 7: Node list is hidden.

ステップ 8: パラメータの設定

パラメータを設定するには、まずパラメータダイアログを開きます。方法は2つあって、(1) ノードをダブルクリック、あるいは (2) ノードを右クリックして “Property” を選択します。ダイアログでは、パラメータの型や値を設定して、 OK ボタンをクリックすると変更を反映できます。

Screen shot

Step 8: A parameter dialog for AudioStreamFromWave.

ステップ 9: 端子設定

端子設定を行いましょう。端子を右クリックし、コンテキストメニューからSet as Input, Output, Condition を選択します。

Screen shot

Step 9:

HARK Designer の各要素の説明

本節は、 HARK Designer の重要な要素、 端子設定, 端子設定, 端子設定, そして 端子設定 について説明します。 ネットワーク は、HARKで作成するプログラムのことで、これらの要素から構成されます。

ノード

概要

ノード はロボット聴覚の一つの処理を表します。ノードには(通常の) ノードと**動的ノード**の2種類があります。

Normal node
基本的に、通常のノードは、C++で書かれており、多チャンネルのフーリエ変換(MultiFFT)や音源定位(LocalizeMUSIC)、音源分離(GHDSS) などを行います。
Dynamic node
一方、動的ノードは、通常ノードや動的ノードの集合を表すシートに対応しています。 (動的ノード の詳細については、シートの節を参照してください。)

外観

ノードは、いくつかの 端子 を持つ四角い箱で表されます。箱の左側にある端子はノードへの入力を表し、右側の端子は処理の出力を表します。入力と出力はそれぞれ、ノードという関数の引数と戻り値であると考えると理解の助けになるでしょう。

ノードの色は Preference から変更できます。

ノードの設定

それぞれのノードはパラメータを持ちます。ユーザは自由にパラメータ、たとえば閾値やFFTの解析長さなどを変化させて、ノードの振る舞いを変化させられます。各パラメータには型を設定できます。たとえば、int, float, bool, subnet_param などです。subnet_param は特別な型で、これ型に選択すると、そのパラメータはそのノードが属するシートに対応する動的ノードのパラメータに割り当てられます。複数のノードのパラメータに対して同じ subnet_param の名前を与えると、そのすべての値を動的ノードのパラメータから設定することができます。

シート

概要

シートはノードとリンクの集合で、通常のプログラミング言語におけるサブルーチンと同様です。シートには、 subnetiterator の2種類のタイプがあります。 subnet は、ノードとリンクをひとまとめにしたもので、ノードと同様に扱えます。一方、 iterator は、ループを表しており、 iterator に設定されたノードのは “CONDITION” に設定された出力端子が False になるまで繰り返し実行されます。

外観

新たなシートを追加すると、新しいタブが表示されます。そのノードを左クリックするとシートを表示でき、右クリックすると名前の変更やシートタイプの変更が可能です。

同時に、そのシートに対応する 動的ノード をサブルーチンのように追加することができます。たとえば、 MainLoopという名前の iterator シートを追加すると、別のシートに MainLoop という名前のノードを置けるようになります。

端子設定

概要

端子設定は、ノードの端子に設定された特別な役割を表します。端子は、INPUT, OUTPUT, CONDITIONの3種類の設定が行えます。INPUTとOUTPUTが設定された端子は、そのシートの入力と出力になります。つまり、動的ノードを作成したときの入力端子と出力端子に対応します。 CONDITIONは iteratorシートにのみ使用可能で、この端子設定がされた端子の出力が false になるまで繰り返し実行されます。

外観

端子設定は、端子の横に太文字で表示されます。

HARK Designer の操作

ノード

ノードに対して行える操作は以下の通りです。

  • 追加

    サイドバーに表示されているノードリストから追加するノードを選択できます。

    By Mouse

    HARK:Separation などのカテゴリ名をクリックし、次のノード名をクリックしてください。新しいノードが現在のシートに現れます。

    By Keyboard

    インクリメンタルサーチがサポートされています。ノード検索ボックスにノード名の部分文字列を入力すると、それにマッチするノードのリストが表示されます。矢印キーでノードを選択して、エンターキーでシートにノードを置けます。

    コピー、カット、ペーストもできます。一つ、あるいは複数のノードを選択し、 Ctrl+C または Ctrl+X キーを押すと、それぞれコピーやカットができます。 Ctrl+V を押すとペーストできます。

  • 選択

    選択されたノードには影が表示されます。

    By Mouse

    ノードをクリックすると一つのノードを選択できます。また、シート上をドラッグすると範囲内のすべてのノードを選択できます。

    By Keyboard

    タブキーを押すと順番にノードを選択できます。 Ctrl + A キーは全ノードを選択するショートカットです。

  • 移動

    By Mouse

    You can move one node by dragging it. If multiple nodes are selected, they are also dragged.

    By Keyboard

    選択された複数のノードはキーボードの矢印キーが使用できます。また、hjklキー(vim風) の操作もできます。

  • Delete

    ドラッグすることで選択されたノードを移動できます。

    By Mouse

    ノードを右クリックして、 “Delete” を選択するとノードを削除できます。

    By Keyboard

    Delete キーを押すと選択されたすべてのノードを削除できます。

  • パラメータ設定

    • パラメータダイアログを開く

      By Mouse

      パラメータダイアログは、 (1) ノードを右クリックして “Property” を選ぶか、(2) ノードをダブルクリックすると開けます。

      By Keyboard

      ノードを選択してエンターキーを押すとパラメータダイアログが開きます。

    • パラメータ編集

      ダイアログの各行が一つのパラメータに対応しており、(1) 名前、(2) 型、(3) パラメータの値が表示されています。パラメータの型はドロップダウンリストから選択でき、入力ボックスに値を入力できます。

      subnet_param を型として選択すると、そのパラメータの値がパラメータ名になります。そして、そのノードが置かれているシートに対応する動的ノードに、新たなパラメータが追加されます。

      file を型として選択すると、すでにアップロードしたファイルから名前を選択できます。

      HARK Designer は自動的に入力をチェックします。もし不正な値が入力された場合、例えば int型に 12.5 という値が入っている場合、はエラーを表示します。

  • 端子の追加・削除

ノードへ端子を追加することができます。追加された端子は、ノードの実装が対応している場合にのみ意味を持ちます。この操作はマウスでのみ可能です。

端子を削除するには、削除したい端子を右クリックして Delete this input/output を選択します。

  • 端子の追加・削除

ノードへ端子を追加することができます。追加された端子は、ノードの実装が対応している場合にのみ意味を持ちます。この操作はマウスでのみ可能です。

端子を追加するには、ノードを右クリックして、 Add Input か Add Output を選択してください。端子名を入力すると端子が現れます。

端子を削除するには、削除したい端子を右クリックして Delete this input/output を選択します。

  • ヘルプ

    ノードを右クリックして help を選択すると、そのノードのリファレンスwebページが (存在すれば) 表示されます。

リンク

リンクには次の操作が行えます。

  • リンクの接続

    端子(黒い丸)をドラッグし、接続先の端子でドロップすると、それらの端子をリンクで接続できます。リンクを接続できる端子は次の通りです、(1) 入力端子と出力端子を接続する場合。入力同士・出力同士は不可。(2) 同じ型の端子を接続する場合。

    ドラッグを開始すると、 HARK Designer は接続可能なリンクを灰色の線で表示します。

  • リンクの削除

    端子を右クリックして、 Delete the link を選択するとリンクを削除できます。

シート

シートへは次の操作が可能です。

  • シートの追加

    MAINタブの左側にあるプラスボタンをクリックしてください。シート名と型を指定すると、追加できます。新たにできたタブをクリックするとそのシートを表示できます。

  • シートの削除

    シートの右側のバツ印をクリックすると、そのシートを削除できます。または、タブを右クリックして Delete the sheet をクリックしても削除ができます。

  • シートの設定

    シート名を変更するには、タブを右クリックして、Change the name を選択してください。シートの型を変更するには、タブを右クリックして、 Change to subnet か Change to iterator を選択してください。

  • 動的ノード

    新たなシートを追加すると、それと同じ名前をもつ動的ノードがノードリストのDynamicカテゴリに追加されます。

端子設定

端子設定については以下の操作が可能です。

  • 端子設定追加

    端子を右クリックして、 Set as Input あるいは Set as Output を選択し、端子設定名を入力してください。端子の横側に端子設定名が表示され、動的ノードに設定した入力あるいは出力が追加されます。

  • 端子設定の削除

    端子を右クリックして Delete Output あるいは Delete Input を選択すると、端子設定が削除されます。

ボタンとコンソール

HARK Designer の上側には、 ボタン、スライダー、そしてコンソール(黒い箱)の三つの要素があります。本節ではそれぞれについて説明します。

Execute ボタン

このボタンをクリックすると、ネットワークを実行できます。エラーが起こると、エラーメッセージがコンソールに表示されます。ネットワークが保存されるまではこのボタンはクリックできません。

File Manager ボタン

File Manager からファイルのアップロードができます。ファイルには4つの種類があります。Networks, Transfer Functions, Audiot files, Results です。

Networks
いわゆる *.n ファイルで、アップロードされたすべてのネットワークファイルと HARK Designer で作成したネットワークファイルがここに入ります。
Transfer functions
定位や分離に使用されるファイルで、いわゆる *.dat や *.tff ファイルです。
Audio files
入力に使用される録音された音声ファイルです。拡張子は *.wav です
Results
ネットワークで生成されたファイルです。たとえば、分離音、定位結果などです。

ネットワークを実行する前に、実行に必要なファイルはすべてアップロードする必要があります。自動ファイル型推定は完全には実装されていないので、自分でタイプを選択してアップロードする必要があります。

ファイルの ダウンロード を Download ボタンから、 削除 を Delete ボタンから、行えます。*ネットワークファイルの場合はさらに 読み込み を Load ボタンから行えます。

“path”ボックスには、すべてのファイルがあるコンピュータ上のパスが表示されます。もし直接ファイルを取り出したい場合は、ここにアクセスしてください。

Save ボタン

現在のネットワークを保存できます。保存されたネットワークは File Manager に表示されます。

Ctrl + S ボタンがショートカットです。

Clear ボタン

このボタンをクリックすると現在表示しているネットワークがすべて初期化されます。

Preference ボタン

見た目の設定やバージョンの確認ができます。

Package
ノードリストに表示されるパッケージの追加や削除、色の設定ができます。左端のボタンでパッケージの追加や削除を、右端のコンボボックスから色の設定ができます。
Display
1. You can change the line shape. Current options are Bezier curves or polylines. 2. You can change the language. Currently, this option affects the Help button. 3. By default, many buttons shows tooltips when you put a mouse cursor over parts, e.g., buttons. You can deactivate them.
Version
batchflowという HARKネットワークのインタプリタのバージョンを確認できます。
All Reset
すべての設定をリセットできます。
Tutorial
HARK Designer の主な機能を表示できます。エスケープキーで中断できます。

拡大・縮小スライダ

スライダを操作すると、ノードの大きさを変更できます。

コンソール

コンソールという画面右上の黒い箱は、|hark-designer| の現在の状態を表します

  • Status行

    何かエラーがあれば、メッセージが “Status:” 行に表示されますマウスをその上に置くと clear ボタンが表示されます。それをクリックすればメッセージを削除できます。メッセージが長すぎるときは、|hark-designer| は自動的に “see more” リンクを生成します。それをクリックすると、完全なログが新しいウィンドウに表示されます。

  • File Name行

    現在のファイル名が “File Name:” に表示されます。もしここが空なら、ファイルを保存していないことを意味するので、ネットワークの実行はできません。

フィードバック

もしバグを見つけたり修正希望があれば、 hark-support@kuis.kyoto-u.ac.jp へご連絡ください。

開発者: 水本武志

«  HARK Designer ドキュメント   ::   コンテンツ