SIGVerse Ver.3
Simple Wiki Based Contents Management System
Home Projects Memo Misc Topics Software
関心分野 >> SIGVerse Ver.3

SIGVerse Ver.3

SIGVerseは、Ver3からは独自プラットフォームからUnityを活用したものに変更になるそうです。Unityは、世界中で使われているゲーム開発用プラットフォームですが、SIGVerseの要求機能が、ほぼ現在のゲームと同じになっているということなのでしょうか。
現在、Ver3.0のベータバージョンが公開されていますので、そちらで動作を確認していきたいと思います。

インストール

SIGVerseを使うには、今のところUnityが必要です。SIGVerse ver.3.0 では、以前のサーバー/クライアント方式ではなく、UnityにScriptを追加し、外部のコントローラ(現在はROSのみ)からUnity内部のロボットのモデルを操作したり、ロボットについているセンサーの情報を取得するようなしくみになっています。物理シミュレーション自体は、Unityに実装されているものを使っていますので、実質上UnityとROS関連のツールでロボットコントローラのプログラミングができることになります。

Unityのインストール

まず最初に、Unityのインストーラーをオフィシャルサイトからダウンロードしてセットアップしてください。
SIGVerseの公開版は、Unity 5.5.1で作成されていますので、ver.5.5.1をダウンロードした方がいいかもしれません。(私の環境では、5.6でも動作しているようです)
Unityのインストールの詳細な方法は、ここに記事がありますので、ほぼこの通りで大丈夫です。
Unityを起動する場合には、Unityアカウントが必要になりますので、初回起動時に画面にしたがって、Unityアカウントを作成し、サインインを行ってください。途中で、ライセンスに関する問いがありますが、個人利用であれば、"Personal" で "License agreement"は、"less than $100,000" を選択すればよいかと思います。 

SIGVerse ver.3をダウンロードし

次に、SIGVerse_v3をダウンロードします。SIGVerse_v3は、Github上に公開されていますので、ここからダウンロードしてください。ダウンロードするには、右の"Clone or download"とラベリングされた緑のボタンを押下し、プルダウンメニューの "Download ZIP"を選択すれば、ZIP形式のアーカイブをダウンロードすることができます。
あとは、このファイルを適当な場所で展開し、Unityから開きます。
ここまで問題がなければ、SIGVerse ver.3のセットアップは完了です。
あとは、ROSとROSBridge、SIGVerseROSBridgeをセットアップすれば、ROSの環境でロボットコントローラを開発することができます。

SIGVerse ver.3のデモを動作させる

SIGVerse ver.3の導入が終わりましたら、ROSのTurtlebotのコントローラで動作確認を行いましょう。SIGVerse ver.3のチュートリアルでは、SIGVerse内のアバターを操作して、その後ろをついてくるTurtlebotのデモを行っています。
このデモでは、ROS(indigo)を使ったロボットコントローラを使っていますので、ROS(indigo)が動作する環境構築をします。ROSは、基本的にLinux上で動作しますので、VMwareまたはVirtualBoxを使って、VirtualMachineのセットアップを行います。

ROS(indigo)をセットアップする

現在(2017-06)では、ROSの最新バージョンは、Lunarになっていますが、これはUbuntu16.04でないと導入ができないばかりか、昔の資産(ROSノード群)の対応が十分にできていませんので、Ubuntu14.04 + ROS(indigo)の組み合わせでの導入を行います。
SIGVerse ver.3のチュートリアルでも、このバージョンが推奨されています。

Ubuntu14.04LTSのセットアップ

Ubuntu14.04LTSは、2019年までサポートされた長期サポートバージョンです。こちらのダウンロードサイトからインストール等のCDのイメージ(ISO形式)または、Virtualbox用の仮想ハードディスクイメージがダウンロード可能です。
どちらが良いかわからない場合には、仮想ハードディスクイメージをダウンロードすれば、すぐに始めることができます。
Virtualboxは、Portable版であればダウンロード後簡単に使うことができますが、ネットワーク関連でNATの設定等を行う必要もありますので、VMware Workstation Playerの方が簡単かもしれません。お好みの方をお使い頂ければ良いかと思います。
Ubuntu 14.04LTSをインストールして、必要なアップデートを済ませてください。

ROS(Indigo)のインストール

VM等でUbuntu 14.04LTSのインストールが完了すれば、次は、ROS(Indigo)をインストールします。ROS(Indigo)のインストール手順の詳細は、オフィシャルサイトのWikiに記載されていますが、SIGVerseのチュートリアルを始めるまでにかなりの手続きがありますので、準備完了までのShellスクリプトを作成しています。
ここの手順の詳細は、ROSのオフィシャルサイトおよびSIGVerse ver.3のチュートリアルを参照していただければわかると思いますので、このサイトでは自作のShellスクリプトを使った方法で説明していきます。
インストールスクリプトのダウンロード
インストールスクリプトをダウンロードするために、Terminalを開いて下記のコマンドを入力します。
# wget https://www.intsys.org/pub/sigverse/bin-sigverse.tgz
次に、ダウンロードしたアーカイブ(bin-sigverse.tgz)をホームディレクトリで展開してください。
# tar xzvf bin-sigverse.tgz
すると、ホームディレクトリに bin-sigverseというディレクトリが生成されていると思います。これで準備完了です。
ROS(Indigo)のインストールとセットアップ
準備が整ったところで、ROS(Indigo)をインストールします。ROSのインストールは、下記のコマンドで行います。
# bin-sigverse/install_ros_indigo.sh
このコマンドでは、内部で sudoを呼び出しますので、パスワードの入力を求められますので、ご自身のパスワードを入力してください。
あとは、自動的に必要なパッケージをダウンロードし、インストールされます。インストールには、ネットワーク環境とPCによりますので、場合によっては1時間以上かかる場合があります。
このスクリプトは、オフィシャルサイトの説明1.5 rosdepの初期化までを行います。
ここまで終了すれば、お好みに応じて1.6 環境の設定を行ってください。私は個人的に、環境の設定は行わずに、
alias ros-indigo='/opt/ros/indigo/setup.bash'
を ~/.bashrc に追記しています。この設定だとROSを使う前に ros-indigo を入力する必要があります。
次に、ROSのチュートリアルにあるcatkinワークスペースの準備までを完了させます。
# bin-sigverse/setup_catkin_ws.sh
を実行してください。このスクリプト内でも sudoコマンドを使用していますので、パスワードを求められることがあると思います。このcatkinワークスペースは、sigverse_rosbridgeをコンパイルするときに必要になりますので、必ず実行してください。
以上で、ROS(Indigo)のインストールとセットアップは完了です。

Turtlebotのパッケージのインストール

SIGVeriseのチュートリアルでは、SIGVerse内のアバターをturtlebotが追跡する動作を行いますので、turtlebotのROSパッケージをインストールします。
では、ターミナルのホームディレクトリから
# bin-sigverse/install_turtlebot.sh
と入力してください。このコマンドで、turtlebotのROSパッケージがインストールされます。SIGVerseのチュートリアルに参照されているROSのオフィシャルサイトでは、ワークスペースの作成も記載されていますが、SIGVerseのチュートリアルを実行させるには必要ありません。
一応、ワークスペースの作成のスクリプト(setup_turtlebot.sh)も作成していますが、ここでは実行しません。
以上で、TurtlebotのROSパッケージのインストールは完了です。

ROSBridgeのインストール

SIGVerse内のTurtlebotにROSノードから動作指令(geometry_msgs/Twist)を送信するためにROSBridgeのrosbridge_serverを利用していますので、このパッケージをインストールします。
# bin-sigverse/install_rosbridge.sh
を実行してください。このスクリプトは、apt-getコマンドでパッケージのインストールを行っています。

SIGVerse_ROSBridgeのインストール

SIGVerseのチュートリアルでは、turtlebotに搭載したカメラの距離画像を使ってアバターの追跡動作を行います。このチュートリアルでは、画像のデータをROSノード側へ送信するためにROSBridgeではなく、独自のブリッジソフト(sigverse_rosbridge)を利用しています。
このsigverse_rosbridgeでは、データ通信にBSONのデータ形式を利用していますので、CMakeのアップグレード(ver.3.2以上が必須なので)とmongo-c-driver及びmongo-c++-driverのインストールが必要になります。
これらのソフトウェアおよびライブラリの取得とコンパイル、インストールまでを行うスクリプトも作成しています。
# bin-sigverse/install_sigverse.sh
と入力してください。このスクリプトは、cmakeのバージョンをチェックして、ver.3.2以上出なければ、SIGVerseのチュートリアルに記載されているとおり ver.3.7.2 をソースコードからコンパイルしインストールします。
また、mongo-c-driver, mongo-c++-driverのライブラリもソースコードからコンパイルしインストールを行います。
最後に、sigverse_rosbridgeのパッケージをダウンロードし、展開まで行います。(コンパイルまではしません)
ここまで完了すれば、あとは、sigverse_rosbridgeをコンパイルします。
# source /opt/ros/indigo/setup.bash
# cd ~/catkin_ws
# catkin_make
でsigverse_rosbridgeをコンパイルしてください。以上で、SIGVerseのチュートリアルの準備がすべて完了です。
現在のsigverse_rosbridgeでは、Ctrl-Cで終了しないバグがありますが(2017-06-09現在)、原因はすでに分かっていますので、修正されると思います。
すでに修正されております。(2017-06-13)

SIGVerseのチュートリアルの実行

SIGVeriseのチュートリアルでは、ターミナルをいくつも開きながら行いますが、ここでもxtermを使った自動実行スクリプトを作成しています。
ターミナルから
# bin-sigverse/start_sigverse.sh
と入力してください。turtlebot_followerのパッケージは、なぜか動作しない場合があります。この原因は、私の方では不明なのですが、launchファイルを変更すればもしかすると良いのかもしれませんが、ここではSIGVerseのチュートリアル通りに、確認作業をしてください。
上記のスクリプトでは、turtlebot_followerが正常に起動できたかどうか確認するために、一旦停止し 'y'を入力しなければ先には進まないようになっています。
現在(2017-06-13)では、launchの関係ファイルが更新されておりますので、ほぼ正常に起動できるようになっていますので、'y'を入力するようにしてください。
以上で、SIGVerseのチュートリアルは、終了です。