(57)【特許請求の範囲】
【請求項１】
ロボットを自律制御してタスクを実行させるステップと、
前記ロボットが前記タスクの実行を失敗したとき、前記自律制御からユーザ指示に応じて前記タスクを実行する手動制御に前記ロボットの制御を切り替えるステップと、
を含むロボット制御方法であって、
前記ロボットの手動制御時にユーザが前記ロボットの動作を手動操作するための、動作モードと、前記ロボットの動作とが、対応付けて予め設定されており、
前記ロボットがタスク実行を失敗したか否かを判定するステップと、
前記ロボットがタスク実行を失敗したと判定すると、前記タスクの動作と前記タスクの動作の失敗時に設定する最適な動作モードとが複数対応付けられた設定ファイル情報に基づいて、前記タスクの動作、該動作の直近の動作、又は該直近の動作に近似する動作、に対応付けられた動作モードを、タスク実行失敗時の動作モードに設定するステップと、
前記設定したタスク実行失敗時の動作モードに対応した操作画面を操作端末上に表示するステップと、
前記操作端末の操作画面上で、前記ロボットの動作を示す操作情報を入力するステップと、
前記設定したタスク実行失敗時の動作モードと、前記入力された操作情報と、に基づいて前記ロボットを制御するステップと、を含む、
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを遠隔操作するためのロボット制御方法に関するものである。
【背景技術】
【０００２】
ロボットが自律制御によりタスクを実行し、該タスクの実行が失敗となったとき、中央制御装置が適切な操作端末を選択し、該操作端末に遠隔操作を依頼するロボット遠隔操作システムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１９０６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記ロボット遠隔操作システムにおいて、ロボットのタスク実行が失敗となったとき、適切な操作端末に遠隔的な手動操作を依頼するものである。このとき、ユーザがロボットの動作を手動操作するための動作モードが明確でないため、最適な動作モードを選択するための手間がかかるという問題が生じる。
【０００５】
本発明は、かかる課題を解決するためになされたものであり、最適な動作モードが自動的に選択されるため、ユーザはその選択を行う手間が省け円滑にロボットの操作を開始できるロボット制御方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明の一態様は、ロボットを自律制御してタスクを実行させるステップと、前記ロボットが前記タスクの実行を失敗したとき、前記自律制御からユーザ指示に応じて前記タスクを実行する手動制御に前記ロボットの制御を切り替えるステップと、を含むロボット制御方法であって、前記ロボットの手動制御時にユーザが前記ロボットの動作を手動操作するための、動作モードと、前記ロボットの動作とが、対応付けて予め設定されており、前記ロボットが失敗したときの動作又は該動作直近の動作に対応する動作モードを選択するステップを含む、ことを特徴とするロボット制御方法である。
【発明の効果】
【０００７】
本発明によれば、最適な動作モードが自動的に選択されるため、ユーザはその選択を行う手間が省け円滑にロボットの操作を開始できるロボット制御方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るロボット制御システムの概略的構成を示す図である。
【図２】本発明の一実施形態に係るロボットの概略的なシステム構成を示すブロック図である。
【図３】操作端末の操作画面の一例を示す図である。
【図４】手先ＸＹ移動モードにおける操作画面の一例を示す図である。
【図５】手先ＸＹ回転モードにおける操作画面の一例を示す図である。
【図６】本発明の一実施形態に係る制御装置の概略的システム構成を示すブロック図である。
【図７】本発明の一実施形態に係るロボット制御方法の制御処理フローを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の一実施形態に係るロボット制御システムの概略的構成を示す図である。本実施形態に係るロボット制御システム１０は、ロボット１と、ロボット１を遠隔操作するための操作端末７と、を備えている。ロボット１は、例えば、自律的にタスク（作業）を実行する自律型作業ロボットとして構成されている。
【００１０】
図２は、本発明の一実施形態に係るロボットの概略的なシステム構成を示すブロック図である。本実施の形態に係るロボット１は、ロボット本体２と、ロボット本体２を移動させる移動装置３と、物体を把持し移動させる把持操作装置４と、移動装置３及び把持操作装置４を制御する制御装置５と、距離センサ６と、を備えている。
【００１１】
移動装置３は、制御装置５からの制御信号に応じて、例えば、モータなどを駆動させることで複数の車輪を回転させ、ロボット本体２を所望の位置に移動させる。
把持操作装置４は、例えば、物体を把持する把持部（手先）４１と、手首関節、肘関節、肩関節などの関節部４２を介して連結される複数のリンク４３と、各関節部４２を駆動するモータなどのアクチュエータと、からなる多関節型アームとして構成されている。
【００１２】
距離センサ６は、ロボット１周囲に存在する障害物や操作対象物との距離情報を検出する。距離センサ６は、検出した距離情報を制御装置５に送信する。距離センサ６は、例えば、カメラ、超音波センサ、ミリ波センサなどで構成されている。なお、上記ロボット１の構成は、一例でありこれに限定されない。
【００１３】
操作端末７は、ロボット１を操作するための様々な操作画面を表示する。操作端末７は、距離センサ６から送信される距離情報やロボット１の状態を示す情報（後述の動作モードやセンサ情報など）を表示する。操作端末７には、ジョイスティック（ソフトウェアあるいはハードウェア）、タッチパネル、マウス、キーボードなどの操作入力部が設けられている。ユーザは、操作入力部を介して、ロボット１を操作するための操作情報を操作端末７に入力することができる。操作端末７は、例えば、タブレット端末、ＰＣ（PersonalComputer）、スマートフォンなどの携帯端末である。操作端末７と制御装置５は、無線あるいは有線で通信接続されており、相互にデータの送受信を行うことができる。
【００１４】
制御装置５は、操作端末７を介して入力された作業情報や距離センサ６から出力される距離情報に基づいて移動装置３及び把持操作装置４を制御することで、ロボット１にタスクを実行させる。
【００１５】
制御装置５は、ロボット１に自律的にタスクを実行させる自律制御と、ユーザ指示に応じてロボット１にタスクを実行させる手動制御と、を切替て実行する。制御装置５は、自律制御において、例えば、距離センサ６から出力される距離情報に基づいて移動装置３及び把持操作装置４を制御することで、設定されたタスクを自律的に実行する。
一方、制御装置５は、手動制御において、操作端末７から送信される情報に応じて移動装置３及び把持操作装置４を制御する。
【００１６】
例えば、ユーザは、図３に示すような操作端末７の操作画面を介して、操作情報を操作端末７に入力する。また、ユーザは、ロボット１の動作を手動操作するための様々な動作モードを、操作画面上のボタンなどを介して選択する。操作端末７は、選択された動作モードに対応する操作画面を表示する。ユーザは、操作端末７の表示画面を見つつ、操作入力部を操作してロボット１の動作を示す操作情報を入力する。操作端末７は、選択された操作モードおよび操作情報を制御装置５に送信する。制御装置５は、操作端末７から送信される動作モード及び操作情報に基づいて、移動装置３及び把持操作装置４を制御する。
【００１７】
例えば、図４に示す如く、ユーザが手先ＸＹ移動モードという動作モードを操作端末７の操作画面で選択した場合、操作端末７は、選択された手先ＸＹ移動モードに対応した操作画面を表示する。ユーザは、その操作端末７の表示画面を見つつ、操作入力部を操作して手先のＸＹ方向の移動を示す操作情報を入力する。操作端末７は、その選択された動作モード及び操作入力部の操作情報を制御装置５に送信する。制御装置５は、操作端末７から送信される動作モード及び操作情報に応じて、把持操作装置４を制御して、ロボット１の手先をＸＹ方向に移動させる。
【００１８】
同様に、図５に示す如く、ユーザが手先ＸＹ回転モードという動作モードを操作端末７の操作画面で選択した場合、操作端末７は、選択された手先ＸＹ回転モードに対応した操作画面を表示する。ユーザは、その操作端末７の表示画面を見つつ、操作入力部を操作して手先のＸＹ方向の回転を示す操作情報を入力する。操作端末７は、その選択された動作モード及び操作入力部の操作情報を制御装置５に送信する。制御装置５は、操作端末７から送信される動作モード及び操作情報に応じて、把持操作装置４を制御して、ロボット１の手先をＸＹ方向に回転させる。なお、上述した動作モードは一例であり、これに限られない。操作端末７及びロボット１には、ロボット１の動作を手動操作するための様々の動作モードが予め設定されている。
【００１９】
ところで、ロボットを操作する場合、その操作を行うための様々な動作モードが存在する。また、ユーザがロボットの状況を判断して最適な動作モードを選択することは熟練が必要となる。さらに、自律制御のロボットがタスク実行を失敗（タスク実行エラー）したとき、ロボットの制御を自律制御から手動制御に切替え、手動操作でそのエラー状況を回復する必要が生じる。このとき、一般のユーザは、どのような動作モードが存在し、また、現状でどのような動作モードが最適かが分からない。このため、ユーザにとって最適な動作モードを選択するのは大きな手間となる。
【００２０】
これに対し、本実施形態に係るロボット制御システム１０は、ロボット１がタスク実行を失敗したときの動作に対応する動作モードを選択する。これにより、最適な動作モードが自動的に選択されるため、ユーザはその選択を行う手間が省け円滑にロボット１の操作を開始できる。
【００２１】
図６は、本実施形態に係る制御装置の概略的システム構成を示すブロック図である。本実施形態に係る制御装置５は、タスク実行部５１と、エラー判定部５２と、モード設定部５３と、モード変更送信部５４と、コマンド制御部５５と、を有している。
【００２２】
制御装置５は、例えば、制御処理、演算処理等と行うＣＰＵ（Central Processing Unit）５ａ、ＣＰＵ５ａによって実行される制御プログラム、演算プログラム等が記憶されたＲＯＭ（Read Only Memory）５ｂ、処理データ等を記憶するＲＡＭ（Random Access Memory）５ｃ等からなるマイクロコンピュータを中心にして、ハードウェア構成されている。
【００２３】
タスク実行部５１は、ロボット１が設定されたタスクを実行するように、移動装置３及び把持操作装置４を制御する。タスク実行部５１は、例えば、ＰＤＤＬ（Planning Domain Descrition Language）のようなドメイン記述言語でタスクを定義し、定義したタスクをプランナに入力する。そして、タスク実行部５１は、例えば、タスク「冷蔵庫開け」を「１．冷蔵庫のドアの取っ手を取る」、「２．冷蔵庫のドア取っ手を握る」、「３．ドアをヒンジ拘束で回転させて開ける」などの、粒度の細かい動作へ分割する。タスク実行部５１は、分割した各動作（以下、分割動作）を実行するように、移動装置３及び把持操作装置４を制御する。タスク実行部５１は、実行中の分割動作をモード設定部５３に出力する。
【００２４】
エラー判定部５２は、ロボット１がタスクの実行を失敗したか否かを判定する。エラー判定部５２は、ロボット１のタスク完了条件が満たされない場合や、自律的にタスク続行が不能な場合などに、ロボット１のタスク実行失敗と判定する。
【００２５】
例えば、エラー判定部５２は、上記ドメイン記述言語で定義されたタスクにおいて、ゴール状態を設定し、ゴール状態を満たせない場合に、タスクの実行を失敗したと判定してもよい。
【００２６】
ここで、上記ゴール状態として、冷蔵庫のドアが６０度以上開いた状態が設定された場合を想定する。この場合、エラー判定部５２は、ドアの開き角度が３０度開いた状態であると認識したとき、ゴール状態を満たしていないため、ロボット１のタスク実行失敗と判定する。上記ゴール状態として、冷蔵庫の引出しが０．５ｍ以上開いた状態が設定された場合を想定する。この場合、エラー判定部５２は、引出しの開きが０．２ｍ開いた状態であると認識したとき、ゴール状態を満たしていないため、ロボット１のタスク実行失敗と判定する。
【００２７】
また、エラー判定部５２は、ロボット１のモーションプランニング（動作計画）の失敗を検知したとき、ロボット１のタスク実行失敗と判定してもよい。エラー判定部５２は、例えば、ＲＲＴ（Rapidly-exploring Random Trees）において、現実的な時間内に解（動作に必要な関節軌道など）を得ることができない場合に、ロボット１のタスク実行失敗と判定する。より具体的には、エラー判定部５２は、ドア開けや引出し空けのモーションプランニングを実施して、解を得ることができない場合に、ロボット１のタスク実行失敗と判定してもよい。
【００２８】
さらに、エラー判定部５２は、ロボット１の各動作において許容可能な外力を設定し、その外力の設定値を超える外力がロボット１のセンサなどにより検出された場合に、ロボット１のタスク実行失敗と判定してもよい。
【００２９】
なお、上記エラー判定部５２による失敗の判定方法は一例であり、これに限定されない。例えば、エラー判定部５２は、上述した判定方法を任意に組み合わせて、ロボット１のタスク実行失敗を判定してもよい。エラー判定部５２は、ロボット１のタスク実行失敗と判定したとき、その判定結果をモード設定部５３に出力する。
【００３０】
モード設定部５３は、ロボット１がタスク実行を失敗したときの動作に対応する動作モードを選択し、設定する。例えば、モード設定部５３は、エラー判定部５２からの判定結果と、タスク実行部５１からのタスクの分割動作と、設定ファイル情報と、に基づいて、タスク実行失敗時の動作モードを設定する。
【００３１】
上記設定ファイル情報は、例えば、タスクの各分割動作と、タスクの各分割動作の失敗時に設定する最適な動作モードと、が複数対応付けられた情報である。設定ファイル情報は、ＲＯＭ５ｂやＲＡＭ５ｃなどに予め設定されている。例えば、タスク「冷蔵庫開け」が、分割動作「１．移動」、「２．回転ドア開け」、「３．引出し開け」に分割されている。この場合、設定ファイル情報には、分割動作「１．移動」に動作モード「移動操縦指示モード」、分割動作「２．回転ドア開け」に動作モード「ヒンジ拘束回転指示モード」、分割動作「３．引出し開け」に動作モード「手先ＸＹ移動モード」が夫々対応付けられている。
【００３２】
モード設定部５３は、エラー判定部５２からの判定結果に基づいて、タスク実行が失敗したと判定すると、そのときのタスクの分割動作に対応する最適な動作モードを設定ファイル情報から読出し設定する。このようにして、ロボット１がタスクの実行を失敗したときの動作に対応する、動作モードが自動的に選択される。
【００３３】
モード設定部５３は、設定した動作モードを操作端末７に送信する。操作端末７は、モード設定部５３からの送信される動作モードに応じた操作画面を表示させる。例えば、操作端末７は、送信された動作モードが「移動操縦指示モード」の場合、ジョイスティックを前方に倒すと移動装置３が前進し、ジョイスティックを横方向に倒すと移動装置３が旋回するような操作画面を表示させる。また、操作端末７は、送信された動作モードが「手先ＸＹ移動モード」の場合、ジョイスティックをＸ方向に倒すと手先がＸ方向に移動し、ジョイスティックをＹ方向に倒すと手先がＹ方向に移動するような操作画面を表示させる。
【００３４】
なお、モード設定部５３は、タスク実行失敗時に実行していた動作直近の動作プロファイルに基づいて、タスク実行失敗時の動作モードを設定してもよい。
例えば、モード設定部５３は、ロボット１のタスク実行時に、現在実行している動作直近の動作プロファイル（「移動装置３の前後方向の移動」、「移動装置３の旋回」、「手先の前後方向の移動」、「手先の左右方向の移動」など）を記憶する。モード設定部５３は、ロボット１のタスク実行失敗時に実行していた動作直近の動作プロファイルに近似した分割動作を抽出する。そして、モード設定部５３は、設定ファイル情報に基づいて、抽出した分割動作に対する動作モードを選択し設定する。
【００３５】
より具体的には、ロボット１のタスク実行失敗時に実行していた動作直近の動作プロファイルが「移動装置３の前後方向の移動」である場合、モード設定部５３は、その動作プロファイルに近似した分割動作「１．移動」を抽出する。モード設定部５３は、設定ファイル情報に基づいて、抽出した分割動作「１．移動」に対する動作モード「移動操縦指示モード」を選択し設定する。また、タスク実行失敗時に実行していた動作直近の動作プロファイルが「手先の前後方向の移動」である場合、モード設定部５３は、その動作プロファイルに近似した分割動作「３．引出し開け」を抽出する。モード設定部５３は、設定ファイル情報に基づいて、抽出した分割動作「１．移動」に対する動作モード「手先ＸＹ移動モード」を選択し設定する。このようにして、ロボット１がタスク実行を失敗したときの動作直近の動作に対応する、動作モードが自動的に選択される。
【００３６】
モード設定部５３は、設定した動作モードをモード変更送信部５４に出力する。
モード変更送信部５４は、モード設定部５３からの動作モードを受信すると、その動作モードに対応するＩＤ情報と、タスク実行失敗を示すエラー情報と、を操作端末７に送信する。モード変更送信部５４は、これらＩＤ情報及びエラー情報を、例えばＷｉｆｉ（登録商標）や有線あるいは無線ＬＡＮなどを介して操作端末７に送信する。
【００３７】
コマンド制御部５５は、操作端末７から送信される、あるいはモード設定部５３により設定される動作モードと、操作端末７から送信される操作情報と、に基づいて、移動装置３及び把持操作装置４を制御する。例えば、ロボット１がタスク実行を失敗したときに、コマンド制御部５５は、モード設定部５３により設定された動作モードと、操作端末７から送信された操作情報と、に基づいて、移動装置３及び把持操作装置４を制御する。これにより、ロボット１が失敗したタスクを回復することができる。
【００３８】
より具体的には、コマンド制御部５５は、モード設定部５３により設定された動作モード「手先ＸＹ移動モード」と、操作端末７から送信される操作情報「ジョイスティックが前方（Ｘ方向）に倒されたという情報」と、に基づいて、手先がＸ方向にα［ｍ］前方に進んだ場合の把持操作装置４の各関節角度を逆運動学（ＩＫ）を用いて算出する。そして、コマンド制御部５５は、算出した各関節角度に応じた制御信号を把持操作装置４に出力する。
【００３９】
操作端末７は、モード変更送信部５４から送信されるＩＤ情報及びエラー情報を受信するモード変更部７１を有している。モード変更部７１は、モード変更送信部５４からＩＤ情報を受信すると、そのＩＤ情報の動作モードに対応した操作画面を表示する。モード変更部７１は、例えば、タブレットのような画像表示と、ソフトウェアジョイスティックと、を含む操作画面を表示する。ユーザは、操作画面の画像表示をタップし、あるいは、ソフトウェアジョイスティックをタップすることで、操作情報を容易に入力することができる。なお、操作端末７は、メカニカルなジョイスティックと、選択された動作モードを点灯するＬＥＤと、で構成されていてもよい。
【００４０】
図７は、本実施形態に係るロボット制御方法の制御処理フローを示すフローチャートである。
制御装置５のタスク実行部５１は、タスクの各分割動作を実行するように、移動装置３及び把持操作装置４を自律制御する（ステップＳ１０１）。タスク実行部５１は、実行中の分割動作をモード設定部５３に出力する。
【００４１】
エラー判定部５２は、ロボット１がタスク実行を失敗したか否かを判定する（ステップＳ１０２）。エラー判定部５２は、ロボット１がタスク実行を失敗したと判定すると（ステップＳ１０２のＹＥＳ）、その判定結果をモード設定部５３に出力する（ステップＳ１０３）。
【００４２】
モード設定部５３は、エラー判定部５２からの判定結果と、タスク実行部５１からのタスクの分割動作と、設定ファイル情報と、に基づいて、タスク実行失敗時の動作モードを設定する（ステップＳ１０４）。モード設定部５３は、設定した動作モードをモード変更送信部５４に出力する。
【００４３】
モード変更送信部５４は、モード設定部５３からの動作モードを受信すると、その動作モードに対応するＩＤ情報と、エラー情報と、を操作端末７に送信する（ステップＳ１０５）。
【００４４】
操作端末７のモード変更部７１は、モード変更送信部５４からＩＤ情報を受信すると、そのＩＤ情報の動作モードに対応した操作画面を表示する（ステップＳ１０６）。
ユーザは、操作端末７の操作画面上で操作情報を入力する（ステップＳ１０７）。このとき、タスク実行失敗時において、最適な動作モードが自動的に設定されており、その動作モードに対応した操作画面が表示されている。ユーザは、操作画面に従って、容易に実行に失敗したタスクを回復させることができる。特に、経験の少ないユーザは、改めて動作モードを選択する必要がないため、大幅に手間を削減できる。
【００４５】
操作端末７は、入力された操作情報を制御装置５のコマンド制御部５５に送信する（ステップＳ１０８）。
コマンド制御部５５は、モード設定部５３により設定される動作モードと、操作端末７から送信される操作情報と、に基づいて、移動装置３及び把持操作装置４を制御する（ステップＳ１０９）。
【００４６】
以上、本実施形態に係るロボット制御システム１０において、ロボット１がタスク実行を失敗したときの動作又は該動作直近の動作に対応する動作モードを選択する。これにより、最適な動作モードが自動的に選択されるため、ユーザはその選択を行う手間が省け円滑にロボット１の操作を開始できる。
【００４７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００４８】
本発明は、例えば、  図７に示す処理を、ＣＰＵ５ａにコンピュータプログラムを実行させることにより実現することも可能である。
【００４９】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。
【００５０】
プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００５１】
１  ロボット、２  ロボット本体、３  移動装置、４  把持操作装置、５  制御装置、６  距離センサ、７  操作端末、１０  ロボット制御システム、５１  タスク実行部、５２  エラー判定部、５３  モード設定部、５４  モード変更送信部、５５  コマンド制御部
【図１】
0006354496.tif 000002
【図２】
0006354496.tif 000003
【図３】
0006354496.tif 000004
【図４】
0006354496.tif 000005
【図５】
0006354496.tif 000006
【図６】
0006354496.tif 000007
【図７】
0006354496.tif 000008