(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024031218
(43)【公開日】2024-03-07
(54)【発明の名称】ロボット制御システム、ロボット制御方法、およびロボット制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240229BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022134639
(22)【出願日】2022-08-26
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】橘▲高▼ 達也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707JS07
3C707JU02
3C707KS39
3C707LS15
3C707LV14
3C707WL06
3C707WL07
(57)【要約】
【課題】ロボットにタスクを簡単に教示すること。
【解決手段】ロボット制御システムは、ロボットがタスクを実行中に、ユーザへの問合せを実行する問合せ部と、問合せに対するユーザのアクションを、センサを用いて特定する特定部と、特定されたアクションに基づいてタスクの少なくとも一部を補完する補完部と、補完されたタスクをロボットが実行するようにロボットを制御するロボット制御部とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ロボットがタスクを実行中に、ユーザへの問合せを実行する問合せ部と、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定する特定部と、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完する補完部と、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するロボット制御部と、
を備えるロボット制御システム。
【請求項2】
前記センサはカメラであり、
前記特定部は、
前記アクションに関して予め設定された認識対象を、前記カメラによって撮影された画像から抽出し、
前記抽出された認識対象に基づいて前記アクションを特定する、
請求項1に記載のロボット制御システム。
【請求項3】
前記特定部は、
前記ユーザが前記アクションの前に行った先行アクションに応じて前記カメラを移動し、
前記認識対象を、前記移動したカメラによって撮影された前記画像から抽出する、
請求項2に記載のロボット制御システム。
【請求項4】
前記カメラは前記ロボットに搭載され、
前記先行アクションは、前記ユーザにより発せられた音を含み、
前記特定部は、前記音が発せられた方向に前記カメラを向ける、
請求項3に記載のロボット制御システム。
【請求項5】
前記カメラは前記ロボットに搭載され、
前記特定部は、
前記認識対象に向けて前記カメラを近づけるように前記ロボットを動作させ、
前記認識対象に近づいたカメラによって撮像された画像から前記認識対象を抽出する、
請求項3に記載のロボット制御システム。
【請求項6】
前記特定部は、前記認識対象が前記カメラの被写範囲の中央に位置するように前記ロボットを動作させる、
請求項5に記載のロボット制御システム。
【請求項7】
前記認識対象は前記ユーザの手であり、
前記特定部は、前記画像から抽出された前記手の形状を前記アクションとして特定する、
請求項2~6のいずれか一項に記載のロボット制御システム。
【請求項8】
前記補完部は、前記手の形状に基づいて、前記ロボットによって実行される前記タスクの目標位置を、前記タスクの少なくとも一部として補完する、
請求項7に記載のロボット制御システム。
【請求項9】
前記特定部は、
前記手の第1形状を第1画像から抽出して、該第1形状を前記アクションとして特定し、
前記特定されたアクションを確定させるか否かの追加問合せを前記ユーザに対して実行し、
前記追加問合せに対する前記手の第2形状を第2画像から抽出して、前記特定されたアクションを確定し、
前記補完部は、前記確定されたアクションに基づいて前記タスクの前記少なくとも一部を補完する、
請求項7に記載のロボット制御システム。
【請求項10】
前記補完されたタスクの少なくとも一部をタスクパーツとして記憶する記憶部を更に備え、
前記補完部は、前記特定されたアクションが、予め設定された手形状に対応する場合に、前記タスクパーツを前記記憶部から取得し、
前記ロボット制御部は、前記タスクパーツを含むタスクを前記ロボットが実行するように、前記ロボットを制御する、
請求項7に記載のロボット制御システム。
【請求項11】
前記特定部は、
前記ユーザによって提示された参照オブジェクトを前記画像から抽出し、
前記参照オブジェクトの特徴量を前記アクションとして特定し、
前記補完部は、前記特徴量に基づいて、前記ロボットによって処理されるワークを前記タスクの少なくとも一部として補完する、
請求項2~6のいずれか一項に記載のロボット制御システム。
【請求項12】
前記タスクを定義する定義部を更に備え、
前記問合せ部は、前記タスクを示すドキュメントを前記ユーザに問い合わせ、
前記定義部は、前記ユーザによって提示された前記ドキュメントに基づいて前記タスクを定義し、
前記補完部は、前記特定されたアクションに基づいて、前記定義されたタスクの少なくとも一部を補完する、
請求項1~6のいずれか一項に記載のロボット制御システム。
【請求項13】
前記ドキュメントは、前記タスクに関する構文および変数を含み、
前記定義部は、前記構文に基づいて前記タスクを定義し、
前記問合せ部は、前記変数に関して前記ユーザへの前記問合せを実行し、
前記特定部は、前記問合せに対する前記ユーザの前記アクションを特定し、
前記補完部は、前記特定されたアクションに基づいて、前記変数に代入する値を補完する、
請求項12に記載のロボット制御システム。
【請求項14】
前記問合せ部は、
前記問合せに対応する姿勢である問合せ姿勢を前記ロボットが取るように前記ロボットを動作させ、
前記ロボットが前記問合せ姿勢を取った後に、前記問合せを実行する、
請求項1~6のいずれか一項に記載のロボット制御システム。
【請求項15】
ロボットによって実行されるタスクを示すドキュメントをユーザに問い合わせる問合せ部と、
前記ユーザによって提示された前記ドキュメントを、カメラによって撮影された画像から特定する特定部と、
前記特定されたドキュメントに基づいて前記タスクを定義する定義部と、
前記定義されたタスクを前記ロボットが実行するように前記ロボットを制御するロボット制御部と、
を備えるロボット制御システム。
【請求項16】
少なくとも一つのプロセッサを備えるロボット制御システムによって実行されるロボット制御方法であって、
ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定するステップと、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完するステップと、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するステップと、
を含むロボット制御方法。
【請求項17】
ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定するステップと、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完するステップと、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するステップと、
をコンピュータに実行させるロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、ロボット制御システム、ロボット制御方法、およびロボット制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、ユーザの操作負担の増加を抑制するためのロボット教示システムが記載されている。このシステムは、教示位置を指定するためにユーザにより操作される操作部を含む教示ツールと、教示ツールにより指定された教示位置の位置および姿勢を計測する計測部と、その位置および姿勢に基づいてロボットの教示位置を決定する制御部とを備える。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットにタスクを簡単に教示するための仕組みが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボット制御システムは、ロボットがタスクを実行中に、ユーザへの問合せを実行する問合せ部と、問合せに対するユーザのアクションを、センサを用いて特定する特定部と、特定されたアクションに基づいてタスクの少なくとも一部を補完する補完部と、補完されたタスクをロボットが実行するようにロボットを制御するロボット制御部とを備える。
【0006】
本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムによって実行されるロボット制御方法であって、ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、問合せに対するユーザのアクションを、センサを用いて特定するステップと、特定されたアクションに基づいてタスクの少なくとも一部を補完するステップと、補完されたタスクをロボットが実行するようにロボットを制御するステップとを含む。
【0007】
本開示の一側面に係るロボット制御プログラムは、ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、問合せに対するユーザのアクションを、センサを用いて特定するステップと、特定されたアクションに基づいてタスクの少なくとも一部を補完するステップと、補完されたタスクをロボットが実行するようにロボットを制御するステップとをコンピュータに実行させる。
【発明の効果】
【0008】
本開示の一側面によれば、ロボットにタスクを簡単に教示できる。
【図面の簡単な説明】
【0009】
【
図1】ロボット制御システムの適用の一例を示す図である。
【
図2】ロボット制御システムのために用いられるコンピュータのハードウェア構成の一例を示す図である。
【
図3】ロボット制御システムでの処理の一例を示すフローチャートである。
【
図4】タスクを定義する処理の一例を示すフローチャートである。
【
図5】ワークを補完する処理の一例を示すフローチャートである。
【
図6】目標位置を補完する処理の一例を示すフローチャートである。
【
図8】ドキュメントの特定に関連する場面を示す図である。
【
図9】ワークの補完に関連する場面を示す図である。
【
図10】目標位置の補完に関連する場面を示す図である。
【
図11】目標位置の補完に関連する場面を示す図である。
【
図12】目標位置の補完に関連する場面を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0011】
[システムの構成]
一例では、本開示に係るロボット制御システムをロボットシステム1の一構成要素として示す。ロボットシステム1は、所与の目的を達成するための動作をロボットに実行させることにより、所与の作業を自動化する仕組みである。
【0012】
図1は、ロボットシステム1の構成の一例を示すと共に、ロボット制御システムの適用の一例も示す図である。この例では、ロボットシステム1は、ロボット制御システム10と、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3とを備える。
図1は一つのロボット2および一つのロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。別の例として、ロボット制御システム10はロボット2とロボットコントローラ3との複数のペアに接続してもよい。あるいは、一つのロボットコントローラ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へのティーチングを支援する。ティーチングとは、実行すべき作業をロボットに直接にまたは間接的に伝達する作業をいう。ユーザは従来、プログラミングペンダント、キーボード、マウス、専用コントローラなどのユーザインタフェースを介してロボットに対するティーチングを実行する。しかし、その従来手法では、ユーザはティーチングのために、直感的な理解が難しい複雑なコマンドを覚えたり、ユーザインタフェースの複雑な操作方法を習得したりする必要がある。そのため、ユーザがティーチングできるようになるまでに多くの時間が費やされてしまう。加えて、専用のユーザインタフェースを導入するためのコストが生じてしまう。
【0018】
ロボット制御システム10は、ロボット2へのティーチングをユーザとの対話に基づいて実行する。ロボット制御システム10は、ロボット2がタスクを実行中にユーザへの問合せを実行する。ロボット2がタスクを実行中であるということは、ロボット2が所定のプログラムに基づいて動作を開始したことを意味する。したがって、ロボット制御システム10は、ロボット2がオンラインの状態にあるときにユーザへの問合せを実行する。ロボット2がタスクを実行中であることは、ロボット2が待機姿勢を取っている場合を含む。ユーザへの問合せとは、ユーザに指示の入力を求める処理をいう。ロボット制御システム10は問合せに対するユーザのアクションを、センサを用いて特定する。ロボット制御システム10はそのアクションに基づいてタスクの一部を補完し、補完されたタスクをロボット2に実行させる。アクションとは、ユーザの行動に起因する表現をいう。例えば、アクションは人の視覚または聴覚を介して知覚可能な表現である。アクションの例として、ジェスチャ、音の発生(例えば、拍手、発声など)、および物体の提示が挙げられる。アクションはユーザからの指示を示す。ロボット制御システム10は、ロボット2がタスクを実行中にユーザとの対話によってタスクを生成する。一例では、この仕組みによって、ロボット2が存在する現実の作業空間の環境の変化に柔軟に適応しつつ、該ロボット2にワークを処理させることが可能になる。
【0019】
ロボット制御システム10では、ユーザはティーチングのために、その作業空間においてセンサに向かって所定のアクションを行えば十分である。ユーザはティーチングのためにユーザインタフェースを操作する必要がない。一例では、アクションはユーザの普段の動作に近く、ユーザに特別な技能を要求しない。したがって、ユーザは簡単に所定のアクションを取って、より直感的にロボット2に指示することができる。したがって、ロボット操作に不慣れなユーザもロボット2にタスクを簡単に教示できる。具体性が高く機械中心的である従来のティーチングに対して、ロボット制御システム10におけるティーチングは抽象的であり人間中心的であるといえる。
【0020】
ユーザのアクションを特定するためのセンサの例として、カメラなどの視覚センサと、マイクロフォンなどの聴覚センサとが挙げられる。一例では、ロボット制御システム10はセンサとしてカメラ20およびスピーカフォン30を用いる。カメラ20は、エンドエフェクタ2bの周辺を撮影する撮像装置である。カメラ20はマニピュレータ2a上に配置されてもよく、例えばマニピュレータ2aの先端付近に取り付けられてもよい。カメラ20はロボット2の動作に対応して移動する。この移動は、カメラ20の位置および姿勢の少なくとも一方の変化を含み得る。ロボット2の動作に対応して移動する限り、カメラ20はロボット2とは異なる場所に設けられてもよい。スピーカフォン30はマイクロフォンとスピーカとを一体化した装置である。スピーカフォン30はロボット2の周囲の音を検知し、ユーザに向けて音声を出力する。スピーカフォン30は床面に設けられてもよいし、マニピュレータ2a上に配置されてもよい。
【0021】
図1はロボット制御システム10の機能構成の一例も示す。一例では、ロボット制御システム10は機能的構成要素として問合せ部11、特定部12、タスク管理部13、およびロボット制御部14を備える。問合せ部11は、ロボットがタスクを実行中にユーザへの問合せを実行する機能モジュールである。特定部12は、その問合せに対するユーザのアクションを、センサを用いて特定する機能モジュールである。タスク管理部13は、そのアクションに基づいてタスクを生成する機能モジュールである。一例では、タスク管理部13は定義部15、補完部16、および記憶部17を備える。定義部15はタスクを定義する機能モジュールである。補完部16は、定義されたタスクを補完して該タスクを生成する機能モジュールである。記憶部17は、補完されたタスクの少なくとも一部をタスクパーツとして記憶する機能モジュールである。ロボット制御部14は、生成されたタスクをロボット2が実行するように該ロボット2を制御する機能モジュールである。
【0022】
タスクの定義とは、タスクを構成するロボットの1以上の動作を設定する処理をいう。一例では、タスクの定義は、タスクのすべてではなくタスクの一部を設定する処理である。例えば、定義部15は、タスクによって処理されるワークと、タスクの目標位置とのうちの少なくとも一方を設定することなく、タスクを定義する。タスクの補完とは、タスクにおける未設定の部分を設定する処理をいう。補完部16によってタスクが補完されることで、タスクが生成される。例えば、定義部15は「<物体A>を<場所P>に置く」および「物体が見つからなかったら終了する」という2個の指示によって構成されるタスクを定義する。この指示における「~を…に置く」および「物体が見つからなかったら終了する」は、タスクに関する構文である。定義部15はその構文に基づいてタスクを定義する。一方、その指示における「物体A」および「場所P」は、未設定の部分として定義が保留された変数に相当する。補完部16はこれらの未設定の部分を設定する。例えば、補完部16は「物体A」に「赤い物体」を設定し、「場所P」に特定の場所を設定する。その場所を便宜的に位置(Xa,Ya)と表すとすると、補完部16は「<物体A>を<場所P>に置く」を最終的に「赤い物体を位置(Xa,Ya)に置く」と補完してタスクを生成する。
【0023】
ロボット制御システム10は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。
【0024】
図2は、ロボット制御システム10のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
【0025】
本体110は回路160を有する装置である。回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164はロボットコントローラ3、カメラ20、スピーカフォン30などの他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
【0026】
モニタ120は、本体110から出力された情報を表示するための装置である。例えばモニタ120は、液晶パネルのような、グラフィック表示が可能な装置である。
【0027】
入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130の例として、キーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
【0028】
モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
【0029】
ロボット制御システム10の各機能モジュールは、プロセッサ161またはメモリ162の上にロボット制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。ロボット制御プログラムは、ロボット制御システム10の各機能モジュールを実現するためのコードを含む。プロセッサ161はロボット制御プログラムに従って入出力ポート164および通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。
【0030】
ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0031】
[ロボット制御方法]
本開示に係るロボット制御方法の一例として、
図3~
図6を参照しながら、ロボット制御システム10により実行される処理を説明する。
図3はその処理の一例を処理フローS1として示すフローチャートである。すなわち、ロボット制御システム10は処理フローS1を実行する。
図4~
図6はいずれも、処理フローS1の一部の詳細を示すフローチャートである。
図4はタスクを定義する処理の一例を示し、
図5はワークを補完する処理の一例を示し、
図6は目標位置を補完する処理の一例を示す。
【0032】
ステップS11では、ロボット制御システム10がドキュメントに基づいてタスクを定義する。ドキュメントとはタスクを定義するための情報の記録をいう。したがって、ドキュメントはタスクを示す。ドキュメントはロボット2への指示書であるともいえる。
図4を参照しながらタスクの定義について詳細に説明する。
【0033】
ステップS111では、問合せ部11がユーザにドキュメントを問い合わせる。ドキュメントの問合せとは、ユーザにドキュメントの入力を求める処理をいう。一例では、問合せ部11は、問合せに対応する姿勢である所定の問合せ姿勢をロボット2が取るようにロボット2を動作させる。問合せ部11は、ロボット2が問合せ姿勢を取ったときに、「指示書を見せてください」というような案内音声をスピーカフォン30から出力してもよい。一例では、問合せ部11はロボット2が問合せ姿勢を取った後に問合せを実行する。
【0034】
ステップS112では、特定部12が、カメラ20によって撮影された画像からドキュメントを特定する。ユーザはドキュメントをカメラ20に向けて提示する。ドキュメントは、ボード、シートなどのような媒体上に記述されてもよいし、表示装置上に電子的に表示されてもよい。ドキュメントの提示は、問合せに対するユーザのアクションの一例である。一例では、特定部12は画像からドキュメントを特定するために設定された認識対象を予め記憶する。認識対象とは、ユーザのアクションに関して予め設定される情報をいう。特定部12は画像からその認識対象を抽出し、その認識対象に基づいてドキュメントを特定する。
【0035】
ステップS113では、定義部15がドキュメントに基づいてタスクを定義する。定義部15はドキュメントにより示される構文に従って、タスクを構成するロボット2の1以上の動作を設定する。例えば、定義部15は、ロボット2の動作速度、タスクの終了条件などのような、ロボット2の動作に関する各種のパラメータまたは条件を設定する。この段階ではタスクは未設定の部分を含む。定義部15は、タスク開始時点でのロボット2の動作、すなわち、タスクにおけるロボット2の初期動作を設定する。定義部15は、タスクが定義されたことを示す音声をスピーカフォン30から出力してもよい。
【0036】
ステップS114では、ロボット制御部14が定義されたタスクの実行を開始する。この段階ではタスクの全体は完成していないが、タスクを開始するための動作は設定されている。したがって、ロボット制御部14はタスクの実行を開始できる。ただし、ロボット2がタスクの全体を実行するためには、ドキュメントにより示される変数に値が代入されてタスクが補完される必要がある。その補完はステップS12以降で実行される。
【0037】
図3に戻って、ステップS12では、ロボット制御システム10が、定義されたタスクによって処理されるワークを補完する。一例では、問合せ部11が、ワークに対応する変数に関してユーザへの問合せを実行する。続いて、特定部12が、その問合せに対するユーザのアクションを特定する。そして、補完部16が、そのアクションに基づいて、ロボット2によって処理されるワークを変数に代入して、タスクを補完する。
図5を参照しながら、ワークによるタスクの補完について詳細に説明する。
【0038】
ステップS121では、問合せ部11がユーザに参照オブジェクトを問い合わせる。参照オブジェクトとは、ワークを特定するために必要な情報を示すオブジェクトをいう。参照オブジェクトは、処理されようとするワークと同じ物体でもよいし、該ワークと異なる物体でもよい。参照オブジェクトの問合せとは、ユーザに参照オブジェクトの入力を求める処理をいう。一例では、問合せ部11は、所定の問合せ姿勢をロボット2が取るようにロボット2を動作させる。問合せ部11は、ロボット2が問合せ姿勢を取ったときに、「参照オブジェクトを見せてください」というような案内音声をスピーカフォン30から出力してもよい。一例では、問合せ部11はロボット2が問合せ姿勢を取った後に問合せを実行する。
【0039】
ステップS122では、特定部12が、カメラ20によって撮影された画像から被写体を特定する。一例では、ユーザは参照オブジェクトをカメラ20に向けて提示する。参照オブジェクトは実物であってもよいし、ボード、シートなどのような媒体上に記述されてもよいし、表示装置上に電子的に表示されてもよい。あるいは、ユーザは、ワークをタスクの一部として補完するために予め設定されたショートカットジェスチャをカメラに向けて提示する。ショートカットジェスチャは手のジェスチャ、すなわち手形状によって表される。参照オブジェクトの提示もショートカットジェスチャも、問合せに対するユーザのアクションの一例である。一例では、特定部12は画像から被写体を特定するために設定された認識対象を予め記憶する。特定部12は参照オブジェクトとユーザの手とのいずれかをその認識対象として画像から抽出し、その認識対象に基づいて被写体を特定する。参照オブジェクトが抽出された場合には、特定部12はその参照オブジェクトの特徴量をユーザのアクションとして特定する。参照オブジェクトの特徴量とは、参照オブジェクトの特徴または性質を示す物理量である。例えば、物理量は色、形状、質感、または物体の種類を示してもよい。ユーザの手が抽出され、その手形状がショートカットジェスチャに対応する場合には、特定部12はそのショートカットジェスチャをユーザのアクションとして特定する。
【0040】
ステップS123に示すように、特定部12は参照オブジェクトの特徴量とショートカットジェスチャとのいずれか一方を被写体として特定する。参照オブジェクトの特徴量が特定された場合には、処理はステップS124に進む。ショートカットジェスチャが特定された場合には、処理はステップS125に進む。
【0041】
ステップS124では、補完部16が参照オブジェクトの特徴量に基づいてワークを設定し、そのワークによってタスクを補完する。すなわち、補完部16はワークをタスクの少なくとも一部として補完する。例えば、補完部16は「赤の物体」、「T字状の物体」のようにワークを設定し、ドキュメントの変数にそのワークを代入してタスクを補完する。補完部16は、ワークによってタスクが補完されたことを示す音声をスピーカフォン30から出力してもよい。
【0042】
ステップS125では、補完部16が、ショートカットジェスチャに対応するタスクパーツとして記憶部17に記憶されているワークを取得し、そのワークによってタスクを補完する。例えば、補完部16はドキュメントの変数にそのワークを代入してタスクを補完する。この場合には、タスクはタスクパーツを含む。ステップS124と同様に、補完部16は、ワークによってタスクが補完されたことを示す音声をスピーカフォン30から出力してもよい。
【0043】
図3に戻って、ステップS13では、ロボット制御システム10がタスクの目標位置を補完する。タスクの目標位置とは、ワークに対する処理が完了する位置をいう。例えば、タスクがピックアンドプレイスであれば、目標位置は、ロボット2によって把持されたワークが置かれる位置である。一例では、問合せ部11が、目標位置に対応する変数に関してユーザへの問合せを実行する。続いて、特定部12が、その問合せに対するユーザのアクションを特定する。そして、補完部16がそのアクションに基づいて目標位置を変数に代入して、タスクを補完する。
図6を参照しながら、目標位置によるタスクの補完について詳細に説明する。
【0044】
ステップS131では、問合せ部11がユーザに目標位置を問い合わせる。目標位置の問合せとは、ユーザに目標位置の入力を求める処理をいう。一例では、問合せ部11は、所定の問合せ姿勢をロボット2が取るようにロボット2を動作させる。問合せ部11は、ロボット2が問合せ姿勢を取ったときに、「目標位置を教えてください」というような案内音声をスピーカフォン30から出力してもよい。一例では、問合せ部11はロボット2が問合せ姿勢を取った後に問合せを実行する。
【0045】
ステップS132では、特定部12が誘導音に基づいてカメラ20の向きを変更する。一例では、ユーザは、目標位置を示すアクションの前に行う先行アクションとして、手を叩いたり声を出したりすることで誘導音を発する。特定部12はスピーカフォン30を介してその誘導音を取得して、その誘導音が発せられた方向を推定する。そして、特定部12は、ロボット2に搭載されたカメラ20をその方向に向けるようにロボット2を制御する。一例では、特定部12はカメラ20の向きを変えるためのロボット2のパスをプランニングにより生成し、そのパスを示す指令信号をロボットコントローラ3に出力する。ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット2はそのパスに沿って移動し、その結果、カメラ20が、誘導音が発せられた方向を向くように移動する。
【0046】
ステップS133では、特定部12が、移動したカメラ20によって撮影された画像から被写体を特定する。一例では、ユーザはカメラ20に向けて目標位置を手で指し示す。あるいは、ユーザは、目標位置をタスクの一部として補完するために予め設定されたショートカットジェスチャをカメラに向けて提示する。目標位置を示す手形状もショートカットジェスチャも、問合せに対するユーザのアクションの一例である。一例では、特定部12は画像から被写体を特定するために設定された認識対象を予め記憶する。特定部12はユーザの手をその認識対象として画像から抽出し、その認識対象に基づいて被写体を特定する。手形状がショートカットジェスチャに対応する場合には、特定部12はそのショートカットジェスチャをユーザのアクションとして特定する。手形状がショートカットジェスチャに対応しない場合には、その手形状をユーザのアクションとして特定する。
【0047】
ステップS134に示すように、特定部12はショートカットジェスチャと、ショートカットジェスチャ以外の手形状とのいずれか一方を被写体として特定する。
【0048】
ステップS134においてショートカットジェスチャ以外の手形状が特定された場合には、処理はステップS135に進む。ステップS135では、特定部12が手形状に基づいて目標位置を推定する。一例では、特定部12は手形状に対して基準軸を設定し、この基準軸に基づいて目標位置を推定する。例えば、特定部12は手形状の長手方向に沿って基準軸を設定し、その基準軸と画像に映る領域との交点を目標位置として推定する。基準軸と交わる領域は、例えば、ワークが置かれようとする場所に対応する。
【0049】
ステップS136では、特定部12が、カメラ20が目標位置に接近したか否かを判定する。一例では、特定部12はカメラ20と目標位置との距離を算出し、この距離に基づいてその判定を実行する。特定部12はカメラ20から提供された深度画像に基づいてその距離を算出してよい。あるいは、特定部12は、カメラ20からの画像と、該画像とは別に提供された深度情報とに基づいてその距離を算出してもよい。算出された距離が所与の閾値以下である場合には、特定部12はカメラ20が目標位置に接近したと判定する。一方、算出された距離がその閾値より大きい場合には、特定部12はカメラ20が目標位置に接近していないと判定する。
【0050】
カメラ20が目標位置に接近していないと判定された場合には(ステップS136においてNO)、処理はステップS137に進む。ステップS137では、特定部12が目標位置に向けてカメラ20を移動するようにロボット2を制御し、移動したカメラ20によって撮影された画像から被写体を特定する。一例では、特定部12は、認識対象であるユーザの手に向けてカメラ20を近づけるためのロボット2のパスをプランニングにより生成し、そのパスを示す指令信号をロボットコントローラ3に出力する。ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット2はそのパスに沿って移動し、その結果、カメラ20がユーザの手および目標位置に近づく。特定部12は、認識対象(ユーザの手)がカメラ20の被写範囲の中央に位置するようにロボット2を動作させてもよい。特定部12は、認識対象に近づいたカメラ20によって撮像された画像からその認識対象を抽出し、目標位置を示している手形状をユーザのアクションとして特定する。
【0051】
ステップS137の後に処理はステップS135に戻り、特定部12が、新たに特定された手形状について目標位置を推定する。カメラ20が目標位置に接近するまでステップS135~S137の処理が繰り返される。
【0052】
カメラ20が目標位置に接近したと判定された場合には(ステップS136においてYES)、処理はステップS138に進む。ステップS138では、補完部16が、手形状に基づいて推定された目標位置によってタスクを補完する。すなわち、補完部16は目標位置をタスクの少なくとも一部として補完する。例えば、補完部16はドキュメントの変数にその目標位置を代入してタスクを補完する。補完部16は、目標位置によってタスクが補完されたことを示す音声をスピーカフォン30から出力してもよい。
【0053】
ステップS134においてショートカットジェスチャが特定された場合には、処理はステップS139に進む。ステップS139では、補完部16が、そのショートカットジェスチャに対応するタスクパーツとして記憶部17に記憶されている目標位置を取得し、その目標位置によってタスクを補完する。例えば、補完部16はドキュメントの変数にその目標位置を代入してタスクを補完する。この場合には、タスクはタスクパーツを含む。ステップS138と同様に、補完部16は、目標位置によってタスクが補完されたことを示す音声をスピーカフォン30から出力してもよい。
【0054】
図3に戻って、ステップS14では、ロボット制御部14が、補完されたタスクを実行するようにロボット2を制御する。一例では、ロボット制御部14は、作業空間においてワークを探索するためのパスをパスプランニングにより生成し、そのパスを示す指令信号をロボットコントローラ3に出力する。ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット2はそのパスに沿って移動し、ワークを探索する。ワークを見つけた場合には、ロボット制御部14は補完されたタスクをそのワークに対して実行するためのパスをプランニングにより生成し、その新たなパスを示す指令信号をロボットコントローラ3に出力する。ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット2はその新たなパスに沿って移動し、その結果、ロボット2がワークを処理する。例えば、ロボット2はワークを目標位置に運ぶピックアンドプレイスを実行する。作業空間に複数のワークが存在する場合には、ロボット制御部14はワークの探索と、探索されたワークについてのタスクの実行とを繰り返し得る。
【0055】
一例では、補完部16は、補完されたタスクの少なくとも一部をタスクパーツとして記憶部17に格納する。例えば、そのタスクパーツは、補完されたワークまたは目標位置でもよいし、タスクの全体でもよい。
【0056】
ステップS15に示すように、ロボット制御システム10は、補完されたタスクを実行して1以上のワークを処理した後に、次の補完を実行してもよい。例えば、ロボット制御システム10は、補完されるべき新たな対象に応じて、必要な処理を繰り返し実行する。一例として、ワークを新たに補完する場合には、処理はステップS12に戻る。繰り返されるステップS12では、ロボット制御システム10は、ワークに対応する変数に関してユーザへの問合せを実行し、その問合せに対するユーザのアクションを特定し、そのアクションに基づいてワークを変数に代入してタスクを補完する。変数に代入されるワークは、前の補完で用いられたワークと同じでもよいし異なってもよい。繰り返されるステップS13では、ロボット制御システム10は、目標位置に対応する変数に関してユーザへの問合せを実行し、その問合せに対するユーザのアクションを特定し、そのアクションに基づいて目標位置を変数に代入して、タスクを補完する。変数に代入される目標位置は、前の補完で用いられた目標位置と同じでもよいし異なってもよい。繰り返されるステップS14では、ロボット制御部14が、新たに補完されたタスクを実行するようにロボット2を制御する。別の例として、目標位置を新たに補完する場合には、処理はステップS13に戻り、ロボット制御システム10はステップS13,S14を実行する。
【0057】
処理フローS1の全体が繰り返し実行されてもよい。すなわち、ロボット制御システム10は、別のドキュメントに基づいて次のタスクを定義し(ステップS11)、該次のタスクを補完し(ステップS12,S13)、補完された次のタスクを実行するようにロボット2を制御してもよい(ステップS14)。
【0058】
処理フローS1において、特定部12は、特定されたアクションを確定させるか否かの追加問合せをユーザに対して実行し、その追加問合せに対するユーザからの応答に基づいて、そのアクションを確定してもよい。追加問合せは、ロボット制御システム10に入力するアクションについて再考する機会をユーザに与える処理であるといえる。一例では、特定部12は手の第1形状をカメラ20の第1画像から抽出し、その第1形状をアクションとして特定する。例えば、第1形状は、目標位置を指す手形状である。特定部12はそのアクションを確定させるか否かの追加問合せをユーザに対して実行する。例えば、特定部12は追加問合せのための音声をスピーカフォン30から出力する。特定部12は、第1画像の後にカメラ20によって撮影された第2画像から、追加問合せに対する手の第2形状を抽出する。そして、特定部12はその第2形状に応答して、特定されたアクションを確定する。補完部16はその確定されたアクションに基づいてタスクを補完する。例えば、補完部16はそのアクションに基づいて目標位置をタスクの少なくとも一部として補完する。
【0059】
ステップS132に関連して、特定部12はスピーカフォン30ではなくカメラ20によって検出された先行アクションに基づいて、該カメラ20の向きを変更してもよい。例えば、ユーザはカメラ20に向かって手または指で目標位置の方向を指し示す。特定部12はそのジェスチャに基づいて、指し示された方向にカメラ20を向けるようにロボット2を制御する。
【0060】
ステップS132はステップS13における任意の時点で再び実行され得る。例えば、ステップS133以降においてユーザが目標位置を指定し直すために誘導音を発したことに応答して、ステップS13において処理がステップS132に戻ってもよい。この場合には、特定部12はその誘導音に基づいてカメラ20の向きを再び変更する。そして、ステップS133以降の処理が改めて実行される。
【0061】
図7~
図12を参照しながら、処理フローS1に関連する例を説明する。
図7~
図12のいずれも、作業空間においてユーザ300がロボット2にティーチングする場面を示す図である。
図7はドキュメントの一例を示す図である。
図8はドキュメントの特定に関連する場面を示す図である。
図9はワークの補完に関連する場面を示す図である。
図10~
図12はいずれも、目標位置の補完に関連する場面を示す図である。
【0062】
図7の例では、ドキュメント200はボード上に配置された二次元コードによって表現される。例えば、ユーザは二次元コードが記述されたマグネットシートをボード上に並べてドキュメント200を作成する。ボードの四隅に位置する4個の二次元コードは、ボードの全体を映すようにカメラ20を位置させるための目印である。この例では、ドキュメント200は構文を示す二次元コード210,220,230,240と、変数を示す二次元コード211,212とにより構成される。二次元コード210は「<物体A>を<場所P>に置く」という構文を示す。この二次元コード210に関連して、「物体A」という変数を示す二次元コード211と、「場所P」という変数を示す二次元コード212とが配置される。二次元コード220は「物体は正面にある」という構文を示す。二次元コード230は「物体が見つからなかったら終了する」という構文を示す。二次元コード240は「素早く作業すること」という構文を示す。
【0063】
図8に示す場面では、問合せ部11はドキュメントを問い合わせる(ステップS111)。ユーザ300はその問合せに対してボード上のドキュメント200をカメラ20に提示する。特定部12はカメラ20の画像からそのドキュメント200を特定する(ステップS112)。定義部15はそのドキュメント200に基づいてタスクを定義する。ロボット制御部14はそのタスクの実行を開始する(ステップS114)。例えば、ロボット制御部14はタスクの開始として、ユーザに対して参照オブジェクトを問い合わせるための問合せ姿勢をロボット2に実行させる。
【0064】
図9に示す場面では、問合せ部11は参照オブジェクトを問い合わせる(ステップS121)。ユーザ300はその問合せに対して参照オブジェクト400をカメラ20に提示する。特定部12はカメラ20の画像からその参照オブジェクト400の特徴量を特定する(ステップS122)。補完部16はその特徴量に基づいてワークを設定し、そのワークをタスクの少なくとも一部として補完する(ステップS124)。
【0065】
図10に示す場面では、ユーザ300がカメラ20の向きを変えるために手を叩く場面を示す。問合せ部11は目標位置を問い合わせる(ステップS131)。ユーザ300はその問合せに対して、ワークが置かれるべき傾斜面500の近くで手を叩く。特定部12はスピーカフォン30から取得したその音の方向を推定し、カメラ20をその方向に向けるようにロボット2を制御する(ステップS132)。
図11に示すように、ユーザ300は、カメラ20の向きが変わった後に、傾斜面500を目標位置として手で指し示す。特定部12はカメラ20の画像からその手形状を特定し(ステップS133)、その手形状に基づいて目標位置を推定する(ステップS135)。
図12に示すように、特定部12はカメラ20が目標位置に接近していないと判定し、その目標位置に向けてカメラ20を移動させる(ステップS136,S137)。
図12の例では、特定部12は目標位置に向けてカメラ20を移動するようにロボット2を制御する。その後、カメラ20が目標位置に接近したと判定されると、補完部16は目標位置をタスクの少なくとも一部として補完する(ステップS138)。
【0066】
その後、ロボット制御部14は補完されたタスクを実行するようにロボット2を制御する(ステップS14)。ロボット2はロボット制御部14からの指令信号に従って、作業空間内でワークを探索し、見つけたワークを把持して、目標位置である傾斜面500にそのワークを置く。そのワークは、傾斜面500の下にある箱に収容される。
【0067】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示の技術事項は上記実施形態に限定されるものではない。本開示の技術事項は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0068】
タスクの定義はタスクの全体を設定する処理であってもよい。この場合には、補完部によるタスクの補完は不要である。ロボット制御部は、定義されたタスクをロボットが実行するように該ロボットを制御する。定義部は、ユーザがドキュメントに代えて所定の手形状をカメラに向けて提示した場合に、その手形状に対応するタスクパーツとしてタスクの全体を記憶部から取得して、そのタスクをそのまま再定義してもよい。この場合には、ロボット制御部は再定義されたタスクをロボットが実行するように該ロボットを制御する。
【0069】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部が、その機能に特化した論理回路により構成されてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0070】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0071】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【0072】
[付記]
上記の様々な例から把握されるとおり、本開示は以下に示す態様を含む。
(付記1)
ロボットがタスクを実行中に、ユーザへの問合せを実行する問合せ部と、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定する特定部と、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完する補完部と、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するロボット制御部と、
を備えるロボット制御システム。
(付記2)
前記センサはカメラであり、
前記特定部は、
前記アクションに関して予め設定された認識対象を、前記カメラによって撮影された画像から抽出し、
前記抽出された認識対象に基づいて前記アクションを特定する、
付記1に記載のロボット制御システム。
(付記3)
前記特定部は、
前記ユーザが前記アクションの前に行った先行アクションに応じて前記カメラを移動し、
前記認識対象を、前記移動したカメラによって撮影された前記画像から抽出する、
付記2に記載のロボット制御システム。
(付記4)
前記カメラは前記ロボットに搭載され、
前記先行アクションは、前記ユーザにより発せられた音を含み、
前記特定部は、前記音が発せられた方向に前記カメラを向ける、
付記3に記載のロボット制御システム。
(付記5)
前記カメラは前記ロボットに搭載され、
前記特定部は、
前記認識対象に向けて前記カメラを近づけるように前記ロボットを動作させ、
前記認識対象に近づいたカメラによって撮像された画像から前記認識対象を抽出する、
付記3または4に記載のロボット制御システム。
(付記6)
前記特定部は、前記認識対象が前記カメラの被写範囲の中央に位置するように前記ロボットを動作させる、
付記5に記載のロボット制御システム。
(付記7)
前記認識対象は前記ユーザの手であり、
前記特定部は、前記画像から抽出された前記手の形状を前記アクションとして特定する、
付記2~6のいずれか一つに記載のロボット制御システム。
(付記8)
前記補完部は、前記手の形状に基づいて、前記ロボットによって実行される前記タスクの目標位置を、前記タスクの少なくとも一部として補完する、
付記7に記載のロボット制御システム。
(付記9)
前記特定部は、
前記手の第1形状を第1画像から抽出して、該第1形状を前記アクションとして特定し、
前記特定されたアクションを確定させるか否かの追加問合せを前記ユーザに対して実行し、
前記追加問合せに対する前記手の第2形状を第2画像から抽出して、前記特定されたアクションを確定し、
前記補完部は、前記確定されたアクションに基づいて前記タスクの前記少なくとも一部を補完する、
付記7または8に記載のロボット制御システム。
(付記10)
前記補完されたタスクの少なくとも一部をタスクパーツとして記憶する記憶部を更に備え、
前記補完部は、前記特定されたアクションが、予め設定された手形状に対応する場合に、前記タスクパーツを前記記憶部から取得し、
前記ロボット制御部は、前記タスクパーツを含むタスクを前記ロボットが実行するように、前記ロボットを制御する、
付記7~9のいずれか一つに記載のロボット制御システム。
(付記11)
前記特定部は、
前記ユーザによって提示された参照オブジェクトを前記画像から抽出し、
前記参照オブジェクトの特徴量を前記アクションとして特定し、
前記補完部は、前記特徴量に基づいて、前記ロボットによって処理されるワークを前記タスクの少なくとも一部として補完する、
付記2~10のいずれか一つに記載のロボット制御システム。
(付記12)
前記タスクを定義する定義部を更に備え、
前記問合せ部は、前記タスクを示すドキュメントを前記ユーザに問い合わせ、
前記定義部は、前記ユーザによって提示された前記ドキュメントに基づいて前記タスクを定義し、
前記補完部は、前記特定されたアクションに基づいて、前記定義されたタスクの少なくとも一部を補完する、
付記1~11のいずれか一つに記載のロボット制御システム。
(付記13)
前記ドキュメントは、前記タスクに関する構文および変数を含み、
前記定義部は、前記構文に基づいて前記タスクを定義し、
前記問合せ部は、前記変数に関して前記ユーザへの前記問合せを実行し、
前記特定部は、前記問合せに対する前記ユーザの前記アクションを特定し、
前記補完部は、前記特定されたアクションに基づいて、前記変数に代入する値を補完する、
付記12に記載のロボット制御システム。
(付記14)
前記問合せ部は、
前記問合せに対応する姿勢である問合せ姿勢を前記ロボットが取るように前記ロボットを動作させ、
前記ロボットが前記問合せ姿勢を取った後に、前記問合せを実行する、
付記1~13のいずれか一つに記載のロボット制御システム。
(付記15)
ロボットによって実行されるタスクを示すドキュメントをユーザに問い合わせる問合せ部と、
前記ユーザによって提示された前記ドキュメントを、カメラによって撮影された画像から特定する特定部と、
前記特定されたドキュメントに基づいて前記タスクを定義する定義部と、
前記定義されたタスクを前記ロボットが実行するように前記ロボットを制御するロボット制御部と、
を備えるロボット制御システム。
(付記16)
少なくとも一つのプロセッサを備えるロボット制御システムによって実行されるロボット制御方法であって、
ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定するステップと、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完するステップと、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するステップと、
を含むロボット制御方法。
(付記17)
ロボットがタスクを実行中に、ユーザへの問合せを実行するステップと、
前記問合せに対する前記ユーザのアクションを、センサを用いて特定するステップと、
前記特定されたアクションに基づいて前記タスクの少なくとも一部を補完するステップと、
前記補完されたタスクを前記ロボットが実行するように前記ロボットを制御するステップと、
をコンピュータに実行させるロボット制御プログラム。
【0073】
付記1,16,17によれば、ロボットが実行しているタスクの少なくとも一部が、センサを用いて特定されたユーザのアクションに基づいて補完されるので、ユーザのティーチングの負荷を低減できる。ユーザのアクションはセンサを用いて特定されるので、ユーザは入出力装置の操作方法を学習することなく、早期にロボットへのティーチングに慣れることができる。また、入出力装置が不要になるので、その分だけシステムの構成を簡略化して、システムの開発費用を低減することが期待できる。
【0074】
付記2によれば、ユーザのアクションがカメラを用いて特定されるので、ユーザは、カメラに向かってアクションをするという自然な動作によって、ティーチングを行うことができる。また、アクションを特定するために必要な認識対象が予め設定されるので、その認識対象を画像からより確実に抽出できる。その結果、アクションをより確実に特定できる。
【0075】
付記3によれば、認識対象を撮影するためのカメラがユーザの動作によって自動的に動くので、ユーザのティーチングの負荷を更に低減できる。
【0076】
付記4によれば、ユーザによって発せられる音の方向にカメラが向くので、ユーザは簡単にカメラを所望の位置に向けることができ、その分、ユーザのティーチングの負荷を更に低減できる。
【0077】
付記5によれば、認識対象に向けてカメラが近づくので、アクションを特定するために必要な認識対象をより確実に抽出することができる。加えて、カメラを認識対象に近づけるようにロボットを動作させることで、ロボットがユーザのアクションを特定しようとしている状況を該ユーザに示すことができる。その結果、対話型のティーチングが行われていることをユーザに視覚的に伝えることができる。
【0078】
付記6によれば、カメラが認識対象を確実に捉えるので、ユーザのアクションをより確実に特定できる。
【0079】
付記7によれば、ユーザの手が認識対象として処理されるので、ユーザは自身の手を使って簡単にティーチングできる。
【0080】
付記8によれば、タスクの目標位置を簡単にロボットに指示することができる。
【0081】
付記9によれば、特定されたユーザのアクションを採用する前に、そのアクションを確定させるための問合せが実行される。したがって、そのアクションを再考する機会をユーザに与えると共に、間違ったティーチングが行われてしまう確率を低減することができる。
【0082】
付記10によれば、過去に用いられたタスクの少なくとも一部が記憶部から取得されて用いられる。したがって、ユーザは過去の指示を簡単にロボットに再度伝えることができる。
【0083】
付記11によれば、参照オブジェクトの特徴量に基づいてタスクの少なくとも一部が補完されてタスクが定義される。したがって、ロボットによって処理されるべきワークを簡単にティーチングすることができる。参照オブジェクトの特徴量が用いられるので、ワークがその特徴量を有する限り、様々なワークをロボットに処理させることができる。すなわち、ユーザはワークに関する抽象的な指示をロボットに伝えれば足りるので、ティーチングの負荷を下げることができる。特徴量が色である場合には、作業空間における色の見え方が特徴量として特定される。したがって、光量などの光の特性に起因する色の見え方の違いを吸収して、個々の作業空間においてワークを確実に特定することができる。
【0084】
付記12によれば、ユーザがドキュメントを提示するだけでタスクが定義されるので、ユーザのティーチングの負荷を低減できる。
【0085】
付記13によれば、タスクを構文および変数によって示すドキュメントを用いて、まずは構文に基づいてタスクが定義される。続いて、ユーザのアクションに基づいて変数に値が設定されてタスクが補完される。このようにタスクを段階的に設定することで、タスクが複雑であってもロボットに簡単にティーチングすることが可能になる。
【0086】
付記14によれば、ユーザへの問合せの前にロボットが特定の姿勢を取るので、アクションを取るべきタイミングをユーザに対して視覚的に明確に伝えることができる。
【0087】
付記15によれば、ユーザがドキュメントを提示するだけでタスクが定義されるので、ユーザのティーチングの負荷を低減できる。ドキュメントはカメラを用いて特定されるので、ユーザは入出力装置の操作方法を学習することなく、ロボットへのティーチングを簡単に行うことができる。また、入出力装置が不要になるので、その分だけシステムの構成を簡略化して、システムの開発費用を低減することが期待できる。
【符号の説明】
【0088】
1…ロボットシステム、2…ロボット、3…ロボットコントローラ、10…ロボット制御システム、20…カメラ、30…スピーカフォン、11…問合せ部、12…特定部、13…タスク管理部、14…ロボット制御部、15…定義部、16…補完部、17…記憶部、200…ドキュメント、400…参照オブジェクト。