[[Tutorial for ver.3]] ---- SIGVerse v3では、ROS(Robot Operating System)のプログラムを利用して仮想ロボットを制御することができます。 ここでは ROS を使用したサンプルプログラムについて説明します。 ROSを使用しないサンプルプログラムは[[こちらのページ>Tutorial for ver.3]]を参照してください。 #contents * システム要件 [#SystemRequirements] ROSを使用する際にはUbuntu環境を用意して、そこにROSをインストールします。~ そしてROSをインストールしたUbuntuと、UnityをインストールしたWindowsで通信を行います。~ Windows側の要件は[[こちらのページ>Tutorial for ver.3]]を参照してください。 ROS側の要件は、OSが ''Ubuntu 20.04'' 、ROSの[[ディストリビューション>http://wiki.ros.org/Distributions]]は ''Noetic Ninjemys'' とします。 #ref(RobotOperationUsingROS.png) * Windows環境の構築 [#k2704bce] [[こちらのページ>Tutorial for ver.3#SystemRequirements]]を参照して、Windows環境の構築を行ってください。~ その後、以降の環境構築作業を行ってください。 * Ubuntu環境の構築 [#zddcd2d8] 以下のようにUbuntu環境を構築します。~ ** VMwareの使用 [#gc586877] Ubuntu PCを用意する代わりにWindows上にUbuntuの仮想マシンを構築して使用することもできます。~ 但しこの場合、GPUを使用するチュートリアルは難しいです。 ~ VMwareを使用すると多くの計算資源が必要になるので注意してください。~ またDockerはVMwareとの共存に問題があるかもしれません。ご注意ください。 VMwareを使用してUbuntu環境を構築する方法は次のような流れです。 + VMware Workstation Playerをダウンロードします。~ https://my.vmware.com/jp/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/16_0 + Ubuntu 20.04.4 LTSのISOファイルをダウンロードします。~ http://releases.ubuntu.com/focal/ + VMware Workstation Playerを起動します。 + [Create a New Virtual Machine]をクリックします。 + [Installer disc image file(iso):]を使用し、ubuntu-20.04.4-desktop-amd64.isoを選択します。 + Specify Disk Capacity画面で、"Store virtual disk as a single file"にチェックを入れることをお勧めします。 + VMの作成が終わったら、VMware Workstation Playerの仮想マシン設定画面でメモリやCPU数を調整してください。~ また拡張キーボードを使用するよう設定してください。 ** ROS Noetic Ninjemysのインストール [#dccef8ca] [[ROSインストールページ>http://wiki.ros.org/noetic/Installation/Ubuntu]]を1.6節まで実行してROSをインストールします。~ その後、[[ROSのチュートリアル>http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment]]の3章に従ってROSワークスペースの作成を行ってください。 ** 必要なライブラリのシェルスクリプトを使用したインストール [#i3fb7c9b] ** 必要なライブラリのインストール(シェルスクリプト使用) [#i3fb7c9b] シェルスクリプトを使用してライブラリを一括インストールする手順を示します。 ~ この手順を実行した場合、以降の手動インストール手順は不要です。 ~ ROS Noeticを標準インストールした場合で動作確認しています。 ~ そのためROSワークスペースの名前がcatkin_wsではない場合などは正常にインストールできません。 ~ 注意して使用してください。 $ wget https://raw.githubusercontent.com/SIGVerse/docker-ros/main/noetic/sigverse_setup.sh $ chmod +x sigverse_setup.sh $ ./sigverse_setup.sh $ source ~/.bashrc ** 必要なライブラリの手動インストール [#n300e515] ** 必要なライブラリのインストール(手動) [#n300e515] *** .bashrcへのコマンド追加 [#bceb6936] コマンド簡略化のため、~/catkin_ws/devel/setup.bash の実行を.bashrcに追記します。~ 複数のROSワークスペースを管理している方は注意してください。 $ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc *** ROSBridge_suiteのインストール [#c3162771] ターミナルを起動し、以下のコマンドを実行します。 $ sudo apt-get install ros-noetic-rosbridge-server *** Mongo C driver のインストール [#n65f2eba] ターミナルで、以下のコマンドを実行します。 $ 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 のインストール [#lf0687e5] ターミナルで、以下のコマンドを実行します。 $ 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 *** gnome-terminal のインストール [#qee06a1a] gnome-terminalがインストールされていない場合はインストールしてください。 $ sudo apt install gnome-terminal *** sigverse_ros_bridgeの設定 [#k80ec0b6] ターミナルで、以下のコマンドを実行します。 $ cd ~/catkin_ws/src $ git clone https://github.com/SIGVerse/sigverse_ros_package.git $ cd .. $ catkin_make *** TurtleBot3パッケージのインストール [#c4f5154e] [[TurtleBot3>http://wiki.ros.org/turtlebot3]]を利用するには関連するROSパッケージをインストールします。~ $ sudo apt install ros-noetic-rgbd-launch $ sudo apt install ros-noetic-gmapping $ sudo apt install ros-noetic-turtlebot3* // $ cd ~/catkin_ws/src // $ git clone https://github.com/ros-drivers/openni2_camera.git // $ git clone -b legacy https://github.com/IntelRealSense/librealsense.git // $ git clone -b indigo-devel https://github.com/IntelRealSense/realsense-ros.git // $ sed -i 's/c++11/c++14/g' realsense-ros/realsense_camera/CMakeLists.txt // // $ cd ~/catkin_ws // $ catkin_make --pkg librealsense // $ catkin_make // // $ source ~/.bashrc *** PR2パッケージのインストール [#hf065135] PR2を利用するにはPR2関連パッケージをインストールします。 $ sudo apt-get install ros-noetic-pr2* $ cd $ROS_ROOT/../prosilica_camera $ sudo mkdir plugins $ sudo cp nodelet_plugins.xml plugins/ * ROSを使用したサンプルプログラムの実行 [#o023aef1] ** Unityシーンの実行方法 [#open_scene] Unityのサンプルシーンを実行する前に、ROSのIPアドレスをUnity側に設定する必要があります。 +Ubuntu環境のIPアドレスを確認します。~ IPアドレスはUbuntu環境で以下のコマンドを実行することで確認できます。 $ hostname -I + UnityでSIGVerse v3プロジェクトを開きます。 + Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。 + ROS側のIPアドレスを[Config file Settings]-[Rosbridge IP]に入力します。~ (同様に[Rosbridge Port]や[SIGVeres Bridge Port]も変更できます。) #ref(SIGVerseSettings.png) Unityシーンの実行方法は次の通りです。 + [Project]タブの[Assets/SIGVerse/ExampleScenes/xxxxx/yyyyy(.unity)]をダブルクリックして対象シーンを開きます。 + Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。 ** サンプルシーン一覧 [#h9fc55dc] // - [[(Turtlebot2)人間を追従する]] // - [[(Turtlebot2)キーボードで操作する]] - [[(TurtleBot3)把持する(キーボード操作)]] - [[(TurtleBot3)把持する(自動把持)]] #darknet_ros(YOLO) - [[(TurtleBot3)SLAMの実行]] - [[(TurtleBot3)人間が指差す方向を認識する]] - [[(PR2)キーボードで操作する]] - [[(HSR)キーボードで操作する]] - [[(HSR)Cleanupタスクの実行]] - [[(HSR)クラウドとVRを使用したCleanupタスクの実行]] #Cloud, VR - [[(HSR)クラウドとVRを使用したCleanupタスクの実行(記録・再生機能付き)]] #Cloud, VR - [[(HSR)あれ取ってきて!(Bring that!)部屋の地図作成&自律移動(作成中)]] - [[(TIAGo)キーボードで操作する]] - [[(TIAGo)Cleanupタスクの実行]] ---- #counter