(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-07
(45)【発行日】2023-04-17
(54)【発明の名称】シミュレーションシステム、シミュレーションプログラムおよび学習装置
(51)【国際特許分類】
B25J 13/00 20060101AFI20230410BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2019065629
(22)【出願日】2019-03-29
【審査請求日】2022-02-10
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成30年度、国立研究開発法人新エネルギー・産業技術総合開発機構「次世代人工知能・ロボット中核技術開発/革新的ロボット要素技術分野/人共存環境で活動するロボットのためのHRI行動シミュレーション技術」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100090181
【氏名又は名称】山田 義人
(72)【発明者】
【氏名】佐竹 聡
(72)【発明者】
【氏名】トーマ カスマルク
(72)【発明者】
【氏名】神田 崇行
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2018-097417(JP,A)
【文献】特開平11-104984(JP,A)
【文献】特開2007-181888(JP,A)
【文献】特開2005-128959(JP,A)
【文献】国際公開第2018/139203(WO,A1)
【文献】米国特許出願公開第2016/0057511(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22-19/04
G06T 11/60-13/40
(57)【特許請求の範囲】
【請求項1】
複数の3次元距離画像センサを
それぞれの所定位置に配置した実世界を模した仮想シミュレーション空間に人エージェントを投入する人エージェント生成手段、
前記仮想シミュレーション空間内で前記人エージェントを更新する更新手段、
人エージェントの3次元形状を指示する複数の3Dモデルを有する3Dモデルデータベース、および
前記人エージェントのオブジェクティブを有するオブジェクティブモデルデータベースを備え、
前記人エージェント生成手段は前記3Dモデルデータベースから選択された3Dモデルに従った形状の人エージェントを生成し、前記更新手段は前記オブジェクティブに従って前記人エージェントを移動させ、さらに
前記複数の3次元距離画像センサの各々から見た各人エージェントの少なくとも位置、向き、ジェスチャを含む、前記人エージェントの真値ラベルを作成する真値ラベル作成手段、
前記更新手段によって前記人エージェントが移動されるとき前記複数の3次元距離画像センサ
による各人エージェントの距離画像を
センサデータ
として取得するセンサデータ取得手段、および
前記真値ラベルと前記センサデータを結合したデータセットを出力する出力手段を備える、シミュレーションシステム。
【請求項2】
前記人エージェント生成手段は、それぞれが3Dモデルに従った形状を有する、異なるタイプの人エージェントを生成する、請求項1記載のシミュレーションシステム。
【請求項3】
前記人エージェントについての異なるジェスチャを設定しているジェスチャデータベースをさらに備え、
前記更新手段は、前記ジェスチャデータベースから選択したジェスチャを前記人エージェントにさせる、請求項1または2記載のシミュレーションシステム。
【請求項4】
ソーシャルフォースモデルを設定しているソーシャルフォースモデルデータベースをさらに備え、
前記更新手段は、前記ソーシャルフォースモデルに従って前記人エージェントの位置を更新する、請求項1ないし3のいずれかに記載のシミュレーションシステム。
【請求項5】
複数の3次元距離画像センサを
それぞれの所定位置に配置した実世界を模した仮想シミュレーション空間においてシミュレーションを実行するシミュレーションシステムであって、
前記シミュレーションシステムは、人エージェントの3次元形状を指示する複数の3Dモデルを有する3Dモデルデータベース、および前記人エージェントのオブジェクティブを有するオブジェクティブモデルデータベースを備え、前記シミュレーションシステムのコンピュータを、
前記仮想シミュレーション空間に前記3Dモデルデータベースから選択された3Dモデルに従った形状の人エージェントを投入する人エージェント生成手段、
前記仮想シミュレーション空間内で前記オブジェクティブに従って前記人エージェントを移動させて前記人エージェントを更新する更新手段、
前記複数の3次元距離画像センサの各々から見た各人エージェントの少なくとも位置、向き、ジェスチャを含む、前記人エージェントの真値ラベルを作成する真値ラベル作成手段、
前記更新手段によって前記人エージェントが移動されるとき前記複数の3次元距離画像センサ
による各人エージェントの距離画像を
センサデータ
として取得するセンサデータ取得手段、および
前記真値ラベルと前記センサデータを結合したデータセットを出力する出力手段
として機能させる、シミュレーションプログラム。
【請求項6】
請求項1ないし5のいずれかの前記出力手段が出力するデータセットを学習する学習器を備える、センサキャリブレーションもしくは認識モデルの学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はシミュレーションシステムに関し、特にたとえば、コミュニケーションロボットのようなロボットと人との共存環境におけるロボットや人エージェントをシミュレーションする、シミュレーションシステム、シミュレーションプログラムおよび学習装置に関する。
【背景技術】
【0002】
従来のこの種のシミュレーション装置が非特許文献1、2で開示されている。これらの非特許文献1、2のシミュレーション装置では、センサやアクチュエータをシミュレーションして可視化することによって、人との共存環境におけるロボットの適応をより簡単にシミュレーションすることができる。
【0003】
環境に設置したセンサネットワークのキャリブレーション技術としては、環境内を人や物を動かして同時に記録することで、センサ間の位置関係を特定する、特許文献1および特許文献2などが知れられている。
【0004】
センサネットワークにおける人の向きやジェスチャ(動作)の認識精度を向上させる1つの方法は、性別、身長、体つきなどの異なる多くの人の多くの行動データを大量に収集し、認識アルゴリズムのパラメータ調整を実施することである。しかしながら、センサネットワーク内のセンサ配置は、実際の現場環境で固定されており、導入状況におうじても多岐に渡るため、これらの行動データを集めるために、現場での大量のデータ収集が必要となり、多大なコストがかかってしまう。
【0005】
一方大量のデータをシミュレーションによって生成し、学習に利用するアプローチが、非特許文献3および非特許文献4などで知られている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017‐96813(G01S 7/497 G01S 17/42)
【文献】特許第6447706号(G01B 11/00 G06T 7/70 G06T 7/80)
【非特許文献】
【0007】
【文献】https://www.openrobots.org/morse/doc/stable/morse.html
【文献】http://gazebosim.org/
【文献】David Silver et al., Mastering the game of Go with deep neural networks and tree branch, Nature, Vol.529, 484-503, 2016
【文献】Mnih V et al., Human-level control through deep reinforcement learning, Nature, Vol.518, No.7540, 529-533, 2015
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献3および非特許文献4などのアプローチは、囲碁(非特許文献3)やコンピュータゲーム(非特許文献4)のような仮想世界で容易に再現できる対象に向けられており、人行動を認識するという実世界のセンシングシステムへの適用は困難である。
【0009】
それゆえに、この発明の主たる目的は、新規な、シミュレーションシステムを提供することである。
【0010】
この発明の他の目的は、実世界のセンシングシステムで利用可能な人データを生成可能な、シミュレーションシステムを提供することである。
【課題を解決するための手段】
【0011】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0012】
第1の発明は、複数の3次元距離画像センサをそれぞれの所定位置に配置した実世界を模した仮想シミュレーション空間に人エージェントを投入する人エージェント生成手段、仮想シミュレーション空間内で人エージェントを更新する更新手段、人エージェントの3次元形状を指示する複数の3Dモデルを有する3Dモデルデータベース、および人エージェントのオブジェクティブを有するオブジェクティブモデルデータベースを備え、人エージェント生成手段は3Dモデルデータベースから選択された3Dモデルに従った形状の人エージェントを生成し、更新手段はオブジェクティブに従って人エージェントを移動させ、さらに複数の3次元距離画像センサの各々から見た各人エージェントの少なくとも位置、向き、ジェスチャを含む、人エージェントの真値ラベルを作成する真値ラベル作成手段、更新手段によって人エージェントが移動されるときの複数の3次元距離画像センサによる各人エージェントの距離画像をセンサデータとして取得するセンサデータ取得手段、および真値ラベルとセンサデータを結合したデータセットを出力する出力手段を備える、シミュレーションシステムである。
【0013】
第1の発明では、シミュレーションシステム(10:実施例において対応する部分を例示する参照符号。以下同じ。)は、人エージェント生成手段(26、110)を含み、この人エージェント生成手段は、3Dモデルデータベース(111)に設定されている複数の3Dモデルから選択した3Dモデルに従って、人エージェントを生成し、仮想エージェントシミュレーション空間(22)に投入する。更新手段(26、114)は、オブジェクティブモデルデータベース(116)から選択したオブジェクティブに従って人エージェントの位置を更新する。センサデータ取得手段(S33)は、更新手段によって人エージェントが移動されるとき複数の3次元距離画像センサをシミュレーションしたセンサデータを取得する。真値ラベル作成手段(S31)は、エージェントの真値ラベル(人エージェントの位置、向き、ジェスチャなど)を作成し、出力手段(S35)は、真値ラベルとセンサデータを結合したデータセットを出力する。このデータセットを学習器に投入すれば、3次元距離画像センサのキャリブレーションが可能になる。
【0014】
第1の発明によれば、シミュレーションシステムが大量のデータセットを効率よく出力することができる。
【0015】
第2の発明は、第1の発明に従属し、人エージェント生成手段は、それぞれが3Dモデルに従った形状を有する、異なるタイプの人エージェントを生成する、シミュレーションシステムである。
【0016】
第2の発明では、人エージェント生成手段(110)は、たとえば大人、子ども、女性、男性のような異なるタイプの人エージェントを、それぞれ3Dモデルに従って、生成する。
【0017】
第2の発明によれば、仮想シミュレーション空間に多様なタイプの人エージェントを投入することができるので、多様なデータセットを出力することができる。
【0018】
第3の発明は、第1または第2の発明に従属し、人エージェントについての異なるジェスチャを設定しているジェスチャデータベースをさらに備え、更新手段は、ジェスチャデータベースから選択したジェスチャを人エージェントにさせる、シミュレーションシステムである。
【0019】
第3の発明では、ジェスチャデータベース(113)が複数のジェスチャを有し、更新手段は、ジェスチャデータベースから選択したジェスチャを人エージェントにさせる。
【0020】
第3の発明によれば、人エージェントにジェスチャをさせるので、実世界に近い多様なデータセットを出力することができる。
【0021】
第4の発明は、第1ないし第3のいずれかの発明に従属し、ソーシャルフォースモデルを設定しているソーシャルフォースモデルデータベース(118)をさらに備え、更新手段は、ソーシャルフォースモデルに従って人エージェントの位置を更新する、シミュレーションシステムである。
【0022】
第4の発明によれば、人エージェントをソーシャルフォースモデルに従って移動させるので、より実世界に近い多様なデータセットを出力することができる。
【0023】
第5の発明は、複数の3次元距離画像センサをそれぞれの所定位置に配置した実世界を模した仮想シミュレーション空間においてシミュレーションを実行するシミュレーションシステムであって、シミュレーションシステムは、人エージェントの3次元形状を指示する複数の3Dモデルを有する3Dモデルデータベース、および人エージェントのオブジェクティブを有するオブジェクティブモデルデータベースを備え、シミュレーションシステムのコンピュータを、仮想シミュレーション空間に3Dモデルデータベースから選択された3Dモデルに従った形状の人エージェントを投入する人エージェント生成手段、仮想シミュレーション空間内でオブジェクティブに従って人エージェントを移動させて人エージェントを更新する更新手段、複数の3次元距離画像センサの各々から見た各人エージェントの少なくとも位置、向き、ジェスチャを含む、人エージェントの真値ラベルを作成する真値ラベル作成手段、更新手段によって人エージェントが移動されるとき複数の3次元距離画像センサによる各人エージェントの距離画像をセンサデータとして取得するセンサデータ取得手段、および真値ラベルとセンサデータを結合したデータセットを出力する出力手段として機能させる、シミュレーションプログラムである。
【0024】
第5の発明によっても、第1の発明と同様の効果が期待できる。
【0025】
第6の発明は、第1ないし第5のいずれかの発明の出力手段が出力するデータセットを学習する学習器を備える、センサキャリブレーションもしくは認識モデルの学習装置である。
【0026】
第6の発明によれば、出力手段から大量のデータセットを効率よく得られるので、センサキャリブレーションや認識モデルの学習を効率的に実行することができる。
【発明の効果】
【0027】
この発明によれば、仮想シミュレーション空間において多様な人(歩行者)を再現することによって、多様なセンサデータを大量に取得することができる。したがって、その大量のセンサデータを学習器に投入すれば、効率よくセンサキャリブレーションや認識モデルの学習を実行することができる。
【0028】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0029】
【
図1】
図1はこの発明の一実施例のシミュレーションシステムを示す機能ブロック図である。
【
図2】
図2はこの発明が適用されるロボットの一例を示す図解図である。
【
図3】
図3は
図2に示すロボットの電気的な構成を示すブロック図である。
【
図4】
図4は
図1の仮想シミュレーション空間の一例を示す図解図である。
【
図5】
図5は
図4の人シミュレータの詳細を示す機能ブロック図である。
【
図6】
図6は人エージェントの基本オブジェクティブモデルの一例を示す図解図である。
【
図7】
図7は人エージェントの基本オブジェクティブモデルの他の例を示す図解図である。
【
図8】
図8は人エージェントのオブジェクティブモデルのその他の例を示す図解図である。
【
図9】
図9は
図4の仮想シミュレーション空間の一部における人エージェントの移動の一例を示す図解図である。
【
図10】
図10は
図1実施例における基本的なシミュレーション動作の一例を示すフロー図である。
【
図11】
図11は
図1実施例における歩行者(人)のシミュレーション動作の一例を詳細に示すフロー図である。
【
図14】
図14は
図11実施例におけるセンシングデータの一例を示し、
図14(A)は各センサA‐Jのセンシングデータ(距離画像)を示し、
図14(B)はそれらを統合したセンシングデータを示す。
【
図15】
図15は実施例の仮想シミュレーション空間に相当する実世界の環境における3次元距離画像センサの配置例を示す図解図である。
【発明を実施するための形態】
【0030】
図1を参照して、この実施例のシミュレーションシステム10は、ロボット12、ロボット12を遠隔操作する操作装置14およびロボット12をシミュレートしたロボットエージェントや人(歩行者)をシミュレートした人エージェントをシミュレーションするシミュレーション装置16含む。シミュレーションシステム10において、ロボット12を除いて、1台または2台以上のコンピュータ(プロセサ)によって実現される。
【0031】
この実施例のロボット12は、たとえば
図2に示すコミュニケーションロボットのように、
図15に示すような、人と共存する環境200で活動するロボットである。このようなロボット12は環境の中に存在する人の行動に影響を受けるので、この実施例のシミュレーション装置16では、ロボット12の行動をロボットアプリケーションプログラム(ロボット行動決定プログラム)に従ってシミュレーションする際に、人の行動もシミュレーションすることによって、ロボット12のための安全なロボットアプリケーションプログラムの開発を支援する。
【0032】
なお、ロボット12が活動する、たとえばショッピングモールなどのように多様な人々が往来する環境(実世界)200には、
図15に示すように、天井などの比較的高所には複数のセンサ202が配置されている。この実施例では、各センサ202は、3次元距離画像センサを想定している。
【0033】
ここで、
図2および
図3を参照して、この発明の理解に必要な範囲でロボット12の構成について説明する。ロボット12は台車30を含み、台車30の下面にはロボット12を移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(
図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。
【0034】
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の距離センサ40が取り付けられる。これらの距離センサ40は、たとえば赤外線や超音波などを用いてロボット12の周囲の物体(人や障害物など)との距離を測定するものである。
【0035】
センサ取り付けパネル38の上には、胴体42が直立して設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した距離センサ40がさらに設けられ、ロボット12の前方の、主として人との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。
【0036】
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0037】
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
【0038】
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当するハンド56Rおよびハンド56Lがそれぞれ設けられる。これらのハンド56Rおよび56Lは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット12は、ハンド56Rおよび56Lを用いて物体を把持または挟持することができる。ただし、ハンド56R、56Lの形状は実施例の形状に限らず、人の手に酷似した形状や機能を持たせるようにしてもよい。
【0039】
また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、ハンド56Rおよびハンド56Lには、それぞれ、接触センサ58(
図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。
【0040】
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0041】
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人に対して音声によってコミュニケーションをとるために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。
【0042】
さらに、人の目に相当する位置には、右の眼球部68Rおよび左の眼球部68Lが設けられる。右の眼球部68Rおよび左の眼球部68Lは、それぞれ右の眼カメラ70Rおよび左の眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
【0043】
眼カメラ70は、ロボット12に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット12は、この眼カメラ70からの映像信号によって、人の左右両目のそれぞれの視線方向(ベクトル)を検出する。
【0044】
また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0045】
このように、この実施例のロボット12は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0046】
図3はロボット12の電気的な構成を示すブロック図である。この
図3を参照して、ロボット12は、1つまたは2以上のプロセサ80を含む。プロセサ80は、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
【0047】
メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、各種プログラムが予め記憶される。
【0048】
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節60および眼球部68などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、プロセサ80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(
図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(
図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
【0049】
また、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(
図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(
図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
【0050】
さらに、モータ制御ボード86は、プロセサ80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(
図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、プロセサ80からの制御データを受け、車輪32を駆動する2つのモータ(
図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
【0051】
モータ制御ボード86にはさらにハンドアクチュエータ101が結合され、モータ制御ボード86は、プロセサ80からの制御データを受け、ハンド56R、56Lの開閉を制御する。
【0052】
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでプロセサ80に与える。すなわち、距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてプロセサ80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからプロセサ80に入力される。眼カメラ70からの映像信号も、同様にして、プロセサ80に入力される。また、上述した複数の接触センサ58(
図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してプロセサ80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、プロセサ80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してプロセサ80に与えられる。
【0053】
また、プロセサ80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、プロセサ80から与えられた送信データを無線通信モジュール104に与え、無線通信モジュール104は送信データを、ネットワークを介してサーバ(図示せず)等に送信する。また、通信LANボード102は、無線通信モジュール104を介してデータを受信し、受信したデータをプロセサ80に与える。
【0054】
なお、実施例のシミュレーションシステム10が適用可能なロボットは、
図2および
図3に示すロボット12に限定されるものではなく、他の形式、構造のコミュニケーションロボットにもこのシミュレーション装置は適用可能である。
【0055】
図1に戻って、操作装置14は、基本的には1または2以上のコンピュータまたはプロセサによって構成され、そのプロセサのメモリ(図示せず)にロボットアプリケーションプログラム18が設定されていて、そのロボットアプリケーションプログラムがコンピュータからたとえば無線でロボット12またはシミュレーション装置16に与えられる。ロボットアプリケーションプログラム18は、ロボット12に対すアプリケーションプログラムであり、たとえばロボット12を案内ロボットとしとて動作させるときには、そのための動作をロボット12が実行するようなプログラムである。
【0056】
操作装置14のメモリにはさらに、環境データ20を予め記憶している。環境データ20は主として
図4に示す仮想シミュレーション空間22の地図データおよびその仮想シミュレーション空間22内での人エージェントの出現率データを含む。環境および環境内のオブジェクトは3次元モデルデータとして表され、3次元仮想空間として視覚化される。この3次元仮想シミュレーション空間22は先に説明した実世界200を再現したものである。
【0057】
環境データ20にはさらに、実世界200(
図15)に設定された、たとえば3次元距離画像センサのような各センサ202の位置、向き、スキャン範囲(センシング範囲)なども含まれる。
【0058】
図4に示す仮想シミュレーション空間22は、図中点線矩形で示す出入口22aを有する3次元閉空間を想定している。この仮想シミュレーション空間22においては黒色太線で示す通路22bが設定されていて、ロボット12や人エージェントはその通路50や広場などを通行し、またはそこに存在する。これらの通路22bや広場は建物や壁などオブジェクトによって区画され、図中丸印で示す場所で分岐または合流する。
【0059】
シミュレーション装置16は、基本的には1または2以上のプロセサで構成され、ロボット12をシミュレートするロボットシミュレータ24および歩行者のような人エージェントをシミュレートする人シミュレータ26を含み、それぞれのシミュレーション結果が物理エンジン28に入力される。
【0060】
ロボットシミュレータ24は、たとえば先の非特許文献1として例示したMORSEシミュレータであり、このMORSEシミュレータは、ロボット12と同様の、多くのセンサ、アクチュエータおよびロボットのモデルを提供し、そのようなモデル用のAPI(Application Programming Interface)も利用できる。
【0061】
たとえば
図11のステップS33において実行されるようなセンサシミュレーションにおいては、たとえば、距離画像センサの場合には、カメラ視点からの光学的な計算を行い、カメラ視点毎の画像情報を生成する。レーザ距離計の場合には、レーザによるスキャンを模して、センサから各方位へ距離計測を行い、その結果をセンサ値として保存する。
【0062】
開発者がロボットのためのロボットアプリケーションプログラムを準備するとき、それらのプログラムはこれらのAPIにアクセスしてセンサデータ(たとえば、レーザ距離計からの距離の読み取り)およびアクチュエータへのコマンドの送信(たとえば、移動速度)を行う。
【0063】
人シミュレータ26は、定期的に新しい歩行者を生成し、それらの位置を更新し、それらがシミュレートされた環境(仮想シミュレーション空間22)を離れるときにそれらを除去する。歩行者すなわち人は、3次元オブジェクトとして表現され、仮想シミュレータ空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。
【0064】
ただし、人シミュレータ26には
図1に示すように環境データ20が与えられるので、人シミュレータ26は、その環境データに含まれる出現率と呼ばれる予め定義された確率で新しい歩行者を周期的に生成する。そして、その歩行者は
図4に示す出入口22aの1つに割り当てられ、他の1つに行くように設定される。
【0065】
なお、歩行者はしばしばグループとして(家族やカップルのように)生成され、それらがグループで表示される場合、サイズはグループメンバの分布によって定義し、すべてのメンバが同じ目的を共有すると仮定する。
【0066】
物理エンジン28は、物理的な力や法則などに基づいて、ロボットや人エージェントがどのような移動経路をたどるかを計算する。詳しくいうと、物理エンジン28は、ロボットシミュレータ24および人シミュレータ26からの各エージェント(ロボット含む)が意図した動きを、仮想シミュレーション空間22(
図4)で実行する処理を実行する。このとき、他の障害物、構造物や他のエージェントとの干渉が何もなければ、意図したとおりの動きを生成する。しかしながら、干渉がある場合、物理学法則(力学法則)に従って、各エージェントの実際の動きを処理する。そして、物理エンジン28からは統合したシミュレーションデータが出力される。
【0067】
シミュレーション装置16には、ディスプレイ105設けられていて、このディスプレイ105によって、たとえば
図4に示すような仮想シミュレーション空間の画像が、その中に存在するシミュレートされたロボットや人エージェントとともに、表示される。たとえば、人エージェントは、3次元オブジェクトとして表現され、仮想シミュレーション空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。ロボットアプリケーションプログラム18の開発者は、そのディスプレイ105に表示された画像で確認しながら、ロボット12の行動決定プログラム(アプリケーションプログラム)を作製し、修正する。
【0068】
さらに、シミュレーション装置16には入力装置107が付設されている。この入力装置107は、たとえば、キーボードあるいはタッチパネルであってよく、タッチパネルの場合にはディスプレイ105に組み込み、ディスプレイ105をタッチディスプレイとして構成することもできる。
【0069】
図5を参照して、人シミュレータ26を詳細に説明する。人シミュレータ26は、ロボットシミュレータ24と同様に、シミュレーション装置16のコンピュータないしプロセサによって実現される機能であり、人生成モジュール110を含む。この人生成モジュール110は、上述のように、環境データ20に含まれる出現率データ108に従って新しい歩行者(人エージェント)を、地図データ106が表す、
図4に一例を示す仮想シミュレーション空間22内に、周期的に生成する。
【0070】
出現率データ108は、シミュレーション装置16の仮想シミュレーション空間22に投入する人エージェントのための、大人、子供、などの人のタイプ(パターン)やそれぞれの人の出現率が予め設定されているデータベースであり、設定された確率で設定された形状の人エージェントが生成される。
【0071】
人生成モジュール110には3次元(3D)モデルデータベース111が付属される。3Dモデルデータベース111は、上述の人の各タイプのそれぞれについて複数の異なる形状、たとえば性別、身長、体つきなどの3Dモデルを保持している。したがって、人生成モジュール110は、出現率データ108の指示に従ったタイプでかつ3Dモデルデータベース111からランダムに選択した当該タイプの3Dモデルに従った人エージェントを仮想シミュレーション空間22内に生成する。
【0072】
なお、この出現率データ108では、曜日や時間ごとに異なるデータセットを保持しておき、曜日や時間を指定してシミュレーションできるようにしてもよい。そうすれば、ある時間帯にロボットを動かすとどうなるのかなど、いろいろシミュレーションすることができる。
【0073】
ただし、生成される人エージェントがグループを形成することを出現率データ108が示していれば、人生成モジュール110は、シミュレーションパラメータとして設定されているグループメンバデータ112に従ったメンバ構成のグループで複数の人エージェントを生成する。この場合も、それらの人の体型は3Dモデルデータベース111から選択した3Dモデルに従う。
【0074】
移動モジュール114は、人生成モジュール110が生成した人エージェントを、オブジェクティブモデル(Objective Model)データベース116に予め設定されているオブジェクティブに基づいて、仮想シミュレーション空間22(
図4)内を移動させる。ここで、オブジェクティブ(Objective)とは、仮想シミュレーション空間22において、人エージェント(図示せず)の視界にロボットエージェント(図示せず)が入ったときに、人エージェントが示す反応の仕方、つまり人が実空間で実際に取り得る対ロボット行動パターンや、環境内で(ロボットがいない場合にも)行いうる行動パターン(たとえば、コンビニなどの商品棚の前で立ち止まるなど)を規定する命令セットである。命令セットは、たとえば、人が歩く場合、移動目標や移動速度をパラメータとして含む。
【0075】
この実施例では後述の4つの典型的な反応の態様(オブジェクティブ)をモデルとして設定しておき、移動モジュール114は人エージェントを移動させるとき、そのモデルが示すオブジェクティブに従って移動させる。つまり、オブジェクティブ116は、仮想シミュレーション空間においてロボットの存在に対する反応行動を人エージェントに行わせる、第1命令セットとして機能する。これらのオブジェクティブはシミュレーションシステム10の第1メモリ(図示せず)に記憶されている。
【0076】
なお、このオブジェクティブモデル116に予め設定されている利用可能なオブジェクティブは、たとえば上記第1メモリから読み出してそれらの一覧をたとえばディスプレイ105などに表示するなどして、デバッグしようとする開発者が知ることができる。開発者は、その中の任意のオブジェクティブを選択して、後述のようにスクリプト(122)でそのオブジェクティブを変更(更新)することが可能である。このとき、開発者はシミュレーションシステム10に設けられているキーボードなどの入力装置(図示せず)を用いて、要変更箇所を変更することができる。そして、その変更(更新)されたオブジェクティブもまた第1メモリに記憶される。つまり、オブジェクティブモデル116は,拡張性を有するように設計しているので、別の誰かが更新したオブジェクティブを一覧情報として知るこことができる点は、有効である。
【0077】
たとえば、ロボットが自分の視野に入ったときに人が取る行動パターン(オブジェクティブ)として、
図6および
図7に示す、ロボットと対話するパターンと、ロボットを観察するパターンがある。
【0078】
図6は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopを隔てて停止し、ロボット12と対話するオブジェクティブを図解している。
【0079】
図7は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopよりもやや大きい観察距離Dobserveを隔てて停止し、ロボット12を観察するオブジェクティブを図解している。
【0080】
オブジェクティブとしては、その他、ロボットの傍を通りすぎるオブジェクティブ、およびロボットの傍を減速し、見ながら通りすぎるオブジェクティブがあり、移動モジュール114では、人エージェントがその登録しているどれかのオブジェクティブに従って移動するようにシミュレーションする。
【0081】
ただし、移動モジュール114は、シミュレーションパラメータに含まれるソーシャルフォースモデル(Social Force Model)データベース118およびインタラクションモデル(Interaction with robot model)データベース120からのそれぞれのモデルデータを考慮して、人エージェントの移動をシミュレートする。ソーシャルフォースモデルとは、後述の
図8に示すように歩行者どうしがいかに影響して挙動が変わるかということを表すモデルである。たとえば、斥力または反力などとして知られている。
【0082】
仮想シミュレーション空間22内において、人エージェントの行動は、他のエージェントから影響されて変化するが(たとえば、人同士がぶつからないように避ける、ロボットを見たら近づく、など)。
【0083】
たとえば
図8に示すように、2人の人iおよびjは相互に影響して次のステップでの移動位置を決定する場合がある、人エージェントiは本来はdi,jの方向へ移動するのであるが、人エージェントjが人エージェントiに対して角度θi,jの方向に速度vi,jで移動しようとしているため、人エージェントiは、結局d’i,jの方向へ移動することになる。
【0084】
なお、インタラクションモデル120とは、人のロボットとの相互作用のパターンを予め設定しているモデルである。
【0085】
図9は
図4に示す仮想シミュレーション環境(空間)の一部を模式的に示していて、仮想シミュレーション空間22は、出入口22aを設けた壁などのオブジェクト124で仕切られた閉空間を想定している。ただし、オブジェクト124はすべて、障害物として地図データ106に書き込まれている。
【0086】
ロボットシミュレータ24は、環境データ20に含まれるロボット(ロボットエージェント)の位置等のデータに基づいて、ロボットアプリケーションプログラム18に従ったロボットの次のステップでの行動をシミュレーションする。ここで、ロボットアプリケーションプログラム18は、
図3のセンサ入力/出力ボード88に入力されるセンサ出力に応じて、各モータすなわちアクチュエータを制御してロボットの行動を決定するプログラムである。
【0087】
図9の例でいえば、ロボットアプリケーションプログラム18は、たとえば
図9において、一方の出入口22aからロボット12が仮想シミュレーション空間22に入り、他方の出入口22aから出るまで、通路22bに従って移動させるように設定されている。なお、
図9において参照符号126が、シミュレーションのためにこの仮想シミュレーション空間22に投入された人エージェントを示す。
【0088】
人シミュレータ26はさらに、必要な場合、オブジェクティブ116ではなく、スクリプト122に従ってシミュレーションを実行する。オブジェクティブ116は上述のように、予め設定した、定型の対ロボット反応パターンであるが、スクリプト122は、シミュレーション装置16すなわち人シミュレータ26に非定型の動作を行わせる命令である。ここで、スクリプトとは、コンピュータが理解できる言語への変換作業を省略して、簡単に解釈実行できるようにした簡易プログラム(命令セット)のことである。ソフトウェアの設計などにおいて、コンピュータに命令を与える際には、通常、人間が普通に読み書きできる言語から、コンピュータが理解できる言語、いわゆる機械語への変換が必要であるが、スクリプトは、そのような変換作業を省略して簡単に解釈実行できるようにした簡易プログラムである。これらのスクリプトは、第2命令セットに該当するが、それらはシミュレーションシステム10の第2メモリ(図示せず)に記憶されている。ただし、第1メモリおよび第2メモリは同じメモリの異なる記憶場所であってよい。
【0089】
人シミュレータ26にはさらに、ジェスチャモデルデータベース113が付属される。このジェスチャモデルデータベース113には人(歩行者)が取り得る複数種類のジェスチャ(動作)を登録しておく。そのジェスチャには、たとえば、物を見る、物を見ながら歩く、物を取る(右手および/または左手)、歩く(普通にまたはゆっくり、速く)、立ち止まる、しゃがむ等のジェスチャが含まれる。実世界で生じる人間のジェスチャと類似したデータを生成させるため、ジェスチャのデータには、モーションキャプチャシステムを用いて生成したデータが含まれることがある。
【0090】
したがって、人シミュレータ26の移動モジュール114は、ジェスチャモデルデータベース113からランダムに選択したジェスチャを行う人エージェントを、オブジェクティブモデル116またはスクリプト122に従った移動パターンまたは移動経路で移動させる。
【0091】
ここで、
図11に示すこの発明の実施例の理解を容易にする目的で、まず、
図10を参照して、オブジェクティブモデル116に従った
図1に示すシミュレーション装置16における動作の一例を説明する。ただし、この
図10に示すシミュレーションは、複数のステップ(S3‐S17)を1ステップとして実行する。実際的な運用において、シミュレーションの1ステップは最速0.1ミリ秒単位で実行可能であるが、ここでは10ミリ秒単位に設定し、ロボットシミュレーションプログラム18の実行は100ミリ秒単位とすることが可能である。この例の場合、ロボットアプリケーションプログラム18は、シミュレーション装置16による10ステップの実行毎に1度、実行される。つまり、この実施例では、このようにロボットアプリケーションプログラムの周期がシミュレーションの1ステップの実行周期より長い場合を想定している。
【0092】
最初のステップS1において、一例として
図4(および
図9)に示す通路22b上を移動するように設定されている、ロボットアプリケーションプログラム18を読み込むとともに、環境データ20を読み込む。すなわち、ロボット12の行動をシミュレーションする
図4(および
図9)のような仮想シミュレーション空間22の地図データ106および出現率データ108が示す仮想シミュレーション空間22に投入する人エージェントの生成に関するパラメータ(出現頻度、移動経路、グループ人数、大人子供や男女の比率、背の高さなど)および各エージェント(ロボット12を含む)の位置データなどを読み込む。なお、この仮想シミュレーション空間22が、ロボット12および人エージェントとともに、ディスプレイ105に表示される。
【0093】
さらに、このステップS1では、シミュレーションの初期化を行う。つまり、実行速度をs=1.0、基本実行ステップ数fpsをfps=30.0としてそれぞれ設定する。ただし、fpsは、1秒間に何ステップのシミュレーションを実行するかを示す数値で、この実施例の初期設定では、1秒間に30ステップのシミュレーションを実行するように、設定される。
【0094】
次のステップS3では、人シミュレータ26の人生成モジュール110によって、環境データ20が提示する人エージェントの生成に関する上述のパラメータおよびグループからの人パターンのデータに従って、仮想シミュレーション空間22内で、1または2以上の人エージェントを生成して配置する。
【0095】
ステップS5で人シミュレータ26は、環境データ20が示す現在の人エージェントおよびロボット12の位置に基づいて、そしてオブジェクティブモデル116が示す対ロボット行動パターンに基づいて、人エージェントの次のステップでの行動を決定する。なお、基本的な前述した4つのオブジェクティブの一覧は開発者(操作装置14のオペレータ)が自由にアクセスできる形で提供される。さらに、他のオブジェクティブモデルを採用することもできる。
【0096】
ステップS7でロボットシミュレータ24は、環境データ20が示す現在の人エージェントおよびロボット12の位置に基づいて、ロボットアプリケーションプログラム18に従って、次のステップでのロボット12の行動を決定する。
【0097】
具体的には、ステップS7では、ロボット12がたとえば搬送ロボットや搭乗型ロボットのように目的地に向かうことが主目的のロボットである場合、他の人々の現在の位置や移動速度から、なるべく他人の移動に干渉しないような移動経路を計算する処理を行う。また、ロボット12が人々にサービス提供することが目的のロボットである場合には、たとえば、ロボットに興味がありそうな人に接近するために、単純な場合では、ロボットの近傍で止まっている人を選択して、その人に向かって進む、また、人々が集まりがちな場所を選んでそのような場所でやってくる人を待ち受ける、また、混雑を起こさないように過度に人々が通る場所には近づかないようにする、といった処理を行ったりする。
【0098】
このステップS7の場合、ステップS5での人エージェントの次のステップでの行動を決定しているので、それを考慮して、上述の処理を実行する。そのため、人と共存する実空間で活動するロボットアプリケーションプログラムの当否を、仮想シミュレーション空間内で判断することができる。
【0099】
その後ステップS9で、物理エンジン28において、各エージェントの行動を実現する。詳しくいうと、ステップS9では、先に説明したように、各エージェント(ロボット含む)が意図した動きを仮想シミュレーション空間22内で実施する処理が行われ、他の障害物、構造物や他のエージェントとの干渉が何もなければ、各エージェントは意図したとおりに動く。たとえば、エージェントが1歩前進しようとした場合、その意図通り、エージェントが1歩前進する。
【0100】
ところが、干渉がある場合、物理学法則(力学法則)に従って各エージェントの実際の動きが処理される。単純な場合、たとえば壁に向かって進もうとすると、壁に衝突し、それ以上前進できないし、一定の反発係数に従って反力を受ける。エージェント同士の衝突の場合、前進する動きと、反力による移動が重なり合って、たとえば、単純な例を考えると、前進中にたとえば側方から衝突すると、斜め前方へと実際には動くことになる。
【0101】
次のステップS11で、環境データやセンサデータなどを更新する。
【0102】
そして、ステップS13でシミュレーションを終了するかどうか判断し、シミュレーションを続行するなら再び先のステップS3に戻り、たとえば行動決定プログラムが終了するなどした場合“YES”が判断され、シミュレーションを終了する。
【0103】
このように、シミュレーション装置16においてオブジェクティブ116に従ってロボットの周囲の人の行動を再現するようにシミュレーションを行い、その状態をディスプレイ105(
図1)で確認することにより、ロボットの行動をシミュレーションできるので、ロボットを実空間で実際に動かすことなく、人と共存する実空間で活動するロボットアプリケーションプログラム18の開発を効率的に行うことができる。
【0104】
図11はこの実施例における主として人シミュレータ26の動作を示すフロー図であり、この
図11の最初のステップS21では、コンピュータは、シミュレーションが実行されているかどうか判断する。“NO”ならそのまま終了する。
【0105】
この実施例の特徴は、
図10のステップS3における人シミュレータ26による人エージェントの生成、仮想シミュレーション空間22への投入、およびステップS5におけるその仮想シミュレーション空間22内での人エージェントの移動、ジェスチャ等の行動の際の、3次元距離画像センサ202(
図15)に対応するシミュレーションデータを取得することである。以下、説明する。
【0106】
ステップS21で“YES”が判断されたときは、次のステップS23で、コンピュータは歩行者(人)生成条件が成立したかどうか判断する。この歩行者は、仮想シミュレーション空間22に存在する歩行者数が所定の最大数未満の場合、出現率データ108(
図5)に従って、一定確率で生成される。したがって、歩行者生成条件とは、出現率に達したという条件である。
【0107】
このステップS23で“YES”が判断されると、ステップS25で、人生成モジュール110によって、歩行者を生成する。具体的には、
図12に示すフロー図に従って歩行者を生成する。
【0108】
図12のステップS41では、コンピュータすなわち人生成モジュール110は、歩行者モデルを3Dモデルデータベース111からランダムにまたは所定の法則に従って選択する。
【0109】
そして、ステップS43で、オブジェクティブ(行動タイプ)をオブジェクティブモデル116からランダムにまたは所定の法則に従って選択するとともに、グループメンバデータ112、ソーシャルフォースモデル118およびインタラクションモデル120に従って、シミュレーションパラメータを確定的にまたは所定の法則に従って決定する。このステップS43ではオブジェクティブを複数個選択することができ、その場合、選択された順にオブジェクティブが実行される。
【0110】
ステップS45で、オブジェクティブ毎に、実行するジェスチャをジェスチャデータベース113からランダムにまたは所定の法則に従って選択して、オブジェクティブに設定する。ジェスチャとしては、先に説明したように、「物を取る」などである。ジェスチャは、オブジェクティブ毎に複数選択されてもよい。その後、リターンする。
【0111】
このようにして、
図11のステップS25で、仮想シミュレーション空間22(
図4)内に人エージェント(歩行者)を生成することができる。したがって、このステップS25およびそれを実行するコンピュータは、人エージェント生成手段ということができる。
【0112】
図11のステップS27で、歩行者Pi毎のループを実行し、ステップS29で、コンピュータすなわち移動モジュール114は、歩行者Piを更新する。具体的には、
図13に示すフロー図に従う。
【0113】
図13のステップS51で、コンピュータは、オブジェクティブが終了したかどうか判断する。“YES”なら、歩行者Piを環境すなわち仮想シミュレーション空間22から削除(消去)して、リターンする。つまり、各歩行者に対して移動シーケンスを設定しているので、それが終わったら環境から消えるようにしている。
【0114】
一方、ステップS51で“NO”と判断されたとき、ステップS55において、先にステップS43で設定されたソーシャルフォースモデルに従って、歩行者の位置を更新する。そして、ステップS57で、ステップS45で設定されたジェスチャに従って、歩行者Piのジェスチャを再生し、その後リターンする。
【0115】
ステップS27の更新処理は複数のオブジェクティブが存在する場合、順次次のオブジェクティブの更新処理を実行する。このステップS27すなわちステップS29での更新は、仮想シミュレーション空間内で人エージェントを移動シーケンスを適用して人エージェントの位置を更新するので、このステップS27、S29およびそれらを実行するコンピュータは、更新手段ということができる。
【0116】
各歩行者Piの更新処理が終了したら、
図11のステップS31において、各歩行者の真値ラベルを作成する。真値ラベルとは、各センサからの各歩行者(人)の見え方であり、たとえば、歩行者の位置、歩行者の向き、ジェスチャなどを含む。人シミュレータ26によって歩行者の移動シーケンスをシミュレーションしているので、コンピュータは、それぞれのモデルやパラメータからこのような真値ラベルを容易に取得できる。
【0117】
次いで、ステップS33で、コンピュータは、センサデータを作成する。センサデータは、上述のようにして歩行者Piがシミュレートされるときの、各センサからの歩行者Piの見え方をシミュレーションしたデータ、たとえば距離画像である。センサ202(
図15)として3次元距離画像センサを用いた場合、
図14(A)に示すように、センサA‐Jのそれぞれの距離画像が作成される。
図14(A)のセンサA‐J毎の距離画像を統合すると
図14(B)のような距離画像が得られる。実世界のセンシングでは、センサノイズが存在するため、これらのセンサノイズを再現するためのセンサノイズモデルを距離画像データの作成時に適用する。つまり、シミュレーション内で計測した距離に、確率的なセンサノイズ(ガウシアン分布など)を加算(もしくは減算)した結果を、距離画像として生成する。このようなセンサのノイズモデルは、たとえば環境データ20(
図1)に、実世界に配置された3次元距離画像センサのデータとともに、予め設定される。
【0118】
次のステップS35で、コンピュータは、ステップS31で取得した真値ラベルのデータと、ステップS33で作成した
図14に示すような距離画像とを組み合わせたデータセットを出力する。
【0119】
このデータセットは、学習器(図示せず)へ投入することによって、センサのキャリブレーションや認識モデルの学習を行うことができる。ただし、センサキャリブレーションとは、各センサ202についてどのような計算をすれば、センシングの精度が向上するかを示すセンサデータの計算方法を決定することを意味し、学習器による学習のためには多数の、たとえば100万以上のデータセットが必要となる。
【0120】
極めて多数のデータセットを実世界で取得しようとすると、様々な場所(環境)、様々なパターンで行動するデータと、そのラベルセットを大量に収集することになり、多大なコストを要する。
【0121】
これに対して、この実施例のように真値ラベルとセンサデータのペアをシミュレーションによって生成するようにすれば、シミュレーションでは人(歩行者)の行動モデルによって多様な人行動を生成し、それらの行動に人の3次元モデルと人のモーション(ジェスチャ)データ、センサノイズモデルを組み合わせることで、実世界のセンサシステムで利用可能な精度向上データを低コストでかつ短時間で獲得することができる。
【0122】
このような認識モデルのパラメータを学習する学習器とは別に、この実施例の大量のデータセットをシミュレーションによって作成するアプローチは,深層学習(いわゆるディープラーニング)にも適用できる。深層学習は、いわば認識モデル自体を学習する学習器である。したがって、実施例によって得られるデータセットはセンサキャリブレーションや,認識モデルの獲得を目指した学習装置(ディープラーニング)に利用することができる。
【0123】
なお、上述の実施例では、仮想シミュレーション空間に投入する人エージェントを3Dモデルに従った形状にし、それをオブジェクティブに従って移動させ、さらにジェスチャモデルに従った動作(motion)をさせるので、人エージェントが実世界の人(歩行者)と酷似したシミュレーションを実行できるので、そのような人エージェントをセンシングする3次元距離画像センサのセンシング精度も実世界のそれと同じような精度で再現することができる。したがって、ステップS35で出力されるデータセットで学習する学習器(図示せず)の精度もよくなる。
【0124】
しかしながら、仮想シミュレーション空間に投入する人エージェントを3Dモデルに従った形状にし、それをオブジェクティブに従って移動させるだけでも、十分な精度を実現できれば、仮想シミュレーション空間で人エージェントにジェスチャを行わせない方法も可能である。
【0125】
同様に、人エージェントにシミュレーションパラメータを付与させず、学習する方法も可能である。
【符号の説明】
【0126】
10 …シミュレーションシステム
12 …ロボット
14 …操作装置
16 …シミュレーション装置
18 …ロボットアプリケーションプログラム
22 …仮想シミュレーション空間
24 …ロボットシミュレータ
26 …人シミュレータ
28 …物理エンジン
105…ディスプレイ
202…距離画像センサ