World Robot Summit 2018 関連情報

World Robot Summit (WRS) の一環として2018年10月に開催予定のロボット競技会 World Robot Challenge (WRC) 2018 インフラ・災害対応カテゴリー トンネル事故災害対応・復旧チャレンジは、Choreonoidを用いたシミュレーション競技として実施されます。本ページではこの競技に関する案内をお知らせします。

注:本競技の参加申請の締切が3月15日に迫っています。参加をご希望の方は早めに 競技会参加登録 のページから参加申請をお願いします。

更新: 2018年3月12日

競技会概要

本競技はトンネル事故・災害を想定したタスクの遂行能力を競うもので、全部で6つのタスクから構成され、コンピュータ上の仮想環境を対象としたシミュレーション競技として実施されます。

  • 日程: 2018年10月17日(水)~21日(日)
  • 会場: 東京ビッグサイト
  • 賞金 : 1位:1000万円、2位:300万円、3位:100万円
  • 渡航費、滞在費を支援

本競技のルール等については WRC2018 インフラ・災害対応カテゴリー の「トンネル事故災害対応・復旧チャレンジ」の項目をご覧ください。詳細なルールを記述した以下の文書が公開されています。

使用シミュレータ

本競技で使用するシミュレータは 統合ロボットシミュレータChoreonoid になります。

競技の実施に向けて現在Choreonoidを改良中です。最新のChoreonoidのソースコードは github上のリポジトリ で公開されており、どなたでもダウンロードして試すことできます。

ChoreonoidはUbuntu LinuxとWindowsに対応していますが、競技で使用するOSはUbuntu Linuxになります。使用するUbuntuのバージョンは未定ですが、今年4月にリリースされる予定のUbuntu Linux 18.04の使用が有力となっています。現在はUbuntu Linux 16.04を用いてChoreonoidの改良や競技タスクの開発を進めています。

本競技では物理エンジンとして AGX Dynamics を使用します。AGX Dynamicsは商用の物理エンジンであり、使用にあたってはライセンスが必要となりますが、本競技の参加登録者には参加用のラインセンスが無償で提供されることになっています。 Choreonoid用のライセンス株式会社ブイエムシー から購入することも可能です。

競技会の本番で使用するシミュレーション用PCは運営側で用意します。競技会の参加準備のためのシミュレーションは、参加者各自のPCにChoreonoidをインストールして行ってください。

遠隔操作機器

本競技では、ロボットの行動に遠隔操作を用いることができます。その場合、シミュレーション用PCとは別の機器(PC等)に遠隔操作端末を構築し、シミュレーション用PC内の仮想ロボットと遠隔操作端末をネットワークで接続します。参加者はこのための遠隔操作用端末を用意する必要があります。遠隔操作端末は、仮想ロボットとネットワーク接続できるものであれば、どのようなものを用いてもかまいません。

競技タスクのプロトタイプ

Github上に上げているChoreonoid開発版をインストールすることで、現在開発中の競技タスクのプロトタイプを試せるようになっています。プロトタイプはAGX Dynamicsのライセンスがなくても実行可能なものも用意していますので、本競技への参加をご検討中のかたはぜひお試しください。

以下ではプロトタイプのシミュレーションを実行する方法について解説します。

シミュレーション用PCの用意

本競技はUbuntu Linuxを用いて行うことになっており、現在Ubuntu 16.04を対象として競技用タスクの開発を行っておりますので、まずUbuntu 16.04が使えるPC環境を用意して下さい。

PCのスペックについては、以下の条件を満たす環境であればシミュレーションをひととおり試すことができるかと思います。

  • CPU: インテルCore iシリーズ、AMD Ryzenシリーズ等
  • メモリ: 4GB以上
  • GPU(グラフィックスボード): NVIDIAのGeForceもしくはQuadroのGPUを推奨。インテルのCore i内蔵GPUも可。

AMD製のGPUはLinuxへの対応が十分でない部分があり、動作を保証できません。

実際の競技で使用するPCの仕様は以下を検討中です。

  • CPU: Core i7 8700K(6コア、3.7GHz、ターボブースト時最大4.7GHz)
  • メモリ: 32GB
  • GPU: GeForce GTX 1080

全てのタスクを問題なく実行するためには、この程度のスペックのPCとAGX Dynamicsが必要となります。

なお、仮想マシン上での動作は非推奨です。ネイティブでUbuntu Linuxをインストールした環境でお使いください。

開発版Choreonoidのインストール

Choreonoid最新版(開発版)マニュアルソースコードからのビルドとインストール (Ubuntu Linux編) に従って、まずChoreonoidの最新の 開発版 をUbuntu Linux 16.04上にインストールしてください。

インストールの詳細は上記ドキュメントを参照いただくとして、概要としては端末を起動して以下のコマンドを入力していけばOKです。

sudo apt -y install git
git clone https://github.com/s-nakaoka/choreonoid.git
cd choreonoid
misc/script/install-requisites-ubuntu-16.04.sh
cmake .
make

なお、最後のmakeは

make -j 8

などとするとコンパイルが並列化されて、処理が早く終わります。-j の後の数値が並列処理数で、CPUの論理コア数+αの値を入力するとよいです。

注釈

AGX Dynamicsのライセンスをお持ちの場合は、AGX Dynamicsをインストールし、Choreonoidの “AGX Dynamicsプラグイン” をビルドすることで、AGX Dynamicsを用いたシミュレーションが可能となります。AGX DynamicsプラグインはChoreonoidビルド時にCMakeの設定で BUILD_AGX_DYNAMICS_PLUGINBUILD_AGX_BODYEXTENSION_PLUGIN を ON にしておく必要があります。詳細は AGX Dynamicsプラグインインストール を参照ください。

一度インストールを行った後も、上記の作業を行ったソースディレクトリ上で以下を実行することで、常に最新版のChoreonoidを利用することができます。

git pull
make

今後本競技の開催に向けてしばらくはChoreonoidの開発が続くことになりますので、随時最新版に更新しながらお試しいただけるとよいかと思います。

競技タスクプロトタイプのファイル

競技タスクのプロトタイプに対応するChoreonoid用シミュレーションプロジェクトは、Choreonoidソースの “sample/WRS2018” 以下に格納されています。プロジェクトのファイルは、対象タスク、使用ロボット、使用するシミュレータアイテムごとに分けられており、以下のファイル名になっています。

  • タスク-ロボットモデル.py

ここで「タスク」には、本競技で設定されているT1〜T6のいずれかが入ります。

「ロボットモデル」には、以下の4つの中のどれかが入ります。

  • DoubleArmV7S(双腕ロボット、簡易クローラ版)
  • DoubleArmV7A(双腕ロボット、AGXクローラ版)
  • AizuSpiderSS(Aizu Spiderロボット、簡易クローラ版)
  • AizuSpiderSA(Aizu Spiderロボット、AGXクローラ版)

例えば、タスクT1で、簡易クローラ版の双腕ロボットを使うプロジェクトは、

  • T1-DoubleArmV7S.py

というファイル名になります。

このファイルは通常のChoreonoidプロジェクトファイル(拡張子cnoid)とは異なり、Pythonスクリプトとして記述されています。これはChoreonoid起動時に–pythonオプションで指定することで、プロジェクトを読み込むことができます。例えば、ビルド済みのChoreonoidソースディレクトリにおいて、コマンドラインから

bin/choreonoid --python sample/T1-DoubleArmV7S.py

と入力すると、Choreonoid起動後に “T1-DoubleArmV7S.py” のプロジェクトが読み込まれます。

なお、プロトタイプでは本競技で必要な全てのモデルが入っているわけではありません。現状ではあくまで競技の概要を知るためのテスト的なものとお考えください。また、タスクT6については現在開発中でプロトタイプは提供されていません。

ロボットモデルの紹介

プロトタイプでは、プラットフォームロボット のひとつである「双腕ロボット」(大阪大学開発)を使えるようにしています。(以下ではこれを「双腕重機ロボット」と呼ぶことにします。)このロボットモデルの外観を以下に示します。

../../_images/DoubleArmV7A.png

このモデルはクローラを使用していますが、クローラについて簡易的なシミュレーションを行うバージョンと、AGX Dynamicsを用いてより実機に近いシミュレーションを行うバージョンを用意しています。モデルのベース名は “DoubleArmV7” としており、これに “Simplified” の “S” または “AGX” の “A” を付与して、

  • DoubleArmV7S(簡易クローラ版)
  • DoubleArmV7A(AGXクローラ版)

というモデル名にしています。

モデルファイルは、Choreonoidソースの “share/model/DoubleArmV7” 以下に、”DoubleArmV7S.body”、”DoubleArmV7A.body” というファイル名で格納しています。

注釈

簡易クローラ版はChoreonoidの標準機能で利用可能で、プロトタイプではAISTシミュレータアイテムを使ってシミュレーションするように設定されています。AGXクローラ版を利用するためには、 開発版Choreonoidのインストール で述べたように、AGX DynamicsとAGX Dynamicsプラグインをインストールしておく必要があります。そちらはAGXシミュレータアイテムを使ってシミュレーションをします。

もうひとつのプラットフォームロボットとして、早稲田大学によって開発された “WAREC-1” も利用可能です。こちらの外観を以下に示します。

../../_images/WAREC1.png

このロボットは脚型ロボットの一種で、4脚型のロボットとして使うこともできますし、2脚で立たせてもう一方の2脚をアームとして使うことで、ヒューマノイドロボットのように使うことも可能となっています。

このロボットのモデルファイルは “share/model/WAREC1” 以下に “WAREC1.body” というファイル名で格納されています。ただし現状ではこのモデルを対象とした競技タスクプロトタイプは用意していません。

本競技では上記のプラットフォームロボットが設定されておりますが、ルール上はそれ以外のロボットでも参加可能です。競技タスクプロトタイプでは、会津大学と株式会社アイザックが共同で開発した “Aizu Spider” というロボットのモデルも利用できるようにしました。このロボットのモデルを以下に示します。

../../_images/AizuSpiderSA.png

このモデルは災害対応ロボットで一般的な構成となっており、メインクローラ2つと、前後のフリッパに搭載されるサブクローラを4つ備えています。またKinova社のJACO2アームを搭載しており、マニピュレーションも行えるようになっています。上の図に示したのはアームをひとつ搭載した単腕版で、プロトタイプでもこれを使用しています。双腕重機ロボットと同様に、クローラについて以下の2つのタイプがあります。

  • AizuSpiderSS (簡易クローラ版)
  • AizuSpiderSA (AGXクローラ版)

さらにアームの搭載数の違いから、以下のバリエーションモデルも用意されています。

  • AizuSpiderNS (アーム無し、簡易クローラ版)
  • AizuSpiderNA (アーム無し、AGXクローラ版)
  • AizuSpiderDS (双腕、簡易クローラ版)
  • AizuSpiderDA (双腕、AGXクローラ版)

これらのモデルのファイルは全てChoreonoidソースの “share/model/AizuSpider” 以下に収録されており、上記のモデル名に拡張子”.body”がついたファイル名となっています。

ロボットの操作方法

競技タスクプロトタイプでは、ロボットの操作は全てゲームパッドを用いたマニュアル操作となります。

対応ゲームパッド

現在対応しているゲームパッドは以下になります。

  • ソニープレイステーション4用ゲームパッド(Dualshock4)
  • ソニープレイステーション3用ゲームパッド(Dualshock3)
  • ロジクール F310
  • マイクロソフト XBOX コントローラ
  • マイクロソフト XBOX360 コントローラ

上記の中で既にお持ちのものがあればそれをお使いいただければ結構ですが、もし新規に購入が必要な場合は、プレイステーション4用ゲームパッド(Dualshok4)を推奨します。Dualshok4は入手が容易で、操作性・耐久性にも優れており、競技用タスクの開発にも利用しています。

注釈

Dualshock3、4をPCで使用するためには別途Micro USBケーブルを用意する必要があります。それかDualshock4については USBワイヤレスアダプター を使用することも可能です。直接Bluetoothを使う接続方法については未確認です。

ゲームパッドはシミュレーションを行うPCに予め接続しておいてください。

双腕重機ロボットの操作方法

ゲームパッドを用いた双腕重機ロボット(DoubleArmV7)の操作方法は以下のようになっています。

方向キー クローラ
L1ボタン + 左スティック クローラ
L1ボタン + 右スティック クローラ
左スティック横軸 アームベース ヨー軸
右スティック横軸 アーム第一関節 ヨー軸
左スティック縦軸 アーム第一関節 ピッチ軸
右スティック縦軸 アーム第二関節 ピッチ軸
Y、Aボタン(△、×ボタン) エンドエフェクタ ピッチ軸
X、Bボタン(□、○ボタン) エンドエフェクタ ヨー軸
L1ボタン + X、Bボタン(□、○ボタン) エンドエフェクタ ロール軸
R1ボタン、R2トリガ エンドエフェクタ 開閉
ロゴボタン(PSボタン) 操作対象アームの切り替え

L1ボタンは一部のスティックやボタンに関して操作対象を切り替えるボタンになっています。「L1ボタン + …」となっている箇所は、L1ボタンを押しながら「…」の部分を操作します。

Aizu Spiderの操作方法

Aizu Spiderについては、車体がAizu Spiderの本体となっており、そこにJACO2アームが0本〜2本装着される構成となっています。

ゲームパッドの操作では、まず操作対象をロゴボタン(PSボタン)で切り替えます。最初は車体が対象となっていて、ボタンを押すたびに

・車体 → アーム1 → アーム2 → 車体 → …

といったかたちで切り替わります。

車体部の操作方法は以下のようになっています。

方向キー クローラ
左スティック クローラ
右スティック 全フリッパの昇降
L2ボタン + 右スティック 左前部フリッパの昇降
R2ボタン + 右スティック 右前部フリッパの昇降
L1ボタン + 右スティック 左後部フリッパの昇降
R1ボタン + 右スティック 右後部フリッパの昇降
右スティックボタン(右スティックを押し込む) 全フリッパの位置を揃える
※ 方向キーは操作対象が何であってもクローラの操作となります。
※ L1, L2, R1, R2 は任意の組み合わせで利用可能です。例えばL1とL2の両方を押しながら右スティックを操作すると、左側の2つのフリッパを同時に操作できます。

アーム部の操作方法は以下のようになります。

左スティック横軸 アーム第1関節
左スティック縦軸 アーム第2関節
右スティック縦軸 アーム第3関節
右スティック横軸 アーム第4関節
X、Bボタン(□、○ボタン) アーム第5関節
L1、R1ボタン アーム第6関節
L2、R2トリガ ハンドの開閉

注意事項

ここで紹介したゲームパッドによるマニュアル操作は、テストのための必要最低限の機能を提供するものであり、手先の逆運動学操作もできないような非常に低水準のものです。実際の競技ではこれと同じ操作方法にする必要は全くありません。本競技では、マニュアル操作のスキルを競うというよりは、効率的な操作インタフェースの構築やロボットの行動の自律化などで、ロボットのタスク遂行能力を競っていただきたく思っています。

プロトタイプではシミュレータと直結するコントローラ内でロボットの操作の全てを処理していますが、実際の競技ではロボットの操作はネットワークで接続された別のPC上の操作端末から行う必要があります。これを行うための通信プログラム等は参加者各自が開発する必要があります。(通信プログラムは一般的にはROSやOpenRTMを利用して構築します。)

今後上記も考慮した遠隔操作インタフェースのサンプルも提供していく予定です。

競技タスクの紹介

本競技はT1〜T6の計6つのタスクで構成されます。ここではタスクプロトタイプの内容や操作方法を説明しながら、各タスクの概要を紹介します。各タスクの詳細や正確な競技ルールについては、 ルールブック をご覧ください。

タスクT1

まずタスクT1の障害走破をみてみましょう。以下のようにChoreonoidを起動して、T1のプロトタイプを読み込んでみてください。(以下ではビルド済みのChoreonoidソースディレクトリ上でコマンドを実行するものとします。)

bin/choreonoid --python sample/WRS2018/T1-DoubleArmV7S.py

すると以下のような画面が表示されるかと思います。

../../_images/T1-DoubleArmV7S.png

ここで シミュレーションの開始 を行いましょう。すると双腕重機ロボットをゲームパッドで操作できるようになります。ロボットをうまく操作して、不整地を乗り越え障害物を避けながら進んでみてください。

実際の競技では、調査対象となるターゲットマーカが環境中に複数設置される予定です。トンネル内を移動しながら、マーカの内容を読み取っていきます。また、これを遠隔操作で行う必要があります。遠隔操作の場合、ロボットに搭載されたカメラやセンサから得られる情報のみを頼りにタスクを遂行する必要があります。タスク遂行を高速かつ確実に行うためには、ロボットの自律性の向上も鍵になるかと思われます。

ここで読み込んだ “T1-DoubleArmV7S” のプロジェクトは、ロボットモデルのクローラが簡易版となっており、Choreonoidの標準機能のAISTシミュレータアイテムでシミュレーションを行うように設定しています。これにより、AGX Dynamicsのライセンスがなくても実行可能です。ただし、動かしていただければ分かるように、クローラ部は履帯が回転するわけではなく、クローラ部の剛体が無理やり地面に対して推力を発生して動くような仕組みになっています。このシミュレーションはクローラと環境との接触状況によっては動作が不安定になることもあり、不整地の上で動いていると突然ロボットが飛んだり転倒したりといったことも起こりえますが、そこはこのシミュレーション方式の限界ということでご了承ください。

実際の競技ではAISTシミュレータではなくAGXシミュレータでシミュレーションを行うようになっています。このプロトタイプも用意していますので、AGX Dynamicsを利用可能な方はそちらも試してみて下さい。その場合、双腕ロボットモデルであれば、”T1-DoubleArmV7A.py” を読み込みます。

bin/choreonoid --python sample/WRS2018/T1-DoubleArmV7A.py

ロボットの操作方法は簡易版と同じです。AGX版の場合、履帯の部分が実際にホイールのまわりを回転しながら推進するようになります。実際にこれを用いて不整地状の走行などを試していただければ、クローラの挙動がより実物に近くなっていることがお分かりいただけるかと思います。

次にAizu SpiderモデルでT1を試してみましょう。これまでと同様に、以下のプロジェクトを読み込みます。

  • T1-AizuSpiderSS.py (簡易版)
  • T1-AizuSpiderSA.py (AGX版)

Aizu Spider もゲームパッドで操作します。

ロボットの大きさが双腕重機ロボットよりも小さいため、不整地上の移動がより難しくなっているのが分かるかと思います。なお、簡易クローラの場合の不具合は、このAizu Spiderモデルでより顕著に出るため、不整地上の移動ではそのような症状が出ないようロボットの操作に気をつける必要があります。AGX版ではそのような不具合はほとんど出ないかと思います。

タスクT2

T2は車両調査のタスクです。

プロジェクトファイルは

  • T2-DoubleArmV7S.py (双腕重機ロボット、簡易版)
  • T2-DoubleArmV7A.py (双腕重機ロボット、AGX版)
  • T2-AizuSpiderSS.py(Aizu Spider単腕、簡易版)
  • T2-AizuSpiderSA.py(Aizu Spider単腕、AGX版)

を用意しています。

bin/choreonoid --python sample/WRS2018/T2-AizuSpiderSS.py

などとして、プロジェクトを読み込んでください。すると以下にようにモデルが表示されているかと思います。

../../_images/T2-AizuSpiderSS.png

ここでトンネル内に車両があります。これのドアを開けて、車内を調査します。

ドアはドアノブを操作して開けるようにしたく思っていますが、その部分は現在開発中です。その代わりにドアを少し開けてありますので、その隙間からハンドを入れることで開けることができるかと思います。ただしAISTシミュレータでは関節可動範囲を設定できないため、ドアのヒンジが可動範囲を超えても動いてしまいます。その部分はAGXシミュレータでは正しく動作します。

タスクT3

タスクT3は道具を使用した車両内の調査と車両からの救助です。

プロジェクトファイルは以下を用意しています。

  • T3-DoubleArmV7S.py (双腕重機ロボット、簡易版)
  • T3-DoubleArmV7A.py (双腕重機ロボット、AGX版)
  • T3-AizuSpiderSS.py(Aizu Spider単腕、簡易版)
  • T3-AizuSpiderSA.py(Aizu Spider単腕、AGX版)

一見T2と同様の構成になっていますが、車内には要救助者(ダミーターゲット)が閉じ込められています。実際の競技では、ドアは通常の操作では開かなくなっていますので、まずスプレッダを使用してドアのロックやヒンジを切断し、ドアを移動させた上で、ダミーターゲットを車内より搬出するという作業になります。ただしこの部分は現在開発中です。今回のプロトタイプではT2にダミータゲットが追加されただけの状態となっています。

タスクT4

T4は経路の確保を行うタスクです。

プロジェクトファイルは以下を用意しています。

  • T4-DoubleArmV7S.py (双腕重機ロボット、簡易版)
  • T4-DoubleArmV7A.py (双腕重機ロボット、AGX版)
  • T4-AizuSpiderSS.py(Aizu Spider単腕、簡易版)
  • T4-AizuSpiderSA.py(Aizu Spider単腕、AGX版)

プロトタイプでは、トンネル内に障害物がいくつか散らばっているので、それをロボットで押したり持ち上げたりして、これらの障害物を除去する操作を体験してください。双腕重機ロボットでも、Aizu Spiderでも、アームをうまく操作すれば障害物をつかんで持ち上げることも可能ですので、試してみて下さい。。正確な競技内容については、ルールブックをご参照ください。

タスクT5

T5は消火作業のタスクです。

プロジェクトファイルは以下を用意しています。

  • T5-DoubleArmV7S.py (双腕重機ロボット、簡易版)
  • T5-DoubleArmV7A.py (双腕重機ロボット、AGX版)
  • T5-AizuSpiderSS.py(Aizu Spider単腕、簡易版)
  • T5-AizuSpiderSA.py(Aizu Spider単腕、AGX版)

このプロジェクトを読み込むと、トンネル内に以下の消火栓が設置されています。

../../_images/FireCabinet1.png

この消火栓の扉を開けると以下のようにホースのリールやバルブが入っています。

../../_images/FireCabinet2.png

ロボットをうまく操作して、消火栓の扉を開けて、リールを手前に引き出したり、バルブを回したりしてみてください。

このタスクも現在開発中であり、今後リールからホースを取り出せるようにします。消火栓内には今後ノズルも設置され、取り出したホースにノズルを接続し、バルブを回すと消火作業を開始することができます。トンネル内では火災が起きており、その箇所めがけてホースを操作します。ノズルのスイッチを入れると水が出ますので、それをうまく炎に当てて消火作業を行います。

タスクT6

T6はショアリングとブリーチングを行うタスクです。このタスクも開発中で、プロトタイプはまだ用意できていません。