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

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

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

<>
  • 特許-制御装置、制御方法及びプログラム 図1
  • 特許-制御装置、制御方法及びプログラム 図2
  • 特許-制御装置、制御方法及びプログラム 図3
  • 特許-制御装置、制御方法及びプログラム 図4
  • 特許-制御装置、制御方法及びプログラム 図5
  • 特許-制御装置、制御方法及びプログラム 図6
  • 特許-制御装置、制御方法及びプログラム 図7
  • 特許-制御装置、制御方法及びプログラム 図8
  • 特許-制御装置、制御方法及びプログラム 図9
  • 特許-制御装置、制御方法及びプログラム 図10
  • 特許-制御装置、制御方法及びプログラム 図11
  • 特許-制御装置、制御方法及びプログラム 図12
  • 特許-制御装置、制御方法及びプログラム 図13
  • 特許-制御装置、制御方法及びプログラム 図14
  • 特許-制御装置、制御方法及びプログラム 図15
  • 特許-制御装置、制御方法及びプログラム 図16
  • 特許-制御装置、制御方法及びプログラム 図17
  • 特許-制御装置、制御方法及びプログラム 図18
  • 特許-制御装置、制御方法及びプログラム 図19
  • 特許-制御装置、制御方法及びプログラム 図20
  • 特許-制御装置、制御方法及びプログラム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】制御装置、制御方法及びプログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20241210BHJP
【FI】
B25J13/08 A
【請求項の数】 10
(21)【出願番号】P 2023516008
(86)(22)【出願日】2021-04-23
(86)【国際出願番号】 JP2021016474
(87)【国際公開番号】W WO2022224447
(87)【国際公開日】2022-10-27
【審査請求日】2023-10-23
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】伊藤 岳大
(72)【発明者】
【氏名】若山 永哉
(72)【発明者】
【氏名】小川 雅嗣
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特開2010-211746(JP,A)
【文献】特開平03-055194(JP,A)
【文献】特開2017-091078(JP,A)
【文献】特開2013-031896(JP,A)
【文献】国際公開第2017/098561(WO,A1)
【文献】特開2015-176272(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 -21/02
(57)【特許請求の範囲】
【請求項1】
ロボットが実行するタスクに関する物体の認識結果を取得する認識結果取得手段と、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示する表示制御手段と、
外部入力に基づく前記認識結果の修正を受け付ける修正受付手段と、を有し、
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記修正受付手段は、前記自信度に基づき、前記修正の要否を判定する、制御装置。
【請求項2】
前記表示制御手段は、前記認識結果に基づき前記物体を模したオブジェクトを、前記風景又は前記画像における当該物体に重ねて視認されるように表示する、請求項1に記載の制御装置。
【請求項3】
前記修正受付手段は、前記オブジェクトの位置又は姿勢の少なくとも一方を変更する前記外部入力に基づき、前記物体の位置又は姿勢の少なくとも一方に関する前記修正を受け付ける、請求項2に記載の制御装置。
【請求項4】
前記修正受付手段は、前記オブジェクトの削除を指示する前記外部入力に基づき、当該オブジェクトに対応する物体の認識結果の削除を示す前記修正を受け付ける、請求項2または3に記載の制御装置。
【請求項5】
前記修正受付手段は、前記オブジェクトの追加を指示する前記外部入力に基づき、当該オブジェクトに対応する物体の認識結果の追加を示す前記修正を受け付ける、請求項2~4のいずれか一項に記載の制御装置。
【請求項6】
前記表示制御手段は、前記認識結果に含まれる前記物体の属性に関する情報を、前記風景又は前記画像における当該物体と対応付けて表示し、
前記修正受付手段は、前記属性の変更を指示する前記外部入力に基づき、前記属性に関する前記修正を受け付ける、請求項1~5のいずれか一項に記載の制御装置。
【請求項7】
前記表示制御手段は、前記自信度に基づき、前記認識結果が表す情報の表示態様を決定する、請求項1~のいずれか一項に記載の制御装置。
【請求項8】
ロボットが実行するタスクに関する物体の認識結果を取得する認識結果取得手段と、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示する表示制御手段と、
外部入力に基づく前記認識結果の修正を受け付ける修正受付手段と、を有し、
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記表示制御手段は、前記自信度が閾値未満となる前記認識結果を表す情報を強調表示する、制御装置。
【請求項9】
コンピュータが、
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付け
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記自信度に基づき、前記修正の要否を判定する、
制御方法。
【請求項10】
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付け
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記自信度に基づき、前記修正の要否を判定する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、タスクを実行するロボットに関する制御装置、制御方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
ロボットの環境をセンサにより認識し、認識した環境に基づいてロボットにタスクを実行させるロボットシステムが提案されている。例えば、特許文献1には、周囲環境検出センサでの検出結果と、決定されたロボットの行動計画とに基づいて、ロボットの動作指令を行うロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-046779号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットの環境の認識に誤りがあると、決定したロボットの動作(行動)計画が正しく実行されないおそれがある。一方、センサの出力信号に基づきロボットの環境を完璧な精度により認識することは場合によっては困難である。
【0005】
本開示の目的の1つは、上述した課題を鑑み、タスクに関する物体の的確な認識結果を得ることが可能な制御装置、制御方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
制御装置の一の態様は、
ロボットが実行するタスクに関する物体の認識結果を取得する認識結果取得手段と、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示する表示制御手段と、
外部入力に基づく前記認識結果の修正を受け付ける修正受付手段と、を有し、
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記修正受付手段は、前記自信度に基づき、前記修正の要否を判定する、制御装置である。
制御装置の他の態様は、
ロボットが実行するタスクに関する物体の認識結果を取得する認識結果取得手段と、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示する表示制御手段と、
外部入力に基づく前記認識結果の修正を受け付ける修正受付手段と、を有し、
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記表示制御手段は、前記自信度が閾値未満となる前記認識結果を表す情報を強調表示する、制御装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付け
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記自信度に基づき、前記修正の要否を判定する、
制御方法である。
【0008】
プログラムの一の態様は、
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付け
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記自信度に基づき、前記修正の要否を判定する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0009】
タスクに関する物体の正確な認識結果を好適に得ることができる。
【図面の簡単な説明】
【0010】
図1】第1実施形態におけるロボット制御システムの構成を示す。
図2】(A)ロボットコントローラのハードウェア構成を示す。(B)指示装置のハードウェア構成を示す。
図3】アプリケーション情報のデータ構造の一例を示す。
図4】ロボットコントローラの機能ブロックの一例である。
図5】(A)修正の第1態様を示す。(B)修正の第2態様を示す。(C)修正の第3態様を示す。(D)修正の第4態様を示す。
図6】ピックアンドプレイスを目的タスクとする場合において、作業者が視認する修正前の作業空間の状態を示す。
図7】仮想オブジェクトに関する修正が行われた後において作業者が視認する作業空間の状態を示す。
図8】動作計画部の機能的な構成を示す機能ブロックの一例である。
図9】ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。
図10】第1実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。
図11】第2実施形態におけるロボットコントローラの機能ブロックの一例である。
図12】第1具体例における軌道情報を表した図である。
図13】第1具体例においてロボットハンド及び対象物の軌道等を修正する入力に基づき修正されたロボットハンド及び対象物の修正済みの軌道(修正軌道)を概略的に示した図である。
図14】(A)第2具体例における修正前の軌道情報を第1の視点により表した図である。(B)第2具体例における修正前の軌道情報を第2の視点により表した図である。
図15】(A)第2具体例における軌道情報の修正に関する操作の概要を第1の視点により表した図である。(B)は、第2具体例における軌道情報の修正に関する操作の概要を第2の視点により表した図である。
図16】(A)第2具体例における修正後の軌道情報を第1の視点により表した図である。(B)第2具体例における修正後の軌道情報を第2の視点により表した図である。
図17】第2実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。
図18】第3実施形態における制御装置の概略構成図を示す。
図19】第3実施形態において制御装置が実行するフローチャートの一例である。
図20】第4実施形態における制御装置の概略構成図を示す。
図21】第4実施形態において制御装置が実行するフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、指示装置2と、記憶装置4と、ロボット5と、センサ(検出装置)7と、を備える。
【0013】
ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換し、生成したシーケンスに基づきロボット5を制御する。
【0014】
また、ロボットコントローラ1は、指示装置2、記憶装置4、ロボット5、及びセンサ7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、指示装置2から、ロボット5の動作計画に関する入力信号「S1」を受信する。また、ロボットコントローラ1は、指示装置2に対し、表示制御信号「S2」を送信することで、指示装置2に所定の表示又は音出力を実行させる。さらに、ロボットコントローラ1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。また、ロボットコントローラ1は、センサ7からセンサ信号「S4」を受信する。
【0015】
指示装置2は、作業者によるロボット5の動作計画に関する指示を受け付ける装置である。指示装置2は、ロボットコントローラ1から供給される表示制御信号S2に基づき所定の表示又は音出力を行ったり、作業者の入力に基づき生成した入力信号S1をロボットコントローラ1へ供給したりする。指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよく、拡張現実に使用される任意の端末であってもよい。
【0016】
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、ロボット5が実行すべきシーケンスである動作シーケンスを目的タスクから生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
【0017】
ロボット5は、ロボットコントローラ1から供給される制御信号S3に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5の動作シーケンスの進捗状態を示す信号であってもよい。
【0018】
センサ7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。例えば、センサ7は、ロボット5の作業空間を撮像する少なくとも1台のカメラを含む。センサ7は、生成したセンサ信号S4をロボットコントローラ1に供給する。センサ7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、センサ7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、センサ7は、作業空間内の音を検出するセンサを含んでもよい。このように、センサ7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0019】
なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5毎又は制御対象物毎に実行すべき動作シーケンスを生成し、当該動作シーケンスに基づく制御信号S3を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、センサ7は、ロボット5の一部であってもよい。また、指示装置2は、ロボットコントローラ1と同一の装置として構成されてもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
【0020】
(2)ハードウェア構成
図2(A)は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0021】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
【0022】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置(例えば記憶装置4)により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
【0023】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0024】
なお、ロボットコントローラ1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、ロボットコントローラ1は、指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
【0025】
図2(B)は、指示装置2のハードウェア構成を示す。指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cと、を含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとが接続されている。
【0026】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、入力信号S1を生成し、インターフェース23を介してロボットコントローラ1に当該入力信号S1を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した表示制御信号S2に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。
【0027】
メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、指示装置2が実行する処理を実行するためのプログラムが記憶される。
【0028】
インターフェース23は、指示装置2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b、音出力部24cのインターフェース動作を行う。
【0029】
入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。また、入力部24aは、仮想現実において使用される種々の入力デバイス(操作用コントローラ等)を含んでもよい。この場合、入力部24aは、例えば、モーションキャプチャなどにおいて使用される各種センサ(例えば、カメラ、装着用センサ等を含む)であってもよく、表示部24bが拡張現実を実現する眼鏡型端末である場合には、当該端末とセットとなる操作用コントローラであってもよい。
【0030】
表示部24bは、プロセッサ21の制御に基づき拡張現実による表示を行う。第1の例では、表示部24bは、作業者が視認する風景(ここでは作業空間)に重ねて風景内の物体の状態に関する情報を表示する眼鏡型端末である。第2の例では、表示部24bは、風景(ここでは作業空間)を撮影した画像(「実写画像」とも呼ぶ。)に物体の情報を重ねて表示するディスプレイ、プロジェクタ等である。上述の実写画像は、センサ7により供給される。音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
【0031】
なお、指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b、又は音出力部24cの少なくともいずれかは、指示装置2と電気的に接続する別体の装置として構成されてもよい。また、指示装置2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
【0032】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0033】
図3は、アプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
【0034】
抽象状態指定情報I1は、動作シーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。
【0035】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0036】
動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0037】
サブタスク情報I4は、動作シーケンスの構成要素となるサブタスクの情報を示す。「サブタスク」は、ロボット5が受付可能な単位により目的タスクを分解したタスクであって、細分化されたロボット5の動作を指す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。なお、サブタスク情報I4には、外部入力による動作指令が必要なサブタスクに関する情報が含まれてもよい。この場合、外部入力型サブタスクに関するサブタスク情報I4には、例えば、外部入力型サブタスクであることを識別する情報(例えばフラグ情報)と、当該外部入力型サブタスクでのロボット5の動作内容を示す情報とが含まれる。
【0038】
抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
【0039】
物体モデル情報I6は、センサ7が生成したセンサ信号S4から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0040】
なお、アプリケーション情報記憶部41は、上述した情報の他、動作シーケンスの生成処理及び表示制御信号S2の生成処理に関する種々の情報を記憶してもよい。
【0041】
(4)処理概要
次に、第1実施形態におけるロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、センサ信号S4に基づき認識した作業空間内の物体の認識結果を拡張現実により指示装置2に表示させ、当該認識結果に関する修正の入力を受け付ける。これにより、ロボットコントローラ1は、作業空間内の物体に関する誤認識が発生した場合であっても、誤認識が発生した箇所をユーザ入力に基づき適切に修正し、正確なロボット5の動作計画の策定及び目的タスクの実行を実現する。
【0042】
図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、認識結果取得部14と、表示制御部15と、修正受付部16と、動作計画部17と、ロボット制御部18とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
【0043】
認識結果取得部14は、センサ信号S4等に基づき、作業空間内の物体の状態及び属性等を認識し、その認識結果を表す情報(「第1認識結果Im1」とも呼ぶ。)を表示制御部15へ供給する。この場合、例えば、認識結果取得部14は、抽象状態指定情報I1を参照し、目的タスクを実行する際に考慮する必要がある作業空間内の物体の状態及び属性等を認識する。作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体(ロボット5以外に作業を行う人又はその他の物体)などである。例えば、認識結果取得部14は、物体モデル情報I6を参照し、作業空間の環境を認識する任意の技術によりセンサ信号S4を解析することで、第1認識結果Im1を生成する。環境を認識する技術は、例えば、画像処理技術、画像認識技術(ARマーカを用いた物体認識を含む)、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術などが挙げられる。
【0044】
本実施形態では、認識結果取得部14は、少なくとも、物体の位置、姿勢、及び属性を認識する。属性は、例えば、物体の種類であり、認識結果取得部14が認識する物体の種類は、実行する目的タスクの種類に応じた粒度により分類されている。例えば、目的タスクがピックアンドプレイスの場合には、物体は、「障害物」、「把持対象物」などに分類される。認識結果取得部14は、生成した第1認識結果Im1を、表示制御部15に供給する。なお、第1認識結果Im1は、物体の位置、姿勢、及び種類を表す情報に限らず、認識結果取得部14が認識した種々の状態又は属性(例えば物体の大きさ、形状等)に関する情報を含んでもよい。
【0045】
また、認識結果取得部14は、修正受付部16から第1認識結果Im1の修正内容を示す認識修正情報「Ia」を受信した場合には、当該認識修正情報Iaを第1認識結果Im1に反映した情報(「第2認識結果Im2」とも呼ぶ。)を生成する。ここで、認識修正情報Iaは、例えば、修正の要否及び修正が必要な場合の修正対象の物体、修正する指標及び修正量を示す情報である。なお、「修正対象の物体」は、認識結果の修正が必要な物体であり、「修正する指標」は、位置に関する指標(例えば座標軸ごとの座標値)、姿勢に関する指標(例えばオイラー角)、属性を表す指標などが該当する。そして、認識結果取得部14は、認識修正情報Iaを反映した第2認識結果Im2を、動作計画部17に供給する。なお、第2認識結果Im2は、認識修正情報Iaが修正がないことを示す場合には、認識結果取得部14がセンサ信号S4に基づき最初に生成した第1認識結果Im1と同一となる。
【0046】
表示制御部15は、作業者が使用する指示装置2に所定の情報を表示又は音出力するための表示制御信号S2を生成し、インターフェース13を介して当該表示制御信号S2を指示装置2へ送信する。本実施形態では、表示制御部15は、第1認識結果Im1が示す作業空間内の物体の認識結果に基づき、各物体を仮想的に表したオブジェクト(「仮想オブジェクト」とも呼ぶ。)を生成する。そして、表示制御部15は、各仮想オブジェクトが、現実の風景又は実写画像において対応する物体に重ねて作業者により視認されるように指示装置2の表示を制御する表示制御信号S2を生成する。表示制御部15は、この仮想オブジェクトを、例えば、第1認識結果Im1が示す物体の種類と、物体モデル情報I6に含まれる物体の種類ごとの3次元形状情報とに基づき生成する。他の例では、表示制御部15は、プリミティブ形状(予め登録されたポリゴン)を第1認識結果Im1が示す物体の形状に応じて組み合わせることで、仮想オブジェクトを生成する。
【0047】
修正受付部16は、指示装置2を使用する作業者の操作による第1認識結果Im1に関する修正を受け付ける。そして、修正受付部16は、修正に関する操作が完了した場合、第1認識結果Im1に関する修正内容を示した認識修正情報Iaを生成する。この場合、修正受付部16は、拡張現実による物体の認識結果の表示制御中においてインターフェース13を介して指示装置2が生成する入力信号S1を受信し、当該入力信号S1に基づき生成した認識修正情報Iaを認識結果取得部14に供給する。また、修正受付部16は、修正が確定する前では、指示装置2から供給された入力信号S1に基づく仮想オブジェクトの表示位置の修正等の指示信号を表示制御部15に供給し、表示制御部15は、当該指示信号に基づき修正を反映した表示制御信号S2を指示装置2に供給する。これにより、指示装置2は、作業者による操作を即時に反映した仮想オブジェクトの表示を行う。
【0048】
動作計画部17は、認識結果取得部14から供給される第2認識結果Im2と、記憶装置4が記憶するアプリケーション情報と、に基づき、ロボット5の動作計画を決定する。この場合、動作計画部17は、目的タスクを達成するためにロボット5が実行すべきサブタスクのシーケンス(サブタスクシーケンス)である動作シーケンス「Sr」を生成する。動作シーケンスSrは、ロボット5の一連の動作を規定しており、各サブタスクの実行順序及び実行タイミングを示す情報を含んでいる。動作計画部17は、生成した動作シーケンスSrをロボット制御部18に供給する。
【0049】
ロボット制御部18は、インターフェース13を介して制御信号S3をロボット5に供給することで、ロボット5の動作を制御する。ロボット制御部18は、動作計画部17から供給される動作シーケンスSrに基づき、動作シーケンスSrを構成する各サブタスクを夫々定められた実行タイミング(タイムステップ)でロボット5が実行するための制御を行う。具体的には、ロボット制御部18は、制御信号S3をロボット5に送信することで、動作シーケンスSrを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。
【0050】
なお、ロボット制御部18に相当する機能を、ロボットコントローラ1に代えてロボット5が有してもよい。この場合、ロボット5は、動作計画部17が生成する動作シーケンスSrに基づき動作する。
【0051】
ここで、認識結果取得部14、表示制御部15、修正受付部16、動作計画部17、及びロボット制御部18の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0052】
(5)修正情報の生成
次に、表示制御部15及び修正受付部16の制御に基づく認識修正情報Iaの生成方法について具体的に説明する。表示制御部15は、認識した物体の位置及び姿勢に応じて作業者が視認する風景又は実写画像中の実際の物体(実物体)に重ねるように当該物体の仮想オブジェクトを指示装置2に表示させる。そして、修正受付部16は、風景又は実写画像中の実物体と仮想オブジェクトとに相違が存在する場合に、これらが一致するように仮想オブジェクトの位置及び姿勢を修正する操作を受け付ける。
【0053】
まず、個々の物体の仮想オブジェクトに対する修正態様について説明する。図5(A)~図5(D)は、修正受付部16が受け付ける修正の態様(第1態様~第4態様)を夫々示している。図5(A)~図5(D)において、矢印の左側は、修正前における実物体及び仮想オブジェクトの見え方を示し、矢印の右側は、修正後における実物体及び仮想オブジェクトの見え方を示している。また、ここでは、円柱状である実物体を実線により示し、仮想オブジェクトを破線により示している。
【0054】
図5(A)に示す第1態様では、修正前の状態において、実物体と仮想オブジェクトとの位置及び姿勢がずれて視認されている。従って、この場合、作業者は、仮想オブジェクトが実物体と重なるように、位置及び姿勢(ロール、ピッチ、ヨー)を修正する操作を指示装置2の入力部24aに対して行う。修正後の状態では、上述の位置及び姿勢を修正する操作により生成された入力信号S1に基づき仮想オブジェクトの位置及び姿勢の変更が適切に行われている。そして、修正受付部16は、対象の仮想オブジェクトに対応する物体の位置及び姿勢の修正を指示する認識修正情報Iaを生成し、当該認識修正情報Iaを認識結果取得部14に供給する。これにより、仮想オブジェクトへの位置及び姿勢の修正は、対応する物体の位置及び姿勢の認識結果の修正として第2認識結果Im2に反映される。
【0055】
図5(B)に示す第2態様では、修正前の状態において、対象の物体の存在をセンサ信号S4に基づき認識結果取得部14が認識できなかったことにより、対象の物体に対する仮想オブジェクトが表示されていない。従って、この場合、作業者は、対象の物体に対する仮想オブジェクトの生成を指示する操作を指示装置2の入力部24aに対して行う。なお、この場合、作業者は、仮想オブジェクトを生成すべき物体の位置、姿勢、種類等の属性を直接的に指定する操作を行ってもよく、認識漏れがあった実物体の箇所を指定することで当該箇所を中心とする物体認識処理の再実行を指示する操作を行ってもよい。そして、修正後の状態では、上述の操作により生成された入力信号S1に基づき、対象物体に対する仮想オブジェクトが実物体と整合する位置及び姿勢により適切に生成されている。そして、修正受付部16は、生成された仮想オブジェクトに対応する物体の認識結果の追加を示す認識修正情報Iaを生成し、当該認識修正情報Iaを認識結果取得部14に供給する。これにより、仮想オブジェクトの追加は、対応する物体の認識結果の追加として第2認識結果Im2において反映される。
【0056】
図5(C)に示す第3態様では、認識結果取得部14での物体誤認識等に起因して、修正前の状態において、実際には存在しない物体に対する仮想オブジェクトが生成されている。この場合、作業者は、対象の仮想オブジェクトの削除を指示する操作を指示装置2の入力部24Aaに対して行う。そして、修正後の状態では、上述の操作により生成された入力信号S1に基づき、物体誤認識により生成された仮想オブジェクトが適切に削除されている。そして、修正受付部16は、対象の仮想オブジェクトに対応する物体の認識結果の削除を指示する認識修正情報Iaを生成し、当該認識修正情報Iaを認識結果取得部14に供給する。これにより、仮想オブジェクトの削除は、対応する物体の認識結果の削除として第2認識結果Im2において反映される。
【0057】
図5(D)に示す第4態様では、認識結果取得部14での物体の属性(ここでは種類)認識処理の誤差に起因して、修正前の状態において、対象の物体の本来の属性「障害物」と異なる属性「把持対象物体」を有する仮想オブジェクトが生成されている。この場合、作業者は、対象の仮想オブジェクトの属性の修正を指示する操作を指示装置2の入力部24Aaに対して行う。そして、修正後の状態では、上述の操作により生成された入力信号S1に基づき、仮想オブジェクトの属性が適切に修正されている。そして、修正受付部16は、対象の仮想オブジェクトに対応する物体の属性の変更を示す認識修正情報Iaを生成し、当該認識修正情報Iaを認識結果取得部14に供給する。これにより、仮想オブジェクトの属性変更は、対応する物体の属性に関する認識結果の修正として第2認識結果Im2において反映される。
【0058】
次に、上述の第1態様~第4態様に基づく修正に関する具体例について説明する。図6は、ピックアンドプレイスを目的タスクとする場合において、作業者が視認する修正前の作業空間の状態を示す。図6では、作業テーブル79上に、第1物体81、第2物体82、第3物体83が存在している。そして、表示制御部15は、物体の位置・姿勢・属性の修正を促すテキスト情報78と共に、作業者が視認する風景(実世界)又は実写画像に重なるように仮想オブジェクト81V、82V及びその属性情報81T、82Tを表示している。なお、ここでは、拡張現実等において行われる任意のキャリブレーション処理が実行され、センサ7の座標系、仮想オブジェクトを表示する表示座標系等の各種座標系の間での座標変換等が適切に行われているものとする。
【0059】
この場合、仮想オブジェクト81Vは、実物体の位置とずれが生じている。また、属性情報82Tが示す仮想オブジェクト82Vの属性(ここでは「把持対象物体」)は、本来の第2物体82の属性(ここでは「障害物」)と異なっている。さらに、第3物体83は、ロボットコントローラ1により認識されておらず、対応する仮想オブジェクトが生成されていない。そして、修正受付部16は、指示装置2から供給される入力信号S1に基づくこれらの相違点の修正を受け付け、表示制御部15は、当該修正を反映した最新の仮想オブジェクトを即時に表示する。
【0060】
図7は、仮想オブジェクトに関する修正が行われた後において作業者が視認する作業空間の状態を示す。図7では、仮想オブジェクト81Vの移動を指示する操作に基づき、仮想オブジェクト81Vが実物体と重なる位置に適切に配置されている。また、仮想オブジェクト82Vに対する属性変更を指示する操作に基づき、属性情報82Tが示す属性「障害物」は、第2物体82の認識されるべき属性と一致している。さらに、第3物体83に対する仮想オブジェクトの生成を指示する操作に基づき、第3物体83に対する仮想オブジェクト83Vが適切な位置及び姿勢により生成されている。また、属性情報83Tが示す仮想オブジェクト83Vの属性は、第3物体83の認識されるべき属性と一致している。
【0061】
そして、図7の例では、各種の修正操作が行われた後、修正受付部16は、修正を確定する旨の操作に対応する入力信号S1を受信し、受け付けた修正内容を示す認識修正情報Iaを認識結果取得部14に供給する。その後、認識結果取得部14は、認識修正情報Iaを反映した第2認識結果Im2を動作計画部17に供給し、動作計画部17は、第2認識結果Im2に基づきロボット5の動作計画の算出を開始する。また、この場合、表示制御部15は、修正を受け付けた旨と、動作計画の策定及びロボット制御の開始を作業者に通知するテキスト情報78Aを表示する。
【0062】
このようにすることで、ロボットコントローラ1は、作業空間における物体の認識誤差を的確に修正し、正確な認識結果に基づき動作計画の策定及びロボット制御を的確に実行することができる。
【0063】
次に、修正受付部16による修正の要否判定について補足説明する。第1の例では、修正受付部16は、修正の要否を指定する入力を受け付け、当該入力に対応する入力信号S1に基づき、修正の要否を判定する。
【0064】
第2の例では、修正受付部16は、修正の要否を、各物体の位置、姿勢、属性の認識(推定)の正しさに関する自信の度合いを表す自信度に基づき判定してもよい。この場合、修正受付部16は、第1認識結果Im1には、各物体の位置、姿勢、属性の夫々の推定結果に対して自信度が関連付けられており、これらの自信度がいずれも所定の閾値以上である場合には、第1認識結果Im1の修正を行う必要がないと判定し、修正が必要ない旨の認識修正情報Iaを認識結果取得部14に供給する。上述の閾値は、例えば、メモリ12又は記憶装置4に記憶されている。
【0065】
一方、修正受付部16は、上述の閾値よりも低い自信度が存在する場合には、修正を行う必要があると判定し、修正を受け付ける表示制御の指示を表示制御部15に対して行う。その後、表示制御部15は、図6に示されるような表示を実現するための表示制御を行う。
【0066】
好適には、第2の例において、表示制御部15は、自信度に基づき、第1認識結果Im1が表す各種情報の表示態様を決定するとよい。例えば、表示制御部15は、図6の例において、第1物体81の位置、姿勢のいずれか一方の自信度が閾値未満の場合には、第1物体81の位置、姿勢を表す仮想オブジェクト81Vを強調表示する。また、表示制御部15は、第1物体81の属性の自信度が閾値未満の場合には、第1物体81の属性を表す属性情報81Tを強調表示する。
【0067】
このように、表示制御部15は、修正の必要性が特に高い(即ち自信度が閾値未満となる)認識結果に関する情報を強調表示する。これにより、修正漏れなどを好適に抑制し、作業者による修正を円滑に支援することができる。
【0068】
ここで、第1認識結果Im1に含まれる自信度について補足説明する。認識結果取得部14は、センサ信号S4に基づき検出した物体の位置、姿勢、属性を推定する場合に、推定した要素ごとに自信度を算出し、算出した自信度を、推定した物体の位置、姿勢、属性の各々に関連付けた第1認識結果Im1を生成する。この場合、例えば、修正受付部16は、ニューラルネットワークに基づく推定モデルを物体の位置、姿勢、属性の推定に用いる場合、当該推定モデルが推定結果と共に出力する確信度(信頼度)を、上述の自信度として用いる。例えば、物体の位置、姿勢を推定する推定モデルは、回帰型モデルであり、物体の属性を推定する推定モデルは、分類型モデルとなる。
【0069】
(6)動作シーケンス生成部の詳細
次に、動作計画部17の詳細な処理について説明する。
【0070】
(5-1)機能ブロック
図8は、動作計画部17の機能的な構成を示す機能ブロックの一例である。動作計画部17は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、を有する。
【0071】
抽象状態設定部31は、認識結果取得部14から供給される第2認識結果Im2に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、第2認識結果Im2に基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。
【0072】
目標論理式生成部32は、抽象状態設定情報ISに基づき、目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。言い換えると、目標論理式生成部32は、抽象状態設定情報ISに基づき特定されるロボット5の動作前の作業空間の初期状態と、作業空間の最終的な達成状態とに基づき、目標論理式Ltagを生成する。また、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。
【0073】
なお、目標論理式生成部32は、作業空間の最終的な達成状態を、記憶装置4に予め記憶された情報に基づき認識してもよく、指示装置2から供給される入力信号S1に基づき認識してもよい。
【0074】
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
【0075】
抽象モデル生成部34は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部31から供給される第2認識結果Im2とに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
【0076】
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
【0077】
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクのシーケンスである動作シーケンスSrを生成し、動作シーケンスSrをロボット制御部18へ供給する。
【0078】
(6-2)抽象状態設定部
抽象状態設定部31は、第2認識結果Im2と、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。
【0079】
図9は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。図9に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、対象物61の目的地である領域Gとが存在している。
【0080】
この場合、まず、抽象状態設定部31は、対象物61の状態、障害物62の存在範囲、ロボット5の状態、領域Gの存在範囲等を認識する。
【0081】
ここでは、抽象状態設定部31は、対象物61a~61dの各々の中心の位置ベクトル「x」~「x」を、対象物61a~61dの位置として認識する。また、抽象状態設定部31は、対象物を把持するロボットハンド(エンドエフェクタ)53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。
【0082】
同様に、抽象状態設定部31は、対象物61a~61dの姿勢(図9の例では対象物が球状のため不要)、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
【0083】
また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、作業空間内に存在する物体に関する第2認識結果Im2(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
【0084】
図9の例では、抽象状態設定部31は、第2認識結果Im2により特定される対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部31は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。なお、抽象状態設定部31は、対象物「i」が作業テーブル(初期状態で対象物及び障害物が存在するテーブル)内に存在するという命題「v」、作業テーブル及び領域G以外の作業外領域に対象物が存在するという命題「w」などをさらに定めてもよい。作業外領域は、例えば、対象物が作業テーブルから落下した場合に対象物が存在する領域(床面等)である。
【0085】
このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h等)を、対象物61の数、ロボットアーム52の数、障害物62の数、ロボット5の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
【0086】
(6-3)目標論理式生成部
まず、目標論理式生成部32は、目的タスクを、時相論理を用いた論理式に変換する。
【0087】
例えば、図9の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。また、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
【0088】
なお、目的タスクは、自然言語により指定されてもよい。自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。
【0089】
次に、目標論理式生成部32は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
【0090】
例えば、図9に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、図9の説明において抽象状態設定部31により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬o
【0091】
よって、この場合、目標論理式生成部32は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(◇g)∧(□¬h)∧(∧□¬o
【0092】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0093】
(6-4)タイムステップ論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0094】
ここで、図9の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33の処理の具体例について説明する。
【0095】
この場合、以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給される。
(◇g)∧(□¬h)∧(∧□¬o
この場合、タイムステップ論理式生成部33は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkで対象物iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k
【0096】
また、◇g2,3は、以下の式に示すように書き換えることが可能である。
【0097】
【数1】
【0098】
このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
【0099】
【数2】
【0100】
よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
【0101】
次に、目標タイムステップ数の設定方法について補足説明する。
【0102】
タイムステップ論理式生成部33は、例えば、指示装置2から供給される入力信号S1により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
【0103】
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0104】
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
【0105】
(6-5)抽象モデル生成部
抽象モデル生成部34は、抽象モデル情報I5と、第2認識結果Im2とに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式の抽象モデルに対し、第2認識結果Im2を反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。
【0106】
なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
【0107】
ここで、ロボット5による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
【0108】
以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部34は、図9に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(1)により定めることができる。
【0109】
【数3】
【0110】
ここで、「u」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが対象物iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x」~「x」は、対象物i(i=1~4)の位置ベクトルを示す。なお、対象物iが球体ではない形状を有し、姿勢を考慮する必要がある場合には、ベクトル「x」~「x」には、オイラー角などの姿勢を表す要素が含まれている。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
この式では、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合には、ロボットハンドが対象物を掴んでいるとみなし、論理変数δを1に設定している。
【0111】
ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
【0112】
式(1)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部35による最適化処理の計算量を好適に削減することができる。
【0113】
また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、第2認識結果Im2から式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(図9では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と第2認識結果Im2とに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
【0114】
なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0115】
(6-6)制御入力生成部
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対する制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
【0116】
例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとのタイムステップkでの距離に相当する。
【0117】
この場合、制御入力生成部35は、全タイムステップにおける距離dのノルムの2乗と制御入力uのノルムの2乗との和を評価関数として定める。そして、制御入力生成部35は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
【0118】
【数4】
【0119】
ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
【0120】
また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
【0121】
好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
【0122】
(6-7)サブタスクシーケンス生成部
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、動作シーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0123】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0124】
そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成される動作シーケンスSrを生成し、当該動作シーケンスSrをロボット制御部18に供給する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」の動作シーケンスSrを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
【0125】
(7)処理フロー
図10は、第1実施形態においてロボットコントローラ1が実行するロボット制御処理の概要を示すフローチャートの一例である。
【0126】
まず、ロボットコントローラ1は、センサ7からセンサ信号S4を取得する(ステップS11)。そして、ロボットコントローラ1の認識結果取得部14は、取得したセンサ信号S4に基づき、作業空間内の物体の状態(位置、姿勢を含む)及び属性等を認識する(ステップS12)。これにより、認識結果取得部14は、作業空間内の物体に関する第1認識結果Im1を生成する。
【0127】
次に、表示制御部15は、第1認識結果Im1に基づき、風景又は実写画像の実物体と重ねて仮想オブジェクトを指示装置2に表示させる(ステップS13)。この場合、表示制御部15は、第1認識結果Im1により特定される各物体に対応する仮想オブジェクトを表示するための表示制御信号S2を生成し、表示制御信号S2を指示装置2に供給する。
【0128】
そして、修正受付部16は、第1認識結果Im1の修正の要否を判定する(ステップS14)。この場合、修正受付部16は、第1認識結果Im1に含まれる自信度に基づき修正要否を判定してもよく、修正要否を指定する入力を受け付け、受け付けた入力に基づき修正要否を判定してもよい。
【0129】
そして、修正受付部16は、第1認識結果Im1の修正が必要であると判定した場合(ステップS14;Yes)、第1認識結果Im1の修正を受け付ける(ステップS15)。この場合、修正受付部16は、指示装置2が備える任意のユーザインタフェースとなる入力部24aを用いた任意の操作方法に基づく修正(詳しくは、修正する対象の指定及び修正する内容の指定等)を受け付ける。そして、認識結果取得部14は、修正受付部16が生成した認識修正情報Iaを反映した第2認識結果Im2を生成する(ステップS16)。一方、修正受付部16は、第1認識結果Im1の修正が必要ではないと判定した場合(ステップS14;No)、ステップS17へ処理を進める。この場合、修正受付部16は、修正が不要である旨の認識修正情報Iaを認識結果取得部14に供給し、認識結果取得部14は、第1認識結果Im1を第2認識結果Im2として動作計画部17に供給する。
【0130】
そして、動作計画部17は、第2認識結果Im2に基づき、ロボット5の動作計画を決定する(ステップS17)。これにより、動作計画部17は、ロボット5の動作シーケンスである動作シーケンスSrを生成する。そして、ロボット制御部18は、決定した動作計画に基づくロボット制御を行う(ステップS18)。この場合、ロボット制御部18は、動作シーケンスSrに基づき生成した制御信号S3をロボット5へ順次供給し、生成された動作シーケンスSrに従いロボット5が動作するように制御する。
(8)変形例
図8に示す動作計画部17のブロック構成は一例であり、種々の変更がなされてもよい。
【0131】
例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、動作計画部17は、当該情報に基づき、制御入力生成部35の最適化処理を実行する。これにより、動作計画部17は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、動作計画部17は、動作シーケンスSrの生成において、抽象状態設定部31、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。このように、図8に示す動作計画部17の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
【0132】
他の例では、アプリケーション情報には、目的タスクに対応する動作シーケンスSrを設計するためのフローチャートなどの設計情報が予め含まれており、動作計画部17は、当該設計情報を参照することで、動作シーケンスSrを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
【0133】
<第2実施形態>
第2実施形態に係るロボットコントローラ1は、第1認識結果Im1の修正を受け付ける処理に代えて、又はこれに加えて、動作計画の策定後において策定した動作計画に基づく物体(対象物、ロボット5)の軌跡に関する情報(「軌道情報」とも呼ぶ。)を表示し、当該軌道に関する修正を受け付ける処理を行う。これにより、第2実施形態に係るロボットコントローラ1は、作業者が意図する流れにより目的タスクが実行されるように動作計画を好適に修正する。
【0134】
以後では、ロボット制御システム100において、第1実施形態と同様の構成要素については、適宜同一の符号を付し、その説明を省略する。なお、第2実施形態におけるロボット制御システム100の構成は、図1に示される構成と同一である。
【0135】
図11は、第2実施形態におけるロボットコントローラ1Aの機能ブロックの一例である。ロボットコントローラ1Aは、図2(A)に示されるハードウェア構成を有し、ロボットコントローラ1Aのプロセッサ11は、機能的には、認識結果取得部14Aと、表示制御部15Aと、修正受付部16Aと、動作計画部17Aと、ロボット制御部18Aとを有する。
【0136】
認識結果取得部14Aは、第1実施形態と同様、第1認識結果Im1の生成、及び認識修正情報Iaに基づく第2認識結果Im2の生成を行う。
【0137】
表示制御部15Aは、第1実施形態において表示制御部15が実行する処理に加えて、動作計画部17Aが決定した動作計画から特定される軌道情報を動作計画部17Aから取得し、軌道情報に関する指示装置2の表示制御を行う。この場合、表示制御部15Aは、動作シーケンスSrが示すタイムステップごとの対象物等の軌道に関する軌道情報を指示装置2が表示するための表示制御信号S2を生成し、表示制御信号S2を指示装置2に供給する。この場合、表示制御部15Aは、対象物の軌道に加えて、ロボット5の軌道を表す軌道情報を表示してもよい。ここで、表示制御部15Aは、軌道情報として、1タイムステップ数ごとの対象物等の状態遷移を表す情報を表示してもよく、所定タイムステップ数ごとの対象物等の状態遷移を表す情報を表示してもよい。
【0138】
修正受付部16Aは、第1実施形態において修正受付部16が実行する認識修正情報Iaの生成処理に加えて、指示装置2を使用する作業者の操作による軌道情報の修正を受け付ける。そして、修正受付部16Aは、修正に関する操作が完了した場合、対象物等の軌道に関する修正内容を示した軌道修正情報「Ib」を生成し、軌道修正情報Ibを動作計画部17Aへ供給する。なお、修正受付部16Aは、修正に関する入力がなかった場合、修正がない旨の軌道修正情報Ibを動作計画部17Aへ供給する。
【0139】
動作計画部17Aは、第1実施形態において動作計画部17が実行する動作シーケンスSrの生成処理に加えて、修正受付部16Aから供給された軌道修正情報Ibを反映した動作シーケンスSr(「第2動作シーケンスSrb」とも呼ぶ。)を生成する。これにより、動作計画部17Aは、修正により指定された対象物の状態等が実現されるように当初の動作計画を修正した新たな動作計画を策定する。そして、動作計画部17Aは、生成した第2動作シーケンスSrbをロボット制御部18に供給する。以後では、便宜上、軌道修正情報Ibを反映前の動作シーケンスSrを「第1動作シーケンスSr」とも呼ぶ。また、第1動作シーケンスSrに基づく動作計画を「第1動作計画」、第2動作シーケンスSrbに基づく動作計画を「第2動作計画」と呼ぶ。第2動作シーケンスSrbは、第1動作計画の修正が不要である旨の軌道修正情報Ibが生成された場合には、第1動作シーケンスSrと同一となる。
【0140】
なお、動作計画部17Aは、軌道修正情報Ibを反映した第2動作シーケンスSrbが制約条件を満たすか否か判定し、制約条件情報I2が示す制約条件を満たす場合に限り、生成した第2動作シーケンスSrbをロボット制御部18に供給してもよい。これにより、制約条件を満たす動作計画のみを好適にロボット5に実行させることができる。なお、動作計画部17Aは、第2動作シーケンスSrbが制約条件を満たさないと判定した場合、表示制御部15A及び動作計画部17Aに再修正を受け付ける処理の実行を指示する。
【0141】
ロボット制御部18Aは、動作計画部17Aから供給される第2動作シーケンスSrbに基づき、インターフェース13を介して制御信号S3をロボット5に供給することで、ロボット5の動作を制御する。
【0142】
ここで、軌道情報の生成について補足説明する。動作計画部17Aは、第1動作シーケンスSrの生成後、表示制御部15Aによる表示制御に必要な対象物(及びロボット5)の軌道情報を表示制御部15Aに供給する。この場合、第1動作計画の策定において実行した式(2)に基づく最適化処理により、タイムステップごとのロボット5(詳しくはロボットハンド)及び対象物の位置(姿勢)ベクトル(式(1)参照)が求まっている。よって、動作計画部17Aは、これらの位置(姿勢)ベクトルを、軌道情報として表示制御部15Aに供給する。ここで、動作計画部17Aが表示制御部15Aに供給する軌道情報には、ロボットハンドが対象物を掴む(及び離す)タイミングに関する情報(即ち式(1)のδj,iにより特定される情報)、掴む(及び離す)方向、及び掴む(及び離す)際のロボットハンドの姿勢に関する情報が含まれてもよい。なお、対象物を掴む(及び離す)方向については、例えば、ロボットハンドの位置ベクトルの軌跡及び掴む(及び離す)タイミングに基づき特定されてもよい。
【0143】
なお、図11に示す機能ブロックでは、第1実施形態の処理を行うことが前提となっているが、これに限らず、ロボットコントローラ1Aは、第1認識結果Im1の修正に関する処理(修正受付部16Aによる認識修正情報Iaの生成、認識結果取得部14Aによる第2認識結果Im2の生成、表示制御部15による第1認識結果Im1に関する表示制御等)を実行しなくともよい。
【0144】
次に、第2実施形態における対象物等の軌道情報の表示及び修正に関する処理の具体例(第1具体例、第2具体例)について説明する。
【0145】
図12は、第1具体例における軌道情報を表した図である。第1具体例は、対象物85を箱86に載置するという目的タスクに関する具体例であり、ロボットコントローラ1Aは、動作計画部17Aが決定した第1動作計画により特定されるロボット5のロボットハンド53及び対象物85の軌道を概略的に表示している。
【0146】
図12において、位置「P1」~「P9」は、第1動作計画に基づく所定タイムステップ数ごとのロボットハンド53の位置を示しており、軌跡線87は、第1動作計画に基づくロボットハンド53の軌跡(経路)を示している。また、仮想オブジェクト「85Va」~「85Ve」は、第1動作計画に基づく所定タイムステップ数ごとの対象物85の位置及び姿勢を表した仮想オブジェクトを示す。また、矢印「Aw1」は、第1動作計画に基づきロボットハンド53が把持状態に切り替わる際の対象物85を掴む方向を示し、矢印「Aw2」は、第1動作計画に基づきロボットハンド53が非把持状態に切り替わる際の対象物85から離れる方向を示す。また、仮想ロボットハンド「53Va」~「53Vh」は、第1動作計画に基づきロボットハンド53が把持状態と非把持状態との間で切り替わる直前及び直後のロボットハンド53の姿勢を表す仮想オブジェクトである。なお、動作計画部17Aが策定する第1動作計画において、ロボット5のエンドエフェクタであるロボットハンド53の軌道をロボット5の軌道として生成していることから、ここではロボットハンド53の軌道がロボット5の軌道として示されている。
【0147】
表示制御部15Aは、動作計画部17Aから受信する軌道情報に基づき、ロボットハンド53に関する軌道を表す位置P1~P9、軌跡線87、矢印Aw1、Aw2と、把持状態と非把持状態との間で切り替わる直前及び直後でのロボットハンド53の姿勢を示す仮想ロボットハンド53Va~53Vhと、対象物85の軌道を表す仮想オブジェクト85Va~85Veとを、指示装置2に表示させる。これにより、表示制御部15Aは、策定された第1動作計画の概要を好適に作業者に把握させることができる。なお、第1動作計画においてロボット5の各関節の軌道が求められている場合には、表示制御部15Aは、ロボットハンド53の軌道に加えて、ロボット5の各関節の軌道についても表示してもよい。
【0148】
そして、修正受付部16Aは、図12に示される第1動作計画に基づく各要素の修正を受け付ける。この場合の修正対象は、ロボットハンド53又は対象物85の任意のタイムステップでの状態(仮想ロボットハンド53Va~53Vhにより特定されるロボットハンド53の姿勢を含む)であってもよく、把持・非把持の各タイミング等であってもよい。
【0149】
ここで、図12に示す第1動作計画では、ロボットハンド53が対象物85の取っ手部分を把持したまま箱86に収容しようとしており、ロボットハンド53が箱86に当接する等に起因して箱86に正しく対象物85を収容できずにタスクが失敗に終わる可能性がある。以上を勘案し、作業者は、対象物85を箱86付近までロボットハンド53により対象物85の取っ手を掴んだ状態で運んだ後、対象物85の上部を掴むように対象物85を持ち替える動作を追加する修正を生成する操作を指示装置2により行う。そして、修正受付部16Aは、上述の操作により生成される入力信号S1に基づき軌道修正情報Ibを生成し、生成した動作計画部17Aへ供給する。そして、動作計画部17Aは、軌道修正情報Ibを反映した第2動作シーケンスSrbを生成し、表示制御部15Aは、第2動作シーケンスSrbにより特定される軌道情報を再び指示装置2に表示させる。
【0150】
図13は、第1具体例においてロボットハンド53及び対象物85の軌道等を修正する入力に基づき修正されたロボットハンド53及び対象物85の修正済みの軌道情報を概略的に示した図である。
【0151】
図13において、位置「P11」~「P20」は、修正された第2動作計画に基づく所定タイムステップ数ごとのロボットハンド53の位置を示しており、軌跡線88は、修正された第2動作計画に基づくロボットハンド53の軌跡(経路)を示している。また、仮想オブジェクト「85Vf」~「85Vj」は、第2動作計画に基づく所定タイムステップ数ごとの対象物85の位置及び姿勢を表した仮想オブジェクトを示す。また、矢印「Aw11」、「Aw13」は、第2動作計画に基づきロボットハンド53が非把持状態から把持状態に切り替わる際に対象物85を掴む方向を示し、矢印「Aw12」、「Aw14」は、第2動作計画に基づきロボットハンド53が把持状態から非把持状態に切り替わる際に対象物85から離れる方向を示す。また、仮想ロボットハンド「53Vj」~「53Vm」は、第2動作計画に基づきロボットハンド53が把持状態と非把持状態との間で切り替わる直前のロボットハンド53の姿勢を表す仮想オブジェクトである。なお、図13の例に代えて、修正受付部16Aは、第2動作計画に基づきロボットハンド53が把持状態と非把持状態との間で切り替わる直後のロボットハンド53の姿勢を表す仮想オブジェクトについても、図12と同様に表示してもよい。
【0152】
図13の例では、修正受付部16Aは、作業者の操作に基づき、図12の位置P6又は位置P7に対応するタイムステップにおいて、対象物85を水平面に置く動作及び対象物85の上部を掴む動作の追加(即ち対象物85を持ち替える動作の追加)を示す軌道修正情報Ibを生成する。対象物85を水平面に置く動作は、位置P16、仮想オブジェクト85Vg、仮想ロボットハンド53Vk及び矢印Aw12に関する動作であり、対象物85の上部を掴む動作は、位置P17、仮想ロボットハンド53Vl及び矢印Aw13に関する動作である。また、軌道修正情報Ibには、これらの動作の変更に付随して修正される対象物85を箱86に置く動作の修正に関する情報も含まれる。例えば、対象物85を箱86に置く動作に関し、図12に示される仮想ロボットハンド53Vg、53Vhにより特定されるロボットハンド53の姿勢と異なる姿勢を示す仮想ロボットハンド53Vmが図13において表示されている。そして、動作計画部17Aは、この軌道修正情報Ibに基づき、図13に示される第2動作計画を決定する。
【0153】
ここで、第2動作計画の決定方法について補足説明する。第1の例では、動作計画部17Aは、軌道修正情報Ibに示される修正内容を追加の制約条件として認識する。そして、動作計画部17Aは、追加の制約条件と、制約条件情報I2が示す既存の制約条件とに基づき、式(2)に示される最適化処理を再び実行することで、タイムステップごとのロボットハンド53及び対象物85の状態を算出する。そして、表示制御部15は、上述の算出結果に基づく軌道情報を指示装置2に再び表示させる。また、動作計画部17Aは、再表示させたロボットハンド53及び対象物85の軌道を承認する旨の入力信号S1等を受信した場合には、上述の算出結果に基づく第2動作シーケンスSrbを、ロボット制御部18Aに供給する。
【0154】
第2動作計画の生成の第2の例では、修正後のロボットハンド53及び対象物85の軌道が指示装置2での操作に基づき指定された場合、修正受付部16Aは、修正後のロボットハンド53及び対象物85の軌道情報を含む軌道修正情報Ibを動作計画部17Aに供給する。そして、動作計画部17Aは、この場合、軌道修正情報Ibにより特定される修正後のロボットハンド53及び対象物85の軌道情報が既存の制約条件(即ち、制約条件情報I2が示す制約条件)を満たすか判定し、満たす場合に、当該軌道情報に基づく第2動作シーケンスSrbを生成し、当該第2動作シーケンスSrbを、ロボット制御部18Aに供給する。
【0155】
これらの第1の例及び第2の例によれば、動作計画部17Aは、修正により指定された物体の状態が実現されるように第1動作計画を修正した第2動作計画を好適に策定することができる。
【0156】
なお、図13に示す修正態様は一例であり、ロボットコントローラ1Aは、ロボットハンド53及び対象物85の軌道に関する種々の修正を受け付けてもよい。例えば、ロボットコントローラ1Aは、把持状態での対象物85の姿勢の修正として、途中で縦の状態から斜め45度に傾ける修正、箱86に対象物85を入れやすいように箱86の近傍に到達したときに対象物85の向きを変える修正等を受け付けてもよい。
【0157】
このように、第2実施形態に係るロボットコントローラ1Aは、対象物の位置及び姿勢等の状態の修正、対象物を掴むポイントの修正等を好適に受け付け、これらの修正を反映した第2動作計画を決定することができる。
【0158】
図14(A)は、第2具体例における修正前の軌道情報を第1の視点により表した図であり、図14(B)は、第2具体例における修正前の軌道情報を第2の視点により表した図である。ここで、第2具体例は、対象物93を、第1障害物91及び第2障害物92の裏の作業テーブル79上の位置に移動させるという目的タスクに関する具体例であり、ロボットコントローラ1Aは、動作計画部17Aが決定した第1動作計画により特定される対象物93の軌道を表示する。仮想オブジェクト93Va~93Vdは、第1動作計画に基づく所定タイムステップ数ごとの対象物85の位置及び姿勢を表した仮想オブジェクトを示す。なお、仮想オブジェクト93Vdは、目的タスク達成時の対象物93(即ち目的位置に存在する対象物93)の位置及び姿勢を表している。
【0159】
図14(A)及び図14(B)に示されるように、第1動作計画では、第1障害物91と第2障害物92との間のスペースを対象物93が通るように対象物93の軌道が設定されている。一方、このような軌道の場合には、図示しないロボット5のロボットハンドが第1障害物91又は第2障害物92に接触する可能性があり、作業者は、対象物93の軌道を修正する必要があると判断する。
【0160】
図15(A)は、第2具体例における軌道情報の修正に関する操作の概要を第1の視点により表した図であり、図15(B)は、第2具体例における軌道情報の修正に関する操作の概要を第2の視点により表した図である。この場合、作業者は、第1障害物91と第2障害物92との間のスペースを対象物93が通らずに第2障害物92の横を通過するように対象物93の軌道を修正するための操作を指示装置2に対して行っている。具体的には、作業者は、第1障害物91と第2障害物92の間に存在する仮想オブジェクト93Vbを、第2障害物92の横の位置に配置する操作をドラッグアンドドロップ操作等により行う。そして、表示制御部15Aは、上述の操作により生成された入力信号S1に基づき、第2障害物92の横に位置する仮想オブジェクト93Vyを新たに生成・表示している。この場合、作業者は、対象物93の位置に加えて、対象物93が所望の姿勢となるように仮想オブジェクト93Vyの姿勢を調整する。
【0161】
そして、修正受付部16Aは、仮想オブジェクト93Vyの位置及び姿勢に関する情報を含む軌道修正情報Ibを動作計画部17Aに供給する。この場合、動作計画部17Aは、例えば、軌道修正情報Ibに基づき、仮想オブジェクト93Vyの状態に対象物93が遷移することを追加の制約条件として認識する。そして、動作計画部17Aは、追加の制約条件に基づき、式(2)に示される最適化処理を行い、修正後の対象物93の軌道(及びロボット5の軌道)等を決定する。なお、変更前の仮想オブジェクト93Vbに対応する動作予定時刻(即ちタイムステップの)に関する情報が軌道修正情報Ibに含まれている場合には、動作計画部17Aは、上述の動作予定時刻において仮想オブジェクト93Vyの状態に対象物93が遷移することを、上述の追加の制約条件として設定してもよい。
【0162】
図16(A)は、第2具体例における第2動作計画に基づく軌道情報を第1の視点により表した図であり、図16(B)は、第2具体例における第2動作計画に基づく軌道情報を第2の視点により表した図である。図16(A)及び図16(B)において、仮想オブジェクト93Vx~93Vzは、第2動作計画に基づく所定タイムステップ数ごとの対象物93の位置及び姿勢を表している。
【0163】
図16(A)及び図16(B)に示されるように、この場合、表示制御部15Aは、動作計画部17Aが再生成した第2動作計画に基づく軌道情報を用い、修正を反映した対象物93の遷移を仮想オブジェクト93Vx~93Vz、93Vdにより示している。なお、ここでは、仮想オブジェクト93Vyの状態になることが制約条件(サブゴール)として第2動作計画において考慮されていることにより、第2障害物92の横を対象物93が通過するように対象物93の軌道が適切に修正されている。そして、ロボットコントローラ1Aは、このように第2動作計画に基づきロボット5を制御することで、適切に目的タスクをロボット5に完了させることができる。
【0164】
図17は、第2実施形態においてロボットコントローラ1が実行するロボット制御処理の概要を示すフローチャートの一例である。
【0165】
まず、ロボットコントローラ1は、センサ7からセンサ信号S4を取得する(ステップS21)。そして、ロボットコントローラ1Aの認識結果取得部14Aは、取得したセンサ信号S4に基づき、作業空間内の物体の状態(位置、姿勢を含む)及び属性等を認識する(ステップS22)。さらに、認識結果取得部14Aは、第1実施形態の処理に基づき第1認識結果Im1を修正した第2認識結果Im2を生成する。なお、第2実施形態において、第1実施形態の処理に基づく第1認識結果Im1の修正処理は、必須の処理ではない。
【0166】
そして、動作計画部17Aは、第1動作計画を決定する(ステップS23)。そして、表示制御部15Aは、動作計画部17Aが決定した第1動作計画に基づく軌道情報を取得し、軌道情報を指示装置2に表示させる(ステップS24)。この場合、表示制御部15Aは、少なくとも対象物に関する軌道情報を、指示装置2に表示させる。
【0167】
そして、修正受付部16Aは、軌道情報の修正の要否を判定する(ステップS25)。この場合、修正受付部16Aは、例えば、軌道情報の修正要否を指定する入力を受け付け、受け付けた入力に基づき修正要否を判定する。
【0168】
そして、修正受付部16Aは、軌道情報の修正が必要であると判定した場合(ステップS25;Yes)、軌道情報に関する修正を受け付ける(ステップS26)。この場合、修正受付部16Aは、指示装置2が備える任意のユーザインタフェースとなる入力部24aを用いた任意の操作方法に基づく修正を受け付ける。そして、動作計画部17Aは、修正受付部16Aが生成する軌道修正情報Ibに基づき、受け付けた修正を反映した第2動作計画を決定する(ステップS27)。そして、動作計画部17Aは、決定した第2動作計画が制約条件を満たすか否か判定する(ステップS28)。そして、動作計画部17Aは、第2動作計画が制約条件を満たす場合(ステップS28;Yes)、ステップS29へ処理を進める。一方、第2動作計画が制約条件を満たさない場合(ステップS28;No)、修正受付部16Aは、前回の修正は無効であるとみなし、軌道情報に関する修正をステップS26において再び受け付ける。なお、ステップS27において追加の制約条件を満たすように第2動作計画が動作計画部17Aにより決定されている場合には、第2動作計画はステップS28において制約条件を満たすとみなされる。
【0169】
そして、軌道情報の修正が必要でなかった場合(ステップS25;No)、又は、ステップS28において制約条件を満たすと判定された場合(ステップS28;Yes)、ロボット制御部18Aは、動作計画部17Aが決定した第2動作計画に基づく第2動作シーケンスSrbに基づき、ロボット制御を行う(ステップS29)。この場合、ロボット制御部18Aは、第2動作シーケンスSrbに基づき生成した制御信号S3をロボット5へ順次供給し、生成された第2動作シーケンスSrbに従いロボット5が動作するように制御する。なお、ロボットコントローラ1Aは、軌道情報の修正が必要でなかった場合には、第1動作計画を第2動作計画とみなしてステップS18の処理を実行する。
【0170】
なお、第2実施形態において、ロボットコントローラ1Aは、拡張現実により軌道情報を表示する代わりに、作業空間を模式的に表したCG(computer graphics)画像等に軌道情報を重ねて指示装置2に表示させ、対象物又はロボット5の軌道に関する種々の修正を受け付けてもよい。この態様においても、ロボットコントローラ1Aは、作業者による軌道情報の修正を好適に受け付けることができる。
【0171】
<第3実施形態>
図18は、第3実施形態における制御装置1Xの概略構成図を示す。制御装置1Xは、主に、認識結果取得手段14Xと、表示制御手段15Xと、修正受付手段16Xとを有する。なお、制御装置1Xは、複数の装置から構成されてもよい。制御装置1Xは、例えば、第1実施形態におけるロボットコントローラ1又は第2実施形態におけるロボットコントローラ1Aとすることができる。
【0172】
認識結果取得手段14Xは、ロボットが実行するタスクに関する物体の認識結果を取得する。「タスクに関する物体」は、ロボットが実行するタスクに関連する任意の物体を指し、ロボットによる把持や加工などが行われる対象物(ワーク)、他作業体、ロボットなどが該当する。認識結果取得手段14Xは、タスクが実行される環境をセンシングするセンサが生成する情報に基づき物体の認識結果を生成することで取得してもよく、認識結果を生成する外部装置から物体の認識結果を受信することで取得してもよい。前者の認識結果取得手段14Xは、例えば、第1実施形態における認識結果取得部14又は第2実施形態における認識結果取得部14Aとすることができる。
【0173】
表示制御手段15Xは、認識結果を表す情報を、現実の風景又は風景の画像と重なって視認されるように表示する。「風景」は、ここではタスクが実行される作業空間が該当する。なお、表示制御手段15Xは、自ら表示を行う表示デバイスであってもよく、外部の表示装置に表示信号を送信することで表示を実行させるものであってもよい。表示制御手段15Xは、例えば、第1実施形態における表示制御部15又は第2実施形態における表示制御部15Aとすることができる。
【0174】
修正受付手段16Xは、外部入力に基づく認識結果の修正を受け付ける。修正受付手段16Xは、例えば、第1実施形態における修正受付部16又は第2実施形態における修正受付部16Aとすることができる。
【0175】
図19は、第3実施形態におけるフローチャートの一例である。認識結果取得手段14Xは、ロボットが実行するタスクに関する物体の認識結果を取得する(ステップS31)。表示制御手段15Xは、認識結果を表す情報を、現実の風景又は風景の画像と重なって視認されるように表示する(ステップS32)。修正受付手段16Xは、外部入力に基づく認識結果の修正を受け付ける(ステップS33)。
【0176】
第3実施形態によれば、制御装置1Xは、ロボットが実行するタスクに関する物体の認識結果の修正を好適に受け付け、当該修正に基づく正確な認識結果を取得することができる。
【0177】
<第4実施形態>
図20は、第4実施形態における制御装置1Yの概略構成図を示す。制御装置1Yは、主に、動作計画手段17Yと、表示制御手段15Yと、修正受付手段16Yとを有する。なお、制御装置1Yは、複数の装置から構成されてもよい。制御装置1Xは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
【0178】
動作計画手段17Yは、物体を用いたタスクを実行するロボットの第1動作計画を決定する。また、動作計画手段17Yは、後述する修正受付手段16Yが受け付けた修正に基づき、ロボットの第2動作計画を決定する。動作計画手段17Yは、例えば、第2実施形態における動作計画部17Aとすることができる。
【0179】
表示制御手段15Yは、第1動作計画に基づく物体の軌道に関する軌道情報を表示する。なお、表示制御手段15Yは、自ら表示を行う表示デバイスであってもよく、外部の表示装置に表示信号を送信することで表示を実行させるものであってもよい。表示制御手段15Yは、例えば、第2実施形態における表示制御部15Aとすることができる。
【0180】
修正受付手段16Yは、外部入力に基づく軌道情報に関する修正を受け付ける。修正受付手段16Yは、例えば、第2実施形態における修正受付部16Aとすることができる。
【0181】
図21は、第4実施形態におけるフローチャートの一例である。動作計画手段17Yは、物体を用いたタスクを実行するロボットの動作計画を決定する(ステップS41)。表示制御手段15Yは、動作計画に基づく物体の軌道に関する軌道情報を表示する(ステップS42)。修正受付手段16Yは、外部入力に基づく軌道情報に関する修正を受け付ける(ステップS43)。そして、動作計画手段17Yは、修正受付手段16Yが受け付けた修正に基づき、ロボットの第2動作計画を決定する(ステップS44)。
【0182】
第4実施形態によれば、制御装置1Xは、決定したロボットの動作計画に基づく物体の軌道に関する軌道情報を表示し、その修正を好適に受け付けて動作計画に反映させることができる。
【0183】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-Transitory Computer Readable Medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(Tangible Storage Medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory Computer Readable Medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0184】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0185】
[付記1]
ロボットが実行するタスクに関する物体の認識結果を取得する認識結果取得手段と、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示する表示制御手段と、
外部入力に基づく前記認識結果の修正を受け付ける修正受付手段と、
を有する制御装置。
[付記2]
前記表示制御手段は、前記認識結果に基づき前記物体を模したオブジェクトを、前記風景又は前記画像における当該物体に重ねて視認されるように表示する、付記1に記載の制御装置。
[付記3]
前記修正受付手段は、前記オブジェクトの位置又は姿勢の少なくとも一方を変更する前記外部入力に基づき、前記物体の位置又は姿勢の少なくとも一方に関する前記修正を受け付ける、付記2に記載の制御装置。
[付記4]
前記修正受付手段は、前記オブジェクトの削除を指示する前記外部入力に基づき、当該オブジェクトに対応する物体の認識結果の削除を示す前記修正を受け付ける、付記2または2に記載の制御装置。
[付記5]
前記修正受付手段は、前記オブジェクトの追加を指示する前記外部入力に基づき、当該オブジェクトに対応する物体の認識結果の追加を示す前記修正を受け付ける、付記2~4のいずれか一項に記載の制御装置。
[付記6]
前記表示制御手段は、前記認識結果に含まれる前記物体の属性に関する情報を、前記風景又は前記画像における当該物体と対応付けて表示し、
前記修正受付手段は、前記属性の変更を指示する前記外部入力に基づき、前記属性に関する前記修正を受け付ける、付記1または2に記載の制御装置。
[付記7]
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記修正受付手段は、前記自信度に基づき、前記修正の要否を判定する、付記1~6のいずれか一項に記載の制御装置。
[付記8]
前記認識結果には、前記物体の認識の正しさに関する自信の度合いを表す自信度が含まれ、
前記表示制御手段は、前記自信度に基づき、前記認識結果が表す情報の表示態様を決定する、付記1~7のいずれか一項に記載の制御装置。
[付記9]
前記表示制御手段は、前記自信度が閾値未満となる前記認識結果が表す情報を強調表示する、付記8に記載の制御装置。
[付記10]
前記認識結果に対して前記修正を反映した第2認識結果に基づき、前記ロボットの動作計画を決定する動作計画手段をさらに有する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
前記動作計画手段は、
前記第2認識結果に基づき、前記ロボットが実行すべきタスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを生成するサブタスクシーケンス生成手段と、
を有する、付記10に記載の制御装置。
[付記12]
コンピュータが、
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付ける、
制御方法。
[付記13]
ロボットが実行するタスクに関する物体の認識結果を取得し、
前記認識結果を表す情報を、現実の風景又は前記風景の画像と重なって視認されるように表示し、
外部入力に基づく前記認識結果の修正を受け付ける処理をコンピュータに実行させるプログラムが格納された記憶媒体。
【0186】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0187】
1、1A ロボットコントローラ
1X、1Y 制御装置
2 指示装置
4 記憶装置
5 ロボット
7 センサ
41 アプリケーション情報記憶部
100 ロボット制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21