eSEATとは
eSEATは、もともと日本語音声認識システムの結果を効率よく扱い、外部のプログラムにコマンド送信を行うために開発されたソフトウェアです。簡単な音声対話エンジンとして利用が開始されました。そのため、ロボット用コミュニケーション知能パッケージOpenHRIの一部として配布されています。
現在では、Githubに個別のリポジトリで開発が続けられており、OpenRTM-aistのRTコンポーネントとしてのみではなくGUIパネルやWebサーバー、ROSノードとして動作するようになっています。
本来は、Python版のOpenRTM-aistが必須だったのですが、現在ではOpenRTM-aistがなくても動作するようになりました。
eSEATの主な特徴は、
- 簡単な状態遷移マシンを内包したソフトウェアコンポーネント
- "adaptor"を介して外部ソフトウェアとの連携(Web, RTC, ROS Node)
- 簡易GUIパネル
と言えます。
eSEATは、SEATMLと呼ぶファイルによって下図のように、RTCやROSノード、Webサーバーとして動作させることができます。また、Tkinterを用いたGUIや有限状態マシンを生成することができます。
開発リポジトリとライセンス
eSEATの開発リポジトリは、Github上にあり、オープンソースソフトウェアとして配布されています。
また、eSEATは、OSSライセンスの一つであるMITライセンスとしています。
依存ライブラリ
eSEATは、Linux上のPython2.7で開発をすすめており、以下のライブラリ群が必要になります。
- Python2.7 (Tkinter, yaml, lxml, bs4のパッケージが必須)
ROSとOpenRTM-aistがインストールされていなくても動作しますが、SocketとWebアダプタくらいしか動作しませんので、eSEATのフル機能を使うには、ROS, OpenRTM-aistが必要です。
ROSとOpenRTM-aistのインストール方法は、上記のリンクを参照してください。
(2019-07-25追記)
Windows上のOpenRTM-aist-1.2, Python3.7での動作を確認しました。Windows上では、インストール方法も若干変更がありますので、続きはこちらを参照して下さい。
eSEATのインストール
eSEATは、Linxu,Windowsで動作していましたが、ROSのアダプタを追加しましたので、Linux上での動作を基本としています。もちろんROSアダプタを使用しなければ、他の機能は使用可能なのですが、ここではLinux、特にUnbuntu16.04を前提に、インストール方法について解説していきます。
ソースコードのダウンロード
eSEATは、Githubで公開しておりますので、gitコマンドで適当なディレクトリにクローンしてください。
# git clone git://github.com/haraisao/eSEAT
インストールスクリプトで必要パッケージとeSEATをインストール
eSEATのソースコードのダウンロードが終われば、次はインストールです。
インストール手順は、
- 依存パッケージのインストール (''python-pip python-tk python-yaml python-lxml'')
- eSEATのインストール
- eSEATのサンプル、その他を ''/usr/local/eSEAT'' にコピー
となります。
この手順を一括で行うスクリプトがソースコードにありますので、それを実行してください。
# cd eSEAT
# sudo bash ./install.sh
以上で、eSEATがインストールされていると思います。eSEATというコマンドもインストールされているとおもいますので、実行して動作確認を行ってください。
# eSEAT /usr/local/eSEAT/examples/TestGui.seatml
を実行し、下のウィンドウが表示されればインストールは完了です。
eSEATの実行
現在は、eSEATのインストールスクリプトでインストールを行うと eSEATとeSEAT_Node, rtcmdの3つのコマンド(シェルスクリプト)が ''/usr/local/bin'' にインストールされます。eSEATおよびeSEAT_Nodeは、eSEAT本体を起動するスクリプトで、rtcmdは、RTCの簡易操作用コマンドインタプリタです。
eSEAT, eSEAT_Nodeのコマンドの実行書式は、
# eSEAT [-n コンポーネント名] [-d] [-v] <seatmlファイル>
# eSEAT_Node [-n コンポーネント名] [-d] [-v] [-l] <seatmlファイル>
となっています。
各オプションの意味は、
- -n コンポーネント名
- "コンポーネント名" をseatmlに記載された名前で起動する
- -d
- deamonとして起動
- -v
- 標準出力を表示するウィンドウが同時に起動する
- -l
- eSEAT_Nodeのみ seat.loginfoを実行したメッセージが表示される。(デフォルトでは、表示されません)
- -o
- eSEATのみ。RTCのオプション設定用
eSEATは、OpenRTM-aistを含むすべてのアダプタを生成することができますが、eSEAT_Nodeは、OpenRTM-aistのノードを生成することができません。
RTCとROSノードの起動を別々に行う場合に使用してください。
RTCとROSノードの起動を別々に行う場合に使用してください。
OpenRTM-aistをインストールしていない場合には、eSEATとeSEAT_Nodeは同じ動作をしますので、eSEATのみをお使い頂ければ良いと思います。
また、SEATMLファイルの作成やROSのmsg, srvのコンパイルのためのスクリプトが、/usr/local/eSEAT/bin にインストールされます。SEATMLファイルの作成等を簡単に行うために、
# source /usr/local/eSEAT/setup.bash
を行って下さい。 ~/.bashrc の最後に付け加えておけば、良いと思います。