[go: up one dir, main page]

JP2014124735A - ロボット制御方法、ロボット制御装置、プログラム、及びロボット - Google Patents

ロボット制御方法、ロボット制御装置、プログラム、及びロボット Download PDF

Info

Publication number
JP2014124735A
JP2014124735A JP2012284464A JP2012284464A JP2014124735A JP 2014124735 A JP2014124735 A JP 2014124735A JP 2012284464 A JP2012284464 A JP 2012284464A JP 2012284464 A JP2012284464 A JP 2012284464A JP 2014124735 A JP2014124735 A JP 2014124735A
Authority
JP
Japan
Prior art keywords
robot
scenario
unit
state
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2012284464A
Other languages
English (en)
Inventor
Makoto Ouchi
真 大内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2012284464A priority Critical patent/JP2014124735A/ja
Publication of JP2014124735A publication Critical patent/JP2014124735A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットの動作中に発生したエラーから簡単にリカバーできるようにする。
【解決手段】ユーザー命令を取得する第一のステップと、ロボットの状態及び前記ロボットの周囲の環境の状態を検出する第二のステップと、前記検出した状態に基づいて前記取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する第三のステップと、前記生成したシナリオに従って前記ロボットを動作させる第四のステップと、前記ロボットの作業が正常に実行されたか否かを判定する第五のステップと、前記ロボットの作業が正常に実行されなかったと判定された場合に、前記第二のステップに戻る第六のステップと、を含む。
【選択図】図1

Description

本発明は、ロボット制御方法、ロボット制御装置、プログラム、及びロボットに関する。
特許文献1には、作業をティーチング後プレイバックする前に、多関節ロボットの手先を目的位置に到達させるための手先運動の解を複数演算するとともに、各解に優先順位を付け、プレイバックするときに動作不可能とならない解を優先順位の高い順にチェックすることが記載されている。
特開昭64−61804
特許文献1の技術は、ロボットの関節が動作許容範囲を超えるなどのエラーを、プレイバックの事前に回避することができる。しかし、プレイバック前に想定できないエラー(例えば、プレイバック中に現れた障害物にロボットが衝突する、プレイバック中にロボットのハンドで把持されたワークが落ちるなど)が発生した場合、当該エラーからリカバーする(例えば、作業開始前の状態に戻さずに、エラーの状態から作業を再開して完了させる)ことについては触れられていない。
本発明は、ロボットの動作中に発生したエラーから簡単にリカバーできるようにすることを目的とする。
上記の課題を解決するための本発明の第一の態様は、ユーザーから教示されたロボットの作業に関するユーザー命令を取得する第一のステップと、前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する第二のステップと、前記第二のステップで検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記第一のステップで取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する第三のステップと、前記第三のステップで生成したシナリオに従って前記ロボットを動作させる第四のステップと、前記第四のステップの結果、前記ロボットの作業が正常に実行されたか否かを判定する第五のステップと、前記第五のステップで前記ロボットの作業が正常に実行されなかったと判定された場合に、前記第二のステップに戻る第六のステップと、を含む、ことを特徴とするロボット制御方法である。このような構成によれば、シナリオの実行によりエラーが発生した場合でも、ユーザー命令を再入力することなく、現在の状態に基づいて代替的なシナリオが再生成されて実行されるため、エラーから簡単にリカバーすることができる。
前記ロボット制御方法であって、前記第三のステップでは、前記生成したシナリオのシミュレーションを実行し、前記第五のステップでは、前記第四のステップの終了後の前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出し、当該検出した状態と、前記第三のステップでの前記シミュレーションの結果とに基づいて、前記ロボットの作業が正常に実行されたか否かを判定する、ことを特徴としていてもよい。このような構成によれば、ロボットの故障などの内部的なエラーだけでなく、新たに障害物が発生した、ワークの位置が目的位置からずれているなどの外部的なエラーも検出して、ユーザー命令に基づく作業のエラーを精度よく検出することができる。
前記ロボット制御方法であって、前記第三のステップでは、前記生成したシナリオごとに、前記シミュレーションを実行し、当該シナリオによる前記ロボットの動作量、及び当該シナリオによる前記ロボットの動作時間のいずれかに基づいて優先度を設定し、前記優先度が最も高いシナリオを前記第四のステップで使用するシナリオとして選択する、ことを特徴としていてもよい。このような構成により、各シナリオの動作量などに基づく優先度に基づいてシナリオが選択されて再生されるため、シナリオ再生の成功率を高めることができる。
前記ロボット制御方法であって、前記第四のステップで実行されたシナリオごとに、前記第五のステップの判定の結果に基づいて当該シナリオの成功率を記録する第七のステップを含み、前記第三のステップでは、生成したシナリオごとに、前記第七のステップで記録されている成功率に基づいて優先度を設定し、前記優先度が最も高いシナリオを前記第四のステップで使用するシナリオとして選択する、ことを特徴としていてもよい。このような構成により、各シナリオの過去の成功率に基づく優先度に基づいてシナリオが選択されて再生されるため、シナリオ再生の成功率を高めることができる。
前記のロボット制御方法であって、前記ロボットは複数の可動部を備え、前記第三のステップでは、前記可動部ごとに、前記ユーザー命令を実現可能なシナリオを生成する、ことを特徴としていてもよい。このような構成により、一つのユーザー命令に対して様々なパターンのシナリオが生成されるため、成功率の高いシナリオを選択することができる。
上記の課題を解決するための本発明の第二の態様は、ユーザーから教示されたロボットの作業に関するユーザー命令を取得する取得部と、前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する検出部と、前記検出部により検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記取得部により取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する生成部と、前記生成部により生成したシナリオに従って前記ロボットを動作させる再生部と、前記ロボットの作業が正常に実行されたか否かを判定する判定部と、を有し、前記判定部により前記ロボットの作業が正常に実行されたと判定されるまで、前記検出部、前記生成部、前記再生部、及び前記判定部による処理を繰り返す、ことを特徴とするロボット制御装置である。このような構成によれば、シナリオの実行によりエラーが発生した場合でも、ユーザー命令を再入力することなく、現在の状態(エラーの発生した状態)に基づいて代替的なシナリオが再生成されて実行されるため、エラーから簡単にリカバーすることができる。
上記の課題を解決するための本発明の第三の態様は、ユーザーから教示されたロボットの作業に関するユーザー命令を取得する第一のステップと、前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する第二のステップと、前記第二のステップで検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記第一のステップで取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する第三のステップと、前記第三のステップで生成したシナリオに従って前記ロボットを動作させる第四のステップと、前記第四のステップの結果、前記ロボットの作業が正常に実行されたか否かを判定する第五のステップと、前記第五のステップで前記ロボットの作業が正常に実行されなかったと判定された場合に、前記第二のステップに戻る第六のステップと、をコンピューターに実行させる、ことを特徴とするプログラムである。このような構成によれば、シナリオの実行によりエラーが発生した場合でも、ユーザー命令を再入力することなく、現在の状態(エラーの発生した状態)に基づいて代替的なシナリオが再生成されて実行されるため、エラーから簡単にリカバーすることができる。
上記の課題を解決するための本発明の第四の態様は、ロボットであって、ユーザーから教示された前記ロボットの作業に関するユーザー命令を取得する取得部と、前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する検出部と、前記検出部により検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記取得部により取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する生成部と、前記生成部により生成したシナリオに従って前記ロボットを動作させる再生部と、前記ロボットの作業が正常に実行されたか否かを判定する判定部と、を有し、前記判定部により前記ロボットの作業が正常に実行された判定されるまで、前記検出部、前記生成部、前記再生部、及び前記判定部による処理を繰り返す、ことを特徴とする。このような構成によれば、シナリオの実行によりエラーが発生した場合でも、ユーザー命令を再入力することなく、現在の状態(エラーの発生した状態)に基づいて代替的なシナリオが再生成されて実行されるため、エラーから簡単にリカバーすることができる。
本発明の一実施形態に係るロボットシステム1の概略構成の一例を示す図である。 シナリオ再生装置10の機能構成の一例を示す図である。 ライブラリーテーブル111の構成の一例を示す図である。 シナリオテーブル112の構成の一例を示す図である。 コンピューター60の概略構成の一例を示す図である。 シナリオ再生処理の一例を示すフロー図である。 シナリオ生成処理の一例を示すフロー図である。 エラーチェック処理の一例を示すフロー図である。 エラー発生前のシナリオ(一方のアームを使用する場合)の一例を説明する図である。 エラー発生前のシナリオ(両方のアームを使用する場合)の一例を説明する図である。 エラー発生前のシナリオ(他方のアームを使用する場合)の一例を説明する図である。 エラー発生後のシナリオ(一方のアームを使用する場合)の一例を説明する図である。 エラー発生後のシナリオ(両方のアームを使用する場合)の一例を説明する図である。 エラー発生後のシナリオ(他方のアームを使用する場合)の一例を説明する図である。
<第一実施形態>
本発明の第一実施形態について、図面を参照して説明する。
図1は、本実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、シナリオ再生装置10と、ロボット制御装置20と、ロボット30と、撮影装置40とを備える。
ロボットシステム1では、ユーザーによりシナリオ再生装置10に対して作業内容が教示されると、シナリオ再生装置10は、当該作業内容を実現する動作命令群を生成して、ロボット制御装置20に出力する。ロボット制御装置20は、シナリオ再生装置10から出力された動作命令群に基づいてロボット30を駆動することで、ユーザーから教示された作業内容を実行する。
本実施形態では、ユーザーにより教示される作業内容を、「ユーザー命令」と呼ぶ。ユーザー命令は、例えば、「ワークWを目的位置Dに置く」といった大まかな内容とすることができる。
また、本実施形態では、ユーザー命令に基づいて生成される動作命令群を、「シナリオ」と呼ぶ。シナリオは、ロボット制御装置20で解釈可能な動作命令群から構成される。シナリオは、ユーザー命令を実現するために必要なロボットの動作単位で構成されるものであり、例えば、ユーザー命令が「ワークWを目的位置Dに置く」である場合、動作命令群は、「ワークWに(ワークWの位置に)手先を移動する」、「ワークWを把持する」、「位置Dに手先を移動する」「ワークWを解放する」などとすることができる。もちろん、一つのユーザー命令に対して、シナリオが複数生成されてもよい。
また、本実施形態では、シナリオに基づいてロボット制御装置20により生成されるロボット30で解釈可能な命令を、「制御命令」と呼ぶ。
シナリオ再生装置10は、ユーザー命令を取得する。また、ロボット制御装置20から、ロボット30の現在の状態(例えば、ジョイントの角度、手先の位置、力覚センサーなどのセンサーの出力値など)を特定する情報や、ロボット30の周囲の環境の現在の状態(例えば、ワークWの位置及びワークWが空間を占める領域、障害物の位置及び障害物が空間を占める領域など)を特定する情報を取得する。また、ユーザー命令と現在の状態を特定する情報とに基づいて、ユーザー命令を実現するシナリオを生成し、ロボット制御装置20に出力する。シナリオ再生装置10の詳細は後述する。
ロボット制御装置20は、ロボット30の動作を制御する。ロボット制御装置20は、ロボット30が備えるセンサーやエンコーダーなどの情報、撮影装置40の画像情報などに基づいて、ロボット30の現在の状態を検出する。また、撮影装置40の画像情報に基づいて、ロボット30の周囲の環境の現在の状態を検出する。また、ロボット制御装置20は、シナリオ再生装置10から動作命令群を受信し、受信した動作命令群と、検出した現在の状態とに基づいてロボット30を駆動する制御命令を生成し、ロボット30に出力する。また、ロボット制御装置20は、検出したロボット30の現在の状態を特定する情報、検出したロボット30の周囲の環境の現在の状態を特定する情報を、シナリオ再生装置10に出力する。
例えば、動作命令が「ワークWに(ワークWの位置に)手先を移動する」である場合、ロボット制御装置20は、検出した現在の状態を特定する情報に基づいて、ワークWの位置及びロボットの手先の位置を認識し、手先をワークW付近に移動する制御命令を生成する。ロボット制御装置20の処理は、公知の技術により実現できるので、詳細な説明は省略する。
ロボット30は、ロボット制御装置20からの制御命令に従って動作し、例えば、ワークWの組み立て、ワークWの移動、などの作業を行う。そのため、ロボット30は、2本のアーム部31(31A、31B)を備える。アーム部31は、リンク32と、ジョイント33とを含む。ロボット30は、アーム部31の先端部に、ワークWなどの対象物を把持したり、道具を把持して対象物に対して所定の作業を行ったりすることが可能なハンド36を備える。ロボット30は、ロボット制御装置20から与えられる制御命令に従って、各ジョイント33を連動させて駆動することにより、アーム部31の先端部の位置を、所定の可動範囲内で、自在に移動させたり、自由な方向へ向けたりすることができる。なお、アーム部31その他のロボット30の動作するパーツを、可動部と呼んでもよい。
上記のロボット30の構成は、上記の構成に限られない。また、一般的なロボットが備える構成を排除するものではない。例えば、ジョイントの数(「軸数」ともいう)やリンクの数を増減させてもよい。また、ジョイント、リンク、ハンド等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
撮影装置40は、ワークWなどを含む作業空間を撮影し、画像データを生成し、ロボット制御装置20に出力する。撮影装置40は、例えば、カメラであり、作業台、天井、床、壁などに設置される。
上記のロボットシステム1の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、一般的なロボットシステムが備える構成を排除するものではない。例えば、シナリオ再生装置10、ロボット制御装置20、及びロボット30は、いずれか二つ以上が一体の装置となっていてもよい。また、撮影装置40の数や設置場所は、作業空間の撮影ができれば、特に限定されず、例えば、ロボット制御装置20やロボット30に設けられていてもよい。
なお、シナリオ再生装置10がロボット制御装置20と一体の装置であるか否かに係わらず、シナリオ再生装置10をロボット制御装置と呼んでもよい。
図2は、シナリオ再生装置10の機能構成の一例を示す図である。シナリオ再生装置10は、制御部100と、記憶部110と、入力部120と、表示部130と、通信部140と、を有する。
入力部120は、ユーザー命令などのユーザーの入力操作を受け付ける。
表示部130は、ユーザーインターフェイス(以下、「UI」とも呼ぶ。)画面などを表示する。
通信部140は、ネットワークやケーブルを介してロボット制御装置20と情報の送受信を行う。
記憶部110には、シナリオ再生装置10の制御に必要な情報などが格納される。
本実施形態では、ユーザー命令から簡単に動作命令群であるシナリオを生成できるように、ライブラリー(以下、「ライブラリー命令」ともいう。)が用意されている。ライブラリー命令は、ユーザー命令に対応するものが予め用意されているものとする。また、ライブラリー命令は、複数の動作命令群で構成されている。ユーザー命令に対応するライブラリー命令を選択するとともに、当該ライブラリー命令に必要な設定値を設定することで、当該ライブラリー命令を構成する動作命令群に基づくシナリオが生成される。そのため、記憶部110には、ライブラリーテーブル111と、シナリオテーブル112とが格納される。
ライブラリーテーブル111には、ライブラリー命令が格納される。具体的には、図3(ライブラリーテーブル111の構成の一例を示す図)に示すように、ライブラリーテーブル111には、ライブラリー命令ごとに、レコードが格納される。レコードは、当該ライブラリー命令の識別情報であるライブラリー命令ID111aと、当該ライブラリー命令111bと、当該ライブラリー命令を構成する動作命令群111cとが関連付けられて構成される。本実施形態では、様々なユーザー命令をロボット30が実行できるように、各種のライブラリー命令のレコードが予め格納されている。
例えば、ライブラリー命令「MoveFromTo(w, d, arm0)」について説明する。変数wには、移動対象となるワークを特定する情報が設定される。変数dには、目的位置を特定する情報が設定される。変数arm0には、動作対象となるアームを特定する情報が設定される。すなわち、ライブラリー「MoveFromTo(w, d, arm0)」は、変数wに設定されたワークを、変数dに設定された目的位置に、変数arm0に設定されたアームを使って移動する、というライブラリー命令である。また、当該ライブラリー命令は、下記の動作命令群で構成される。
動作命令「arm0: Move to w」は、変数arm0に設定されたアームのハンドの位置を、変数wに設定されたワークの位置まで移動する、という動作命令である。
動作命令「arm0: Grasp w」は、変数arm0に設定されたアームのハンドで、変数wに設定されたワークを把持する、という動作命令である。
動作命令「arm0: Move to d」は、変数arm0に設定されたアームのハンドの位置を、変数dに設定された目的位置まで移動する、という動作命令である。
動作命令「arm0: Release w」は、変数arm0に設定されたアームのハンドで把持された、変数wに設定されたワークを解放する、という動作命令である。
また、例えば、ライブラリー命令「MoveFromTo(w, d, arm0, arm1)」について説明する。変数wには、移動対象となるワークを特定する情報が設定される。変数dには、目的位置を特定する情報が設定される。変数arm0及び変数arm1には、動作対象となるアームを特定する情報が設定される。すなわち、ライブラリー命令「MoveFromTo(w, d, arm0, arm1)」は、変数wに設定されたワークを、変数dに設定された目的位置に、変数arm0に設定されたアームと変数arm1に設定されたアームとを使って移動する、というライブラリー命令である。また、当該ライブラリー命令は、下記の動作命令群で構成される。
動作命令「arm0: Move to w」は、変数arm0に設定されたアームのハンドの位置を、変数wに設定されたワークの位置まで移動する、という動作命令である。
動作命令「arm0: Grasp w」は、変数arm0に設定されたアームのハンドで、変数wに設定されたワークを把持する、という動作命令である。
動作命令「arm0: Move to R」は、変数arm0に設定されたアームのハンドの位置を、所定の中継位置Rまで移動する、という動作命令である。
動作命令「arm1: Move to R」は、変数arm1に設定されたアームのハンドの位置を、所定の中継位置Rまで移動する、という動作命令である。
動作命令「arm1: Grasp w」は、変数arm1に設定されたアームのハンドで、変数wに設定されたワークを把持する、という動作命令である。
動作命令「arm0: Release w」は、変数arm0に設定されたアームのハンドで把持された、変数wに設定されたワークを解放する、という動作命令である。
動作命令「arm1: Move to d」は、変数arm1に設定されたアームのハンドの位置を、変数dに設定された目的位置まで移動する、という動作命令である。
動作命令「arm1: Release w」は、変数arm1に設定されたアームのハンドで把持された、変数wに設定されたワークを解放する、という動作命令である。
なお、ライブラリー命令、ライブラリー命令を構成する動作命令群は、上述した例に限られるものではない。
シナリオテーブル112には、ライブラリー命令を用いて生成されたシナリオが格納される。シナリオテーブル112は、ユーザー命令ごとに生成されて、記憶部110に格納される。具体的には、図4(シナリオテーブル112の構成の一例を示す図)に示すように、シナリオテーブル112には、シナリオごとに、レコードが格納される。レコードは、当該シナリオの識別情報であるシナリオID112aと、当該シナリオを生成するために用いたライブラリー命令のライブラリー命令ID112bと、当該シナリオを生成するために用いたライブラリー命令の変数に設定した設定値112cと、ライブラリー命令の変数に設定された設定値を当該ライブラリー命令の動作命令群111cに設定することで生成された動作命令群112dと、当該シナリオの再生をシミュレーションした結果(例えば、シミュレーション後のロボット30の状態を特定する情報、シミュレーション後のロボット30の周囲の環境の状態を特定する情報など)を特定する情報112eと、当該シナリオの再生の優先度112fと、が関連付けられて構成される。
図2に戻って説明する。制御部100は、シナリオ再生装置10を統合的に制御する。制御部100は、ユーザー命令取得部(「取得部」とも呼ぶ。)101と、状態検出部(単に「検出部」とも呼ぶ。)102と、シナリオ生成部(「生成部」とも呼ぶ。)103と、シミュレーション部104と、シナリオ再生部(「再生部」とも呼ぶ)105と、エラーチェック部(「判定部」とも呼ぶ。)106とを有する。
ユーザー命令取得部101は、入力部120を介してユーザーにより入力されたユーザー命令を取得し、シナリオ生成部103に出力する。なお、ユーザー命令取得部101は、入力されたユーザー命令を解析し、ライブラリー命令に対応する単位の複数のユーザー命令に分けて、シナリオ生成部103に出力するようにしてもよい。
状態検出部102は、通信部140を介してロボット制御装置20から、ロボット30の現在の状態を特定する情報と、ロボット30の周囲の環境の現在の状態を特定する情報とを取得することで、ロボット30の現在の状態と、ロボット30の周囲の環境の現在の状態を検出する。
シナリオ生成部103は、ユーザー命令取得部101で取得されたユーザー命令を実現するシナリオを生成する。すなわち、シナリオ生成部103は、ライブラリーテーブル111から、ユーザー命令に対応するライブラリー命令を選択するとともに、ライブラリー命令に設定する設定値の様々な組み合わせパターンを決定する。また、各パターンの設定値をライブラリー命令に設定して、各パターンに対応する動作命令群(シナリオ)を生成する。
また、シナリオ生成部103は、生成した各シナリオについて、シミュレーション部104によりシミュレーションを実行させ、その結果を取得する。シミュレーションの結果、エラーが発生しないシナリオについては、シナリオテーブル112にレコードを追加する。なお、シミュレーションとは、コンピューター上で、ロボットの状態、ロボットの周囲の環境の状態などをモデル化するとともに、ロボットを仮想的に動作させるものである。
また、シナリオ生成部103は、シナリオテーブル112に追加したレコードの優先度112fに、優先度を設定する。例えば、シミュレーションの結果に基づいて、シナリオ実行にかかったロボット30の動作時間が小さいシナリオほど優先度を高く設定する。また、例えば、シミュレーションの結果に基づいて、ロボット30の動作量(例えば、関節角度の変化量の合計、手先の移動距離など)が少ないシナリオほど優先度を高く設定してもよい。また、例えば、動作命令の数が少ないシナリオほど優先度を高く設定してもよい。
また、シナリオ生成部103は、一つのユーザー命令について複数のシナリオのレコードを追加した場合には、優先度112fが最も高いシナリオを、再生すべきシナリオとして選択する。
シミュレーション部104は、シナリオに基づくロボット30の動作を、シミュレーションする。具体的には、シミュレーション部104は、状態検出部102により、ロボット30の現在の状態と、ロボット30の周囲の環境の現在の状態を検出する。また、シナリオ生成部103が生成した動作命令群と、検出した現在の状態とに基づいてロボット30の動作(例えば、ハンドの移動、ワークの把持、ワークの開放など)をシミュレーションする。また、障害物への衝突がないか、動作許容範囲内の動作か、などをチェックする。また、シミュレーション部104は、シミュレーションの結果として、シミュレーションにおけるシナリオ実行後のロボット30の状態とロボット30の周囲の環境の状態を出力する。シミュレーション結果には、シナリオ実行にかかったロボット30の動作時間、動作量などを特定する情報が含まれていてもよい。
例えば、動作命令が「ワークWに(ワークWの位置に)手先を移動する」である場合、シミュレーション部104は、検出した現在の状態を特定する情報に基づいて、ワークWの位置及びロボットの手先の位置を認識し、手先をワークW付近に移動するシミュレーションを実行する。シミュレーション部104によるシミュレーションの処理は、公知の技術により実現できるので、詳細な説明は省略する。
シナリオ再生部105は、シナリオ生成部103により選択されたシナリオを再生する。具体的には、シナリオ再生部105は、選択されたレコードの動作命令群112dをシナリオテーブル112から取得する。それから、取得した動作命令群を、通信部140を介してロボット制御装置20に出力する。なお、ロボット制御装置20は、シナリオ再生部105からの動作命令群に基づいて制御命令を生成し、ロボット30に出力する。このようにして、ユーザーにより教示された作業内容がロボット30により実行される。
エラーチェック部106は、シナリオ再生にエラーがあったか否かをチェックする。具体的には、エラーチェック部106は、シナリオ再生の後、状態検出部102により、ロボット30の現在の状態と、ロボット30の周囲の環境の現在の状態を検出する。また、再生されたシナリオのシミュレーション結果112eをシナリオテーブル112から取得する。そして、検出した現在の状態とシミュレーション結果とに基づいて、ワークWの位置、アームの位置、ロボット30のセンサー値などに差分がないか等を判定することにより、エラーが発生していないか否かをチェックする。
上述したシナリオ再生装置10は、例えば、図5(コンピューター60のハードウェア構成の一例を示す図)に示すような、CPU(Central Processing Unit)61と、メモリー62と、HDD(Hard Disk Drive)等の補助記憶装置63と、有線又は無線により通信ネットワークやロボット制御装置20に接続するための通信インターフェイス(I/F)64と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置65と、液晶ディスプレイなどの表示装置66と、DVD(Digital Versatile Disk)などの持ち運び可能な記憶媒体に対する情報の読み書きを行うメディアI/F67と、を備えるコンピューター60で実現できる。なお、ロボット制御装置20も、例えば、図5に示すようなコンピューター60で実現できる。
例えば、制御部100は、補助記憶装置63に記憶されている所定のプログラムをメモリー62にロードしてCPU61で実行することで実現可能である。記憶部110は、CPU61がメモリー62又は補助記憶装置63を利用することにより実現可能である。入力部120は、CPU61が入力装置65を利用することで実現可能である。表示部130は、CPU61が表示装置66を利用することで実現可能である。通信部140は、CPU61が通信I/F64を利用することで実現可能である。なお、上記の所定のプログラムは、例えば、通信I/F64を介してネットワーク上からダウンロードされてもよいし、メディアI/F67に接続された記憶媒体からロードされてもよい。
上記の機能構成は、シナリオ再生装置10の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。シナリオ再生装置10の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
また、例えば、シナリオ再生装置10の少なくとも一部の機能は、ロボット制御装置20に含まれ、ロボット制御装置20により実現されてもよい。また、例えば、ロボット制御装置20の少なくとも一部の機能は、ロボット30に含まれ、ロボット30により実現されてもよい。また、例えば、シナリオ再生装置10及びロボット制御装置20の少なくとも一部の機能は、ロボット30に含まれ、ロボット30により実現されてもよい。
図6は、シナリオ再生処理の一例を示すフロー図である。
ユーザー命令取得部101は、入力部120を介してユーザー命令が入力されたか否かを判定する(ステップS10)。ユーザー命令が入力されていない場合(ステップS10:N)、判定を継続する。
ユーザー命令が入力された場合(ステップS10:Y)、状態検出部102は、ロボット30の現在の状態及びロボット30の周囲の環境の現在の状態を検出する(ステップS20)。
それから、シナリオ生成部103は、ステップS10でユーザー命令取得部101により取得されたユーザー命令と、ステップS20で状態検出部102により検出された現在の状態を特定する情報とに基づいて、シナリオを生成する(ステップS30)。詳細は、図7で説明する。
それから、シナリオ生成部103は、シナリオの生成に成功したか否かを判定する(ステップS40)。シナリオの生成に失敗した場合(ステップS40:N)、制御部100は、処理をステップS10に戻す。
シナリオの生成に成功した場合(ステップS40:Y)、シナリオ再生部105は、シナリオを再生する(ステップS50)。具体的には、シナリオ再生部105は、ステップS30(後述する図7のステップS39)で選択されたシナリオのレコードの動作命令群112dを、シナリオテーブル112から取得し、通信部140を介してロボット制御装置20に出力する。
エラーチェック部106は、ステップS50におけるシナリオ再生のエラーをチェックする(ステップS60)。詳細は、図8で説明する。
それから、エラーチェック部106は、ステップS60のチェック結果(後述する図8のステップS65又はS66)に基づいて、シナリオの再生が成功したか否かを判定する(ステップS70)。シナリオの再生が成功した場合(ステップS70:Y)、制御部100は、処理をステップS10に戻し、次のユーザー命令を待つ。
シナリオの再生が失敗した場合(ステップS70:N)、制御部100は、処理をステップS20に戻し、ステップS10で取得された同じユーザー命令についてステップS20以降の処理を行う。この場合、ステップS10で取得された同じユーザー命令についてシナリオが再生成されることになるため、当該ユーザー命令に関して前回のシナリオ生成処理で記録されたレコードをシナリオテーブル112から削除する。
なお、ステップS60の後、ステップS70でN、ステップS20、ステップS30と処理が進む場合、ステップS20をスキップし、ステップS30ではステップS62(後述する図8)検出された現在の状態を使用するようにしてもよい。
図7は、シナリオ生成処理の一例を示すフロー図である。なお、シナリオ生成処理は、図6のステップS30に対応する。
シナリオ生成部103は、ライブラリー命令を選択する(ステップS31)。具体的には、シナリオ生成部103は、ステップS10(図6)でユーザー命令取得部101により取得されたユーザー命令を解析し、当該ユーザー命令に対応するライブラリー命令111bをライブラリーテーブル111から一つ選択する。例えば、ユーザー命令が「ワークWを目的位置Dに置く」である場合、対象物を目的位置に移動するユーザー命令であると認識し、対象物を目的位置に移動するライブラリー命令「MoveFromTo(w, d, arm0)」又は「MoveFromTo(w, d, arm0, arm1)」を選択する。
それから、シナリオ生成部103は、ステップS31で選択したライブラリー命令について設定すべき設定値を選択する(ステップS32)。具体的には、シナリオ生成部103は、例えば、ライブラリー命令「MoveFromTo(w, d, arm0)」を選択した場合、変数wにはワークWを特定する情報を設置値として固定的に選択し、変数dには目的位置Dを特定する情報を設定値として固定的に選択する。変数arm0には、ロボット30のアーム部31A(armA)又はアーム部32B(armB)を特定する情報を設定値として選択する。すなわち、取り得る設定値の組み合わせのパターンを一つ選択する。
それから、シナリオ生成部103は、シナリオを生成する(ステップS33)。具体的には、シナリオ生成部103は、ステップS31で選択したライブラリー命令111b及び対応付けられた動作命令群111cに、ステップS32で選択した各設定値を設定することで、動作命令群を生成する。例えば、ライブラリー命令「MoveFromTo(w, d, arm0)」に、設定値W、D、armAを設定した場合、動作命令群「armA: Move to W」、「armA: Grasp W」、「armA: Move to D」、「armA: Release W」を生成することができる。
それから、シナリオ生成部103は、シミュレーション部104により、ステップS33で生成したシナリオについてのシミュレーションを実行する(ステップS34)。具体的には、シミュレーション部104は、ステップS33で生成された動作命令群を取得する。また、状態検出部102により、ロボット30の現在の状態と、ロボット30の周囲の環境の現在の状態を検出する。また、取得した動作命令群と、検出した現在の状態とに基づいてロボット30の動作をシミュレーションする。また、障害物への衝突がないか、動作許容範囲内の動作か、などをチェックする。また、シミュレーション部104は、シミュレーションの結果として、シミュレーションにおけるシナリオ実行後のロボット30の状態とロボット30の周囲の環境の状態を出力する。
それから、シナリオ生成部103は、ステップS34のシミュレーション結果に基づいて、シナリオのシミュレーション実行に成功したか否かを判定する(ステップS35)。シナリオのシミュレーション実行に成功した場合(ステップS35:Y)、シナリオ生成部103は、シナリオを記録する(ステップS36)。
具体的には、シナリオ生成部103は、シナリオテーブル112にレコードを追加する。また、追加したレコードのシナリオID112aに、新たに生成したIDを設定する。また、ライブラリー命令ID112bに、ステップS31で選択したライブラリー命令のID111aを設定する。また、設定値112cに、ステップS32で選択した各設定値を設定する。また、動作命令群112dに、ステップS33で生成した動作命令群を設定する。また、シミュレーション結果112eに、ステップS34のシミュレーション結果を設定する。また、シナリオ生成部103は、シナリオテーブル112に含まれる各レコードのシミュレーション結果112eに基づいて、各レコードの優先度を決定し、優先度112fに設定する。優先度は、例えば、シナリオ実行にかかったロボット30の動作時間又は動作量が小さいシナリオほど優先度を高く設定する。また、各シナリオの動作命令の数が少ないほど優先度を高く設定してもよい。
なお、本実施形態では、動作時間、動作量、動作命令などが少ないほど、シナリオ再生の成功率が高いと扱うものとする。もちろん、成功率を高めるという目的のもと、他のパラメータに基づいて優先度を設定してもよい。
シナリオのシミュレーション実行に失敗した場合(ステップS35:N)、又は、ステップS36でシナリオを記録した後、シナリオ生成部103は、ステップS32においてライブラリー命令に設定可能な設定値の全ての組み合わせパターンを選択したか否かを判定する(ステップS37)。全ての組み合わせパターンが選択されていない場合(ステップS37:N)、処理をステップS32に戻し、未選択のパターンを選択する。
全ての組み合わせパターンが選択された場合(ステップS37:Y)、シナリオ生成部103は、ステップS31において選択可能な全てのライブラリー命令を選択したか否かを判定する(ステップS38)。全てのライブラリー命令が選択されていない場合(ステップS38:N)、処理をステップS31に戻し、未選択のライブラリー命令を選択する。
全てのライブラリー命令が選択された場合(ステップS38:Y)、シナリオ生成部103は、本フローを終了する。
図8は、エラーチェック処理の一例を示すフロー図である。なお、シナリオ生成処理は、図6のステップS60に対応する。
エラーチェック部106は、シミュレーション結果を取得する(ステップS61)。具体的には、エラーチェック部106は、ステップS50(図6)で再生されたシナリオのシミュレーション結果112eをシナリオテーブル112から取得する。
それから、エラーチェック部106は、状態検出部102により、ロボット30の現在の状態と、ロボット30の周囲の環境の現在の状態を検出する(ステップS62)。
それから、エラーチェック部106は、エラーチェックを行う(ステップS63)。具体的には、エラーチェック部106は、ステップS61で取得したシミュレーション結果と、ステップS62で取得した現在の状態とを比較し、差分があるか否かを判定する(差分が所定範囲内であるか否かを判定してもよい)。例えば、シミュレーション結果におけるワークWの位置と、検出した現在のワークWの位置とに差分があれば、何らかのエラーが発生したと判定できる。また、例えば、シミュレーション結果におけるロボット30の手先の位置と、検出した現在のロボット30の手先の位置とに差分があれば、何らかのエラーが発生したと判定できる。なお、エラーの判定方法は、上記の例に限定されない。
それから、エラーチェック部106は、ステップS63の判定結果に基づいて、シナリオの再生にエラーが発生したか否かを判定する(ステップS64)。エラーが発生していない場合(ステップS64:N)、エラーチェック部106は、チェック結果として成功を出力し(ステップS65)、本フローを終了する。エラーが発生していた場合(ステップS64:Y)、エラーチェック部106は、チェック結果として失敗を出力し(ステップS66)、本フローを終了する。
なお、上記の図6〜図8のフローの各処理単位は、シナリオ再生装置10の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。シナリオ再生装置10の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。
次に、エラー発生前のシナリオとエラー発生後のシナリオの関係について、図9〜14を参照して説明する。図9は、エラー発生前のシナリオ(一方のアームを使用する場合)の一例を説明する図である。図10は、エラー発生前のシナリオ(両方のアームを使用する場合)の一例を説明する図である。図11は、エラー発生前のシナリオ(他方のアームを使用する場合)の一例を説明する図である。図12は、エラー発生後のシナリオ(一方のアームを使用する場合)の一例を説明する図である。図13は、エラー発生後のシナリオ(両方のアームを使用する場合)の一例を説明する図である。図14は、エラー発生後のシナリオ(他方のアームを使用する場合)の一例を説明する図である。
なお、ここでは、ユーザー命令として、「ワークWを目的位置Dに置く」を想定する。また、図中では、ロボット30のアームを「armA」及び「armB」と表し、ワークを「W」と表し、目的位置を「D」と表す。
図9は、生成されたシナリオ「MoveFromTo(W, D, armA)」を実際に再生した場合を示している。すなわち、(1)動作命令「armA: Move to W」及び「armA: Grasp W」が実行されることで、armA及びWの状態が(A)から(B)へと遷移する。また、(2)動作命令「armA: Move to D」及び「armA: Release W」が実行されることで、armA及びWの状態が(B)から(C)へと遷移する。この場合、エラーが発生していないため、エラーチェックの結果は成功となる。
図10は、生成されたシナリオ「MoveFromTo(W, D, armA, armB)」を実際に再生した場合を示している。すなわち、(1)動作命令「armA: Move to W」及び「armA: Grasp W」が実行されることで、armA及びWの状態が(A)から(B)へと遷移する。また、(3)動作命令「armA: Move to R」、「armB: Move to R」、及び「armB: Grasp W」が実行されることで、armA、armB、及びWの状態が(B)から(D)へと遷移する。また、(4)動作命令「armA: Release W」、「armB: Move to D」、及び「armB: Release W」が実行されることで、armA、armB、及びWの状態が(D)から(E)へと遷移する。この場合、エラーが発生していないため、エラーチェックの結果は成功となる。
図11は、参考のため、生成されたシナリオ「MoveFromTo(W, D, armB)」は、シミュレーションによりエラーとなる場合を示している。すなわち、(5)動作命令「armB: Move to W」をシミュレーションにより実行しても、armBがWに届かないため、このシナリオはシナリオテーブル112に記録されない。
図12は、シナリオ「MoveFromTo(W, D, armA)」を実際に再生したが、アームの手先からワークWが落ちるというエラーが発生し、その後、同じシナリオ「MoveFromTo(W, D, armA)」が生成及び選択され、再生された場合を示している。図中の破線のWの位置は、図9(A)の実線のWの位置と同じであり、図中の実線のWの位置は、手先から落ちた位置である。(1)動作命令「armA: Move to W」及び「armA: Grasp W」が実行されることで、armA及びWの状態が(A1)から(B1)へと遷移する。また、(2)動作命令「armA: Move to D」及び「armA: Release W」が実行されることで、armA及びWの状態が(B1)から(C1)へと遷移する。このように、エラーが発生しても、ユーザー命令を再入力することなく、新たに選択されたシナリオでユーザー命令を実現することができる。
図13は、シナリオ「MoveFromTo(W, D, armA)」を実際に再生したが、アームの手先からワークWが落ちるというエラーが発生し、その後、別のシナリオ「MoveFromTo(W, D, armA, armB)」が生成及び選択され、再生された場合を示している。図中の破線のWの位置は、図9(A)の実線のWの位置と同じであり、図中の実線のWの位置は、手先から落ちた位置である。(1)動作命令「armA: Move to W」及び「armA: Grasp W」が実行されることで、armA及びWの状態が(A1)から(B1)へと遷移する。また、(3)動作命令「armA: Move to R」、「armB: Move to R」、及び「armB: Grasp W」が実行されることで、armA、armB、及びWの状態が(B1)から(D1)へと遷移する。また、(4)動作命令「armA: Release W」、「armB: Move to D」、及び「armB: Release W」が実行されることで、armA、armB、及びWの状態が(D1)から(E1)へと遷移する。このように、エラーが発生しても、ユーザー命令を再入力することなく、新たに選択されたシナリオでユーザー命令を実現することができる。
図14は、シナリオ「MoveFromTo(W, D, armA)」を実際に再生したが、アームの手先からワークWが落ちるというエラーが発生し、その後、別のシナリオ「MoveFromTo(W, D, armB)」が生成及び選択され、再生された場合を示している。すなわち、エラー発生後は、armBがWに届く場合である。図中の破線のWの位置は、図9(A)の実線のWの位置と同じであり、図中の実線のWの位置は、手先から落ちた位置である。(5)動作命令「armB: Move to W」及び「armB: Grasp W」が実行されることで、armB及びWの状態が(A1)から(F1)へと遷移する。また、(6)動作命令「armB: Move to D」及び「armB: Release W」が実行されることで、armB及びWの状態が(F1)から(G1)へと遷移する。このように、エラーが発生しても、ユーザー命令を再入力することなく、新たに選択されたシナリオでユーザー命令を実現することができる。
以上、本発明の一実施形態について説明した。本実施形態によれば、ロボットの動作中に発生したエラーから簡単にリカバーできるようにすることができる。
すなわち、本実施形態では、シナリオの実行によりエラーが発生した場合でも、ユーザー命令を再入力することなく、現在の状態(エラーの発生した状態)に基づいて代替的なシナリオが再生成されて実行されるため、エラーから簡単にリカバーすることができる。また、シナリオ生成の際にシミュレーションを実行することで、エラーが予測されるシナリオが再生されないようにすることができる。また、各シナリオの動作時間、動作量、動作命令の数などに基づいて、各シナリオの優先度を決定し、各シナリオの優先度に基づいてシナリオを選択して再生することで、シナリオ再生の成功率を高めることができる。また、シミュレーション結果と、ロボットの現在の状態及びロボットの現在の周囲の環境の状態とを比較することで、ロボットの故障などの内部的なエラーだけでなく、新たに障害物が発生した、ワークの位置が目的位置からずれているなどの外部的なエラーも検出することができる。
なお、以上の本発明の一実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
例えば、エラーチェック部106は、実際に再生されたシナリオごとに、過去の再生の成功率(例えば、総再生回数に対するエラーが発生しなかった再生回数の割合)を関連付けて記録するようにしてもよい。また、シナリオ生成部103は、シナリオテーブル112に追加したシナリオに優先度を設定する際に、上述の過去の成功率が高いシナリオほど高い優先度を設定するようにしてもよい。なお、過去に再生されていないシナリオを追加した場合には、当該シナリオを所定の成功率(例えば、100%、0%、50%)と扱って優先度を決定すればよい。このようにしても、シナリオ再生の成功率を高めることができる。
例えば、ロボット30は、双腕に限られず、単腕、3腕以上を可動部として備えるようにしてもよい。また、可動部の関節数は、特に限られず、例えば、7軸とすることができる。また、双腕以上の場合は、各腕の関節数は異なっていてもよい。
1:ロボットシステム、10:シナリオ再生装置、20:ロボット制御装置、30:ロボット、31(31A、31B):アーム部、32:リンク、33:ジョイント、36:ハンド、40:撮影装置、
60:コンピューター、61:CPU、62:メモリー、63:補助記憶装置、64:通信I/F、65:入力装置、66:表示装置、67:メディアI/F、
100:制御部、101:ユーザー命令取得部、102:状態検出部、103:シナリオ生成部、104:シミュレーション部、105:シナリオ再生部、106:エラーチェック部、110:記憶部、120:入力部、130:表示部、140:通信部、
111:ライブラリーテーブル、111a:ライブラリー命令ID、111b:ライブラリー命令、111c:動作命令群、112:シナリオテーブル、112a:シナリオID、112b:ライブラリー命令ID、112c:設定値、112d:動作命令群、112e:シミュレーション結果、112f:優先度

Claims (8)

  1. ユーザーから教示されたロボットの作業に関するユーザー命令を取得する第一のステップと、
    前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する第二のステップと、
    前記第二のステップで検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記第一のステップで取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する第三のステップと、
    前記第三のステップで生成したシナリオに従って前記ロボットを動作させる第四のステップと、
    前記第四のステップの結果、前記ロボットの作業が正常に実行されたか否かを判定する第五のステップと、
    前記第五のステップで前記ロボットの作業が正常に実行されなかったと判定された場合に、前記第二のステップに戻る第六のステップと、を含む、
    ことを特徴とするロボット制御方法。
  2. 請求項1に記載のロボット制御方法であって、
    前記第三のステップでは、前記生成したシナリオのシミュレーションを実行し、
    前記第五のステップでは、前記第四のステップの終了後の前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出し、当該検出した状態と、前記第三のステップでの前記シミュレーションの結果とに基づいて、前記ロボットの作業が正常に実行されたか否かを判定する、
    ことを特徴とするロボット制御方法。
  3. 請求項2に記載のロボット制御方法であって、
    前記第三のステップでは、前記生成したシナリオごとに、前記シミュレーションを実行し、当該シナリオによる前記ロボットの動作量、及び当該シナリオによる前記ロボットの動作時間のいずれかに基づいて優先度を設定し、前記優先度が最も高いシナリオを前記第四のステップで使用するシナリオとして選択する、
    ことを特徴とするロボット制御方法。
  4. 請求項2に記載のロボット制御方法であって、
    前記第四のステップで実行されたシナリオごとに、前記第五のステップの判定の結果に基づいて当該シナリオの成功率を記録する第七のステップを含み、
    前記第三のステップでは、生成したシナリオごとに、前記第七のステップで記録されている成功率に基づいて優先度を設定し、前記優先度が最も高いシナリオを前記第四のステップで使用するシナリオとして選択する、
    ことを特徴とするロボット制御方法。
  5. 請求項3又は4に記載のロボット制御方法であって、
    前記ロボットは複数の可動部を備え、
    前記第三のステップでは、前記可動部ごとに、前記ユーザー命令を実現可能なシナリオを生成する、
    ことを特徴とするロボット制御方法。
  6. ユーザーから教示されたロボットの作業に関するユーザー命令を取得する取得部と、
    前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する検出部と、
    前記検出部により検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記取得部により取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する生成部と、
    前記生成部により生成したシナリオに従って前記ロボットを動作させる再生部と、
    前記ロボットの作業が正常に実行されたか否かを判定する判定部と、を有し、
    前記判定部により前記ロボットの作業が正常に実行されたと判定されるまで、前記検出部、前記生成部、前記再生部、及び前記判定部による処理を繰り返す、
    ことを特徴とするロボット制御装置。
  7. ユーザーから教示されたロボットの作業に関するユーザー命令を取得する第一のステップと、
    前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する第二のステップと、
    前記第二のステップで検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記第一のステップで取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する第三のステップと、
    前記第三のステップで生成したシナリオに従って前記ロボットを動作させる第四のステップと、
    前記第四のステップの結果、前記ロボットの作業が正常に実行されたか否かを判定する第五のステップと、
    前記第五のステップで前記ロボットの作業が正常に実行されなかったと判定された場合に、前記第二のステップに戻る第六のステップと、をコンピューターに実行させる、
    ことを特徴とするプログラム。
  8. ロボットであって、
    ユーザーから教示された前記ロボットの作業に関するユーザー命令を取得する取得部と、
    前記ロボットの状態及び前記ロボットの周囲の環境の状態を検出する検出部と、
    前記検出部により検出した状態に基づいて、予め用意されている前記ロボットの動作命令群の中から前記取得部により取得したユーザー命令を実現可能な前記ロボットの動作命令の組み合わせであるシナリオを生成する生成部と、
    前記生成部により生成したシナリオに従って前記ロボットを動作させる再生部と、
    前記ロボットの作業が正常に実行されたか否かを判定する判定部と、を有し、
    前記判定部により前記ロボットの作業が正常に実行された判定されるまで、前記検出部、前記生成部、前記再生部、及び前記判定部による処理を繰り返す、
    ことを特徴とするロボット。
JP2012284464A 2012-12-27 2012-12-27 ロボット制御方法、ロボット制御装置、プログラム、及びロボット Withdrawn JP2014124735A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012284464A JP2014124735A (ja) 2012-12-27 2012-12-27 ロボット制御方法、ロボット制御装置、プログラム、及びロボット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012284464A JP2014124735A (ja) 2012-12-27 2012-12-27 ロボット制御方法、ロボット制御装置、プログラム、及びロボット

Publications (1)

Publication Number Publication Date
JP2014124735A true JP2014124735A (ja) 2014-07-07

Family

ID=51404680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012284464A Withdrawn JP2014124735A (ja) 2012-12-27 2012-12-27 ロボット制御方法、ロボット制御装置、プログラム、及びロボット

Country Status (1)

Country Link
JP (1) JP2014124735A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016032843A (ja) * 2014-07-31 2016-03-10 セイコーエプソン株式会社 双腕ロボット
JP2019202408A (ja) * 2018-05-25 2019-11-28 富士通株式会社 情報処理装置、ロボット作業決定方法及びロボット作業決定プログラム
CN113641132A (zh) * 2021-08-18 2021-11-12 珠海格力电器股份有限公司 机器人定时节能电路及自动化机器
JP2021181139A (ja) * 2020-05-20 2021-11-25 株式会社ルークシステム 新規物体操作ロボットの制御プログラムおよび制御方法、ならびに、新規物体操作システム
WO2022158079A1 (ja) * 2021-01-21 2022-07-28 株式会社日立製作所 制御装置及び自動作業方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6461804A (en) * 1987-09-02 1989-03-08 Fujitsu Ltd Deciding system for direction vector of robot
JPH07200019A (ja) * 1993-12-28 1995-08-04 Ricoh Co Ltd ロボット制御装置
JP2003140744A (ja) * 2001-11-07 2003-05-16 Ntt Docomo Inc 知識データベース装置及びその構築方法、システム制御装置及びその自動措置方法、並びに、プログラム
JP2005038223A (ja) * 2003-07-16 2005-02-10 Nec Corp 障害復旧装置および障害復旧方法ならびにプログラム
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
JP2007241857A (ja) * 2006-03-10 2007-09-20 Fanuc Ltd ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP2008009899A (ja) * 2006-06-30 2008-01-17 Olympus Corp 組立作業用ロボットの自動教示システム及び教示方法
JP2011044046A (ja) * 2009-08-21 2011-03-03 National Institute Of Advanced Industrial Science & Technology 物体認識装置および物体認識方法
JP2011200970A (ja) * 2010-03-25 2011-10-13 Sony Corp 自律移動装置および作業決定方法
JP2012051080A (ja) * 2010-09-02 2012-03-15 Toyota Motor Corp ロボット及びその制御方法
JP2012187641A (ja) * 2011-03-08 2012-10-04 Denso Wave Inc ロボット監視システム、及びロボット監視システムの異常判定方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6461804A (en) * 1987-09-02 1989-03-08 Fujitsu Ltd Deciding system for direction vector of robot
JPH07200019A (ja) * 1993-12-28 1995-08-04 Ricoh Co Ltd ロボット制御装置
JP2003140744A (ja) * 2001-11-07 2003-05-16 Ntt Docomo Inc 知識データベース装置及びその構築方法、システム制御装置及びその自動措置方法、並びに、プログラム
JP2005038223A (ja) * 2003-07-16 2005-02-10 Nec Corp 障害復旧装置および障害復旧方法ならびにプログラム
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
JP2007241857A (ja) * 2006-03-10 2007-09-20 Fanuc Ltd ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP2008009899A (ja) * 2006-06-30 2008-01-17 Olympus Corp 組立作業用ロボットの自動教示システム及び教示方法
JP2011044046A (ja) * 2009-08-21 2011-03-03 National Institute Of Advanced Industrial Science & Technology 物体認識装置および物体認識方法
JP2011200970A (ja) * 2010-03-25 2011-10-13 Sony Corp 自律移動装置および作業決定方法
JP2012051080A (ja) * 2010-09-02 2012-03-15 Toyota Motor Corp ロボット及びその制御方法
JP2012187641A (ja) * 2011-03-08 2012-10-04 Denso Wave Inc ロボット監視システム、及びロボット監視システムの異常判定方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016032843A (ja) * 2014-07-31 2016-03-10 セイコーエプソン株式会社 双腕ロボット
JP2019202408A (ja) * 2018-05-25 2019-11-28 富士通株式会社 情報処理装置、ロボット作業決定方法及びロボット作業決定プログラム
JP7087675B2 (ja) 2018-05-25 2022-06-21 富士通株式会社 情報処理装置、ロボット作業決定方法及びロボット作業決定プログラム
JP2021181139A (ja) * 2020-05-20 2021-11-25 株式会社ルークシステム 新規物体操作ロボットの制御プログラムおよび制御方法、ならびに、新規物体操作システム
WO2022158079A1 (ja) * 2021-01-21 2022-07-28 株式会社日立製作所 制御装置及び自動作業方法
JP7538729B2 (ja) 2021-01-21 2024-08-22 株式会社日立製作所 制御装置及び自動作業方法
EP4283427A4 (en) * 2021-01-21 2025-01-01 Hitachi, Ltd. CONTROL DEVICE AND AUTOMATIC WORKING PROCESS
CN113641132A (zh) * 2021-08-18 2021-11-12 珠海格力电器股份有限公司 机器人定时节能电路及自动化机器

Similar Documents

Publication Publication Date Title
US20120277909A1 (en) Robot control system, robot system and program
JP4153528B2 (ja) ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP6508691B1 (ja) 制御装置、作業ロボット、プログラム、及び、制御方法
JP6717401B1 (ja) プログラミング支援装置、ロボットシステム及びプログラミング支援方法
JP2014124735A (ja) ロボット制御方法、ロボット制御装置、プログラム、及びロボット
TWI802820B (zh) 機器人控制裝置、方法和儲存媒體
CN107065790B (zh) 用于确定虚拟环境中的虚拟机器人的配置的方法和系统
CN104889986B (zh) 机器人控制装置
JP2018134703A (ja) ロボットシミュレータ、ロボットシステム及びシミュレーション方法
JP5929061B2 (ja) ロボット制御装置、ロボットシステム、ロボット
JP5561384B2 (ja) 認識プログラム評価装置および認識プログラム評価方法
JP2019171498A (ja) ロボットプログラム実行装置、ロボットプログラム実行方法、プログラム
WO2019064916A1 (ja) ロボットシミュレータ
JP2019171501A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
JP2019021087A (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
US20240351205A1 (en) Command value generating device, method, and program
JP6560841B1 (ja) 制御装置、作業ロボット、プログラム、及び、制御方法
JP2019081204A (ja) ロボット制御方法、制御端末、およびロボットシステム
JP7078174B2 (ja) ロボット制御装置、方法、及びプログラム
JP2015054378A (ja) 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム
WO2019064917A1 (ja) ロボットシミュレータ
US20220281111A1 (en) Interference check for robot operation
JP7500947B2 (ja) 干渉評価装置、方法、及びプログラム
JP2016221659A (ja) ロボットシステム、ロボットシステムの制御方法、プログラム、記録媒体及び物品の製造方法
JP6079352B2 (ja) ロボット制御方法、ロボット制御装置、ロボット、ロボットシステム、及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151221

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160609

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161025

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20161128