(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20241119BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2023534460
(86)(22)【出願日】2021-07-12
(86)【国際出願番号】 JP2021026192
(87)【国際公開番号】W WO2023286138
(87)【国際公開日】2023-01-19
【審査請求日】2023-11-21
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】橘▲高▼ 達也
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2020-127102(JP,A)
【文献】特開2021-060849(JP,A)
【文献】特開2012-225752(JP,A)
【文献】特許第6743526(JP,B2)
【文献】特開2021-044749(JP,A)
【文献】特開平08-030327(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの周囲の観測領域の画像を、該ロボットの動作に対応して移動するカメラから取得する画像取得部と、
前記画像に基づいて、対象物を処理するためのタスクを
実行するために前記ロボットが該対象物に接触できる領域を、タスク領域
として、
前記観測領域から抽出する抽出部と、
前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するロボット制御部と、
を備え、
前記抽出部は、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
ロボット制御システム。
【請求項2】
前記ロボット制御部は、前記ロボットが前記タスク領域に到達したことに応答して、前記ロボットに前記タスクを実行させる、
請求項1に記載のロボット制御システム。
【請求項3】
前記抽出部は、複数の前記タスク領域を抽出し、
前記ロボット制御部は、
前記複数のタスク領域から一つのタスク領域を選択し、
前記ロボットが前記選択されたタスク領域に接近するように前記ロボットを制御する、
請求項1
または2に記載のロボット制御システム。
【請求項4】
前記抽出部は、互いに異なる複数のタスクのそれぞれについて、該タスクに対応する前記タスク領域を抽出する、
請求項1~
3のいずれか一項に記載のロボット制御システム。
【請求項5】
前記抽出部は、前記ロボットの構成と、前記観測領域内の現在状況とに基づいて、前記タスク領域を抽出する、
請求項1~
4のいずれか一項に記載のロボット制御システム。
【請求項6】
前記現在状況は、前記対象物が前記観測領域内に存在するか否かを示し、
前記抽出部は、前記対象物が前記観測領域内に存在することに少なくとも基づいて、前記タスク領域を抽出する、
請求項
5に記載のロボット制御システム。
【請求項7】
前記現在状況は、前記対象物とは異なる障害物が前記観測領域内に存在するか否かを更に示し、
前記抽出部は、前記ロボットが前記タスクを実行する際に前記障害物に干渉しないことに更に基づいて、前記タスク領域を抽出する、
請求項
6に記載のロボット制御システム。
【請求項8】
前記ロボットの構成は、前記ロボットに取り付けられたエンドエフェクタの構成を含み、
前記現在状況は、前記対象物の構造を更に示し、
前記抽出部は、前記エンドエフェクタの構成と前記対象物の構造とを比較して、前記タスク領域を抽出する、
請求項
6または7に記載のロボット制御システム。
【請求項9】
前記抽出部は、
前記タスク領域が存在する確率を算出し、
前記確率が所与の閾値に達する場合に、前記タスク領域を抽出する、
請求項1~
8のいずれか一項に記載のロボット制御システム。
【請求項10】
前記抽出部は、
前記観測領域における前記確率の分布を算出し、
前記確率が前記閾値に達する領域を前記タスク領域として抽出する、
請求項
9に記載のロボット制御システム。
【請求項11】
前記抽出部が前記タスク領域を抽出しないことに応答して、前記ロボットの周囲の3次元空間における前記観測領域の位置を変更する探索部を更に備える請求項1~
10のいずれか一項に記載のロボット制御システム。
【請求項12】
前記探索部は、前記3次元空間において前記観測領域の位置を動的に変更する、
請求項
11に記載のロボット制御システム。
【請求項13】
前記探索部は、
過去の少なくとも一つの位置における前記観測領域での前記タスク領域の抽出の結果に基づいて、前記3次元空間において前記タスク領域が抽出される可能性を表すスコアを算出し、
前記スコアに基づいて、前記観測領域の位置を変更する、
請求項
11または12に記載のロボット制御システム。
【請求項14】
前記探索部は、
前記3次元空間における前記タスク領域の存在の不確実度の分布を算出し、
前記不確実度の分布に基づいて、前記観測領域の位置を変更する、
請求項
13に記載のロボット制御システム。
【請求項15】
前記抽出部は、前記観測領域の位置が変更される度に前記タスク領域を抽出する、
請求項
11~14のいずれか一項に記載のロボット制御システム。
【請求項16】
請求項1~
15のいずれか一項に記載のロボット制御システムと、
前記ロボット制御部の制御によって動作するロボットと、
を備えるロボットシステム。
【請求項17】
少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、
ロボットの周囲の観測領域の画像を、該ロボットの動作に対応して移動するカメラから取得するステップと、
前記画像に基づいて、対象物を処理するためのタスクを
実行するために前記ロボットが該対象物に接触できる領域を、タスク領域
として、
前記観測領域から抽出するステップと、
前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するステップと、
を含み、
前記抽出するステップでは、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
ロボット制御方法。
【請求項18】
ロボットの周囲の観測領域の画像を、該ロボットの動作に対応して移動するカメラから取得するステップと、
前記画像に基づいて、対象物を処理するためのタスクを
実行するために前記ロボットが該対象物に接触できる領域を、タスク領域
として、
前記観測領域から抽出するステップと、
前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するステップと、
をコンピュータに実行させ、
前記抽出するステップでは、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
ロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、各種のセンサを用いてセンサ周囲の外部環境を認識する能動的環境認識システムが記載されている。このシステムは、外部環境の情報を収集する単数あるいは複数のセンサ機構と、外部環境を変化させるアクチュエータ機構と、センサ機構からのセンサ情報により、アクチュエータ機構への適切な運動指令を生成する階層型の情報処理機構とを備える。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットにタスクを効率良く実行させることが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボット制御システムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するロボット制御部とを備え、抽出部は、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【0006】
本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとを含み、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【0007】
本開示の一側面に係るロボット制御プログラムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとをコンピュータに実行させ、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【発明の効果】
【0008】
本開示の一側面によれば、ロボットにタスクを効率良く実行させることができる。
【図面の簡単な説明】
【0009】
【
図1】ロボット制御システムの適用の一例を示す図である。
【
図2】ロボット制御システムのために用いられるコンピュータのハードウェア構成の一例を示す図である。
【
図3】ロボット制御システムでの処理の一例を示すフローチャートである。
【
図5】ロボット制御システムによるロボット制御の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0011】
[システムの構成]
本実施形態では、本開示に係るロボット制御システムの一例をロボットシステム1の一構成要素として示す。ロボットシステム1は、所与の目的を達成するための動作をロボットに実行させることにより、所与の作業を自動化する仕組みである。
【0012】
図1は、ロボットシステム1の構成の一例を示すと共に、ロボット制御システムの適用の一例も示す図である。この例では、ロボットシステム1は、ロボット制御システム10と、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3とを備える。
図1は一つのロボット2および一つのロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。しかし、各装置の台数も接続方法も
図1の例に限定されない。例えば、一つのロボットコントローラ3が複数台のロボット2と接続してもよい。装置間を接続する通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。
【0013】
ロボット制御システム10は、少なくとも一部の状況においてロボット2を自律的に動作させるためのコンピュータシステムである。ロボット制御システム10は所与の演算を実行して、ロボット2を制御するための指令信号を生成する。一例では、指令信号はロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路のことをいう。例えば、ロボット2の軌道は先端部の軌道であり得る。ロボット制御システム10は生成された指令信号をロボットコントローラ3に向けて送信する。
【0014】
ロボットコントローラ3は、ロボット制御システム10からの指令信号に従ってロボット2を動作させる装置である。一例では、ロボットコントローラ3は、指令信号で示される目標値に先端部の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
【0015】
ロボット2は、人に代わって作業する装置または機械である。一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2は、マニピュレータ2aと、該マニピュレータ2aの先端に取り付けられたツールであるエンドエフェクタ2bとを備える。ロボット2はそのエンドエフェクタ2bを用いて様々な処理を実行できる。ロボット2は、所与の範囲内においてエンドエフェクタ2bの位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。
【0016】
ロボット2はロボット制御システム10による制御に基づいて動作して所与のタスクを実行する。本開示においてタスクとは、或る目的を達成するためにロボット2に実行させる一連の処理をいう。ロボット2がタスクを実行することで、ロボットシステム1のユーザが望む結果が得られる。例えば、タスクは何らかの対象物を処理するために設定される。タスクの例として「対象物を把持してコンベヤ上に置く」、「部品を掴んでその部品をワークに取り付ける」、「対象物にスプレーで塗装する」が挙げられる。本開示において対象物とは、ロボット2によって処理される有体物をいう。
【0017】
ロボット制御システム10は、ロボット2の周辺環境が未知である状況において、ロボット2がタスクを実行できると見込まれる領域、すなわち、対象物を処理できると見込まれる領域をタスク領域として能動的に抽出し、その対象物(タスク領域)に向けてロボット2を接近させる。ロボット制御システム10はタスク領域の抽出を繰り返しながらロボット2を対象物に接近させていく。ロボット2がタスク領域に到達すると、ロボット制御システム10はそのロボット2にタスクを実行させる。本開示において、ロボット2がタスク領域に到達するとは、ロボット2がタスクを実行できる程に十分に対象物に接近したことを意味する。
【0018】
ロボット制御システム10は、ロボット2の周辺環境の認識だけでなく、その環境においてロボットが動作することができるか否かを示す行為可能性(potential for action)にも基づいて、タスク領域を抽出する。すなわち、ロボット制御システム10は環境認識および行為可能性という二つの要素を別々に考慮するのではなく、これら双方の要素を考慮して、タスク領域を抽出する。このようにタスク領域を抽出することで、それら二つの要素を別々に考慮する場合よりもロボット2を効率良く制御することが可能になる。
【0019】
ロボット制御システム10は未知の周辺環境を認識するために、センサの条件を能動的に変化させて必要な情報を探索および収集する技術であるアクティブセンシング(active sensing)を用いる。この技術によって、対象物または周辺環境に関する条件が頻繁に変わったり、事前のモデル化が不可能または困難であったりする場合でも、ロボット2が目指すべき目標を認識することが可能になる。アクティブセンシングは未知の目標を発見する技術であり、したがって、既知の目標に向けて機械系の位置を決めるビジュアルフィードバック(visual feedback)とは異なる。
【0020】
行為可能性を考慮することは、認識された環境がロボット2の動作に与える意味を考慮することであるともいえる。したがって、ロボット制御システム10によるロボット制御は、アフォーダンス(affordance)という概念を利用した仕組みであるともいえる。ロボット制御システム10は、知覚(センサ)とロボットの動作とを結び付けて記号化することにより、ロボット制御に関する高度な意思決定を実現し得る。行為可能性を考慮することで、厳密なモデルを用いることなく同類のタスクを柔軟に処理することが可能になる。また、ロボットの動作に直接に関係する情報を処理すれば足りるので、ロボット制御のための計算を効率的に実行できる。
【0021】
ロボット2の周囲の3次元空間を認識するためのセンサの例として、カメラなどの視覚センサが挙げられる。一例では、ロボット2は、エンドエフェクタ2bの周辺を撮影するカメラ20を備える。カメラ20の被写範囲は、エンドエフェクタ2bの少なくとも一部を映すように設定されてもよい。カメラ20はマニピュレータ2a上に配置されてもよく、例えばマニピュレータ2aの先端付近に取り付けられる。カメラ20はロボット2の動作に対応して移動する。この移動は、カメラ20の位置および姿勢の少なくとも一方の変化を含み得る。ロボット2の動作に対応して移動する限り、カメラ20はロボット2とは異なる場所に設けられてもよい。例えば、カメラ20は別のロボットに取り付けられてもよいし、天井、壁面、またはカメラスタンドに移動可能に設けられてもよい。
【0022】
ロボット制御システム10は少なくとも一つの所与のセンサから得られる情報に基づいて、ロボット2の周囲の観測領域からタスク領域を抽出する。カメラ20が用いられる場合には、「センサから得られる情報」は、カメラ20から得られる画像(静止画または映像)である。タスク領域を抽出できた場合には、ロボット制御システム10はロボット2が対象物に接近するようにロボット2を制御する。ロボット制御システム10は、ロボット2が対象物に接近した後にタスク領域を再び抽出し、タスク領域を抽出できた場合にはロボット2を対象物に更に接近させる。このように、ロボット制御システム10はタスク領域の抽出と、ロボット2を対象物に接近させる制御とを繰り返す。ロボット2がタスク領域に到達した場合には、ロボット制御システム10はそのロボット2にタスクを実行させる。タスク領域の抽出と対象物への接近とを繰り返すことにより、周辺の状況の変化に適応しながら対象物を処理できる。また、その繰返し処理により、センサの感度が高くなかったり、センサのキャリブレーション誤差があったりする場合でも、タスクを精度良く実行できる。
【0023】
ロボット制御システム10が、互いに異なる複数のタスク(すなわち、複数種類のタスク)をロボット2に実行させる場合には、ロボット制御システム10はそれぞれの種類のタスクに対応してタスク領域を抽出する。
【0024】
一例では、タスクはロボット2が対象物に接触する工程を含む。このようなタスクの例として、対象物の把持を含むタスク、対象物を押すかまたは引くことを含むタスクが挙げられる。このようなタスクをロボット2に実行させる場合には、ロボット制御システム10は、ロボット2がタスクを実行するために対象物に接触できる領域をタスク領域として抽出する。
【0025】
本開示において観測領域とは、タスク領域を抽出するための範囲として設定される領域をいう。観測領域はセンサで捕捉される領域であるともいえる。例えば、観測領域はカメラ20で撮影された領域である。
【0026】
或る観測領域においてタスク領域を抽出できない場合には、ロボット制御システム10は観測領域の位置を変更し、変更後の観測領域においてタスク領域の抽出を試みる。「観測領域においてタスク領域を抽出できない」という状況は、その観測領域において未処理のタスク領域が無くなった場合を含む。一例では、ロボット制御システム10はロボット2の周囲の3次元空間において観測領域の位置を変更しながら、それぞれの観測領域において、タスク領域の抽出とロボット2を対象物に接近させる制御とを繰り返す。このように、ロボット制御システム10は探索(exploration)と利用(Exploitation)とを使い分けながらロボット2を制御する。ロボット2はその制御に従って、該ロボット2の周辺に位置する1以上の対象物を自律的に処理する。
【0027】
図1はロボット制御システム10の機能構成の一例も示す。一例では、ロボット制御システム10は機能的構成要素として探索部11、観測履歴データベース12、画像取得部13、抽出部14、およびロボット制御部15を備える。探索部11は観測領域の位置を設定する機能モジュールである。探索部11は、タスク領域が探索された観測領域を示す観測データを記録する。観測履歴データベース12はその観測データを記憶する機能モジュールである。画像取得部13は観測領域の画像をカメラ20から取得する機能モジュールである。抽出部14はその画像に基づいて観測領域からタスク領域を抽出する機能モジュールである。ロボット制御部15はそのタスク領域に基づいてロボット2を制御する機能モジュールである。一例では、ロボット制御部15はタスク領域が抽出されたことに応答してロボット2を対象物に接近させ、ロボット2がタスク領域に到達したことに応答して該ロボット2にタスクを実行させる。
【0028】
ロボット制御システム10は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。
【0029】
図2は、ロボット制御システム10のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
【0030】
本体110は回路160を有する装置である。回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164はロボットコントローラ3などの他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
【0031】
モニタ120は、本体110から出力された情報を表示するための装置である。モニタ120は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネルが挙げられる。
【0032】
入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
【0033】
モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
【0034】
[ロボット制御方法]
本開示に係るロボット制御方法の一例として、
図3を参照しながら、ロボット制御システム10により実行される一連の処理手順の一例を説明する。
図3はロボット制御システム10での処理の一例を処理フローS1として示すフローチャートである。すなわち、ロボット制御システム10は処理フローS1を実行する。
【0035】
ステップS11では、抽出部14が観測領域からタスク領域を抽出する。抽出部14は、所与の事前設定に基づく初期位置に設定された観測領域、または探索部11によって位置が変更された観測領域から、タスク領域を抽出する。一例では、画像取得部13が観測領域の画像をカメラ20から取得し、抽出部14がその画像に基づいてタスク領域を抽出する。抽出部14は一つの観測領域において複数のタスク領域を抽出し得る。
【0036】
抽出部14は、ロボット2の構成と観測領域内の現在状況とに基づいてタスク領域を抽出してもよい。観測領域内の現在状況とは、ロボット2の周囲の現在の状況をいう。抽出部14は観測領域内の現在状況として、対象物が観測領域内に存在するか否かを判定してもよいし、対象物の構造を判定してもよいし、対象物とは異なる障害物が観測領域内に存在するか否かを判定してもよい。
【0037】
抽出部14は、実行しようとするタスクに対応するタスク領域を抽出する。複数種類のタスクをロボット2に実行させることが可能である場合には、抽出部14は、これから実行しようとするタスクに対応するタスク領域を抽出する。
【0038】
一例では、抽出部14は深層学習を用いた機械学習(例えば畳み込みニューラルネットワーク(CNN))、カラーフィルタリング、テンプレートマッチングなどの手法によって画像の各画素を解析し、対象物が存在する確率を画素ごとに算出する。そして、抽出部14は各画素での確率を示すグレースケール画像を生成する。このグレースケール画像は、観測領域内の対象物の位置を確率的に示す情報であるといえる。抽出部14はそのグレースケール画像に基づいて、対象物が写った領域をタスク領域として抽出してもよい。
【0039】
あるいは、抽出部14はそのグレースケール画像とは別に深度画像(depth image)を取得し、この2種類の画像に基づいてタスク領域を抽出してもよい。抽出部14はカメラ20によって生成された深度画像を用いてもよいし、カメラ20からの画像と深度情報とに基づいて深度画像を生成してもよい。抽出部14はグレースケール画像および深度画像に基づいて、対象物が存在すると見込まれる位置での深度を特定する。抽出部14はその深度とエンドエフェクタ2bの構成とに基づいて、ロボット2がその位置において対象物を処理できるか否かを計算する。このように、抽出部14はエンドエフェクタ2bの構成と対象物の構造とを比較してタスク領域を抽出してもよい。一例では、抽出部14はその計算においてガウス関数を用いて、ロボット2が対象物を処理できるか否かを確率的に算出する。タスクが対象物の把持を含む場合には、抽出部14は、対象物を把持することができる位置を特定するための手法であるFast Graspability Evaluation(FGE)を用いてその計算を実行してもよい。抽出部14はそのような確率的な計算によって、観測領域における、タスク領域が存在する確率の分布を算出する。本開示ではその分布を領域マップともいう。一例では、抽出部14は、その確率が所与の閾値に達する領域をタスク領域として抽出する。
【0040】
上記の例のように、抽出部14は、対象物が観測領域内に存在することに少なくとも基づいてタスク領域を抽出してもよい。抽出部14は、ロボット2がタスクを実行する際に障害物に干渉しないことに更に基づいてタスク領域を抽出してもよい。FGEの利用は、その干渉を考慮してタスク領域を抽出する一例である。
【0041】
図4はタスク領域の抽出の一例を示す図である。この例では、ロボット2はオレンジを把持して所与の位置にそのオレンジを移動させるタスクを実行する。この自律的な処理を実現するために、抽出部14はカメラ20から得られた画像200を解析し、ロボット2がオレンジを把持できると見込まれるタスク領域を抽出する。すなわち、抽出部14は、ロボット2がタスクを実行するために対象物(オレンジ)に接触できる領域をタスク領域として抽出する。
【0042】
画像200は、床211に置かれているオレンジ221と、フェンス212の上方で保持されたオレンジ222とを映している。オレンジ221の周辺には、タスクの実行において障害物となり得るいくつかの別の物体231が置かれている。画像200は、エンドエフェクタ2bの一例であるグリッパの先端も映す。
【0043】
抽出部14はその画像200を解析して、オレンジ221に対応するタスク領域311を抽出し、オレンジ222に対応するタスク領域312を抽出する。領域マップ300はタスク領域が存在する確率の分布を示す。領域マップ300では、その確率が高い領域は相対的に白く表され、その確率が低い領域は相対的に黒く表される。タスク領域311は暗いグレーで表されているのに対して、タスク領域312は白く表されている。これは、オレンジ222を把持できる可能性が、オレンジ221を把持できる可能性よりも高いことを意味する。このような差は、オレンジ221の近くに別の物体231が存在することと、オレンジ221がオレンジ222よりも遠くにあることとの少なくとも一方に起因すると予想される。
【0044】
図3に戻って、少なくとも一つのタスク領域が抽出された場合には(ステップS12においてYES)、処理はステップS13に進む。ステップS13では、ロボット制御部15が、ロボット2が更に接近すべき位置である接近目標位置を決定する。この処理は、観測領域内のどこをより詳細に探索するかを決定することであるともいえる。一例では、ロボット制御部15は観測領域に対して、ロボット2がタスクを実行できる可能性を表すスコアを算出し、そのスコアが最大である位置を接近目標位置として決定してもよい。ロボット制御部15はそのスコアの分布として上記の領域マップを用いてもよい。あるいは、ロボット制御部15は検出された対象物の中心の位置を接近目標位置として算出してもよい。
【0045】
複数のタスク領域が抽出された場合には、ロボット制御部15は該複数のタスク領域から一つのタスク領域を選択し、選択されたタスク領域について接近目標位置を決定する。例えば、ロボット制御部15は最大のスコアに対応するタスク領域を選択してもよい。
【0046】
ステップS14では、ロボット制御部15が、ロボット2がタスク領域に到達したか否かを判定する。
【0047】
一例では、ロボット制御部15はエンドエフェクタ2bと接近目標位置との距離を算出し、この距離に基づいて判定を実行してもよい。算出された距離が所与の閾値以下である場合には、ロボット制御部15はロボット2がタスク領域に到達したと判定する。一方、算出された距離がその閾値より大きい場合には、ロボット制御部15はロボット2がタスク領域に到達していないと判定する。
【0048】
別の例では、ロボット制御部15は、タスク領域においてタスクを実行するために必要なロボット2の状態を示す目標コンフィグレーションとその不確実度とを算出してもよい。目標コンフィグレーションは例えば、タスクを開始するためのロボット2の位置および姿勢を含む。目標コンフィグレーションの詳細については後述する。算出された不確実度が所与の閾値以下である場合には、ロボット制御部15はロボット2がタスク領域に到達したと判定する。一方、算出された不確実度がその閾値より大きい場合には、ロボット制御部15はロボット2がタスク領域に到達していないと判定する。
【0049】
ロボット2がタスク領域に到達していないと判定された場合には(ステップS14においてNO)、処理はステップS15に進む。ステップS15では、ロボット制御部15がタスク領域に向けてロボットを制御する。すなわち、ロボット制御部15はロボット2が対象物に接近するように該ロボット2を制御する。複数のタスク領域から一つが選択された場合には、ロボット制御部15はロボット2がその選択されたタスク領域(対象物)に接近するようにロボット2を制御する。
【0050】
一例では、ロボット制御部15はエンドエフェクタ2bを現在位置から接近目標位置へと動かすためのロボット2のパスをプランニングにより生成する。あるいは、ロボット制御部15はその距離を小さくすると共に、接近目標位置がカメラ20の画像の中心に映るようにロボット2のパス(軌道)をプランニングにより生成してもよい。ロボット制御部15は、事前に設定されたロボット2の位置および姿勢の候補から適切な位置および姿勢を選択し、選択された位置および姿勢を実現するためのパスをプランニングにより生成してもよい。ロボット制御部15はパスのプランニングの少なくとも一部として、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。特異姿勢(特異点)とは、ロボット2の構造上の観点から該ロボット2を制御できなくなる姿勢をいう。
【0051】
ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。この結果、ロボット2がそのパスに沿って対象物に向かって接近する。
【0052】
ステップS15の後に処理はステップS11に戻り、ロボット制御システム10がステップS11以降の処理を再び実行する。すなわち、ロボット制御システム10はロボット2が対象物に接近した後にタスク領域を再び抽出し、この抽出の結果に基づいて後続の処理を実行する。
【0053】
ロボット2がタスク領域に到達したと判定された場合には(ステップS14においてYES)、処理はステップS16に進む。ステップS16では、ロボット制御部15がロボット2にタスクを実行させる。
【0054】
一例では、ロボット制御部15は目標コンフィグレーションを算出し、その目標コンフィグレーションに基づくプランニングによってパスを生成する。上述したように、目標コンフィグレーションはタスクを開始するためのロボット2の位置および姿勢を含み得る。例えば、ロボット2に対象物を把持させる場合には、ロボット制御部15は、その把持のためのグリッパの開き幅を含む、ロボット2の位置および姿勢を算出する。タスクが複数の主要動作を含む場合(例えば、第1の位置で対象物を把持する動作と、第2の位置にその対象物を置く動作とを含むタスクの場合)には、ロボット制御部15はそれぞれの主要動作について目標コンフィグレーションを算出してもよい。続いて、ロボット制御部15はその目標コンフィグレーションとタスクとを実行するためのパスをプランニングにより生成する。このプランニングにおいても、ロボット制御部15は、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。
【0055】
ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット制御部15は、目標コンフィグレーションを実行するためのパスを示す指令信号をロボットコントローラ3に出力し、その後に、タスクを実行するためのパスを示す指令信号をロボットコントローラ3に出力してもよい。いずれにしても、ロボット2は目標コンフィグレーションに基づく位置および姿勢に向かって動作し、次いでタスクを実行する。
【0056】
ステップS17では、ロボット制御部15が、ロボット制御を終了する否かを判定する。ロボット制御部15は任意の終了条件に基づいてこの判定を実行してよい。例えば、ロボット制御部15は規定回数のタスクを実行した場合にはロボット制御を終了すると判定し、タスクの実行回数がその規定回数未満である場合にはロボット制御を継続すると判定してもよい。あるいは、ロボット制御部15はロボット制御においてエラーが発生した場合にはロボット制御を終了すると判定し、そのエラーが発生していない場合にはロボット制御を継続すると判定してもよい。
【0057】
ロボット制御を終了すると判定された場合には(ステップS17においてYES)、処理はステップS18に進む。ステップS18では、ロボット制御システム10が終了処理を実行する。この終了処理において、ロボット制御部15はロボット2を初期の姿勢および位置に戻してもよい。あるいは、ロボット制御部15はすべてのタスクを終了したことを視覚情報または音声によってユーザに通知してもよい。
【0058】
ロボット制御を続ける場合には(ステップS17においてNO)、処理はステップS19に進む。ステップS19では、ロボット制御部15が次のタスクのための準備を実行する。例えば、ロボット制御部15はロボット2を初期の姿勢および位置に戻してもよい。あるいは、ロボット制御部15は次のタスクを実行することを視覚情報または音声によってユーザに通知してもよい。
【0059】
ステップS19の後に処理はステップS11に戻り、ロボット制御システム10が次のタスクについてステップS11以降の処理を実行する。
【0060】
上述した一連の処理手順は、探索と利用のうち、主に利用に関連する。次に、主に探索に関連する処理手順について説明する。
【0061】
タスク領域が抽出されなかった場合には(ステップS12においてNO)、処理はステップS20に進む。ステップS20では、探索部11がこれまでに観測された少なくとも一つの観測領域を示す観測データを記録する。例えば、探索部11はロボット2を対象物に接近させながら観測してきた複数の観測領域を示す観測データを記録する。一例では、探索部11は個々の観測領域について観測データのレコードを生成する。そのレコードは観測領域の代表座標と、観測時刻と、該代表座標におけるタスクの実行可能性を示すスコアとをデータ項目として含み得る。個々のレコードは、領域マップ、抽出されたタスク領域、処理された対象物の個数、およびタスクの実行履歴のうちの少なくとも一つを更に含んでもよい。探索部11は少なくとも一つのレコードを観測履歴データベース12に格納する。
【0062】
ステップS21では、探索部11が対象物の探索を続けるか否かを判定する。一例では、探索部11は観測履歴データベース12内の観測データに基づいて、新たな対象物を発見する可能性があるか否かを判定する。探索部11はその可能性があると判定した場合に探索を続けると判定し、その可能性がないと判定した場合に探索を終了すると判定する。例えば、探索部11はその観測データをガウス過程回帰によって処理して、ロボットの周囲の3次元空間において行為可能性についての予測値および不確実度を算出する。探索部11はその不確実度が所与の閾値より大きい位置が存在する場合に探索を続けると判定し、そのような位置が存在しない場合に探索を終了すると判定する。不確実度がその閾値より大きいということは、タスク領域が抽出されるか否かの判断に自信を持てないことを意味するので、そのような場所について探索を試みる価値がある。
【0063】
あるいは、探索部11は、観測データによって示される最も近い代表座標までの距離が所与の閾値より長い位置が、ロボットの周囲の3次元空間に対応する被写平面内に存在する場合に探索を続けると判定し、そのような位置が存在しない場合に探索を終了すると判定してもよい。
【0064】
あるいは、探索部11は事前に設定された観測範囲内に未観測領域が存在する場合に探索を続けると判定し、その未観測領域が存在しない場合に探索を終了すると判定してもよい。その観測範囲は、例えば、ロボットの周囲の3次元空間の全体または一部である。この方法は観測範囲の全体を漏れなく探索する手法であるといえる。
【0065】
探索を続けると判定された場合には(ステップS21においてYES)、処理はステップS22に進む。ステップS22では、探索部11がロボット2の周囲の3次元空間における観測領域の位置を変更する。ステップS22は、観測領域からタスク領域が抽出されない場合に(ステップS12においてNO)に実行され得る。すなわち、探索部11は、抽出部14がタスク領域を抽出しないことに応答して、観測領域の位置を変更する。
【0066】
一例では、探索部11は観測領域の位置を動的に変更する。この動的な変更は、観測領域の次の位置が予め定められておらず、探索部11がロボット2の周囲の現在状況に応じて観測領域の次の位置を決定することを意味する。探索部11は観測履歴データベース12内の観測データに基づいて、観測領域の次の位置を動的に変更してもよい。例えば、探索部11は過去の少なくとも一つの位置における観測領域でのタスク領域の抽出の結果に基づいて、ロボット2の周囲の3次元空間においてタスク領域が抽出される可能性を表すスコアを算出し、そのスコアに基づいて観測領域の位置を変更してもよい。探索部11はそのスコアが最も高い位置に観測領域を移してもよい。あるいは、探索部11は観測データに基づいて、3次元空間におけるタスク領域の存在の不確実度の分布を算出し、その分布に基づいて観測領域の位置を変更してもよい。探索部11はその不確実度が最も高い位置に観測領域を移してもよい。スコアおよび不確実度の双方を考慮する手法として、探索部11は観測データを入力として用いるベイズ最適化を実行し、このベイズ最適化で得られる獲得関数に基づいて観測領域の位置を変更してもよい。例えば、探索部11は獲得関数の値が最も高い位置に観測領域を移す。
【0067】
あるいは、探索部11は観測データによって示される代表座標までの最短距離が最も長い位置を、ロボットの周囲の3次元空間に対応する被写平面から選択し、その位置に観測領域を移してもよい。この処理も、観測領域の位置を動的に変更する一例である。
【0068】
あるいは、探索部11は予め定められた順序に従って観測領域の位置を変更してもよいし、観測領域の次の位置をランダムに決定してもよい。
【0069】
探索部11が観測領域の次の位置を決定したことに応答して、ロボット制御部15は、カメラ20が次の観測領域を撮影するようにロボット2のパスをプランニングにより生成する。例えば、ロボット制御部15は、次の位置がカメラの中心に映るようにパスをプランニングしてもよい。ロボット制御部15は、カメラ20が次の観測領域を撮影するように、事前に設定されたロボット2の位置および姿勢の候補から適切な位置および姿勢を選択し、選択された位置および姿勢を実現するためのパスを生成してもよい。ロボット制御部15はパスのプランニングの少なくとも一部として、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。
【0070】
ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。この結果、カメラ20が次の観測領域を撮影する。
【0071】
ステップS21の後に処理はステップS11に戻り、ロボット制御システム10がステップS11以降の処理を実行する。ステップS11では、抽出部14が変更された観測領域からタスク領域を抽出する。すなわち、抽出部14は観測領域の位置が変更される度にタスク領域を抽出する。
【0072】
探索を終了すると判定された場合には(ステップS21においてNO)、処理はステップS18に進み、ロボット制御システム10が終了処理を実行する。
【0073】
図5を参照しながら、処理フローS1に基づくロボットの動作の一例について説明する。
図5はロボット制御システム10によるロボット制御の一例を示す図である。この例では、ロボット2は周囲に存在するボールを箱410に収納するタスクを実行する。すなわち、この例では対象物はボールである。
図5はロボット2の一連の動作を場面S31~S39により順に表す。以下の説明では処理フローS1との対応も示す。
【0074】
場面S31では、カメラ20はボール421が映った画像を取得し、画像取得部13がその画像を取得する。ロボット制御システム10はボール421に対応するタスク領域をその画像(観測領域)から抽出する(ステップS11)。
【0075】
場面S32では、ロボット制御システム10は、ロボット2がボール421に接近するように該ロボット2を制御する(ステップS12~S15)。この制御によってエンドエフェクタ2bとボール421との距離は短くなる。この後も、ロボット制御システム10はタスク領域の抽出と、ロボット2をボール421に接近させる制御(ステップS11~S15)とを繰り返す。
【0076】
場面S33では、ロボット2がタスク領域に到達したことに応答して(ステップS14においてYES)、ロボット制御システム10はロボット2にタスクを実行させる(ステップS16)。
【0077】
場面S33から場面S34にかけて、ロボット2はロボット制御システム10の制御によってタスクを実行する(ステップS16)。ロボット2はエンドエフェクタ2bでボール421を把持して、そのボール421を箱410に入れる。
【0078】
その後、ロボット制御システム10は観測領域の位置を変更しながらタスク領域の抽出を試みる(ステップS11,S12,S20~S22)。この探索の結果として、場面S35では、カメラ20は二つのボール422,423が映った画像を取得し、画像取得部13がその画像を取得する。この画像では、ボール422は障害物430によって遮られるように映っており、ボール423は全体が映っている。一例では、ロボット制御システム10はボール423に対応するタスク領域をその画像(観測領域)から抽出するが(ステップS11)、ボール422に対応する部分はタスク領域として抽出しない。
【0079】
場面S36では、ロボット制御システム10は、ロボット2がボール423に接近するように該ロボット2を制御する(ステップS12~S15)。この制御によってエンドエフェクタ2bとボール423との距離は短くなる。この後も、ロボット制御システム10はタスク領域の抽出と、ロボット2をボール423に接近させる制御(ステップS11~S15)とを繰り返す。
【0080】
場面S37では、ロボット2がタスク領域に到達したことに応答して(ステップS14においてYES)、ロボット制御システム10は該ロボット2にタスクを実行させる(ステップS16)。
【0081】
場面S37から場面S39にかけて、ロボット2はロボット制御システム10の制御によってタスクを実行する(ステップS16)。ロボット2はエンドエフェクタ2bでボール423を把持して(場面S37)、そのボール423を箱410に向けて運び(場面S38)、ボール423を箱410に入れる(場面S39)。
【0082】
[プログラム]
ロボット制御システム10の各機能モジュールは、プロセッサ161またはメモリ162の上にロボット制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。ロボット制御プログラムは、ロボット制御システム10の各機能モジュールを実現するためのコードを含む。プロセッサ161はロボット制御プログラムに従って入出力ポート164または通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理によりロボット制御システム10の各機能モジュールが実現される。
【0083】
ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0084】
[効果]
以上説明したように、本開示の一側面に係るロボット制御システムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するロボット制御部とを備え、抽出部は、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【0085】
本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとを含み、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【0086】
本開示の一側面に係るロボット制御プログラムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとをコンピュータに実行させ、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
【0087】
このような側面においては、ロボットが対象物に接近する度にタスク領域が抽出されるので、ロボットの周囲の状況の変化に適応しながらロボットを制御できる。このような制御によって、ロボットにタスクを効率良く実行させることが可能になる。
【0088】
他の側面に係るロボット制御システムでは、ロボット制御部は、ロボットがタスク領域に到達したことに応答して、ロボットにタスクを実行させてもよい。この構成により、ロボットは、対象物を処理できる位置に到達したタイミングでタスクを実行できる。したがって、ロボットにタスクを効率良く実行させることができる。
【0089】
他の側面に係るロボット制御システムでは、観測領域の画像を、ロボットの動作に対応して移動するカメラから取得する画像取得部を更に備え、抽出部は、画像に基づいてタスク領域を抽出してもよい。このようなカメラからの画像を用いることでロボットの周囲の状況を明確にかつ確実に認識することが可能になる。その結果、タスク領域を精度良く抽出できる。
【0090】
他の側面に係るロボット制御システムでは、抽出部は、複数のタスク領域を抽出し、ロボット制御部は、複数のタスク領域から一つのタスク領域を選択し、ロボットが選択されたタスク領域に接近するようにロボットを制御してもよい。この構成により、複数のタスク領域が抽出された場合にもロボットを適切に特定のタスク領域へと接近させることができる。
【0091】
他の側面に係るロボット制御システムでは、抽出部は、互いに異なる複数のタスクのそれぞれについて、該タスクに対応するタスク領域を抽出してもよい。この構成により、それぞれの種類のタスクに応じてロボットを効率的に制御できる。
【0092】
他の側面に係るロボット制御システムでは、抽出部は、ロボットの構成と、観測領域内の現在状況とに基づいて、タスク領域を抽出してもよい。これら二つの要素を考慮することで、タスク領域を精度良く抽出できる。
【0093】
他の側面に係るロボット制御システムでは、現在状況は、対象物が観測領域内に存在するか否かを示し、抽出部は、対象物が観測領域内に存在することに少なくとも基づいて、タスク領域を抽出してもよい。対象物の存在を認識して初めてロボットを接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
【0094】
他の側面に係るロボット制御システムでは、現在状況は、対象物とは異なる障害物が観測領域内に存在するか否かを更に示し、抽出部は、ロボットがタスクを実行する際に障害物に干渉しないことに更に基づいて、タスク領域を抽出してもよい。障害物の存在を考慮した上でロボットを接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
【0095】
他の側面に係るロボット制御システムでは、ロボットの構成は、ロボットに取り付けられたエンドエフェクタの構成を含み、現在状況は、対象物の構造を更に示し、抽出部は、エンドエフェクタの構成と対象物の構造とを比較して、タスク領域を抽出してもよい。対象物の構造と、その対象物を取り扱うエンドエフェクタの構成とを考慮してロボットを対象物に接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
【0096】
他の側面に係るロボット制御システムでは、抽出部は、タスク領域が存在する確率を算出し、確率が所与の閾値に達する場合に、タスク領域を抽出してもよい。タスク領域を確率的に抽出することで、ロボットの周辺の状況に柔軟に適応しながらロボットを制御できる。
【0097】
他の側面に係るロボット制御システムでは、抽出部は、観測領域における確率の分布を算出し、確率が閾値に達する領域をタスク領域として抽出してもよい。確率の分布を考慮することで、観測領域からタスク領域を精度良くかつ効率的に抽出できる。
【0098】
他の側面に係るロボット制御システムでは、抽出部がタスク領域を抽出しないことに応答して、ロボットの周囲の3次元空間における観測領域の位置を変更する探索部を更に備えてもよい。タスク領域が抽出されない場合に観測領域の位置を変えることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
【0099】
他の側面に係るロボット制御システムでは、探索部は、3次元空間において観測領域の位置を動的に変更してもよい。この構成によって、ロボットの周囲の状況に応じて適切に観測領域を設定できる。
【0100】
他の側面に係るロボット制御システムでは、探索部は、過去の少なくとも一つの位置における観測領域でのタスク領域の抽出の結果に基づいて、3次元空間においてタスク領域が抽出される可能性を表すスコアを算出し、スコアに基づいて、観測領域の位置を変更してもよい。過去の結果に基づく、タスク領域が抽出される可能性の程度に基づいて観測領域を設定することで、タスク領域を効率的に抽出することが可能になる。
【0101】
他の側面に係るロボット制御システムでは、探索部は、3次元空間におけるタスク領域の存在の不確実度の分布を算出し、不確実度の分布に基づいて、観測領域の位置を変更してもよい。この不確実度を考慮することで観測領域が効率的に設定され、その結果、タスク領域を効率的に抽出できる。
【0102】
他の側面に係るロボット制御システムでは、抽出部は、観測領域の位置が変更される度にタスク領域を抽出してもよい。観測領域を変えながらタスク領域を抽出することで、ロボットにタスクを効率良く実行させることができる。
【0103】
他の側面に係るロボット制御システムでは、タスクは、ロボットが対象物に接触する工程を含み、抽出部は、ロボットがタスクを実行するために対象物に接触できる領域をタスク領域として抽出してもよい。この構成により、対象物への接触を伴うタスクをロボットに効率良く実行させることができる。
【0104】
本開示の一側面に係るロボットシステムは、上記のロボット制御システムと、ロボット制御部の制御によって動作するロボットとを備える。この側面においては、ロボットにタスクを効率良く実行させることが可能になる。
【0105】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示の要旨を逸脱しない範囲で様々な変形が可能である。
【0106】
ロボット制御システムの機能構成は上記の例に限定されない。本開示に係るロボット制御方法は、上記の例とは異なる機能構成を用いて実行されてもよい。
【0107】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上記の例における機能モジュールの少なくとも一部が、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0108】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。上記の処理フローS1において、それぞれのステップは直接に実行されてもよいし、いくつかのステップが並行して実行されてもよい。
【0109】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【符号の説明】
【0110】
1…ロボットシステム、2…ロボット、11…探索部、12…観測履歴データベース、13…画像取得部、14…抽出部、15…ロボット制御部、2b…エンドエフェクタ、3…ロボットコントローラ、10…ロボット制御システム、20…カメラ、100…コンピュータ、110…本体、120…モニタ、130…入力デバイス、200…画像、221,222…オレンジ(対象物)、300…領域マップ、311,312…タスク領域、421~423…ボール(対象物)。