SIGVerse v3では、ROS(Robot Operating System)のプログラムを利用して仮想ロボットを制御することができます。
ここでは ROS を使用したサンプルプログラムについて説明します。 ROSを使用しないサンプルプログラムはこちらのページを参照してください。
ROSを使用する際にはUbuntu環境を用意して、そこにROSをインストールします。
そしてROSをインストールしたUbuntuと、UnityをインストールしたWindowsで通信を行います。
Windows側の要件はこちらのページを参照してください。
ROS側の要件は、OSが Ubuntu 16.04 、ROSのディストリビューションは Kinetic Kame とします。
こちらのページを参照して、Windows環境の構築を行ってください。 その後、以降の環境構築作業を行ってください。
ROSを使用するサンプルプログラムを実行する場合、以下のようにUbuntu環境の設定を行います。
Ubuntu PCを用意する代わりにWindows上にUbuntuの仮想マシンを構築して使用することもできます。
但しこの場合、GPUを使用するチュートリアルは難しいです。
VMwareを使用してUbuntu環境を構築する方法は次のような流れです。
こちらの手順に従って、ROSをインストールします。(日本語版)
その後、ROSのチュートリアルに従ってROSワークスペースの作成まで行ってください。
また以降のコマンド簡略化のため、~/catkin_ws/devel/setup.bash の実行を.bashrcに追記します。複数のROSワークスペースを管理している方は注意してください。
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc
ターミナルを起動し、以下のコマンドを実行します。
$ sudo apt-get install ros-kinetic-rosbridge-server
ターミナルで、以下のコマンドを実行します。
$ 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
ターミナルで、以下のコマンドを実行します。
$ 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
ターミナルで、以下のコマンドを実行します。
$ cd ~/catkin_ws/src $ git clone https://github.com/SIGVerse/sigverse_ros_package.git $ cd .. $ catkin_make
Turtlebotを利用するためのROSパッケージをインストールします。
現状Indigoのページしかないので、コマンドをKinetic用に置き換えます。
$ sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs
Kinetic用に変更してエラーが出た場合、レポートファイルを削除すればエラーメッセージは消えます。
$ ls -la /var/crash $ sudo rm /var/crash/*
Kinetic Kameにインストールする場合は以下のページも参考にしてください。
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*
そして、SIGVerse用の.launch XMLファイル(3dsensor)を配備します。
$ 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
※本件に関してまして、産業技術総合研究所の原功 氏からファイルの提供と助言を頂きました。有難うございました。
PR2のサンプルを使用する場合は、以下コマンドでPR2関連パッケージをインストールします。
$ sudo apt-get install ros-kinetic-pr2*
Unityのサンプルシーンを実行する前に、ROSのIPアドレスをUnity側に設定する必要があります。
$ ifconfig
Unityシーンの実行方法は次の通りです。
こちらのページにて説明します。
こちらのページにて説明します。
こちらのページにて説明します。
darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用して自動把持するシンプルなサンプルです。
こちらのページにて説明します。
こちらのページにて説明します。
こちらのページにて説明します。
こちらのページにて説明します。
こちらのページにて説明します。
こちらのページにて説明します。
PUN(Photon Unity Networking)によるクラウド化と、VRデバイス(Oculus Rift CV1)による人間のログインを伴う Cleanupタスクを実行します。
ROSで動くロボットに対して、仮想世界にログインした人間が指差しでCleanupの指示を行います。
ロボット(ROS)側と人間(VR)側はインターネット経由で接続されます。
こちらのページにて説明します。