IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特開2024-14496異常検出装置、異常検出方法、及びプログラム
<>
  • 特開-異常検出装置、異常検出方法、及びプログラム 図1
  • 特開-異常検出装置、異常検出方法、及びプログラム 図2
  • 特開-異常検出装置、異常検出方法、及びプログラム 図3
  • 特開-異常検出装置、異常検出方法、及びプログラム 図4
  • 特開-異常検出装置、異常検出方法、及びプログラム 図5
  • 特開-異常検出装置、異常検出方法、及びプログラム 図6
  • 特開-異常検出装置、異常検出方法、及びプログラム 図7
  • 特開-異常検出装置、異常検出方法、及びプログラム 図8
  • 特開-異常検出装置、異常検出方法、及びプログラム 図9
  • 特開-異常検出装置、異常検出方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024014496
(43)【公開日】2024-02-01
(54)【発明の名称】異常検出装置、異常検出方法、及びプログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20240125BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022117369
(22)【出願日】2022-07-22
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人情報通信研究機構「革新的情報通信技術研究開発委託研究/Beyond 5G研究開発促進事業/Beyond 5Gで実現する同期型CPSコンピューティング基盤の研究開発」産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】山根 浩義
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707BS09
3C707JS03
3C707KS15
3C707KS16
3C707KS20
3C707KS38
3C707KT02
3C707KT06
3C707KT17
3C707LS15
3C707LS20
3C707MS21
3C707MT06
(57)【要約】
【課題】ロボットの異常を検出する新たな技術を提供する。
【解決手段】異常検出装置2000は、ロボット10の動作計画20と、実映像40とを取得する。実映像40は、動作計画20に従って動作するロボット10をカメラ30で撮像することで生成された映像である。異常検出装置2000は、動作計画20を用いてシミュレートされたロボット10の映像であるシミュレーション映像50を生成する。異常検出装置2000は、実映像40とシミュレーション映像50との比較により、ロボット10に異常があるか否かを判定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得手段と、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成手段と、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定手段と、を有する異常検出装置。
【請求項2】
前記判定手段は、前記実映像と前記シミュレーション映像の類似度を算出し、その類似度が閾値以下である場合に、前記ロボットに異常があると判定する、請求項1に記載の異常検出装置。
【請求項3】
前記動作計画は、時刻と、その時刻において前記ロボットに行わせるべき動作との対応付けを複数示しており、
前記シミュレーション映像生成手段は、
前記ロボットの3次元モデルを取得し、
前記動作計画に示されている複数の時刻それぞれについて、その時刻における前記3次元モデルの状態を、その時刻に対応する動作に基づく状態に変化させることにより、前記シミュレーション映像を生成する、請求項1又は2に記載の異常検出装置。
【請求項4】
前記取得手段は、複数の期間それぞれについて、複数の前記カメラの中から、その期間についての前記実映像を取得すべきカメラである対象カメラを特定し、前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成手段は、複数の前記期間それぞれについて、その期間において前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、請求項1又は2に記載の異常検出装置。
【請求項5】
前記取得手段は、
複数の期間それぞれについて前記対象カメラを示すカメラ計画情報を取得し、
前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成手段は、前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、請求項4に記載の異常検出装置。
【請求項6】
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得ステップと、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成ステップと、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定ステップと、を有する、コンピュータによって実行される異常検出方法。
【請求項7】
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得ステップと、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成ステップと、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定ステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常検出装置、異常検出方法、及びプログラムに関する。
【背景技術】
【0002】
ロボットの動作を監視する技術が開発されている。例えば特許文献1は、予め正常状態で動作させたロボットアームが撮像された撮像画像と、運用時に動作させたロボットアームが撮像された撮像画像との間で、ロボットアームの動作範囲を比較することにより、ロボットアームの異常の有無を判定する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-187641号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術を導入する場合、ロボットアームの運用を開始する前に、予め正常状態のロボットアームの動作を撮像しておかなければならない。本開示の目的は、ロボットの異常を検出する新たな技術を開示することがである。
【課題を解決するための手段】
【0005】
本開示の異常検出装置は、ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得手段と、前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成手段と、前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定手段と、を有する。
【0006】
本開示の異常検出方法はコンピュータによって実行される。当該異常検出方法は、ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得ステップと、前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成ステップと、前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定ステップと、を有する。
【0007】
本開示のプログラムは、本開示の異常検出方法をコンピュータに実行させる。
【発明の効果】
【0008】
本開示によれば、ロボットの異常を検出する新たな技術が提供される。
【図面の簡単な説明】
【0009】
図1】実施形態の異常検出装置の動作の概要を例示する図である。
図2】異常検出装置の機能構成を例示するブロック図である。
図3】異常検出装置を実現するコンピュータのハードウエア構成を例示するブロック図である。
図4】異常検出装置によって実行される処理の流れを例示するフローチャートである。
図5】動作計画を例示する図である。
図6】ロボットの撮像に適したカメラがロボットの位置によって変わるケースを例示する図である。
図7】ロボット10の撮像に適したカメラがロボットの姿勢によって変わるケースを例示する図である。
図8】カメラ計画情報を例示する図である。
図9】実映像が所定の時間長ごとに分割されるケースを例示する図である。
図10】実映像がロボットの動作ごとに分割されるケースを例示する図である。
【発明を実施するための形態】
【0010】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。また、特に説明しない限り、所定値や閾値などといった予め定められている値は、その値を利用する装置からアクセス可能な記憶装置などに予め格納されている。さらに、特に説明しない限り、記憶部は、1つ以上の任意の数の記憶装置によって構成される。
【0011】
<概要>
図1は、実施形態の異常検出装置2000の概要を例示する図である。ここで、図1は、異常検出装置2000の概要の理解を容易にするための図であり、異常検出装置2000の動作は、図1に示したものに限定されない。
【0012】
異常検出装置2000は、実映像40とシミュレーション映像50という2種類の映像を利用して、動作計画20に基づいて動作するロボット10の異常を検出する。実映像40は、実際のカメラ30でロボット10を撮像することによって生成される映像である。一方、シミュレーション映像50は、動作計画20を利用してシミュレートされたロボット10の映像である。
【0013】
ロボット10は、動作計画20に基づいて、1つ以上の動作を行うように構成されている。動作計画20は、ロボット10について、「いつ、どのような動作をするのか」を1つ以上示している。言い換えれば、動作計画20は、(時刻,その時刻にロボット10によって行われるべき動作)という対応付けを1つ以上示している。動作計画20に基づいて動作するロボット10は、動作計画20に示されている1つ以上の時刻それぞれにおいて、その時刻に対応づけられている動作を実行する。
【0014】
ロボット10は、工場や倉庫などといった任意の場所で利用されうる。以下、ロボット10が利用される場所のことを「対象施設」と呼ぶ。対象施設は、屋内の場所であってもよいし、屋外の場所であってもよい。
【0015】
対象施設には、ロボット10を撮像可能な態様で、カメラ30が存在する。カメラ30は、撮像を行い、その結果を表す実映像40を生成する。
【0016】
カメラ30は、その撮像範囲が固定されているカメラ(以下、固定カメラ)であってもよいし、その撮像範囲が変化しうるカメラ(以下、非固定カメラ)であってもよい。固定カメラは、例えば、対象施設の特定の位置(壁や天井など)に取り付けられており、なおかつ、画角が固定されているカメラである。非固定カメラは、例えば、対象施設の特定の位置に取り付けられており、なおかつ、その画角を変更可能なカメラ(例えば、PTZ カメラ)である。その他にも例えば、非固定カメラは、警備員やドローンなどのような移動物体に取り付けられているカメラであってもよい。
【0017】
異常検出装置2000は、動作計画20を利用してシミュレーション映像50を生成する。シミュレーション映像50は、ロボット10が、動作計画20に従って異常なしに動作し、その動作がカメラ30によって撮像された場合に生成されると予測される映像である。ただし、異常検出装置2000によるシミュレーションでは、ロボット10の動作がシミュレートされればよく、必ずしも背景までシミュレートされる必要はない。
【0018】
異常検出装置2000は、カメラ30によって生成された実映像40と、シミュレーションによって生成されたシミュレーション映像50とを比較することで、ロボット10に異常があるかどうかを判定する。ここでいう「ロボット10の異常」とは、ロボット10の状態が、動作計画20に従って動作した場合の状態とは異なる状態となっていることを意味する。
【0019】
ここで、ロボット10が動作計画20に従って動作すれば、実映像40とシミュレーション映像50との類似度合いは高くなると予測される。一方で、ロボット10が動作計画20に従わずに動作した場合、実映像40とシミュレーション映像50の類似度合いは低くなると予測される。
【0020】
そこで異常検出装置2000は、実映像40とシミュレーション映像50との類似度合いを算出し、その類似度合いに基づいて、ロボット10に異常があるかどうかを判定する。例えば、或る期間における実映像40とシミュレーション映像50との類似度合いが所定の閾値以下である場合、少なくともその期間について、ロボット10の異常が検出される。
【0021】
<作用効果の例>
本実施形態の異常検出装置2000によれば、動作計画20に従うロボット10を実際に撮像することで得られる実映像40と、動作計画20を用いたロボット10の動作のシミュレーションによって得られるシミュレーション映像50との比較により、ロボット10の異常の有無が判定される。このように、異常検出装置2000によれば、ロボットの異常を検出する新たな技術が提供される。
【0022】
また、シミュレーション映像50を利用したロボット10の異常検出には、以下のような利点がある。まず、特許文献1に開示されている技術では、正常状態のロボットが動作している様子を予めカメラで撮像しておかなければならない。そのため、ロボットを導入する際の作業負荷が大きくなる。これに対し、異常検出装置2000を利用する場合、正常状態のロボット10が動作している様子を予めカメラで撮像するという作業は不要である。そのため、特許文献1の技術と比較し、ロボット10を導入する際の作業負荷が小さい。
【0023】
また、複雑な動作が可能なロボット(例えば、稼働部位が多いロボット)の場合、ロボットが行いうる動作の種類が膨大になりうる。このようなケースでは、特許文献1の技術を導入しようとすると、ロボットが正常な状態であることが保証されている間(例えば、ロボットの運用開始前)に、ロボットが行いうる全ての動作をカメラで撮像しておく必要がある。この作業は、膨大な時間を要すると考えられる。よって、複雑な動作が可能なロボットを扱う場合、特許文献1の技術を導入することが難しいケースがあると推測される。
【0024】
これに対し、異常検出装置2000を導入する場合、このような膨大な時間を要することにはならない。まず異常検出装置2000を利用する場合、正常な状態のロボット10を実際に動作させて撮像を行う必要はない。また、シミュレーションについては、ロボット10に実際に行わせる動作(動作計画20に示されている動作)に関してシミュレーションを行えばよく、ロボット10が行いうる動作の全てについてシミュレーションを行う必要はない。そのため、シミュレーションに要する時間が膨大になることもない。よって、異常検出装置2000では、複雑な動作が可能なロボットであっても、異常検出の対象にすることができる。
【0025】
以下、本実施形態の異常検出装置2000について、より詳細に説明する。
【0026】
<機能構成の例>
図2は、実施形態の異常検出装置2000の機能構成を例示するブロック図である。異常検出装置2000は、取得部2020、シミュレーション映像生成部2040、及び判定部2060を有する。取得部2020は、動作計画20及び実映像40を取得する。シミュレーション映像生成部2040は、動作計画20を用いてシミュレーション映像50を生成する。判定部2060は、実映像40とシミュレーション映像50との比較により、ロボット10に異常があるか否かを判定する。
【0027】
<ハードウエア構成の例>
異常検出装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、異常検出装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0028】
図3は、異常検出装置2000を実現するコンピュータ1000のハードウエア構成を例示するブロック図である。コンピュータ1000は、任意のコンピュータである。例えばコンピュータ1000は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ1000は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。その他にも例えば、コンピュータ1000は、SoC(System on Chip)などの集積回路である。コンピュータ1000は、異常検出装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。
【0029】
例えば、コンピュータ1000に対して所定のアプリケーションをインストールすることにより、コンピュータ1000で、異常検出装置2000の各機能が実現される。上記アプリケーションは、異常検出装置2000の各機能構成部を実現するためのプログラムで構成される。なお、上記プログラムの取得方法は任意である。例えば、当該プログラムが格納されている記憶媒体(DVD ディスクや USB メモリなど)から、当該プログラムを取得することができる。その他にも例えば、当該プログラムが格納されている記憶装置を管理しているサーバ装置から、当該プログラムをダウンロードすることにより、当該プログラムを取得することができる。
【0030】
コンピュータ1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
【0031】
プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)、DSP(Digital Signal Processor)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0032】
入出力インタフェース1100は、コンピュータ1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0033】
ネットワークインタフェース1120は、コンピュータ1000をネットワークに接続するためのインタフェースである。このネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
【0034】
ストレージデバイス1080は、異常検出装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ1040は、このプログラムをメモリ1060に読み出して実行することで、異常検出装置2000の各機能構成部を実現する。
【0035】
異常検出装置2000は、1つのコンピュータ1000で実現されてもよいし、複数のコンピュータ1000で実現されてもよい。後者の場合において、各コンピュータ1000の構成は同一である必要はなく、それぞれ異なるものとすることができる。
【0036】
<処理の流れ>
図4は、実施形態の異常検出装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、動作計画20を取得する(S102)。取得部2020は、実映像40を取得する(S104)。シミュレーション映像生成部2040は、動作計画20を用いてシミュレーション映像50を生成する(S106)。判定部2060は、実映像40とシミュレーション映像50を用いて、ロボット10に異常があるか否かを判定する(S108)。
【0037】
ここで、異常検出装置2000によって実行される処理の流れは、図1に示した流れに限定されない。例えば、S102、S104、及びS106の実行順序は、動作計画20の取得がシミュレーション映像50の生成よりも前に行われる限りにおいて(すなわち、S106よりも先にS102が行われる限りにおいて)、任意の順序とすることができる。
【0038】
<動作計画20の取得:S102>
取得部2020は動作計画20を取得する(S102)。前述したように、動作計画20は、1つ以上の時刻それぞれについて、(時刻,その時刻にロボット10によって実行されるべき動作)という対応付けを示す。図5は、動作計画20を例示する図である。図5において、動作計画20は、時刻22と動作24との対応付けを示す。
【0039】
時刻22は、ロボット10によって特定の動作が実行されるべき時刻を特定可能な情報を示す。時刻22は、動作計画20に示されている最初の時刻などといった特定の時刻を基準時刻(例えば時刻0)とする相対時刻を示してもよいし、現実の日時である絶対時刻を示してもよい。
【0040】
動作24は、ロボット10によって行われるべき動作を特定可能な情報を示す。例えば動作24は、ロボット10の位置及び姿勢を示す。時刻22と動作24との複数のペアにより、ロボット10の位置及び姿勢の変化を表すことで、ロボット10の動作を表すことができる。ロボット10の姿勢は、例えば、稼働可能なロボット10の部位の姿勢パラメータ(3次元の回転軸それぞれについての角度など)で特定される。稼働可能な部位が複数ある場合、例えば動作24は、その姿勢を変化させる必要のある1つ以上の部位それぞれについて、その姿勢パラメータを示す。なお、ロボット10の位置が固定されている場合、動作24は、ロボット10の位置を示さなくてもよい。
【0041】
その他にも例えば、動作24は、ロボット10の動作を制御する制御コンピュータが解釈可能な態様で、ロボット10に行わせる動作を表す。制御コンピュータは、ロボット10の内部に設けられていてもよいし、ロボット10の外部に設けられていてもよい。例えばこの場合、動作24は、ロボット10に特定の動作を行わせるためのコマンドを示す。また、コマンドに対して引数を指定する必要がある場合、動作24は、コマンドと引数の組み合わせを示す。
【0042】
取得部2020が動作計画20を取得する方法は任意である。例えば動作計画20は、異常検出装置2000からアクセス可能な記憶部に予め格納されている。この場合、取得部2020は、この記憶部にアクセスして、動作計画20を取得する。この記憶部は、ロボット10の内部に設けられていてもよいし、ロボット10の外部に設けられていてもよい。その他にも例えば、取得部2020は、他の装置から送信された動作計画20を受信することにより、動作計画20を取得する。当該他の装置は、ロボット10であってもよいし、ロボット10以外であってもよい。
【0043】
ここで、ロボット10によって行われる動作は、1つの動作計画20にまとめて示されていてもよいし、複数の動作計画20に分けて示されていてもよい。後者の場合、取得部2020は、これら複数の動作計画20を一度にまとめて取得してもよいし、それぞれ異なるタイミングで取得してもよい。
【0044】
<実映像40の取得:S104>
取得部2020は実映像40を取得する(S104)。取得部2020が実映像40を取得する方法は様々である。例えば実映像40は、異常検出装置2000からアクセス可能な記憶部に予め格納されている。この場合、取得部2020は、この記憶部にアクセスして、実映像40を取得する。この記憶部は、カメラ30の内部に設けられていてもよいし、カメラ30の外部に設けられていてもよい。その他にも例えば、取得部2020は、他の装置から送信された実映像40を受信することにより、実映像40を取得する。当該他の装置は、カメラ30であってもよいし、カメラ30以外であってもよい。
【0045】
ロボット10によって行われる一連の動作は、1つの実映像40に撮像されていてもよいし、複数の実映像40に分けて撮像されていてもよい。後者の場合、取得部2020は、複数の実映像40を一度に取得してもよいし、それぞれ異なるタイミングで取得してもよい。
【0046】
また、取得部2020は、実映像40を構成する複数のビデオフレームを順次取得することにより、実映像40を取得してもよい。例えばカメラ30は、動画フレームを生成する度に、その動画フレームを異常検出装置2000へ送信するように構成される。この場合、取得部2020は、カメラ30から送信される動画フレームを取得し、異常検出装置2000の内部において複数の動画フレームから実映像40を生成することにより、実映像40を取得することができる。なお、取得部2020は、カメラ30から送信された複数の動画フレームから、1つの実映像40を生成してもよいし、複数の実映像40を生成してもよい。後者の場合、例えば取得部2020は、所定数のビデオフレームを取得する度に、それらのビデオフレームから実映像40を生成する。これにより、30秒や1分などといった所定の時間長ごとに、実映像40が生成される。
【0047】
<<カメラ30が複数設けられるケースについて>>
対象施設において、カメラ30は複数設けられてもよい。ロボット10が対象施設内を移動する場合、ロボット10の動作の撮像に適した位置は、ロボット10の位置や姿勢に依存する。そのため、対象施設内に複数のカメラ30を設けておき、ロボット10の位置や姿勢に応じて、ロボット10の異常の検出に利用するカメラ30を切り替えることが好適である。
【0048】
図6は、ロボット10の撮像に適したカメラ30がロボット10の位置によって変わるケースを例示する図である。図6では、カメラ30-1からカメラ30-3という3つのカメラ30が設けられている。
【0049】
ロボット10は、矢印70に従って移動する。時刻t1、t2、t3、及びt4におけるロボット10の位置はそれぞれ、位置P1、P2、P3、及びP4である。
【0050】
ここで、位置P1からP2の範囲に位置するロボット10の撮像には、カメラ30-1が最も適している。また、位置P2からP3の範囲に位置するロボット10の撮像には、カメラ30-2が最も適している。そして、位置P3からP4の範囲に位置するロボット10の撮像には、カメラ30-3が最も適している。このように、ロボット10の撮像に適したカメラ30は、ロボット10の位置によって変化しうる。
【0051】
図7は、ロボット10の撮像に適したカメラ30がロボット10の姿勢によって変わるケースを例示する図である。図7では、カメラ30-1とカメラ30-2という2つのカメラ30が設けられている。
【0052】
ロボット10が図7における左方を向いて動作(例えば、左方にアームを伸ばして物を取る動作など)を行っている間、ロボット10の撮像には、カメラ30-1が最も適している。一方、ロボット10が図7における右方を向いて動作(例えば、右方にアームを伸ばして物を取る動作など)を行っている間、ロボット10の撮像には、カメラ30-2が最も適している。このように、ロボット10の撮像に適したカメラ30は、ロボット10の姿勢によっても変化しうる。
【0053】
このことから、複数のカメラ30が設けられている場合、例えば取得部2020は、複数のカメラ30の中から、利用すべきカメラ30(以下、対象カメラ)を特定する。そして、取得部2020は、対象カメラから実映像40を取得する。
【0054】
異常検出装置2000が利用すべきカメラ30は、時間と共に変化しうる。そのため、対象カメラは、その対象カメラを利用すべき期間と対応づけて特定される。
【0055】
期間と対象カメラとの対応関係を特定する方法は様々である。例えば取得部2020は、期間と対象カメラの識別情報とを対応づけた情報(以下、カメラ計画情報)を利用して、期間ごとの対象カメラを特定する。図8はカメラ計画情報を例示する図である。カメラ計画情報60は、期間62とカメラ識別情報64とを対応づけている。期間62は、対応する対象カメラを利用すべき期間を示す。カメラ識別情報64は、対象カメラの識別情報を示す。
【0056】
図8では、図6のケースに対応したカメラ計画情報60が例示されている。例えば前述したように、図6のケースにおいて、位置P1からP2の範囲に位置するロボット10の撮像には、カメラ30-1が最も適している。そして、ロボット10の位置がP1からP2の間にある期間は、時刻t1からt2である。そのため、図8のカメラ計画情報60の一行目のレコードにおいて、時刻t1からt2という期間62に対応するカメラ識別情報64には、カメラ30-1の識別情報が示されている。
【0057】
取得部2020は、カメラ計画情報60を利用して、複数の期間それぞれに対応する実映像40を取得する。具体的には、取得部2020は、カメラ計画情報60に示されている複数の期間62それぞれについて、その期間62に対応するカメラ識別情報64を特定する。そして、取得部2020は、特定したカメラ識別情報64で特定されるカメラ30によって生成された実映像40を取得する。
【0058】
カメラ計画情報60は、人手で作成されてもよいし、動作計画20に基づいてコンピュータによって生成されてもよい。後者の場合、カメラ計画情報60を生成するコンピュータは、異常検出装置2000であってもよいし、異常検出装置2000以外の装置であってもよい。
【0059】
異常検出装置2000が人手で作成されたり、異常検出装置2000以外の装置によって生成されたりする場合、カメラ計画情報60は、異常検出装置2000からアクセス可能な記憶部に予め格納されている。一方、カメラ計画情報60が異常検出装置2000によって生成される場合、異常検出装置2000は、取得した動作計画20を用いて、カメラ計画情報60を生成する。以下では一例として、カメラ計画情報60が異常検出装置2000によって生成されるものとして説明する。なお、カメラ計画情報60を生成する異常検出装置2000の機能構成部を、カメラ計画情報生成部と呼ぶ(図示せず)。
【0060】
取得部2020は、動作計画20を用いて、ロボット10の位置、姿勢、又は双方の時間変化を特定する。さらに取得部2020は、動作計画20に示されている最初の時刻から最後の時刻までの期間(以下、ロボット10の動作期間)に含まれる複数の時刻それぞれについて、その時刻におけるロボット10の撮像に適したカメラ30を、対象カメラとして特定する。例えば対象カメラは、ロボット10の動作期間から所定のインターバルで抽出される複数の時刻それぞれについて特定される。さらに、取得部2020は、対象カメラが互いに同一であり、なおかつ、時間軸上で連続する時刻の集合を、その対象カメラに対応する期間として特定する。以上の処理により、ロボット10の動作期間に含まれる複数の期間それぞれについて、期間と対象カメラとの対応付け、すなわち、カメラ計画情報60が生成される。
【0061】
なお、或る時刻においてロボット10の撮像に最も適したカメラ30を特定する方法は任意である。例えば異常検出装置2000は、或る時刻において、ロボット10が撮像範囲に含まれ、なおかつ、撮像されるべきロボット10の部位(例えばアーム)が向いている方向に位置するカメラ30を、ロボット10の撮像に最も適したカメラ30として特定する。
【0062】
<シミュレーション映像50の生成:S106>
シミュレーション映像生成部2040は、動作計画20を用いて、シミュレーション映像50を生成する(S106)。例えばシミュレーション映像生成部2040は、動作計画20と、仮想3次元空間上に配置されたロボット10の3次元モデル(以下、仮想ロボット)とを用いて、シミュレーション映像50を生成する。仮想ロボットを表すデータは、異常検出装置2000からアクセス可能な記憶部に予め格納しておく。
【0063】
より具体的には、シミュレーション映像生成部2040は、動作計画20を用いて、実空間において予定されているロボット10の位置及び姿勢の変化(すなわち動作)を、仮想3次元空間における仮想ロボットの位置及び姿勢の変化によってシミュレートする。そして、シミュレーション映像生成部2040は、仮想3次元空間における仮想ロボットの動作を、仮想3次元空間に配置された仮想カメラによって仮想的に撮像することにより、シミュレーション映像50を生成する。
【0064】
仮想カメラは、実空間上のカメラ30に相当する仮想的なカメラである。仮想3次元空間における仮想カメラの位置及びカメラパラメータ(画角や焦点距離など)は、実空間上におけるカメラ30の位置及びカメラパラメータを、仮想3次元空間上で再現したものである。
【0065】
ここで、仮想3次元空間上に配置された仮想的なカメラにより、その仮想3次元空間上に配置された仮想的な物体を仮想的に撮像することで得られる映像を生成する技術には、3次元CG(Computer Graphics)ソフトウエアなどで利用されている技術を利用することができる。
【0066】
仮想ロボットは、ロボット10の動作の異常を検出するために必要な粒度でロボット10が再現された3次元モデルであればよく、ロボット10が完全に再現された3次元モデルでなくてもよい。例えば仮想ロボットでは、ロボット10の形状と大きさが再現されていればよく、ロボット10の色やテクスチャなどは再現されていなくてもよい。
【0067】
実空間におけるロボット10の動作を仮想3次元空間上でシミュレートする具体的な方法は様々である。例えば動作計画20において、ロボット10の動作が、ロボット10の姿勢パラメータで表されているとする。この場合、例えばシミュレーション映像生成部2040は、動作計画20に示されている複数の時刻それぞれに対応するシミュレーション時刻において、仮想ロボットの姿勢を、当該時刻に対応づけられている姿勢パラメータで特定される姿勢に変化させる。
【0068】
その他にも例えば、動作24が、ロボット10に実行させる動作を表すコマンドを示しているとする。この場合、シミュレーション映像生成部2040は、動作計画20に示されている複数の時刻それぞれに対応するシミュレーション時刻について、コマンドの実行による仮想ロボットの姿勢変化を特定することにより、仮想ロボットの姿勢を変化させる。コマンドの実行によるロボット10の姿勢変化は、例えば、ロボット10の制御をシミュレートするためのシミュレーションソフトウエアなどを利用することにより、特定することができる。
【0069】
なお、前述したように、ロボット10の動作により、ロボット10の位置が変化する場合もある。この場合、シミュレーション映像生成部2040は、動作計画20を用いて、仮想ロボットの姿勢に加え、仮想3次元空間上における仮想ロボットの位置も変化させる。
【0070】
なお、シミュレーション映像生成部2040は、対象施設の3次元モデル(以下、仮想施設)をさらに利用することで、ロボット10の背景をさらにシミュレートしてもよい。この場合、シミュレーション映像生成部2040は、仮想施設上に仮想ロボットと仮想カメラを配置することにより、実空間の対象施設におけるロボット10とカメラ30をシミュレートする。
【0071】
<<カメラ30が非固定カメラであるケースについて>>
カメラ30が非固定カメラである場合、カメラ30の位置やカメラパラメータが時間と共に変化しうる。そこで例えば、シミュレーション映像生成部2040は、時刻と、その時刻におけるカメラ30の位置及びカメラパラメータとを対応づけた情報(以下、カメラ動作情報)を取得する。カメラ動作情報は、例えば、カメラ30の動作のログで実現される。そしてシミュレーション映像生成部2040は、カメラ動作情報に示されている複数の時刻それぞれに対応するシミュレーション時刻について、カメラ動作情報に示されているカメラ30の位置及びカメラパラメータに基づいて、仮想カメラの位置及びカメラパラメータを設定する。これにより、その位置や画角が変化する PTZ カメラやドローンに設けられているカメラなどによってロボット10が撮像されるケースについてもシミュレーション映像50を生成することができる。
【0072】
<<カメラ30が複数設けられるケースについて>>
カメラ30が複数設けられる場合、シミュレーションにおいて、これら複数のカメラ30それぞれに対応する仮想カメラが利用される。例えばシミュレーション映像生成部2040は、複数のカメラ30の中から特定のカメラ30を選択し、選択したカメラ30に対応する仮想カメラを利用して、シミュレーション映像50を生成する。
【0073】
例えばシミュレーション映像生成部2040は、前述したカメラ計画情報60を利用して、シミュレーション映像50の生成に利用する仮想カメラ(前述した対象カメラ)を選択する。カメラ計画情報60は、期間62と、その期間62に利用すべきカメラ30である対象カメラとを対応づけている。シミュレーション映像生成部2040は、カメラ計画情報60に示されている複数の期間62それぞれについて、その期間62に対応するカメラ識別情報64で特定される仮想カメラを利用して、シミュレーション映像50を生成する。カメラ識別情報64で特定される仮想カメラとは、そのカメラ識別情報64で特定されるカメラ30が再現された仮想カメラである。
【0074】
<<複数の実映像40が取得されるケースについて>>
取得部2020は、それぞれ異なる期間に行われたロボット10の動作が含まる複数の実映像40を取得しうる。この場合、シミュレーション映像生成部2040は、各実映像40に対応するシミュレーション映像50を生成することが好ましい。
【0075】
例えば取得部2020が、時刻t1 からt2におけるロボット10の動作が記録された実映像R1と、時刻t2からt3におけるロボット10の動作が記録された実映像R2とを取得したとする。この場合、シミュレーション映像生成部2040は、時刻t1からt2におけるロボット10の動作がシミュレートされたシミュレーション映像S1と、時刻t2からt3におけるロボット10の動作がシミュレートされたシミュレーション映像S2とを生成する。そして、実映像R1とシミュレーション映像S1との比較、及び実映像R2とシミュレーション映像S2との比較がそれぞれ行われる。
【0076】
<異常検出:S108>
判定部2060は、実映像40とシミュレーション映像50を用いて、ロボット10に異常があるか否かを判定する(S108)。具体的には、判定部2060は、実映像40とシミュレーション映像50との間の類似度を算出し、算出した類似度に基づいて、ロボット10に異常があるか否かを判定する。例えば判定部2060は、算出した類似度が閾値以下である場合に、ロボット10に異常があると判定する。一方、判定部2060は、算出した類似度が閾値より大きい場合、ロボット10に異常がないと判定する。
【0077】
例えば判定部2060は、実映像40とシミュレーション映像50の各動画フレームから、エッジ検出などの技術により、ロボット10の外形を抽出する。さらに判定部2060は、複数の時刻それぞれについて、その時刻における実映像40の動画フレームから抽出されたロボット10の外形と、その時刻におけるシミュレーション映像50の動画フレームから抽出されたロボット10の外形との類似度を算出する。そして、判定部2060は、各時刻について算出された動画フレーム間の類似度を用いて、実映像40とシミュレーション映像50の類似度を算出する。実映像40とシミュレーション映像50の類似度は、例えば、各動画フレーム間で算出されたロボット10の外形の類似度の統計値(平均値など)として算出される。
【0078】
その他にも例えば、判定部2060は、学習済みの機械学習モデルを利用して、実映像40とシミュレーション映像50の類似度を算出してもよい。機械学習モデルとしては、例えば、3D CNN(Convolutional Neural Network)などを利用することができる。例えば判定部2060は、実映像40とシミュレーション映像50のそれぞれを機械学習モデルに入力することにより、実映像40とシミュレーション映像50それぞれの特徴量を得る。そして判定部2060は、これらの特徴量間の類似度を、実映像40とシミュレーション映像50の類似度として算出する。ここで、特徴量間の類似度を算出する技術には、既存の種々の技術を利用することができる。
【0079】
実映像40とシミュレーション映像50は、開始時刻が互いに一致していない可能性がある。そこで判定部2060は、実映像40とシミュレーション映像50との間で、時間軸上の位置合わせを行うことが好適である。
【0080】
動作計画20に示されている各動作の時刻が絶対時刻で表されているとする。この場合、判定部2060は、実映像40から、動作計画20に示されている最初の動作の時刻以前の映像を取り除く。これにより、実映像40とシミュレーション映像50との間で、開始時刻が一致する。一方、動作計画20に示されている各動作の時刻が、最初の動作の時刻を基準時刻とする相対時刻で表されているとする。この場合、判定部2060は、基準時刻に対応する絶対時刻を特定し、実映像40から、当該絶対時刻以前の映像を取り除く。ここで、ロボット10の動作が開始された絶対時刻は、ロボット10や、ロボット10に対して動作計画20に基づいた動作を指示する制御コンピュータなどから得ることができる。
【0081】
実映像40が複数取得される場合、例えば判定部2060は、複数の実映像40それぞれを、対応するシミュレーション映像50と比較する。例えば前述したように複数のカメラ30が利用される場合、カメラ計画情報60を利用して、複数の期間それぞれに対応する対象カメラから実映像40が取得される。また、カメラ計画情報60を利用して、各実映像40に対応するシミュレーション映像50が生成される。そこで判定部2060は、互いに対応する実映像40とシミュレーション映像50との比較を行うことで、実映像40とシミュレーション映像50のペアごとに、ロボット10の異常の有無を判定する。
【0082】
判定部2060は、実映像40を複数に分割してもよい。この場合、判定部2060は、当該分割によって得られた複数の実映像(以下、部分実映像)を、それぞれに対応するシミュレーション映像と比較する。これにより、部分実映像ごとに、ロボット10の異常の有無が判定される。
【0083】
このように実映像40を複数に分割することは、ロボット10が短い期間だけ異常な動作をするケースで特に有効である。ロボット10が異常な動作をする期間が短い場合、実映像40の全体をシミュレーション映像50と比較すると、実映像40とシミュレーション映像50の類似度が高くなってしまう可能性があるためである。
【0084】
実映像40を複数に分割する方法は様々である。例えば判定部2060は、実映像40を所定の時間長ごとの部分実映像に分割する。図9は、実映像40が所定の時間長ごとに分割されるケースを例示する図である。図9において、実映像40は、時間長Lごとに部分実映像42に分割されている。判定部2060は、時間長Lごとのシミュレーション映像50を、対応する部分実映像42と比較する。
【0085】
シミュレーション映像生成部2040は、実映像40に対応するシミュレーション映像50を生成してもよいし、各部分実映像42に対応するシミュレーション映像50を生成してもよい。前者の場合、判定部2060は、実映像40と同様に、シミュレーション映像50についても、時間長Lごとの映像に分割する。
【0086】
その他にも例えば、判定部2060は、実映像40を所定個の部分実映像42に分割してもよい(図示せず)。
【0087】
その他にも例えば、判定部2060は、動作計画20に示されている動作ごとに、実映像40を分割してもよい。こうすることで、ロボット10の異常の有無が、動作計画20に示されているロボット10の動作ごとに判定される。
【0088】
図10は、実映像40がロボット10の動作ごとに分割されるケースを例示する図である。図10において、動作計画20は、(時刻t1,動作M1)、(時刻t2,動作M2)、及び(時刻t3,動作M3)という3つの動作を示している。
【0089】
判定部2060は、実映像40を、時刻t1からt2までの部分実映像42、時刻t2からt3までの部分実映像42、及び時刻t3以降の部分実映像42という3つの部分実映像42に分割する。そして、判定部2060は、時刻t1からt2まで期間、時刻t2からt3までの期間、及び時刻t3以降の期間という3つの期間それぞれについて、部分実映像42とシミュレーション映像50との比較を行う。
【0090】
判定部2060は、動作ごとに分割された部分実映像42を、さらに複数の映像に分割してもよい。例えば部分実映像42は、所定の時間長ごと又は所定個の映像に分割される。
【0091】
<結果の出力>
異常検出装置2000は、処理結果を表す情報(以下、出力情報)を出力する。例えば出力情報は、ロボット10の異常の有無を示す。実映像40が複数取得される場合、例えば出力情報は、各実映像40についてロボット10の異常の有無を示してもよい。その他にも例えば、出力情報は、複数の実映像40のうち、ロボット10の異常が検出された実映像40の識別情報(例えばファイル名)や、ロボット10の異常が検出された実映像40自体を含んでもよい。
【0092】
実映像40が複数の部分実映像42に分割される場合、例えば出力情報は、各部分実映像42についてロボット10の異常の有無を示す。その他にも例えば、出力情報は、複数の部分実映像42のうち、ロボット10の異常が検出された部分実映像42の識別情報(例えばファイル名)や、ロボット10の異常が検出された部分実映像42自体を含んでもよい。
【0093】
出力情報は、異常が検出された際にロボット10が行っていた動作に関する情報(例えばロボット10の姿勢やコマンドなど)を示してもよい。異常が検出された際にロボット10が行っていた動作は、異常が検出された実映像40や部分実映像42と、動作計画20との対応関係に基づいて、特定することができる。
【0094】
例えばロボット10の異常が、時刻t1からt2までの間の実映像40や部分実映像42から検出されたとする。この場合、異常検出装置2000は、動作計画20から、時刻t1からt2までの間に行われるロボット10の動作を抽出することにより、異常が検出された際にロボット10が行っていた動作を特定することができる。
【0095】
出力情報の出力態様は任意である。例えば異常検出装置2000は、出力情報を記憶部に格納する。その他にも例えば、異常検出装置2000は、出力情報をディスプレイ装置に表示させる。その他にも例えば、異常検出装置2000は、出力情報を他の装置に送信してもよい。当該他の装置は、例えば、対象施設の管理者や、対象施設で作業をしている作業員によって利用されるコンピュータである。
【0096】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0097】
なお、上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、プログラム又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、プログラム又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なプログラム又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なプログラム又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0098】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得手段と、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成手段と、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定手段と、を有する異常検出装置。
(付記2)
前記判定手段は、前記実映像と前記シミュレーション映像の類似度を算出し、その類似度が閾値以下である場合に、前記ロボットに異常があると判定する、付記1に記載の異常検出装置。
(付記3)
前記動作計画は、時刻と、その時刻において前記ロボットに行わせるべき動作との対応付けを複数示しており、
前記シミュレーション映像生成手段は、
前記ロボットの3次元モデルを取得し、
前記動作計画に示されている複数の時刻それぞれについて、その時刻における前記3次元モデルの状態を、その時刻に対応する動作に基づく状態に変化させることにより、前記シミュレーション映像を生成する、付記1又は2に記載の異常検出装置。
(付記4)
前記取得手段は、複数の期間それぞれについて、複数の前記カメラの中から、その期間についての前記実映像を取得すべきカメラである対象カメラを特定し、前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成手段は、複数の前記期間それぞれについて、その期間において前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記1又は2に記載の異常検出装置。
(付記5)
前記取得手段は、
複数の期間それぞれについて前記対象カメラを示すカメラ計画情報を取得し、
前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成手段は、前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記4に記載の異常検出装置。
(付記6)
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得ステップと、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成ステップと、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定ステップと、を有する、コンピュータによって実行される異常検出方法。
(付記7)
前記判定ステップにおいて、前記実映像と前記シミュレーション映像の類似度を算出し、その類似度が閾値以下である場合に、前記ロボットに異常があると判定する、付記6記載の異常検出方法。
(付記8)
前記動作計画は、時刻と、その時刻において前記ロボットに行わせるべき動作との対応付けを複数示しており、
前記シミュレーション映像生成ステップにおいて、
前記ロボットの3次元モデルを取得し、
前記動作計画に示されている複数の時刻それぞれについて、その時刻における前記3次元モデルの状態を、その時刻に対応する動作に基づく状態に変化させることにより、前記シミュレーション映像を生成する、付記6又は7に記載の異常検出方法。
(付記9)
前記取得ステップにおいて、複数の期間それぞれについて、複数の前記カメラの中から、その期間についての前記実映像を取得すべきカメラである対象カメラを特定し、前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成ステップにおいて、複数の前記期間それぞれについて、その期間において前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記6又は7に記載の異常検出方法。
(付記10)
前記取得ステップにおいて、
複数の期間それぞれについて前記対象カメラを示すカメラ計画情報を取得し、
前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成ステップにおいて、前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記9に記載の異常検出方法。
(付記11)
ロボットの動作計画と、前記動作計画に従って動作する前記ロボットをカメラで撮像することで生成された実映像とを取得する取得ステップと、
前記動作計画を用いてシミュレートされた前記ロボットの映像であるシミュレーション映像を生成するシミュレーション映像生成ステップと、
前記シミュレーション映像と前記実映像との比較により、前記ロボットに異常があるか否かを判定する判定ステップと、をコンピュータに実行させるプログラム。
(付記12)
前記判定ステップにおいて、前記実映像と前記シミュレーション映像の類似度を算出し、その類似度が閾値以下である場合に、前記ロボットに異常があると判定する、付記11に記載のプログラム。
(付記13)
前記動作計画は、時刻と、その時刻において前記ロボットに行わせるべき動作との対応付けを複数示しており、
前記シミュレーション映像生成ステップにおいて、
前記ロボットの3次元モデルを取得し、
前記動作計画に示されている複数の時刻それぞれについて、その時刻における前記3次元モデルの状態を、その時刻に対応する動作に基づく状態に変化させることにより、前記シミュレーション映像を生成する、付記11又は12に記載のプログラム。
(付記14)
前記取得ステップにおいて、複数の期間それぞれについて、複数の前記カメラの中から、その期間についての前記実映像を取得すべきカメラである対象カメラを特定し、前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成ステップにおいて、複数の前記期間それぞれについて、その期間において前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記11又は12に記載のプログラム。
(付記15)
前記取得ステップにおいて、
複数の期間それぞれについて前記対象カメラを示すカメラ計画情報を取得し、
前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって生成された前記実映像を取得し、
前記シミュレーション映像生成ステップにおいて、前記カメラ計画情報に示されている複数の期間それぞれについて、前記カメラ計画情報においてその期間に対応づけられている前記対象カメラによって撮像される前記ロボットの前記シミュレーション映像を生成する、付記14に記載のプログラム。
【符号の説明】
【0099】
10 ロボット
20 動作計画
22 時刻
24 動作
30 カメラ
40 実映像
42 部分実映像
50 シミュレーション映像
60 カメラ計画情報
62 期間
64 カメラ識別情報
70 矢印
1000 コンピュータ
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 異常検出装置
2020 取得部
2040 シミュレーション映像生成部
2060 判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10