(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20241016BHJP
G06Q 10/04 20230101ALI20241016BHJP
G06T 7/20 20170101ALI20241016BHJP
B25J 13/00 20060101ALI20241016BHJP
【FI】
B25J9/22 Z
G06Q10/04
G06T7/20 300Z
B25J13/00 Z
(21)【出願番号】P 2022041332
(22)【出願日】2022-03-16
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】石田 裕太郎
(72)【発明者】
【氏名】高橋 太郎
【審査官】稲垣 浩司
(56)【参考文献】
【文献】独国実用新案第202019107044(DE,U1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G06Q 10/04
G06T 7/20
(57)【特許請求の範囲】
【請求項1】
特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する取得部と、
前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する認識部と、
前記認識部により認識された各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する特定部と、を有し、
前記行動軌跡には、前記対象物体の一部位を一方の腕で固定しながら前記対象物体の他部位に他方の腕で力を加える動作が含まれ、
前記特定部は、前記対象物体を特定の道具を用いて固定させた後、前記他部位に力を加える動作を前記ロボットの一のアームに実行させる動作を特定する
、
情報処理装置。
【請求項2】
特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する取得部と、
前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する認識部と、
前記認識部により認識された各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する特定部と、を有し、
前記対象物体は、複数の物体を含み、
前記行動軌跡には、一方の物体を一方の腕で固定しながら他方の物体を他方の腕で取り出す動作が含まれ、
前記特定部は、当該一方の物体を特定の道具で固定させた後、当該他方の物体を取り出す動作を前記ロボットの一のアームに実行させる動作を特定する
、
情報処理装置。
【請求項3】
特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する取得部と、
前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する認識部と、
前記認識部により認識された各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する特定部と、を有し、
前記対象物体は、複数の物体を含み、
前記行動軌跡には、一方の物体を一方の腕で把持しながら他方の物体に他方の腕で力を加える動作が含まれ、
前記特定部は、当該一方の物体を載置した後、当該他方の物体に力を加える動作を前記ロボットの一のアームに実行させる動作を特定する
、
情報処理装置。
【請求項4】
特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する取得部と、
前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する認識部と、
前記認識部により認識された各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する特定部と、を有し、
前記対象物体は、複数の物体を含み、
前記行動軌跡には、一方の物体を一方の腕で把持しながら他方の物体に他方の腕で力を加える動作が含まれ、
前記特定部は、当該一方の物体を把持しながら当該他方の物体に力を加える動作を前記ロボットの一のアームに実行させる動作を特定する
、
情報処理装置。
【請求項5】
情報処理装置が、請求項1から4のいずれか一項に記載の各処理を実行する情報処理方法。
【請求項6】
請求項1から4のいずれか一項に記載の情報処理装置の各処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、開発者である人間が設計及び実装した状態遷移(ステートマシン)に従った動作をロボットに実行させることにより、所定のタスクをロボットに実行させる技術が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、例えば、ロボットが新たなタスク(ロボットの開発時にサポートされていないタスク)を実行できるようにすることが困難な場合がある。
【0005】
本開示の目的は、ロボットに新たなタスクを適切に実行させる情報処理装置、情報処理方法、及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
本開示に係る第1の態様では、特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する取得部と、前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する認識部と、前記認識部により認識された各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する特定部と、を有する情報処理装置が提供される。
【0007】
また、本開示に係る第2の態様では、特定のタスクに対するエキスパートの行動軌跡を示す情報を取得し、前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識し、認識した各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する、情報処理方法が提供される。
【0008】
また、本開示に係る第3の態様では、特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する処理と、前記行動軌跡に基づいて対象物体に対する各動作を時系列で認識する処理と、認識した各動作と、ロボットの構成とに基づいて、前記タスクを前記ロボットに実行させる各動作を特定する処理と、をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【0009】
一側面によれば、ロボットに新たなタスクを適切に実行させることができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る情報処理システムの構成の一例を示す図である。
【
図2】実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【
図3】実施形態に係る情報処理装置の構成の一例を示す図である。
【
図4】実施形態に係る情報処理装置の処理の一例を示すフローチャートである。
【
図5】実施形態に係るエキスパートの行動軌跡とロボットでの動作の一例を示す図である。
【発明を実施するための形態】
【0011】
本開示の原理は、いくつかの例示的な実施形態を参照して説明される。これらの実施形態は、例示のみを目的として記載されており、本開示の範囲に関する制限を示唆することなく、当業者が本開示を理解および実施するのを助けることを理解されたい。本明細書で説明される開示は、以下で説明されるもの以外の様々な方法で実装される。
以下の説明および特許請求の範囲において、他に定義されない限り、本明細書で使用されるすべての技術用語および科学用語は、本開示が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。
以下、図面を参照して、本開示の実施形態を説明する。
【0012】
<システム構成>
図1を参照し、実施形態に係る情報処理システム1の構成について説明する。
図1は、実施形態に係る情報処理システム1の構成の一例を示す図である。
図1の例では、情報処理システム1は、情報処理装置10、ロボット(「外部装置」の一例。)20、及びセンサ30を有する。
【0013】
情報処理装置10は、AI(Artificial Intelligence)を用いてロボット20を制御する装置である。情報処理装置10は、例えば、人間等がタスク(作業)を実行する際の動作をセンサ30によりエキスパートの行動軌跡を示す情報として取得し、取得した情報に基づいて、ロボット20の身体性に応じた各動作を決定する。そして、情報処理装置10は、決定した各動作をロボット20に行わせることにより、ロボット20に当該タスクを実行させる。
【0014】
ロボット20は、アーム等によりタスクを行うロボットである。ロボット20は、各種のタスクを実行できる装置であればよく、外観の形状は限定されない。ロボット20は、例えば、家庭用、探索用、工場用等の各種の目的で用いることができる。センサ30は、ロボット20の周辺を測定するセンサである。センサ30は、例えば、カメラ、またはLiDARでもよい。なお、情報処理装置10、ロボット20、及びセンサ30の数は、
図1の例に限定されない。なお、情報処理装置10、及びセンサ30は、ロボット20の筐体の内部に収容されてもよい。
【0015】
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10のハードウェア構成例を示す図である。
図2の例では、情報処理装置10(コンピュータ100)は、プロセッサ101、メモリ102、通信インターフェイス103を含む。これら各部は、バス等により接続されてもよい。メモリ102は、プログラム104の少なくとも一部を格納する。通信インターフェイス103は、他のネットワーク要素との通信に必要なインターフェイスを含む。
【0016】
プログラム104が、プロセッサ101及びメモリ102等の協働により実行されると、コンピュータ100により本開示の実施形態の少なくとも一部の処理が行われる。メモリ102は、ローカル技術ネットワークに適した任意のタイプのものであってもよい。メモリ102は、非限定的な例として、非一時的なコンピュータ可読記憶媒体でもよい。また、メモリ102は、半導体ベースのメモリデバイス、磁気メモリデバイスおよびシステム、光学メモリデバイスおよびシステム、固定メモリおよびリムーバブルメモリなどの任意の適切なデータストレージ技術を使用して実装されてもよい。コンピュータ100には1つのメモリ102のみが示されているが、コンピュータ100にはいくつかの物理的に異なるメモリモジュールが存在してもよい。プロセッサ101は、任意のタイプのものであってよい。プロセッサ101は、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、および非限定的な例としてマルチコアプロセッサアーキテクチャに基づくプロセッサの1つ以上を含んでよい。コンピュータ100は、メインプロセッサを同期させるクロックに時間的に従属する特定用途向け集積回路チップなどの複数のプロセッサを有してもよい。
【0017】
本開示の実施形態は、ハードウェアまたは専用回路、ソフトウェア、ロジックまたはそれらの任意の組み合わせで実装され得る。いくつかの態様はハードウェアで実装されてもよく、一方、他の態様はコントローラ、マイクロプロセッサまたは他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアで実装されてもよい。
【0018】
本開示はまた、非一時的なコンピュータ可読記憶媒体に有形に記憶された少なくとも1つのコンピュータプログラム製品を提供する。コンピュータプログラム製品は、プログラムモジュールに含まれる命令などのコンピュータ実行可能命令を含み、対象の実プロセッサまたは仮想プロセッサ上のデバイスで実行され、本開示のプロセスまたは方法を実行する。プログラムモジュールには、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態で望まれるようにプログラムモジュール間で結合または分割されてもよい。プログラムモジュールのマシン実行可能命令は、ローカルまたは分散デバイス内で実行できる。分散デバイスでは、プログラムモジュールはローカルとリモートの両方のストレージメディアに配置できる。
【0019】
本開示の方法を実行するためのプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせで書かれてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサまたはコントローラに提供される。プログラムコードがプロセッサまたはコントローラによって実行されると、フローチャートおよび/または実装するブロック図内の機能/動作が実行される。プログラムコードは、完全にマシン上で実行され、一部はマシン上で、スタンドアロンソフトウェアパッケージとして、一部はマシン上で、一部はリモートマシン上で、または完全にリモートマシンまたはサーバ上で実行される。
【0020】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例には、磁気記録媒体、光磁気記録媒体、光ディスク媒体、半導体メモリ等が含まれる。磁気記録媒体には、例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ等が含まれる。光磁気記録媒体には、例えば、光磁気ディスク等が含まれる。光ディスク媒体には、例えば、ブルーレイディスク、CD(Compact Disc)-ROM(Read Only Memory)、CD-R(Recordable)、CD-RW(ReWritable)等が含まれる。半導体メモリには、例えば、ソリッドステートドライブ、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory)等が含まれる。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0021】
<構成>
次に、
図3を参照し、実施形態に係る情報処理装置10の構成について説明する。
図3は、実施形態に係る情報処理装置10の構成の一例を示す図である。
図3の例では、情報処理装置10は、取得部11、認識部12、特定部13、及び制御部14を有する。これら各部は、情報処理装置10にインストールされた1以上のプログラムと、情報処理装置10のプロセッサ101、及びメモリ102等のハードウェアとの協働により実現されてもよい。
【0022】
取得部11は、特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する。認識部12は、取得部11により取得された行動軌跡に基づいて対象物体に対する各動作を時系列で認識する。
【0023】
特定部13は、認識部12により認識された各動作と、ロボット20の構成とに基づいて、当該特定のタスクをロボット20に実行させる各動作を特定(決定)する。制御部14は、特定部13により特定された各動作を示す情報に基づいてロボット20を制御する。
【0024】
<処理>
次に、
図4及び
図5を参照し、実施形態に係る情報処理装置10の処理の一例について説明する。
図4は、実施形態に係る情報処理装置10の処理の一例を示すフローチャートである。
図5は、実施形態に係るエキスパートの行動軌跡とロボット20での動作の一例を示す図である。
【0025】
ステップS101において、情報処理装置10の取得部11は、特定のタスクに対するエキスパートの行動軌跡を示す情報を取得する。特定のタスクは、例えば、瓶から物を取り出す、または冷蔵庫から物を取り出す等でもよい。ここで、エキスパートの行動軌跡を示す情報には、例えば、特定のタスクにより操作された物体の各部位の位置、移動速度、及び形状の変化等を示す情報が含まれてもよい。また、エキスパートの行動軌跡を示す情報には、例えば、人間により特定のタスクが実行された際の、人間の腕の各時点における位置及び姿勢等を示す情報が含まれてもよい。
【0026】
エキスパートの行動軌跡を示す情報は、例えば、カメラであるセンサ30で撮影された画像を畳み込みニューラルネットワーク(CNN、Convolutional Neural Network)で分析することにより生成されてもよい。エキスパートの行動軌跡を示す情報には、例えば、特定のタスクにより操作された物体(対象物体)の各部位の位置、移動速度、及び形状の変化等を示す情報が含まれてもよい。
【0027】
続いて、情報処理装置10の認識部12は、エキスパートの行動軌跡を示す情報に基づいて対象物体に対する動作を時系列で認識する(ステップS102)。ここで、認識部12は、例えば、エキスパートの行動軌跡から、特定のタスクにおける対象物体に対する動作(処理、操作)を時系列で抽出(タスクを分解)してもよい。
【0028】
続いて、情報処理装置10の特定部13は、認識部12により認識された時系列での各動作のうち、ロボット20の構成(身体性)と整合しない動作(不整合動作)を特定する(ステップS103)。ここで、特定部13は、認識部12により認識された時系列での各動作のそれぞれに対して、各動作による作用を実現できる、ロボット20により実行可能な動作(方法)を複数特定してもよい。そして、特定部13は、各動作に対して特定した複数の動作を時系列で探索し、ロボット20の構成と整合が取れない動作を抽出してもよい。
【0029】
特定部13は、例えば、ロボット20が、アームを一つのみ有する構成である場合、認識部12により認識された時系列での各動作のうち、人間が左右の腕を用いて、対象物体に対して同時に力を加える動作をAIにより特定してもよい。これにより、ロボット20の構成と整合が取れない動作を特定できる。
【0030】
続いて、情報処理装置10の特定部13は、特定した不整合動作に対応する、ロボット20で実行可能な動作を特定する(ステップS104)。これにより、例えば、人間が手本を示した新たなタスクでの一連の動作に、ロボット20の構成に整合しない動作が含まれる場合であっても、当該新たなタスクをロボット20に実行できるようにすることができる。
【0031】
ここで、特定部13は、不整合動作による作用を実現できる、ロボット20により実行可能な動作(方法)を複数特定してもよい。そして、特定部13は、不整合動作に対して特定した複数の動作を時系列で探索し、ロボット20の構成と整合が取れる動作の順列のうち、所要時間がより短く、難易度がより低い動作の順列を特定してもよい。
【0032】
なお、ロボット20により実行可能な動作には、ロボット20のアームのみで実行可能な動作、及びロボット20のアームも用いて使用できる道具(例えば、対象物体を固定できる道具)を用いて実行可能な動作が含まれてもよい。また、ロボット20により実行可能な動作には、例えば、ロボット20のスピーカから出力する音声メッセージ(例えば、対象物体の固定を依頼するメッセージ)により、人間を道具として用いる動作が含まれてもよい。
【0033】
続いて、情報処理装置10の制御部14は、特定部13により特定された動作を含む各動作をロボット20に実行させる(ステップS105)。ここで、制御部14は、
図5に示すように、認識部12により認識された時系列での各動作のうち、不整合動作以外の各動作を、模倣学習等を用いてロボット20に実行させてもよい。また、制御部14は、認識部12により認識された時系列での各動作のうちの不整合動作について、特定部13により特定された動作をロボット20に実行させてもよい。
【0034】
図5の例では、あるタスクにおいてエキスパートの行動軌跡での一連の動作510では時系列順に動作511、動作512、及び動作513が実行されている。そして、不整合動作である動作512が、ロボット20で実行可能な動作である動作521、及び動作522に特定部13により変換されている。そのため、ロボット20で実行可能な一連の動作520として、時系列順に動作511、動作521、動作522、及び動作513がロボット20により実行される。
【0035】
以下では、ロボット20が、アームを一つのみ有する構成である場合に、不整合動作をロボット20で実行可能な動作に変換する例について説明する。なお、以下の例は、適宜組み合わせてもよい。
【0036】
(一旦物を固定させてから力を加える例)
エキスパートの行動軌跡に、対象物体の一部位を一方の腕(手)で固定しながら対象物体の他部位に他方の腕で力を加える動作が含まれている場合、特定部13は、ステップS103の処理において、当該動作を不整合動作として特定してもよい。そして、特定部13は、ステップS104の処理において、当該不整合動作に対応する、ロボット20で実行可能な動作として、対象物体を特定の道具を用いて固定させた後、当該他部位に力を加える動作を特定してもよい。
【0037】
この場合、例えば、瓶から物を取り出すタスクにおいて、エキスパートの行動軌跡に、一方の腕で瓶を把持しながら他方の腕で瓶の蓋を開ける動作が含まれている場合、当該動作が不整合動作として特定されてもよい。そして、当該不整合動作に対応する、ロボット20で実行可能な動作として、瓶を特定の道具を用いて固定させた後、瓶の蓋を開ける動作が特定されてもよい。
【0038】
(一旦扉等を固定させてから物を取り出す例)
エキスパートの行動軌跡に、一方の物体を一方の腕で固定しながら他方の物体を他方の腕で取り出す動作が含まれている場合、特定部13は、ステップS103の処理において、当該動作を不整合動作として特定してもよい。そして、特定部13は、ステップS104の処理において、当該不整合動作に対応する、ロボット20で実行可能な動作として、当該一方の物体を特定の道具で固定させた後、当該他方の物体を取り出す動作を特定してもよい。
【0039】
この場合、例えば、冷蔵庫から物を取り出すタスクでのエキスパートの行動軌跡に、一方の腕で冷蔵庫の扉を開いた状態に固定しながら他方の腕で冷蔵庫の中の物を取り出す動作が含まれている場合、当該動作が不整合動作として特定されてもよい。そして、当該不整合動作に対応する、ロボット20で実行可能な動作として、冷蔵庫の扉を特定の道具を用いて固定させた後、冷蔵庫の中の物を取り出す動作が特定されてもよい。
【0040】
(一旦物を置いてから扉等を閉める例)
エキスパートの行動軌跡に、一方の物体を一方の腕で把持しながら他方の物体に他方の腕で力を加える動作が含まれている場合、特定部13は、ステップS103の処理において、当該動作を不整合動作として特定してもよい。そして、特定部13は、ステップS104の処理において、当該不整合動作に対応する、ロボット20で実行可能な動作として、当該一方の物体を床等に載置した後、当該他方の物体に力を加える動作を特定してもよい。
【0041】
この場合、例えば、冷蔵庫から物を取り出すタスクでのエキスパートの行動軌跡に、一方の腕で物を把持しながら冷蔵庫の扉を閉める動作が含まれている場合、当該動作を不整合動作として特定されてもよい。そして、当該不整合動作に対応する、ロボット20で実行可能な動作として、冷蔵庫から取り出した物を床等に載置した後、冷蔵庫の扉を閉める動作が特定されてもよい。
【0042】
(把持している物で扉等を押して閉める例)
エキスパートの行動軌跡に、一方の物体を一方の腕で把持しながら他方の物体に他方の腕で力を加える動作が含まれている場合、特定部13は、ステップS103の処理において、当該動作を不整合動作として特定してもよい。そして、特定部13は、ステップS104の処理において、当該不整合動作に対応する、ロボット20で実行可能な動作として、当該一方の物体を把持しながら、把持している物体にて当該他方の物体に力を加える動作を特定してもよい。
【0043】
この場合、例えば、冷蔵庫から物を取り出すタスクでのエキスパートの行動軌跡に、一方の腕で物を把持しながら冷蔵庫の扉を閉める動作が含まれている場合、当該動作を不整合動作として特定されてもよい。そして、当該不整合動作に対応する、ロボット20で実行可能な動作として、冷蔵庫から取り出した物を把持しながら、把持している物で冷蔵庫の扉を押して閉める動作が特定されてもよい。
【0044】
<変形例>
情報処理装置10は、一つの筐体に含まれる装置でもよいが、本開示の情報処理装置10はこれに限定されない。情報処理装置10の各部は、例えば1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。これらのような情報処理装置についても、本開示の「情報処理装置」の一例に含まれる。
【0045】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0046】
1 情報処理システム
10 情報処理装置
11 取得部
12 認識部
13 特定部
14 制御部
20 ロボット
30 センサ