SIGVerse v3では、ROS(Robot Operating System)のプログラムを利用して仮想ロボットを制御することができます。
ここでは ROS を使用したサンプルプログラムについて説明します。 ROSを使用しないサンプルプログラムはこちらのページを参照してください。
ROSを使用する際にはUbuntu環境を用意して、そこにROSをインストールします。
そしてROSをインストールしたUbuntuと、UnityをインストールしたWindowsで通信を行います。
Windows側の要件はこちらのページを参照してください。
ROS側の要件は、OSが Ubuntu 20.04 、ROSのディストリビューションは Noetic Ninjemys とします。
こちらのページを参照して、Windows環境の構築を行ってください。
その後、以降の環境構築作業を行ってください。
以下のようにUbuntu環境を構築します。
Ubuntu PCを用意する代わりにWindows上にUbuntuの仮想マシンを構築して使用することもできます。
但しこの場合、GPUを使用するチュートリアルは難しいです。
またVMwareを使用すると多くの計算資源が必要になるので注意してください。
VMwareを使用してUbuntu環境を構築する方法は次のような流れです。
ROSインストールページを1.6節まで実行してROSをインストールします。
その後、ROSのチュートリアルの3章に従ってROSワークスペースの作成を行ってください。
また以降のコマンド簡略化のため、~/catkin_ws/devel/setup.bash の実行を.bashrcに追記します。複数のROSワークスペースを管理している方は注意してください。
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc
ターミナルを起動し、以下のコマンドを実行します。
$ sudo apt-get install ros-noetic-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
TurtleBot3を利用するには関連するROSパッケージをインストールします。
$ sudo apt install ros-noetic-rgbd-launch $ sudo apt install ros-noetic-gmapping $ sudo apt install ros-noetic-turtlebot3*
PR2を利用するにはPR2関連パッケージをインストールします。
$ sudo apt-get install ros-noetic-pr2* $ cd $ROS_ROOT/../prosilica_camera $ sudo mkdir plugins $ sudo cp nodelet_plugins.xml plugins/
Unityのサンプルシーンを実行する前に、ROSのIPアドレスをUnity側に設定する必要があります。
$ hostname -I
Unityシーンの実行方法は次の通りです。