SIGVerse_v3はUnityを利用しており、Windowsで動作します。ここでは、SIGVerse_v3(beta版)に必要な設定について説明します。
環境構築 †
Windows環境の設定 †
Unityのインストール †
SIGVerseの開発環境となるUnityをインストールします。
- ダウンロードページから、Unity 5.6.3(2017/08/18にセキュリティパッチ5.6.3p1が出ています)→ダウンロード(Win)→Unityインストーラを選択し、インストーラをダウンロードします。
- インストーラを実行し、手順に従ってインストールを進めます。
- 次に、Unityを起動し、以下の手順でUnityアカウントを作成後、サインインします。
- サインイン画面の「Create one」をクリック
- アカウントを登録(ブラウザ上での登録)
- 登録したアカウントを利用して「Sign In」
- Licenseで「Personal」を選択(所属に応じて選択)
- License agreementでは中央の「less than $100,000」を選択
- Surveyでアンケートに答える
以上の手順で、Unityを利用した開発が可能になります。
SIGVerse_v3のUnityプロジェクトのダウンロード †
- こちらからGitリポジトリをダウンロードします。
- 「Clone or download」→「Download ZIP」でzipをダウンロードし、任意の場所に展開してください。
Gitを利用されている方は、Windows環境の任意の場所にリポジトリをCloneしてください。
Unityプロジェクトの開き方 †
- Unityを起動し、「OPEN」をクリックします。
- フォルダの選択画面が表示されるので、前項でダウンロードしたプロジェクトを選択し(「unity_project」→「SIGVerseProject」)、
「フォルダーの選択」ボタンをクリックします。
Ubuntu環境の設定 †
SIGVerse_v3では、ROSのプログラムを利用して仮想ロボットを制御することができます。
ROSを使用するサンプルプログラムを実行する場合、以下のように設定を行います。
(※OSはUbuntu14.04の利用を想定しておりますが、Ubuntu16.04+Kineticで動作確認を行いたい場合は、こちらを参考にしてください。)
ROS indigoのインストール †
こちらの手順に従って、ROSをインストールします。
その後、ROSのチュートリアルに従ってcatkinワークスペースの作成まで行ってください。
また以降のコマンド簡略化のため、~/catkin_ws/devel/setup.bash の実行を.bashrcに追記します。複数のcatkin workspaceを管理している方は注意してください。
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
ROSBridge_suiteのインストール †
ターミナルを起動し、以下のコマンドを実行します。
$ sudo apt-get install ros-indigo-rosbridge-server
CMakeのインストール †
ターミナルで、以下のコマンドを実行します。CMakeはver.3.2以上が必要となります。
$ cd ~/Downloads (日本語設定の場合は cd ~/ダウンロード で実行してください。)
$ wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
$ tar zxvf cmake-3.7.2.tar.gz
$ cd cmake-3.7.2
$ ./configure
$ make
$ sudo make install
Mongo C driver インストール †
ターミナルで、以下のコマンドを実行します。
$ cd ~/Downloads (日本語設定の場合は cd ~/ダウンロード で実行してください。)
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.4.2/mongo-c-driver-1.4.2.tar.gz
$ tar zxvf mongo-c-driver-1.4.2.tar.gz
$ cd mongo-c-driver-1.4.2
$ ./configure
$ make
$ sudo make install
Mongo C++ driver インストール †
ターミナルで、以下のコマンドを実行します。
$ cd ~/Downloads (日本語設定の場合は cd ~/ダウンロード で実行してください。)
$ wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.3.tar.gz
$ tar zxvf r3.0.3.tar.gz
$ cd mongo-cxx-driver-r3.0.3/build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DLIBMONGOC_DIR=/usr/local -DLIBBSON_DIR=/usr/local ..
$ sudo make EP_mnmlstc_core
$ make
$ sudo make install
sigverse_ros_bridgeの設定 †
ターミナルで、以下のコマンドを実行します。
$ cd ~/catkin_ws/src
$ git clone https://github.com/SIGVerse/sigverse_ros_package.git
$ cd ..
$ catkin_make
SIGVerse用の.launch XMLファイル(3dsensor)を配備する †
Ubuntu環境のターミナルで、以下のコマンドを実行します。
$ cd ~/catkin_ws/
$ sudo cp src/sigverse_ros_package/samples/turtlebot2/resources/asus_xtion_pro_sigverse.launch.xml /opt/ros/${ROS_DISTRO}/share/turtlebot_bringup/launch/includes/3dsensor
※本件に関してまして、産業技術総合研究所の原功 氏からファイルの提供と助言を頂きました。
有難うございました。
Turtlebotパッケージのインストール †
Turtlebotを使用したサンプルを実行する場合、Turtlebotパッケージもインストールします。
こちらの手順に従って、Turtlebotを利用するためのROSパッケージをインストールします。(※Debs Installationで問題ありません。)
Ubuntu16.04+Kineticで動作確認を行いたい場合は、こちらを参考にしてください。
TurtleBot3に関してはこちらを参考にしてください。
サンプルプログラムの実行 †
Turtlebot Followerの実行 †
Ubuntu環境での起動手順 †
新しいターミナルを開き、以下のコマンドを実行します。
$ roslaunch sigverse_turtlebot2 follower.launch
次に、Ubuntu環境のIPアドレスを確認します。IPアドレスは以下のコマンドを実行することで確認できます。
$ ifconfig
Windows環境での起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
- [Config file Settings]の[Rosbridge IP]をROS側のIPアドレスに変更します。
([Rosbridge Port]や[SIGVeres Bridge Port]も必要に応じて変更します。)
- [Project]タブの[Assets/SIGVerse/SampleScenes/Turtlebot2/Turtlebot2Follower(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
実行 †
Windows側のUnity画面にフォーカスを当てた状態で十字キーを操作すると、アバターが移動し、turtlebotがアバターに追従します。
※ROS側でTurtleBotのカメラ画像確認を行いたい場合は以下のコマンドで確認できます。
$ rosrun image_view image_view image:=/camera/rgb/image_raw
※またrvizでも確認できます。
$ roslaunch turtlebot_rviz_launchers view_robot.launch
Turtlebot Keyboard Teleopの実行 †
Ubuntu環境での起動手順 †
新しいターミナルを開き、以下のコマンドを実行します。
$ roslaunch sigverse_turtlebot2 teleop_key.launch
次に、Ubuntu環境のIPアドレスを確認します。IPアドレスは以下のコマンドを実行することで確認できます。
$ ifconfig
Windows環境での起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
- [Config file Settings]の[Rosbridge IP]をROS側のIPアドレスに変更します。
([Rosbridge Port]や[SIGVeres Bridge Port]も必要に応じて変更します。)
- [Project]タブの[Assets/SIGVerse/SampleScenes/Turtlebot2/Turtlebot2Teleop(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
実行 †
Ubuntu側の keyboard_teleop.launch のターミナル上でキー操作を行うとturtlebotが移動します。
※操作方法の詳細はターミナルの表示を確認してください。
キャラクター視点で歩行するサンプルシーンの実行 †
起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- [Project]タブの[Assets/SIGVerse/SampleScenes/SampleHouse/SampleHouse(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
実行 †
画面上で十字キー操作を行うとキャラクター視点でキャラクターが移動します。
キャラクター動作の記録・再生を行うサンプルシーンの実行(テキストファイル使用) †
本シーンでは、キャラクター及び幾つかのオブジェクトの動きをテキストファイルへ記録・再生することができます。
起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- [Project]タブの[Assets/SIGVerse/SampleScenes/Playbacker/Playbacker(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
テキストファイルへの記録 †
- PlaybackerメニューのModeで[Text Recorder]を選択します。
- [Output File]など、幾つかの設定を行います。
- [Start]ボタンを押下すると、テキストファイルへの記録を開始します。
- キャラクターを十字キーで操作します。
- [Stop]ボタンを押下すると、テキストファイルへの記録を終了します。
テキストファイルからの再生 †
- PlaybackerメニューのModeで[Text Player]を選択します。
- [Input File]で、上記の記録手順で設定したファイルパスを設定します。
- [Start]ボタンを押下すると、再生を開始します。
- [Stop]ボタンを押下するか、記録時間を経過すると、再生を終了します。
キャラクター動作の記録・再生を行うサンプルシーンの実行(MySQL使用) †
本シーンでは、キャラクター及び幾つかのオブジェクトの動きをMySQLへ記録・再生することができます。
MySQL使用設定 †
MySQLを使用する場合、最初に幾つかの手順が必要です。
まずSIGVerse設定画面でMySQLを使用するよう設定します。
- Unityエディタの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
- [Define symbols Settings]の[Use MySQL]にチェックを入れます。
Unityエディタでエラーが発生しますので、ライブラリを追加します。
- MySql.Data.dll をココ からダウンロードして、[Assets]タブの[Plugins]の下に配備します。
([Connector/Net]のバージョンは[6.7.9]、OSは[.NET & Mono]を選択し、zip解凍後の"v2.0"フォルダの中にあるもので動作確認を行いました。)
- System.Data.dll をUnityインストールフォルダから取得して、[Assets]タブの[Plugins]の下に配備します。
(C:\Program Files\Unity5.6\Editor\Data\Mono\lib\mono\2.0の中にあるもので動作確認を行いました。)
またMySQL Serverを構築します。詳細は省きますが、概要は次の通りです。
- MySQL Serverをインストールします。(5.7.18で動作確認しました。MySQL Workbenchもインストールすると便利です。)
- "sigverse"という名前のSchema(データベース)を作成します。
- "sigverse"に対して更新権限を持つMySQLユーザを作成します。
- "sigverse"の下に"playbacker_motion_data"というテーブルを作成します。
テーブル作成スクリプトは次の通りです。
CREATE TABLE `playbacker_motion_data` (
`recording_id` int(11) NOT NULL,
`elapsed_time` int(11) NOT NULL,
`data_type` int(11) NOT NULL,
`motion_data` text NOT NULL,
PRIMARY KEY (`elapsed_time`,`data_type`,`recording_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- [Project]タブの[Assets/SIGVerse/SampleScenes/Playbacker/Playbacker(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
MySQLへの記録 †
- PlaybackerメニューのModeで[Database Recorder]を選択します。
- [Unique ID]やデータベース接続情報など、幾つかの設定を行います。
- [Start]ボタンを押下すると、MySQLへの記録を開始します。
- キャラクターを十字キーで操作します。
- [Stop]ボタンを押下すると、MySQLへの記録を終了します。
MySQLからの再生 †
- PlaybackerメニューのModeで[Database Player]を選択します。
- 上記の記録手順で設定したデータベース接続設定や[Unique ID]と同じ設定を行います。
- [Start]ボタンを押下すると、再生を開始します。
- [Stop]ボタンを押下するか、記録時間を経過すると、再生を終了します。
TurtleBot3 with OpenManipulator Chain による把持(Keyboard Teleop)の実行 †
※Ubuntu16.04とKinetic kameを使用する前提です。
Ubuntu環境での起動手順 †
新しいターミナルを開き、以下のコマンドを実行します。
$ roslaunch sigverse_turtlebot3_open_manipulator grasping_teleop_key.launch
次に、Ubuntu環境のIPアドレスを確認します。IPアドレスは以下のコマンドを実行することで確認できます。
$ ifconfig
Windows環境での起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
- [Config file Settings]の[Rosbridge IP]をROS側のIPアドレスに変更します。
([Rosbridge Port]や[SIGVeres Bridge Port]も必要に応じて変更します。)
- [Project]タブの[Assets/SIGVerse/SampleScenes/Turtlebot3/WaffleWithOpenManipulator/OpenManipulator(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
実行 †
Ubuntu側の grasping_teleop_key.launch のターミナル上でキー操作を行うとturtlebot3を操作できます。
※操作方法の詳細はターミナルの表示を確認してください。
TurtleBot3 with OpenManipulator Chain による把持(自動把持)の実行 †
※Ubuntu16.04とKinetic kameを使用する前提です。
このサンプルは、物体の自動把持を行うシンプルなサンプルです。
darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用しています。
またYOLOによる物体認識を行うため、Ubuntu環境にCUDAをインストールする必要があります。
CUDAをインストールしなくともCPUを使用して動かすことは可能ですが、物体認識の速度が非常に遅くなります。
操作の概略は以下の通りです。
- キー操作でTurtleBot3を物体の手前まで移動する。
- なるべくカラー画像の中心付近に把持対象が映るようにTurtleBot3を動かす。
- キー操作で把持する物体を指定する。
上記の操作を行うと、以下のような流れで物体の把持を試みます。
- darknet_ros(YOLO)が、TurtleBot3が出力しているカラー画像を使用して、物体認識を行う。
- カラー画像中の物体の位置とPoint Cloud情報を使用して、物体の3次元座標を推測する。
- 算出した3次元座標の位置を把持する。
Ubuntu環境の設定 †
本サンプルでは darknet_ros(YOLO)を使用するため、Ubuntu環境にインストールする必要があります。
- CUDAをこちらからダウンロードしてインストールする。
(詳細は各自のPCやNVIDIA Driverの環境に合わせて行ってください)
- こちらを参考にして、darknet_rosを git cloneする。
以下の追加データもダウンロードしてください。
$ cd ~/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/
$ wget http://pjreddie.com/media/files/yolo.weights
- 学習データをyolo_voc.weights から、yolo.weights に変更する。
~/catkin_ws/src/darknet_ros/darknet_ros/launch/darknet_ros.launch の、Load parametersを yolo_voc.yamlから、yolo.yaml に変更する。
- こちらを参考にして、darknet_rosをインストールする。
またビルド時には依存関係にあるdarknet_ros_msgsを先にcatkin_makeしたほうが良いかもしれません。
$ catkin_make --pkg darknet_ros_msgs
Ubuntu環境での起動手順 †
- 新しいターミナルを開き、以下のコマンドを実行します。
$ roslaunch sigverse_turtlebot3_open_manipulator grasping_auto.launch
次に、Ubuntu環境のIPアドレスを確認します。IPアドレスは以下のコマンドを実行することで確認できます。
$ ifconfig
Windows環境での起動手順 †
- UnityでSIGVerse_v3プロジェクトを開きます。
- Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
- [Config file Settings]の[Rosbridge IP]をROS側のIPアドレスに変更します。
([Rosbridge Port]や[SIGVeres Bridge Port]も必要に応じて変更します。)
- [Project]タブの[Assets/SIGVerse/SampleScenes/Turtlebot3/WaffleWithOpenManipulator/OpenManipulatorSR300(.unity)]をダブルクリックしてシーンを開きます。
- Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。
- SIGVerseメニューの[Start]をクリックして、シーンを開始します。
実行 †
Ubuntu側の grasping_auto.launch のターミナル上でキー操作を行うとturtlebot3を操作できます。
※操作方法の詳細はターミナルの表示を確認してください。
Ubuntu16.04 + Kinetic の組み合わせについて †
TurtleBot(on Kinetic)のパッケージインストールは以下を参考にします。
http://answers.ros.org/question/246015/installing-turtlebot-on-ros-kinetic/
$ sudo apt-get install -y linux-headers-generic
$ sudo sh -c 'echo "deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted" > \
/etc/apt/sources.list.d/official-source-repositories.list'
$ sudo apt-get update
$ sudo apt-get install -y ros-kinetic-librealsense
$ sudo apt-get install -y ros-kinetic-realsense-camera
$ sudo apt-get install -y ros-kinetic-turtlebot
また以下もインストールすると便利かもしれません。
$ sudo apt-get install ros-kinetic-turtlebot*
それ以外の手順に関しては、Ubuntu14.04 + Indigoと同様(但し"indigo"を"kinetic"に置き換えて実行する等は必要)で問題ないと思われます。
Counter: 10328,
today: 1,
yesterday: 0