Tutorial for ver.3

SIGVerse v3では、ROS(Robot Operating System)のプログラムを利用して仮想ロボットを制御することができます。

ここでは ROS を使用したサンプルプログラムについて説明します。 ROSを使用しないサンプルプログラムはこちらのページを参照してください。

システム要件

ROSを使用する際にはUbuntu環境を用意して、そこにROSをインストールします。
そしてROSをインストールしたUbuntuと、UnityをインストールしたWindowsで通信を行います。

Windows側の要件はこちらのページを参照してください。

ROS側の要件は、OSが Ubuntu 16.04 、ROSのディストリビューションKinetic Kame とします。

RobotOperationUsingROS.png

環境構築

Windows環境の構築

こちらのページを参照して、Windows環境の構築を行ってください。 その後、以降の環境構築作業を行ってください。

Ubuntu環境の構築

以下のようにUbuntu環境を構築します。

VMwareの使用

Ubuntu PCを用意する代わりにWindows上にUbuntuの仮想マシンを構築して使用することもできます。
但しこの場合、GPUを使用するチュートリアルは難しいです。

VMwareを使用してUbuntu環境を構築する方法は次のような流れです。

  1. Install VMware Workstation 15.5.0 Player for Windows 64-bit Operating Systems.
    https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/15_0
  2. Download Iso file of Ubuntu 16.04.6 LTS.
    http://releases.ubuntu.com/16.04/
  3. Launch VMware Workstation Player.
  4. Click [Create a New Virtual Machine].
  5. Use [Installer disc image file(iso):] and select ubuntu-16.04.6-desktop-amd64.iso.
  6. Recommend to check "Store virtual disk as a single file".
  7. Please adjust Memory and Processors in [Edit virtual machine settings] after creating VM image.

ROS Kineticのインストール

こちらの手順に従って、ROSをインストールします。(日本語版)
その後、ROSのチュートリアルに従ってROSワークスペースの作成まで行ってください。

また以降のコマンド簡略化のため、~/catkin_ws/devel/setup.bash の実行を.bashrcに追記します。複数のROSワークスペースを管理している方は注意してください。

$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

ROSBridge_suiteのインストール

ターミナルを起動し、以下のコマンドを実行します。

$ sudo apt-get install ros-kinetic-rosbridge-server

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

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

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のサンプルを使用する場合は、以下コマンドでPR2関連パッケージをインストールします。

$ sudo apt-get install ros-kinetic-pr2*

ROSを使用したサンプルプログラムの実行

Unityシーンの実行方法

Unityのサンプルシーンを実行する前に、ROSのIPアドレスをUnity側に設定する必要があります。

  1. Ubuntu環境のIPアドレスを確認します。
    IPアドレスはUbuntu環境で以下のコマンドを実行することで確認できます。
    $ ifconfig
  2. UnityでSIGVerse v3プロジェクトを開きます。
  3. Unityメニューの[SIGVerse]-[SIGVerse Settings]をクリックして、SIGVerse設定画面を開きます。
  4. ROS側のIPアドレスを[Config file Settings]-[Rosbridge IP]に入力します。
    (同様に[Rosbridge Port]や[SIGVeres Bridge Port]も変更できます。)
SIGVerseSettings.png

Unityシーンの実行方法は次の通りです。

  1. [Project]タブの[Assets/SIGVerse/SampleScenes/xxxxx/yyyyy(.unity)]をダブルクリックして対象シーンを開きます。
  2. Unity画面の上部中央にある再生ボタンをクリックしてシーンを再生します。

(Turtlebot2)人間を追従する

こちらのページにて説明します。

(Turtlebot2)キーボードで操作する

こちらのページにて説明します。

(TurtleBot3)把持する(キーボード操作)

こちらのページにて説明します。

(TurtleBot3)把持する(自動把持)

darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用して自動把持するシンプルなサンプルです。

こちらのページにて説明します。

(TurtleBot3)SLAMの実行

こちらのページにて説明します。

(TurtleBot3)人間が指差す方向を認識する

こちらのページにて説明します。

(PR2)キーボードで操作する

こちらのページにて説明します。

(HSR)キーボードで操作する

こちらのページにて説明します。

(HSR)Cleanupタスクの実行

こちらのページにて説明します。

(HSR)クラウドとVRを使用したCleanupタスクの実行

PUN(Photon Unity Networking)によるクラウド化と、VRデバイス(Oculus Rift)による人間のログインを伴う Cleanupタスクを実行します。
人間とロボットが同じ仮想空間にログインし、人間がロボットに対して指差しでCleanup指示を出します。
ロボット(ROS)側と人間(VR)側はインターネット経由で接続されます。

こちらのページにて説明します。


Counter: 10752, today: 1, yesterday: 0

Front page   New List of pages Search Recent changes   Help   RSS of recent changes