JP6809705B2 - シミュレーションシステム - Google Patents

シミュレーションシステム Download PDF

Info

Publication number
JP6809705B2
JP6809705B2 JP2016238544A JP2016238544A JP6809705B2 JP 6809705 B2 JP6809705 B2 JP 6809705B2 JP 2016238544 A JP2016238544 A JP 2016238544A JP 2016238544 A JP2016238544 A JP 2016238544A JP 6809705 B2 JP6809705 B2 JP 6809705B2
Authority
JP
Japan
Prior art keywords
robot
human
human agent
instruction set
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016238544A
Other languages
English (en)
Other versions
JP2018097417A (ja
Inventor
聡 佐竹
聡 佐竹
トーマ カスマルク
トーマ カスマルク
ドラジェン ブルシュチッチ
ドラジェン ブルシュチッチ
神田 崇行
崇行 神田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2016238544A priority Critical patent/JP6809705B2/ja
Publication of JP2018097417A publication Critical patent/JP2018097417A/ja
Application granted granted Critical
Publication of JP6809705B2 publication Critical patent/JP6809705B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明はシミュレーションシステムに関し、特にたとえば、コミュニケーションロボットのようなロボットと人との共存環境におけるロボットや人エージェントをシミュレーションする、シミュレーションシステムに関する。
従来のこの種のシミュレーション装置が非特許文献1、2で開示されている。これらの非特許文献1、2のシミュレーション装置では、センサやアクチュエータをシミュレーションして可視化することによって、人との共存環境におけるロボットの適応をより簡単にシミュレーションすることができる。
https://www.openrobots.org/morse/doc/stable/morse.html http://gazebosim.org/
このような共存環境で動くロボットをデバッグするためには問題を引き起こす人々の振る舞いを何回も繰り返しデバッグする必要がある。しかしながら、非特許文献のような先行技術では単にセンサをシミュレーションするだけなので、特定の状況(限られた時間帯で発生する状況、人数が多いときにのみ発生する状況など)を再現するのが難しく、必要なデバッグが行えず、最終的には実空間での動作確認が必要となってしまうなどの問題がある。
それゆえに、この発明の主たる目的は、新規な、シミュレーションシステムを提供することである。
この発明の他の目的は、必要なデバッグを容易に行える、シミュレーションシステムを提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、仮想シミュレーション空間に投入した人エージェントの行動をシミュレーションするシミュレーションシステムであって、仮想シミュレーション空間に人エージェントを投入する人生成モジュール、第1命令セットに従って人エージェントにロボットの存在に対する反応行動を行わせる移動モジュール、および第2命令セットによって第1命令セットを部分的に変更することによって仮想シミュレーション空間において特定の状況を再現する状況再現手段を備える、シミュレーションシステムである。
第1の発明では、シミュレーションシステム(10:実施例において相当する部分を例示する参照符号。以下、同様。)は、人生成モジュール(110)および移動モジュール(114)を備え、人生成モジュール(110)は、たとえば出現率データ(118)に従って人エージェントを生成し、仮想シミュレーション空間(22)内に投入する。移動モジュール(114)は、たとえばオブジェクティブのような第1命令セットに従って、人エージェントに対してロボットに対する定型反応行動を行わせる。状況再現手段(122)は、その第1命令セットを部分的に変更するなどして、仮想シミュレーション空間において特定の状況を再現する。
第1の発明によれば、人エージェントに定型のロボット反応行動を生じさせる第1命令セットを一部変更することによって、特定の状況を仮想シミュレーション空間に再現させることができるので、デバッグが容易になる。
第2の発明は、仮想シミュレーション空間に投入した人エージェントの行動をシミュレーションするシミュレーションシステムであって、仮想シミュレーション空間に人エージェントを投入する人生成モジュール、人エージェントにロボットの存在に対する反応行動を行わせる第1命令セットを設定する第1メモリ、第1メモリの第1命令セットに従って人エージェントの移動を制御する移動モジュール、および移動モジュールによって移動される人エージェントを含めて仮想シミュレーション空間を表示するディスプレイを備える、シミュレーションシステムである。
第2の発明では、シミュレーションシステム(10)は人生成モジュール(110)および移動モジュール(114)を含む人シミュレータ(26)を備える。人生成モジュール(110)は、たとえば出現率データ(118)に従って人エージェントを生成し、仮想シミュレーション空間(22)内に投入する。移動モジュール(114)は、たとえばオブジェクティブのような、第1メモリに予め設定されている第1命令セットに従って、人エージェントに対してロボットに対する定型反応行動を行わせる。人シミュレータ(26)に接続されたディスプレイ(105)は、移動モジュールによって移動される人エージェントを含めて仮想シミュレーション空間を表示する。
第2の発明によれば、仮想シミュレーション空間内の人エージェントの第1命令セットに従った対ロボット反応行動を目視によって確認することができるので、シミュレーションを効率的に行える。
第3の発明は、第2の発明に従属し、第1命令セットより上位であって第1命令セットを部分的に変更可能な第2命令セットを設定する第2メモリをさらに備え、人生成モジュールおよび移動モジュールの少なくともいずれかが第2命令セットによって制御される、シミュレーションシステムである。
第3の発明では、第2メモリに記述された第2命令セットに従って、人生成モジュール(110)および/または移動モジュール(114)が人エージェントを生成し、かつ/または人エージェントを移動させる。
第3の発明によれば、第2命令セットによって第1命令セットを部分的に書き換え可能なので、第1命令セットに従う人エージェントの行動を部分的に変更することができる。したがって、デバッグで必要な特定的な状況を容易に再現でき、デバッグの効率化が期待できる。
第4の発明は、第3の発明に従属し、出現率に従って人生成モジュールによって仮想シミュレーション空間内に人エージェントを出現させる手段をさら備え、第2命令セットは出現率に関係なく人生成モジュールによって仮想シミュレーション空間内に人エージェントを出現させる、シミュレーションシステムである。
第4の発明では、たとえば出現率データ(118)からの出現率に従って、人生成モジュール(110)が人エージェントを生成する。第2命令セットはその出現率とは関係なく人生成モジュール(110)によって任意のタイミングで任意の種類の人エージェントを生成させることができる。
第4の発明によれば、デバッグのために、一度に多人数の人エージェントを仮想シミュレーション空間に投入して特定の状況を容易に再現させることができ、デバッグの効率化が記載できる。
この発明によれば、人エージェントのロボットに対する行動を容易に再現できるテストコードを使い、必要なデバッグを容易に行うことができる。
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明の一実施例のシミュレーションシステムを示すブロック図である。 図2はこの発明が適用されるロボットの一例を示す図解図である。 図3は図2に示すロボットの電気的な構成を示すブロック図である。 図4は図1の仮想シミュレーション空間の一例を示す図解図である。 図5は図4の人シミュレータの詳細を示す機能ブロック図である。 図6は人エージェントのオブジェクティブモデルの一例を示す図解図である。 図7は人エージェントのオブジェクティブモデルの他の例を示す図解図である。 図8は人エージェントのオブジェクティブモデルのその他の例を示す図解図である。 図9は図4の仮想シミュレーション空間の一部における人エージェントの移動の一例を示す図解図である。 図10は図1実施例のシミュレーションシステムのオブジェクティブに従った動作の一例を示すフロー図である。 図11はスクリプトの一例を示す表である。 図12は図1実施例のシミュレーションシステムのスクリプトに従った動作の他の例を示すフロー図である。
図1を参照して、この実施例のシミュレーションシステム10は、ロボット12、ロボット12を遠隔操作する操作装置14およびロボット12をシミュレートしたロボットエージェントや人(歩行者)エージェントをシミュレーションするシミュレーション装置16含む。シミュレーションシステム10において、ロボット12を除いて、1台または2台以上のコンピュータ(プロセサ)によって実現される。
この実施例のロボット12は、たとえば図2に示すコミュニケーションロボットのように、人との共存環境で活動するロボットである。このようなロボット12は環境の中に存在する人の行動に影響を受けるので、この実施例のシミュレーション装置16では、ロボット12の行動をロボットアプリケーションプログラム(ロボット行動決定プログラム)に従ってシミュレーションする際に、人の行動もシミュレーションすることによって、ロボット12のための安全なロボットアプリケーションプログラムの開発を支援する。
ここで、図2および図3を参照して、この発明の理解に必要な範囲でロボット12の構成について説明する。ロボット12は台車30を含み、台車30の下面にはロボット12を移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の距離センサ40が取り付けられる。これらの距離センサ40は、たとえば赤外線や超音波などを用いてロボット12の周囲の物体(人や障害物など)との距離を測定するものである。
センサ取り付けパネル38の上には、胴体42が直立して設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した距離センサ40がさらに設けられ、ロボット12の前方の、主として人との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当するハンド56Rおよびハンド56Lがそれぞれ設けられる。これらのハンド56Rおよび56Lは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット12は、ハンド56Rおよび56Lを用いて物体を把持または挟持することができる。ただし、ハンド56R、56Lの形状は実施例の形状に限らず、人の手に酷似した形状や機能を持たせるようにしてもよい。
また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、ハンド56Rおよびハンド56Lには、それぞれ、接触センサ58(図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人に対して音声によってコミュニケーションをとるために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。
さらに、人の目に相当する位置には、右の眼球部68Rおよび左の眼球部68Lが設けられる。右の眼球部68Rおよび左の眼球部68Lは、それぞれ右の眼カメラ70Rおよび左の眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
眼カメラ70は、ロボット12に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット12は、この眼カメラ70からの映像信号によって、人の左右両目のそれぞれの視線方向(ベクトル)を検出する。
また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
このように、この実施例のロボット12は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、1つまたは2以上のプロセサ80を含む。プロセサ80は、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、各種プログラムが予め記憶される。
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節60および眼球部68などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、プロセサ80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
また、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
さらに、モータ制御ボード86は、プロセサ80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、プロセサ80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
モータ制御ボード86にはさらにハンドアクチュエータ101が結合され、モータ制御ボード86は、プロセサ80からの制御データを受け、ハンド56R、56Lの開閉を制御する。
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでプロセサ80に与える。すなわち、距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてプロセサ80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからプロセサ80に入力される。眼カメラ70からの映像信号も、同様にして、プロセサ80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してプロセサ80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、プロセサ80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してプロセサ80に与えられる。
また、プロセサ80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、プロセサ80から与えられた送信データを無線通信モジュール104に与え、無線通信モジュール104は送信データを、ネットワークを介してサーバ(図示せず)等に送信する。また、通信LANボード102は、無線通信モジュール104を介してデータを受信し、受信したデータをプロセサ80に与える。
図1に戻って、操作装置14は、基本的には1または2以上のコンピュータまたはプロセサによって構成され、そのプロセサのメモリ(図示せず)にロボットアプリケーションプログラム18が設定されていて、そのロボットアプリケーションプログラムがコンピュータからたとえば無線でロボット12またはシミュレーション装置16に与えられる。ロボットアプリケーションプログラム18は、ロボット12に対すアプリケーションプログラムであり、たとえばロボット12を案内ロボットとしとて動作させるときには、そのための動作をロボット12が実行するようなプログラムである。
操作装置14のメモリにはさらに、環境データ20を予め記憶している。環境データ20は主として図4に示す仮想シミュレーション空間22の地図データおよびその仮想シミュレーション空間22内での人エージェントの出現率データを含む。環境および環境内のオブジェクトは3次元モデルデータとして表され、3次元仮想空間として視覚化される。
図4に示す仮想シミュレーション空間22は、図中点線矩形で示す出入口22aを有する3次元閉空間を想定している。この仮想シミュレーション空間22においては黒色太線で示す通路22bが設定されていて、ロボット12や人エージェントはその通路50や広場などを通行し、またはそこに存在する。これらの通路22bや広場は建物や壁などオブジェクトによって区画され、図中丸印で示す場所で分岐または合流する。
シミュレーション装置16は、基本的には1または2以上のプロセサで構成され、ロボット12をシミュレートするロボットシミュレータ24および歩行者のような人エージェントをシミュレートする人シミュレータ26を含み、それぞれのシミュレーション結果が物理エンジン28に入力される。
ロボットシミュレータ24は、たとえば先の非特許文献1として例示したMORSEシミュレータであり、このMORSEシミュレータは、ロボット12と同様の、多くのセンサ、アクチュエータおよびロボットのモデルを提供し、そのようなモデル用のAPI(Application Programming Interface)も利用できる。
センサシミュレーションにおいては、たとえば、カメラ画像の場合には、カメラ視点からの光学的な計算を行い、カメラ視点毎の画像情報を生成する。レーザ距離計の場合には、レーザによるスキャンを模して、センサから各方位へ距離計測を行い、その結果をセンサ値として保存する。
開発者がロボットのためのロボットアプリケーションプログラムを準備するとき、それらのプログラムはこれらのAPIにアクセスしてセンサデータ(たとえば、レーザ距離計からの距離の読み取り)およびアクチュエータへのコマンドの送信(たとえば、移動速度)を行う。
人シミュレータ26は、定期的に新しい歩行者を生成し、それらの位置を更新し、それらがシミュレートされた環境(仮想シミュレーション空間22)を離れるときにそれらを除去する。歩行者すなわち人は、3次元オブジェクトとして表現され、仮想シミュレータ空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。
ただし、人シミュレータ26には図1に示すように環境データ20が与えられるので、人シミュレータ26は、その環境データに含まれる出現率と呼ばれる予め定義された確率で新しい歩行者を周期的に生成する。そして、その歩行者は図4に示す出入口22aの1つに割り当てられ、他の1つに行くように設定される。
ただし、歩行者はしばしばグループとして(家族やカップルのように)生成され、 それらがグループで表示される場合、サイズはグループメンバの分布によって定義し、すべてのメンバが同じ目的を共有すると仮定する。
物理エンジン28は、物理的な力や法則などに基づいて、ロボットや人エージェントがどのような移動経路をたどるかを計算する。詳しくいうと、物理エンジン28は、ロボットシミュレータ24および人シミュレータ26からの各エージェント(ロボット含む)が意図した動きを、仮想シミュレーション空間22(図4)で実行する処理を実行する。このとき、他の障害物、構造物や他のエージェントとの干渉が何もなければ、意図したとおりの動きを生成する。しかしながら、干渉がある場合、物理学法則(力学法則)に従って、各エージェントの実際の動きを処理する。そして、物理エンジン28からは統合したシミュレーションデータが出力される。
シミュレーション装置16には、ディスプレイ105設けられていて、このディスプレイ105によって、たとえば図4に示すような仮想シミュレーション空間の画像が、その中に存在するシミュレートされたロボットや人エージェントとともに、表示される。たとえば、人エージェントは、3次元オブジェクトとして表現され、仮想シミュレーション空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。ロボットアプリケーションプログラム18の開発者は、そのディスプレイ105に表示された画像で確認しながら、ロボット12の行動決定プログラム(アプリケーションプログラム)を作製し、修正する。
図5を参照して、人シミュレータ26を詳細に説明する。人シミュレータ26は、ロボットシミュレータ24と同様に、シミュレーション装置16のコンピュータないしプロセサによって実現される機能であり、人生成モジュール110を含む。この人生成モジュール110は、上述のように、環境データ20に含まれる出現率データ108に従って新しい歩行者(人エージェント)を、地図データ106が表す、図4に一例を示す仮想シミュレーション空間22内に、周期的に生成する。
出現率データ108は、シミュレーション装置16の仮想シミュレーション空間22に投入する人エージェントのための、人の形状、すなわち大人、子供、男性、女性などの人の形状(パターン)やそれぞれの人の出現率が予め設定されているデータベースであり、設定された確率で設定された形状の人エージェントが生成される。
なお、この出現率データ108では、曜日や時間ごとに異なるデータセットを保持しておき、曜日や時間を指定してシミュレーションできるようにしてもよい。そうすれば、ある時間帯にロボットを動かすとどうなるのかなど、いろいろシミュレーションすることができる。
ただし、生成される人エージェントがグループを形成することを出現率データ108が示していれば、人生成モジュール110は、シミュレーションパラメータとして設定されているグループメンバデータ112従ったメンバ構成のグループで複数の人エージェントを生成する。
移動モジュール114は、人生成モジュール110が生成した人エージェントを、オブジェクティブモデル(Objective Model)116に基づいて、仮想シミュレーション空間22(図4)内を移動させる。ここで、オブジェクティブ(Objective)とは、仮想シミュレーション空間22において、人エージェント(図示せず)の視界にロボットエージェント(図示せず)が入ったときに、人エージェントが示す反応の仕方、つまり人が実空間で実際に執り得る対ロボット行動パターンを規定する命令セットである。この実施例では後述の4つの典型的な反応の態様(オブジェクティブ)をモデルとして設定しておき、移動モジュール114は人エージェントを移動させるとき、そのモデルが示すオブジェクティブに従って移動させる。つまり、オブジェクティブ116は、仮想シミュレーション空間においてロボットの存在に対する反応行動を人エージェントに行わせる、第1命令セットとして機能する。これらのオブジェクティブはシミュレーションシステム10の第1メモリ(図示せず)に記憶されている。
なお、このオブジェクティブモデル116に予め設定されている利用可能なオブジェクティブは、たとえば上記第1メモリから読み出してそれらの一覧をたとえばディスプレイ105などに表示するなどして、デバッグしようとする開発者が知ることができる。開発者は、その中の任意のオブジェクティブを選択して、後述のようにスクリプト(122)でそのオブジェクティブを変更(更新)することが可能である。このとき、開発者はシミュレーションシステム10に設けられているキーボードなどの入力装置(図示せず)を用いて、要変更箇所を変更することができる。そして、その変更(更新)されたオブジェクティブもまた第1メモリに記憶される。つまり、オブジェクティブモデル116は,拡張性を有するように設計しているので、別の誰かが更新したオブジェクティブを一覧情報として知るこことができる点は、有効である。
たとえば、ロボットが自分の視野に入ったときに人が執る行動パターン(オブジェクティブ)として、図6および図7に示す、ロボットと対話するパターンと、ロボットを観察するパターンがある。
図6は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopを隔てて停止し、ロボット12と対話するオブジェクティブを図解している。
図7は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopよりもやや大きい観察距離Dobserveを隔てて停止し、ロボット12を観察するオブジェクティブを図解している。
オブジェクティブとしては、その他、ロボットの傍を通りすぎるオブジェクティブ、およびロボットの傍を減速し、見ながら通りすぎるオブジェクティブがあり、移動モジュール114では、人エージェントがその登録しているどれかのオブジェクティブに従って移動するようにシミュレーションする。
ただし、移動モジュール114は、シミュレーションパラメータに含まれるソーシャルフォースモデル(Social Force Model)118およびインタラクションモデル(Interaction with robot model)120からのそれぞれのモデルデータを考慮して、人エージェントの移動をシミュレートする。ソーシャルフォースモデルとは、後述の図8に示すように歩行者どうしがいかに影響して挙動が変わるかということを表すモデルである。たとえば、斥力または反力などとして知られている。
仮想シミュレーション空間22内において、人エージェントの行動は、他のエージェントから影響されて変化するが(たとえば、人同士がぶつからないように避ける、ロボットを見たら近づく、など)。
たとえば図8に示すように、2人の人iおよびjは相互に影響して次のステップでの移動位置を決定する場合がある、人エージェントiは本来はdi,jの方向へ移動するのであるが、人エージェントjが人エージェントiに対して角度θi,jの方向に速度vi,jで移動しようとしているため、人エージェントiは、結局d’i,jの方向へ移動することになる。
なお、インタラクションモデル120とは、人のロボットとの相互作用のパターンを予め設定しているモデルである。
図9は図4に示す仮想シミュレーション環境(空間)の一部を模式的に示していて、仮想シミュレーション空間22は、出入口22aを設けた壁などのオブジェクト124で仕切られた閉空間を想定している。ただし、オブジェクト124はすべて、障害物として地図データ106に書き込まれている。
ロボットシミュレータ24は、環境データ20に含まれるロボット(ロボットエージェント)の位置等のデータに基づいて、ロボットアプリケーションプログラム18に従ったロボットの次のステップでの行動をシミュレーションする。ここで、ロボットアプリケーションプログラム18は、図3のセンサ入力/出力ボード88に入力されるセンサ出力に応じて、各モータすなわちアクチュエータを制御してロボットの行動を決定するプログラムである。
図9の例でいえば、ロボットアプリケーションプログラム18は、たとえば図9において、一方の出入口22aからロボット12が仮想シミュレーション空間22に入り、他方の出入口22aから出るまで、通路22bに従って移動させるように設定されている。なお、図9において参照符号126が、シミュレーションのためにこの仮想シミュレーション空間22に投入された人エージェントを示す。
人シミュレータ26はさらに、必要な場合、オブジェクティブ116ではなく、スクリプト122に従ってシミュレーションを実行する。オブジェクティブ116は上述のように、予め設定した、定型の対ロボット反応パターンであるが、スクリプト122は、シミュレーション装置16すなわち人シミュレータ26に非定型の動作を行わせる命令である。ここで、スクリプトとは、コンピュータが理解できる言語への変換作業を省略して、簡単に解釈実行できるようにした簡易プログラム(命令セット)のことである。ソフトウェアの設計などにおいて、コンピュータに命令を与える際には、通常、人間が普通に読み書きできる言語から、コンピュータが理解できる言語、いわゆる機械語への変換が必要であるが、スクリプトは、そのような変換作業を省略して簡単に解釈実行できるようにした簡易プログラムである。これらのスクリプトは、第2命令セットに該当するが、それらはシミュレーションシステム10の第2メモリ(図示せず)に記憶されている。ただし、第1メモリおよび第2メモリは同じメモリの異なる記憶場所であってよい。
留意すべきは、オブジェクティブ116の上位構造として、スクリプト122が存在し、スクリプト122側からオブジェクティブ116に容易にアクセス可能であるという点である。したがって、オブジェクティブ116は移動モジュール114にのみ命令を与えられるのに対して、スクリプト122は人シミュレータ26全体に命令を与える。そのため、人生成モジュール110も移動モジュール114と同様に、スクリプト122に記述された命令を実行することができる。
図1に示すように、ロボットの開発環境に人シミュレータを組み込む、ということは比較的新しく、特に、ロボットが視野に入ったときの人エージェントの定型的な反応行動を予め規定しておき、そのどれかを確率的に実行するというオブジェクティブ116の考え方は新しい。そのうえで、スクリプト122をオブジェクティブ116の上位に置くことが、この実施例の特徴である。
考え方としては、オブジェクティブ116とスクリプト122を独立に設計するという考え方もあるが、オブジェクティブ116とスクリプト122を独立したものとして準備してしまうと、不都合が生じる。
デバックしようとする開発者がシミュレータ装置16の内部情報を詳しく知っているとは限らず、場合によっては、実施例のオブジェクティブ116に類似する人エージェント行動を開発者自身がアドホックに記述するかもしれない。そうした場合、スクリプト(テストコード)の記述に大きな時間が掛かってしまい、結果としてデバッグが円滑に進まないことになる。
これに対して、実施例のように、スクリプト122から,オブジェクティブ116を容易にアクセスできる構造とすることによって、スクリプト122によってオブジェクティブ116を変更して、テストコードとして利用することができるのである。
このようなスクリプトの一例が図11に示される。この実施例では8つの命令を記述した1つのスクリプトが代表的に示されるが、その他のスクリプトも当然利用可能である。
このようなスクリプト122は、シミュレーション装置16においてテストモードを実行するためのテストコードであり、たとえばシミュレーション装置16のテストモードボタン(図示せず)が操作されてテストモードが呼び出されたとき、あるいは設定ファイルで起動時にテストモードが呼び出されたとき、図11のようなスクリプト122の一覧が表示され、それを開発者が選択してシミュレーション装置16、特に人シミュレータ26に実行させる。詳細は、図12を参照して後述する。
ここで、まず、図10を参照して、オブジェクティブモデル116に従った図1に示すシミュレーション装置16における動作の一例を説明する。
最初のステップS1において、一例として図4(および図9)に示す通路22b上を移動するように設定されている、ロボットアプリケーションプログラム18を読み込むとともに、環境データ20を読み込む。すなわち、ロボット12の行動をシミュレーションする図4(および図9)のような仮想シミュレーション空間22の地図データ106および出現率データ108が示す仮想シミュレーション空間22に投入する人エージェントの生成に関するパラメータ(出現頻度、移動経路、グループ人数、大人子供や男女の比率、背の高さなど)および各エージェント(ロボット12を含む)の位置データなどを読み込む。
次のステップS3では、人シミュレータ26の人生成モジュール110によって、環境データ20が提示する人エージェントの生成に関する上述のパラメータおよびグループからの人パターンのデータに従って、仮想シミュレーション空間22内で、1または2以上の人エージェントを生成して配置する。
ステップS5で人シミュレータ26は、環境データ20が示す現在の人エージェントおよびロボット12の位置に基づいて、そしてオブジェクティブモデル116が示す対ロボット行動パターンに基づいて、人エージェントの次のステップでの行動を決定する。なお、基本的な前述した4つのオブジェクティブの一覧は開発者(操作装置14のオペレータ)が自由にアクセスできる形で提供される。さらに、他のオブジェクティブモデルを採用することもできる。
ステップS7でロボットシミュレータ24は、環境データ20が示す現在の人エージェントおよびロボット12の位置に基づいて、ロボットアプリケーションプログラム18に従って、次のステップでのロボット12の行動を決定する。
具体的には、ステップS7では、ロボット12がたとえば搬送ロボットや搭乗型ロボットのように目的地に向かうことが主目的のロボットである場合、他の人々の現在の位置や移動速度から、なるべく他人の移動に干渉しないような移動経路を計算する処理を行う。また、ロボット12が人々にサービス提供することが目的のロボットである場合には、たとえば、ロボットに興味がありそうな人に接近するために、単純な場合では、ロボットの近傍で止まっている人を選択して、その人に向かって進む、また、人々が集まりがちな場所を選んでそのような場所でやってくる人を待ち受ける、また、混雑を起こさないように過度に人々が通る場所には近づかないようにする、といった処理を行ったりする。
このステップS7の場合、ステップS5での人エージェントの次のステップでの行動を決定しているので、それを考慮して、上述の処理を実行する。そのため、人と共存する実空間で活動するロボットアプリケーションプログラムの当否を、仮想シミュレーション空間内で判断することができる。
その後ステップS9で、物理エンジン28において、各エージェントの行動を実現する。詳しくいうと、ステップS9では、先に説明したように、各エージェント(ロボット含む)が意図した動きを仮想シミュレーション空間22内で実施する処理が行われ、他の障害物、構造物や他のエージェントとの干渉が何もなければ、各エージェントは意図したとおりに動く。たとえば、エージェントが1歩前進しようとした場合、その意図通り、エージェントが1歩前進する。
ところが、干渉がある場合、物理学法則(力学法則)に従って各エージェントの実際の動きが処理される。単純な場合、たとえば壁に向かって進もうとすると、壁に衝突し、それ以上前進できないし、一定の反発係数に従って反力を受ける。エージェント同士の衝突の場合、前進する動きと、反力による移動が重なり合って、たとえば、単純な例を考えると、前進中にたとえば側方から衝突すると、斜め前方へと実際には動くことになる。
次のステップS11で、環境データやセンサデータなどを更新する。
そして、ステップS13でシミュレーションを終了するかどうか判断し、シミュレーションを続行するなら再び先のステップS3に戻り、たとえば行動決定プログラムが終了するなどした場合“YES”が判断され、シミュレーションを終了する。
このように、シミュレーション装置16においてオブジェクティブ116に従ってロボットの周囲の人の行動を再現するようにシミュレーションを行い、その状態をディスプレイ105(図1)で確認することにより、ロボットの行動をシミュレーションできるので、ロボットを実空間で実際に動かすことなく、人と共存する実空間で活動するロボットアプリケーションプログラム18の開発を効率的に行うことができる。
上述のようなシミュレーションでは、予め設定された環境データ20やオブジェクティブモデル116に従って人エージェントの移動をシミュレーションするので、ロボットアプリケーションプログラムをデバッグするときに特殊な状況を再現しにくい。たとえばそのような状況が特定の時間帯でのみ発生する、人数が多いときのみ発生するなど、定型のオブジェクティブモデル116だけでは再現するのが難しいことが多い。したがって、十分なデバッグができず、最終的には実空間で確認しなければならなくなってはしまう。
そこで、この実施例のシミュレーション装置16では、定型のオブジェクティブの他に、人エージェントの振る舞いや仕組みを再現するテストコード(ある特定の状況を再現(テスト)するためのスクリプト)を記述して実行可能なフレームワークを提案する。
図11に示す例では、「離れた場所にいる子供が少し移動し、その後、ロボットと対話する(前へとやってくる)」というテスト内容を記載したスクリプトで、8つの命令が記述されている。日本語の行は該当のテストコードの意味を示し、次の英数字の行が実際のテストコードを示す。
命令1は、「シミュレーション時間において5秒間実行し続ける」、という内容である。
命令2は、Boy 02という「子供を生成する」、という内容である。図5に示す出現率データ108は、予め定めた出現率に従って人生成モジュール110に、人エージェントを生成させる手段であるが、スクリプトのこの命令2は、その出現率に関係なく、任意のタイミングで任意の種類の人エージェントを人生成モジュール110から生成させることができる。それによって、デバッグのために、一度に多人数の人エージェントを仮想シミュレーション空間22に投入して特定の状況を再現させることができるのである。
命令3は、人エージェントの位置を設定する、という内容である。
命令4は、人エージェントを指定した場所へ移動させる、という内容である。
命令5は、人エージェントが指定した目的地に場到着するまで待つ、という内容である。
命令6は、人エージェントを新しい目的地へ移動させる、という内容である。
命令7は、オブジェクティブを変更する、という内容である。ただし、オブジェクティブを変更するのは、移動モジュール114である。移動モジュール114のみがオブジェクティブモデル116にアクセスできるからである。また、オブジェクティブの前部を変更するのでは、オブジェクティブを利用してデバッグ用の特定状況を再現しようとする趣旨に反する(時間が掛かり過ぎる)ので、スクリプトによるオブジェクティブの変更は、第1命令セットであるオブジェクティブの一部の命令を変更する。
命令8は、「シミュレーション時間において5分間実行し続ける」、という内容である。スクリプトの最終行まで到達するとシミュレーションは)終了する、という設定にしているため、「人がロボットに近づいている様子」を開発者が5分間見て、動作を検証する目的でこの命令8を記述している。
なお、スクリプトが読み込まれると、人シミュレータ26の各モジュール110および114は、「確率的な遷移」を行わない、特殊な命令モードに移行する。そのため、人エージェントの生成や、目的地の設定、オブジェクティブの決定(とそのタイミング)を全てスクリプトで設定する必要がある。したがって、スクリプト122は、2のモジュール110および114に直接命令を出すことができるようになっている。
そして、上述のようにしてテストモードが呼び出されると、シミュレーション装置16のプロセサ(図示せず)は、図12の最初のステップS21で、スクリプト122のテストコードを1行(図11の英数字の行)読み込む。
読み取ったテストコードに基づいて、ステップS23、S29、S33、S37またはS41(S43)で、テストコードの内容を判断し、その結果に応じて、ステップS25、S31、S35、S39またはS45で所要の処理を、シミュレーション装置16の1または2以上のプロセサが実行する。そして、ステップS27でその結果をディスプレイ105(図1)に表示するとともに、ネットワーク(図示せず)から操作装置14へ出力する。したがって、開発者すなわちオペレータがそのテストコードに従った人エージェントの生成や行動を確認することができる。
詳しく説明すると、ステップS23では、ステップS21で読み取ったテストコードが人エージェントの生成命令であるかどうか、判断する。“YES”なら、ステップS25において、人生成モジュール110によって、人エージェントを初期値に生成させる。ただし、人エージェントは、人シミュレータ26の1ステップ毎に生成される。その後、ステップS27において、ステップS25でのテストコードの実行結果を、ディスプレイ105およびネットワークへ出力する。
ステップS27では、ステップS21で読み取ったテストコードが人エージェントの位置変更命令であるかどうか、判断する。“YES”なら、ステップS29において、移動モジュール114によって、指定した人エージェントの現在位置を変更させる。その後、ステップS27において、ステップS31でのテストコードの実行結果を、ディスプレイ105およびネットワークへ出力する。
ステップS31では、ステップS21で読み取ったテストコードが人エージェントの移動命令であるかどうか、判断する。“YES”なら、ステップS33において、移動モジュール114によって、指定した人エージェントの移動を開始させる。その後、ステップS27において、ステップS35でのテストコードの実行結果を、ディスプレイ105およびネットワークへ出力する。
ステップS35では、ステップS21で読み取ったテストコードがオブジェクティブの設定命令であるかどうか、判断する。“YES”なら、ステップS37において、シミュレーション装置16のプロセサが、オブジェクティブモデル116の中の対応するオブジェクティブを変更する。その後、ステップS27において、ステップS39でのテストコードの実行結果を、ディスプレイ105およびネットワークへ出力する。それによって、開発者は自分の設定したスクリプトに従ったシミュレーションを目視によって確認することができる。ただし、このオブジェクティブの変更は移動モジュール114によって行う。具体的には、先に説明したようにメモリに設定されているオブジェクティブをそのメモリから読み出し、該当する箇所のソースコードをキーボードなどを使って変更することによって、オブジェクティブを変更することができる。
ステップS39では、ステップS21で読み取ったテストコードが待機命令であるかどうか、判断する。“YES”なら、次のステップS43において、さらに待機条件(たとえば、テストコード1または8での設定時間の経過)が成立したかどうか判断する。“YES”なら、ステップS45で、ステップS27と同様に、そのテストコードの実行結果を、ディスプレイ105およびネットワークへ出力する。
図10および図12に示すように、スクリプト122とオブジェクティブ116を別々に実行可能とした理由は、スクリプトとオブジェクティブの目的(および抽象度)が異なるためである。
すなわち、スクリプト122は、「(複数の人エージェントの生成や行動変化を含む)特定の状況の再現」が目的であって、この中に、特定の状況を再現するための、(複数の)人エージェントの生成のタイミング,移動のタイミング、オブジェクティブの変更タイミングを記載したものであり、(スクリプトを使用しない)通常のシミュレーションでは利用できない。
これに対して、オブジェクティブ116は「1人の人エージェントがロボットの存在に対して行う反応行動」を記載して利用することを目的としている。そのため、オブジェクティブ116は、遷移確率さえ定義してしまえば、(スクリプトを使用しない)通常のシミュレーションで容易に使用することができる。
また,このように分類をすることで、スクリプトからは、オブジェクティブは下位の変更可能なライブラリとして見ることが可能になる。つまり、スクリプトによってオブジェクティブを使用することで、再現したい状況を簡単に記述することができる。
なお、このシミュレーションシステム10が行動をシミュレーションできるロボットは実施例で説明した図3および図4に示すロボット12に限定されるものではない。他の形式、構造のコミュニケーションロボットにもこのシミュレーション装置は適用可能である。
10 …シミュレーションシステム
12 …ロボット
14 …操作装置
16 …シミュレーション装置
18 …ロボットアプリケーションプログラム
22 …仮想シミュレーション空間
24 …ロボットシミュレータ
26 …人シミュレータ
28 …物理エンジン
116 …オブジェクティブモデル
122 …スクリプト

Claims (4)

  1. 仮想シミュレーション空間に投入した人エージェントの行動をシミュレーションするシミュレーションシステムであって、
    前記仮想シミュレーション空間に人エージェントを投入する人生成モジュール、
    第1命令セットに従って前記人エージェントにロボットの存在に対する反応行動を行わせる移動モジュール、および
    第2命令セットによって前記第1命令セットを部分的に変更することによって前記仮想シミュレーション空間において特定の状況を再現する状況再現手段を備える、シミュレーションシステム。
  2. 仮想シミュレーション空間に投入した人エージェントの行動をシミュレーションするシミュレーションシステムであって、
    前記仮想シミュレーション空間に人エージェントを投入する人生成モジュール、
    前記人エージェントにロボットの存在に対する反応行動を行わせる第1命令セットを設定する第1メモリ、
    前記第1メモリの前記第1命令セットに従って前記人エージェントの移動を制御する移動モジュール、および
    前記移動モジュールによって移動される人エージェントを含めて前記仮想シミュレーション空間を表示するディスプレイを備える、シミュレーションシステム。
  3. 前記第1命令セットより上位であって第1命令セットを部分的に変更可能な第2命令セットを設定する第2メモリをさらに備え、
    前記人生成モジュールおよび前記移動モジュールの少なくともいずれかが前記第2命令セットによって制御される、請求項2記載のシミュレーションシステム。
  4. 出現率に従って前記人生成モジュールによって前記仮想シミュレーション空間内に人エージェントを出現させる手段をさら備え、
    前記第2命令セットは前記出現率に関係なく前記人生成モジュールによって前記仮想シミュレーション空間内に人エージェントを出現させる、請求項記載のシミュレーションシステム。
JP2016238544A 2016-12-08 2016-12-08 シミュレーションシステム Active JP6809705B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016238544A JP6809705B2 (ja) 2016-12-08 2016-12-08 シミュレーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016238544A JP6809705B2 (ja) 2016-12-08 2016-12-08 シミュレーションシステム

Publications (2)

Publication Number Publication Date
JP2018097417A JP2018097417A (ja) 2018-06-21
JP6809705B2 true JP6809705B2 (ja) 2021-01-06

Family

ID=62632912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016238544A Active JP6809705B2 (ja) 2016-12-08 2016-12-08 シミュレーションシステム

Country Status (1)

Country Link
JP (1) JP6809705B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814478B (zh) * 2019-01-14 2020-04-24 浙江工业大学 基于iOpenWorks的虚拟调试***
JP7335084B2 (ja) * 2019-03-27 2023-08-29 株式会社国際電気通信基礎技術研究所 シミュレーション装置およびプログラム
JP7258426B2 (ja) * 2019-03-29 2023-04-17 株式会社国際電気通信基礎技術研究所 シミュレーションシステム、シミュレーションプログラムおよび学習装置
JP7124797B2 (ja) * 2019-06-28 2022-08-24 トヨタ自動車株式会社 機械学習方法および移動ロボット
CN113535591B (zh) * 2021-09-13 2021-12-14 季华实验室 机器人程序的验证方法、装置、电子设备及存储介质
CN113848759A (zh) * 2021-10-11 2021-12-28 江苏汇博机器人技术股份有限公司 一种机器人搬运仿真***及其搬运方法

Also Published As

Publication number Publication date
JP2018097417A (ja) 2018-06-21

Similar Documents

Publication Publication Date Title
JP6809705B2 (ja) シミュレーションシステム
JP6793905B2 (ja) ロボットの行動シミュレーション装置
US20210205980A1 (en) System and method for reinforcing programming education through robotic feedback
KR101880775B1 (ko) 자연스러운 대화 인터페이스가 장착된 인간형 로봇, 이러한 로봇의 제어 방법 및 대응 프로그램
JP5318623B2 (ja) 遠隔操作装置および遠隔操作プログラム
US9135392B2 (en) Semi-autonomous digital human posturing
JP7139643B2 (ja) ロボット、ロボットの制御方法及びプログラム
KR20120072126A (ko) 간접체험을 위한 비주얼 서로게이트와 그 공급 장치 및 방법
WO2017141891A1 (ja) シミュレーションシステム及びゲームシステム
JP7335084B2 (ja) シミュレーション装置およびプログラム
CN112017488B (zh) 一种基于ar的教育机器人***及学习方法
Das et al. GeroSim: A simulation framework for gesture driven robotic arm control using Intel RealSense
JP2017170568A (ja) サービス提供ロボットシステム
JP7258426B2 (ja) シミュレーションシステム、シミュレーションプログラムおよび学習装置
JP6925013B2 (ja) シミュレーションシステム
US20130311969A1 (en) Systems and Methods for Runtime Control of Hierarchical Objects
JP6908257B2 (ja) ロボットおよびロボット制御プログラム
JP5419007B2 (ja) コミュニケーションロボット開発支援装置
CN110403409A (zh) 一种机器人及商品展示方法
Mehdi et al. A Simulated Environment for Elderly Care Robot.
JP2018144118A (ja) 案内ロボット
Ceralli ANALYSIS AND COMPARISON OF SPEECH-BASED TELEPORTATION TECHNIQUES FOR IMMERSIVE VIRTUAL REALITY
JP2001134362A (ja) 人形型インタフェース仮想空間ウォークスルーシステム
Onishi et al. Development of PC-based 3D dynamic human interactive robot simulator
LANGDUN et al. Building a Vision-Based AI Demonstrator with Unitree A1 Quadruped Robot

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201203

R150 Certificate of patent or registration of utility model

Ref document number: 6809705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250