JP2015054378A - 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム - Google Patents
情報処理装置、ロボット、シナリオ情報生成方法及びプログラム Download PDFInfo
- Publication number
- JP2015054378A JP2015054378A JP2013190326A JP2013190326A JP2015054378A JP 2015054378 A JP2015054378 A JP 2015054378A JP 2013190326 A JP2013190326 A JP 2013190326A JP 2013190326 A JP2013190326 A JP 2013190326A JP 2015054378 A JP2015054378 A JP 2015054378A
- Authority
- JP
- Japan
- Prior art keywords
- information
- workpiece
- dimensional position
- robot
- position information
- 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.)
- Pending
Links
Images
Abstract
【課題】 ワークが撮像された撮像画像を用いることで、精度の高い教示を可能にし、且つ当該教示に基づいて妥当性の高いシナリオ情報を生成する情報処理装置、ロボット、シナリオ情報生成方法及びプログラム等を提供すること。【解決手段】 情報処理装置100は、ワーク20が撮像された撮像画像を取得する撮像画像取得部110と、取得した撮像画像からワーク20の3次元位置情報を求める位置情報取得部(3次元位置情報取得部130)と、3次元位置情報に基づいて、ロボットにワーク20を移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部150を含む。【選択図】 図3
Description
本発明は、情報処理装置、ロボット、シナリオ情報生成方法及びプログラム等に関する。
ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。例えば、アーム及びハンドを有するロボットに対して、初期位置にあるワークを把持し、目標位置まで移動させる作業を行わせようとした場合には、種々の情報を教示しなければ、ロボットに当該動作を行わせることはできない。具体的には、ロボットにとってはワークの初期位置や目標位置は自明な情報とは言えないため、それらをユーザーが教示する必要がある。また、初期位置と目標位置との間の移動経路も、そのままでは多数の経路が候補となってしまうため、所望の移動経路を教示する、或いは移動経路を限定するための中間点を教示する等の作業が必要となる。
ただし、アーム等に含まれるモーター(広義にはアクチュエーター)の動作パラメーターを、当該モーターの制御タイミングごとに1つ1つ決定していくような手法では、入力する情報量が非常に多く、且つ入力する動作パラメーターも専門的なユーザーでなくては決定できないため、ユーザー負担が大きい。そのため、従来手法においても、ユーザーにとってわかりやすく負担の小さい形態で、ロボットに対して所望の動作を行わせるための情報を入力する教示手法が知られている。
例えば特許文献1では、指示手段によって教示位置を指し示し、指示方向に存在する床面や壁面や物体平面との交点を求め、求めた交点を教示位置として特定するロボットの教示方法が開示されている。
特許文献1の手法では、指示手段を撮像することで、当該指示手段により示される指示方向を計測し、当該指示方向の延長線上(狭義には指示方向と床面等との交点)を教示位置としている。しかし、撮像画像から指示方向を求める処理も、当該指示方向と何らかの面との交点を求める処理もある程度大きな誤差を生じうるものであり、求められる教示位置の精度が充分とは言えない。
また、特許文献1では、教示位置を求めた場合や、複数の当該教示位置を補間することで移動経路を求めた場合に、当該位置や移動経路から適切なロボット制御用の情報(狭義にはシナリオ情報)を生成する点には触れられていない。例えば、求めた移動経路がワークの移動経路を示すものである場合、ワークを当該移動経路に沿って移動させるためには、用いるアームの選択等、さらなる条件決定が必要であるが、その決定手法等は開示されていない。
本発明の幾つかの態様によれば、ワークが撮像された撮像画像を用いることで、精度の高い教示を可能にし、且つ当該教示に基づいて妥当性の高いシナリオ情報を生成する情報処理装置、ロボット、シナリオ情報生成方法及びプログラム等を提供することができる。
本発明の一態様は、ワークが撮像された撮像画像を取得する撮像画像取得部と、取得した前記撮像画像から前記ワークの3次元位置情報を求める位置情報取得部と、前記3次元位置情報に基づいて、ロボットに前記ワークを移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部と、を含む情報処理装置に関係する。
本発明の一態様では、ワークが撮像された撮像画像からワークの3次元位置情報を求め、求めた3次元位置情報を用いてロボット制御に用いるシナリオ情報の生成を行う。これにより、ワークを所望の位置に実際に配置することでワークの位置を教示することができるため、ユーザーによる教示を直感的でわかりやすいものとすること等が可能になる。また、3次元位置情報を用いたシナリオ情報の生成処理を行うことで、ワークの位置を再現するように、当該ワークを移動させるロボット動作を実現すること等も可能になる。
また、本発明の一態様では、前記撮像画像取得部は、移動する前記ワークを複数回撮像した時系列の前記撮像画像を取得し、前記位置情報取得部は、前記複数回撮像した時系列の前記撮像画像から、前記ワークの前記3次元位置情報を求めてもよい。
これにより、時系列の撮像画像を用いることで、ワークの移動経路を教示すること、或いは当該移動経路に沿ってワークを移動させるロボット動作を実現すること等が可能になる。
また、本発明の一態様では、前記シナリオ情報生成部は、前記ロボットの可動部分の可動範囲情報に基づいて、前記シナリオ情報を生成してもよい。
これにより、3次元位置情報に加えて、ロボットの可動範囲情報を用いてシナリオ情報を生成すること等が可能になる。
また、本発明の一態様では、前記ロボットは、各アームがエンドエフェクターを有する複数のアームを含み、前記シナリオ情報生成部は、前記エンドエフェクターの前記可動範囲情報と、前記3次元位置情報とに基づいて、前記エンドエフェクターが前記3次元位置情報により表される3次元位置に到達できるアームを前記複数のアームから特定し、特定された前記アームに設けられる前記エンドエフェクターを、前記3次元位置情報により表される前記3次元位置に移動させる前記命令を含む前記シナリオ情報を生成してもよい。
これにより、ロボットが複数のアームを含み、各アームがエンドエフェクターを有する場合に、エンドエフェクターが3次元位置に到達できるか否かをエンドエフェクターの可動範囲情報に基づいて判定することで、適切なシナリオ情報を生成すること等が可能になる。
また、本発明の一態様では、前記エンドエフェクターの前記可動範囲情報と前記3次元位置情報とに基づいて、前記複数のアームのうち前記ワークを把持している第1のアームに設けられる第1のエンドエフェクターが前記3次元位置に到達できず、且つ前記第1のアームとは異なる第2のアームに設けられる第2のエンドエフェクターが前記3次元位置に到達できると判定された場合に、前記シナリオ情報生成部は、前記ワークを前記第1のエンドエフェクターから前記第2のエンドエフェクターに持ち替える持ち替え命令と、前記ワークを把持した前記第2のエンドエフェクターを前記3次元位置に移動させる移動命令と、を含む前記シナリオ情報を生成してもよい。
これにより、必要に応じて持ち替え命令を含むシナリオ情報を生成すること等が可能になる。
また、本発明の一態様では、前記シナリオ情報生成部は、前記第2のエンドエフェクターを持ち替え位置まで移動させる移動命令と、前記第2のエンドエフェクターにより前記ワークを把持する把持命令と、前記第1のエンドエフェクターから前記ワークを解放する解放命令とを、前記持ち替え命令として生成してもよい。
これにより、移動命令、把持命令、解放命令を組み合わせることで、持ち替え命令を実現すること等が可能になる。
また、本発明の一態様では、前記位置情報取得部は、前記3次元位置情報を求める処理の処理結果を、ユーザーに確認させるための確認画面情報を生成する確認画面情報生成部を含んでもよい。
これにより、位置情報取得部での処理結果を、確認画面情報を用いてユーザーに提示すること等が可能になる。
また、本発明の一態様では、前記位置情報取得部は、前記確認画面情報の提示に対してユーザーから入力される編集情報を取得し、取得した前記編集情報に基づいて、前記3次元位置情報を求める処理の前記処理結果に対する編集処理を行う編集処理部を含んでもよい。
これにより、確認画面情報の提示に基づくユーザーの編集作業を受け付けることで、より精度の高いシナリオ情報を生成すること等が可能になる。
また、本発明の一態様では、前記シナリオ情報生成部は、前記3次元位置情報をパラメーターとする把持命令、移動命令及び解放命令の少なくとも1つから構成される前記シナリオ情報を生成してもよい。
これにより、3次元位置情報をパラメーターとする命令を適宜組み合わせることで、シナリオ情報を生成すること等が可能になる。
また、本発明の一態様では、前記シナリオ情報生成部は、前記ロボットによる前記ワークの把持状態を表す状態変数に基づいて、前記把持命令、前記移動命令、前記解放命令のうちから、前記3次元位置情報をパラメーターとする前記命令を選択してもよい。
これにより、3次元位置情報をパラメーターとする命令の選択を、状態変数に基づいて行うこと等が可能になる。
また、本発明の一態様では、前記シナリオ情報生成部は、前記ワークの移動経路に沿った各3次元位置情報を処理対象として、前記3次元位置情報をパラメーターとする前記命令の生成処理を行い、前記処理対象となる前記3次元位置情報がないと判定された場合に、前記命令として前記解放命令を選択してもよい。
これにより、3次元位置情報を順次処理することでシナリオ情報を生成すること、及び3次元位置情報がない場合に解放命令を選択すること等が可能になる。
また、本発明の他の態様は、上記の情報処理装置を含むロボットに関係する。
また、本発明の他の態様は、ユーザーがワークを所与の移動経路に沿って移動させた状態を撮像部により撮像し、撮像により得られた撮像画像に基づいて前記ワークの3次元位置情報を求め、求めた3次元位置情報に基づいて、ロボットに前記ワークを前記移動経路に沿って移動させるため複数の命令を含むシナリオ情報を生成する、シナリオ情報生成方法に関係する。
また、本発明の他の態様は、ワークが撮像された撮像画像を取得する撮像画像取得部と、取得した前記撮像画像から前記ワークの3次元位置情報を求める位置情報取得部と、前記3次元位置情報に基づいて、ロボットに前記ワークを移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部として、コンピューターを機能させるプログラムに関係する。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.本実施形態の手法
まず本実施形態の手法について説明する。ロボットに所望の動作を行わせるためには、当該動作に必要な情報をロボットに与える必要がある。その際、ロボットのアーム等に設けられるモーター(広義にはアクチュエーター)の動作量を細かく規定する、或いはロボットの各関節の関節角の値を細かく規定するといった手法では、入力する情報量が非常に多く、且つ入力する動作パラメーターも専門的なユーザーでなくては決定できないため、ユーザー負担が大きい。そのため、従来手法においても、ユーザーにとってわかりやすく負担の小さい形態で、ロボットに対して所望の動作を行わせるための情報を入力する教示手法が知られている。
まず本実施形態の手法について説明する。ロボットに所望の動作を行わせるためには、当該動作に必要な情報をロボットに与える必要がある。その際、ロボットのアーム等に設けられるモーター(広義にはアクチュエーター)の動作量を細かく規定する、或いはロボットの各関節の関節角の値を細かく規定するといった手法では、入力する情報量が非常に多く、且つ入力する動作パラメーターも専門的なユーザーでなくては決定できないため、ユーザー負担が大きい。そのため、従来手法においても、ユーザーにとってわかりやすく負担の小さい形態で、ロボットに対して所望の動作を行わせるための情報を入力する教示手法が知られている。
ロボットに対する教示においては、ユーザーがロボットのアーム等に力を加えることで、当該アーム等に行わせたい動作をユーザーの手で実現する手法や、ティーチペンダント等の操作部からの操作により、ロボットに行わせたい動作を実現する手法が広く知られている。この場合には、教示時の動作(狭義には関節角の値等)を記憶しておき、実際のロボット動作においては記憶しておいた動作を再現することで、所望の動作をロボットに実行させる。
しかしこれらの手法では、教示時にもロボットの実機を用意する必要がある、或いは教示を行うユーザーの技量によって教示精度が大きく異なる等の課題がある。よって近年では、ユーザーにとってより簡便でわかりやすい教示手法が知られるようになってきた。
例えば特許文献1では、指示手段によって教示位置を指し示し、指示方向に存在する床面や壁面や物体平面との交点を求め、求めた交点を教示位置として特定するロボットの教示方法が開示されている。特許文献1には、教示手段を用いるユーザーと教示位置が離れている場合等でも教示が可能になる等の記載がある。
しかし、特許文献1では指示手段を撮像した撮像画像に基づいて、その指示方向を3次元的に求める必要がある。さらにその指示方向と何らかの面(例えば壁面)との交点を求めなくては教示位置を決定できない。画像情報から3次元的な方向を精度よく求めることは難しく、さらに指示手段と壁面等との距離が大きい場合には、指示方向における誤差が小さかったとしても、求められる教示位置の誤差は大きいものとなってしまう。つまり、特許文献1の手法では、精度の高い位置情報を教示することが困難である。
また特許文献1では、求めた教示位置が、ロボット制御においてどのように用いられるかについて触れられていない。例えば、求められた教示位置を通過するような移動経路を設定できたとして、当該移動経路がロボット本体の移動経路なのか、ロボットに含まれる所与のハンドの移動経路なのか、ロボットにより把持されるワークの移動経路なのかは特許文献1の手法では考慮していない。そのため、教示を行うユーザーにとって、自身の教示動作により、ロボットがどのような動作を実行するかを直感的に把握することが困難な場合も考えられ、必ずしもわかりやすい教示手法とは言えない。
さらに、教示した位置により求められる移動経路がワークの移動経路であると仮定した場合には、さらなる問題も発生する。第1に、ワークの移動経路が決定されたとしても、当該ワークの移動を実現するロボットの動作は種々考えられるため、何らかの条件をさらに決定しなくてはならない。例えば、ロボットが複数のアームを有する多腕ロボットである場合、ワークをどの腕で把持するかを決定しなくては適切なロボット制御はできない。また、ロボットによっては、第1のアームであればワークを上記移動経路で移動できるが、第2のアームではワークを上記移動経路で移動することができない、といった場合も考えられる。つまり、位置の教示によりワークの移動経路を求めるだけでは足らず、当該ワークの移動を実現するロボット動作を規定する必要があるところ、特許文献1等の従来手法ではその点は考慮されていない。
第2に、特許文献1をワークの移動経路の教示に利用したと仮定した場合、当該教示はワークの大きさ等を考慮したものとなっていない。特許文献1等の手法は教示位置を点として決定する。それに対してワークは必ず大きさを有した物体である。そのため、教示に基づいて移動経路が求められた場合、例えば当該移動経路上の点とワーク中の所与の基準点とを対応づける等の処理を行わなければ、当該移動経路に沿ったワークの移動を規定することができない。また、何らかの基準点を決定したとしても、環境に配置された物体(他のワークやロボット、壁や床等)と、ワークとの干渉は考慮されていない。点の集合としての移動経路そのものは、他のワーク等と干渉していなかったとしても、当該移動経路と基準点が一致するように所与のワークを移動させた場合に、当該ワークが他のワークと干渉(衝突)するおそれがある。
以上のことからわかるように、特許文献1等の従来手法では、ワークの移動経路を教示する手法として用いることができるということはそもそも明示されていないし、仮に教示により求められた移動経路をワークの移動経路であると仮定した場合にも、それにより発生する課題に対応する手法が開示されていない。
そこで本出願人は、移動するワークが撮像された時系列の撮像画像に基づいて、当該ワークの移動経路上での3次元位置情報を求めるとともに、求めた3次元位置情報に基づいて、上記移動経路に沿ってワークをロボットにより移動させるためのシナリオ情報を生成する手法を提案する。
具体的には、教示時には図1に示したように、ユーザーに対して所望のワークAを、所望の移動経路で移動させる作業を行わせる。図1の例であれば、ユーザーはX1に置かれていたワークAを把持し、障害物を避けながらX2,X3を経由してX4まで移動する、という作業を行っている。本実施形態ではこのワークAの移動を、第1の撮像部30−1と第2の撮像部30−2を含むステレオカメラ30で撮像してワークAの3次元位置情報を取得する。3次元位置情報の取得処理の詳細については後述する。
このような教示形態とすることで、ユーザーは所望のワークの移動経路を当該ワーク自体を用いて直感的に、わかりやすく指示することが可能になる。また、ワークの実物を移動させることになるため、教示された教示位置(及びそこから求められる移動経路)に沿ってワークを移動させた場合に、当該ワークが障害物等に衝突する可能性は低く、安全なワークの移動が可能なロボット制御を実現できる。
また、本実施形態では、求められた3次元位置情報に基づいてシナリオ情報の生成も行う。例えば、ロボットの可動範囲情報に基づいて、ワークの把持に用いるアームを決定する処理等を行ってもよい。このようにすれば、図1の作業をロボットを用いて再現しようとした場合に、図2に示したように、ワークの把持に用いるハンドを適切に決定すること等ができ、教示内容に従った適切なロボット制御が可能になる。図2の例であれば、X1はHand0が近いからワークAをHand0で把持する、X3はHand0では届かないのでワークAをHand0からHand1に持ち替える等の制御を実現している。シナリオ情報の生成処理についての詳細は後述する。
以下、本実施形態の情報処理装置のシステム構成例を説明し、その後、3次元位置情報の取得処理、及びシナリオ情報の生成処理について詳しく説明する。最後に本実施形態の具体例について述べる。
2.システム構成例
図3に本実施形態に係る情報処理装置100を含むロボット(ロボットシステム)のシステム構成例を示す。図3に示したように、ロボットは、情報処理装置100と、ロボット制御装置200と、ロボット本体300を含む。ただし、ロボットや情報処理装置100は、図3の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
図3に本実施形態に係る情報処理装置100を含むロボット(ロボットシステム)のシステム構成例を示す。図3に示したように、ロボットは、情報処理装置100と、ロボット制御装置200と、ロボット本体300を含む。ただし、ロボットや情報処理装置100は、図3の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
本実施形態では、ユーザー10により行われるワーク20の移動を、ステレオカメラ30により撮像する。ステレオカメラ30は、図3に示したように第1の撮像部30−1と、第2の撮像部30−2を含み、第1の撮像部30−1からの撮像画像及び第2の撮像部30−2からの撮像画像を、ステレオ画像として出力する。情報処理装置100は、ステレオカメラ30からの出力画像を取得して、ユーザーにより教示されたワーク20の移動経路に従って、ワーク20をロボットにより移動させるためのシナリオ情報の生成を行う。なお、図3の例では情報処理装置100において、シナリオ情報の実行処理も行うものとしているが、これに限定されない。
情報処理装置100は、図3に示したように、撮像画像取得部110と、3次元位置情報取得部130(位置情報取得部)と、シナリオ情報生成部150と、シナリオプレーヤー(シナリオ実行部)170を含む。
撮像画像取得部110は、ステレオカメラ30からの撮像画像を取得する。本実施形態では、ステレオカメラ30は上述したように、右画像(例えば第1の撮像部30−1からの撮像画像)と左画像(例えば第2の撮像部30−2からの撮像画像)から構成されるステレオ画像を出力する。よって撮像画像取得部110は、1タイミングにつき1つのステレオ画像を、ユーザー10によるワーク20の移動に併せて時系列に取得することになる。
3次元位置情報取得部130は、撮像画像取得部110が取得した撮像画像に基づいて、ユーザー10によるワーク20の移動経路に沿って、ワーク20の3次元位置情報を求める。3次元位置情報取得部130における処理の詳細は後述する。
なお、3次元位置情報取得部130は、図3に示したように確認画面情報生成部131と、編集処理部133を含んでもよい。確認画面情報生成部131は、求めた3次元位置情報をユーザー10に確認させるための確認画面情報を生成する。編集処理部133は、確認画面情報を閲覧したユーザー10による入力を受け付け、3次元位置情報の編集処理を行う。ここでユーザー10による入力とは、確認画面情報により提示された3次元位置情報に対する、ユーザー10の編集指示に対応する編集情報である。確認画面情報生成部131、編集処理部133における処理の詳細についても後述する。
シナリオ情報生成部150は、3次元位置情報取得部130で求められたワーク20の3次元位置情報に基づいて、ロボットに対する命令から構成されるシナリオ情報を生成する。ここでの命令とは、具体的にはロボットに対して、ワーク20をユーザー10により行われた移動と同様の移動経路で移動させるための命令である。シナリオ情報生成部150における処理の詳細は後述する。
また、シナリオ情報生成部150は、データベース50に接続される。データベース50は、シナリオ情報51や、ワークデータ53や、ロボットデータ55等を記憶する。具体的には、シナリオ情報生成部150は、ロボットデータ55としてロボットの可動範囲情報等を読み出すことで、シナリオ情報の生成を行ってもよい。そして作成されたシナリオ情報を、シナリオ情報51としてデータベース50に書き込む。
シナリオプレーヤー170は、シナリオ情報生成部150で生成されたシナリオ情報の実行処理を行う。生成されるシナリオ情報は例えば図14の一番右の列に示した情報であり、ロボット制御を実際に行うには抽象的な情報である。よってシナリオプレーヤー170では、シナリオ情報に含まれる各命令を順次実行するだけではなく、必要な補間処理等を行って、ロボット制御を可能にする具体的な制御情報の生成等も行ってもよい。例えば、図14のシナリオ情報であれば、各3次元位置の間の移動経路は特に規定されていないため、この間を補間する処理等を行ってもよい。
ロボット制御装置200は、シナリオプレーヤー170によりシナリオ情報の解釈、実行結果に基づいて、実際にロボット本体300のハードウェア制御を行う。具体的には、ロボット本体300に含まれる関節を駆動する各モーターに対して、モーターの動作パラメーター(回転量やトルク等)を指示する制御を行ってもよい。
ロボット本体300は、ロボット制御装置200による制御に従って動作し、ワーク20をユーザー10による移動と同様の移動経路により移動させる。
ロボット本体300は、例えば図4に示したように双腕ロボットであってもよい。図4の例では、ロボット本体300は、第1のアーム310と、第2のアーム320を含む。そして各アームは、関節311,313と、関節の間に設けられるフレーム315,317から構成される。また、アーム310の先端にはエンドエフェクター319が設けられる。ここでのエンドエフェクター319とは、ロボットが作業対象に直接働きかける機構を持つ部分であり、狭義にはハンドであってもよい。
なお、図4では2本のアームを有する双腕ロボットの例を示したが、本実施形態のロボットはこれに限定されない。例えばアームは図5に示すロボットのように1本であってもよい。或いは不図示であるが本実施形態のロボットに含まれるアームは、3本以上であってもよい。また、各アームに含まれる関節やフレームの数も種々の変形実施が可能である。例えば図4のようにシンプルな構成のアームを用いてもよいし、人間の腕に近いとされている6自由度、7自由度のアームを用いてもよい。
また、本実施形態のロボットは、図4に示したようにベースユニット部400を含んでもよい。ベースユニット部400は、ロボット本体300の下部に設けられ、ロボット本体300を支持する。図4の例では、ベースユニット部400には車輪等が設けられ、ロボット全体が移動可能な構成となっている。ただし、ベースユニット部400が車輪等を持たず、床面等に固定される構成であってもよい。そして、本実施形態に係る情報処理装置100は、ベースユニット部400に格納されてもよい。この場合、ロボット(ロボットシステム)において、情報処理装置100とロボット本体300とが一体として構成されることになる。
ただし、図5に示したように、ロボット本体300と、情報処理装置100とが別体として構成されてもよい。なお、図5ではPCにより情報処理装置100を実現する例を示しているが、これに限定されるものではない。
図6に本実施形態の全体処理を説明するフローチャートを示す。この処理が開始されると、まず移動するワークのステレオカメラ30による撮像が行われる(S101)。S101での撮像は、例えば動画像と同程度の高頻度(30fps等)で行われてもよいし、3次元位置情報の算出に対応するタイミングだけで行われてもよい。図1の例であれば、X1とX2の間でも高頻度で撮像を行ってもよいし、或いはX1,X2では撮像を行うがその間では撮像を行わないものとしてもよい。
そしてS101での撮像により取得された撮像画像に基づいて、3次元位置情報を求め(S102)、求めた3次元位置情報に基づいてシナリオ情報を生成する(S103)。S102及びS103の処理の詳細については後述する。
そしてS103でのシナリオ情報の生成が成功したかの判定を行い(S104)、成功した場合には、シナリオを実行する(S105)。一方、シナリオ情報の生成に失敗した場合には、シナリオを実行せずに処理を終了する。
3.3次元位置情報の取得
次にワーク20の3次元位置情報の取得処理について説明する。この処理は図6におけるS102の処理に相当する。本実施形態では、図1に示したようにユーザー10によるワーク20の移動を、ステレオカメラ30により撮像する。なお、図1ではワーク20として物体A(ワークA)を用いるものとしている。
次にワーク20の3次元位置情報の取得処理について説明する。この処理は図6におけるS102の処理に相当する。本実施形態では、図1に示したようにユーザー10によるワーク20の移動を、ステレオカメラ30により撮像する。なお、図1ではワーク20として物体A(ワークA)を用いるものとしている。
撮像画像取得部110における撮像画像の取得タイミングでは、1タイミング当たり1つのステレオ画像、すなわち右画像1枚と左画像1枚が取得される。ステレオ画像からは公知のステレオマッチング処理により、奥行き方向(ステレオカメラ30の光軸方向に沿った方向)での距離を求めることができる。つまり、右画像又は左画像におけるワークAの位置、及びステレオマッチング処理により求められる奥行き方向の距離の両方を用いることで、ワークAの空間的な位置を表す3次元位置情報を取得することができる。
具体的には、右画像からワークAが撮像されている領域を、パターンマッチング処理等で抽出する。同様に左画像からワークAが撮像されている領域を、パターンマッチング処理等で抽出する。右画像中のワークAの撮像領域、及び左画像中のワークAの撮像領域の少なくとも一方を用いることで、撮像部の光軸方向に交差する面におけるワークAの位置を決定できる。これは撮像部から見たときの上下左右方向でのワークAの位置を求める処理と言うこともできる。
また、右画像中のワークAの撮像領域の位置と、左画像中のワークAの撮像領域の位置の差異から視差情報を求めることができ、当該視差情報は奥行き方向での距離に変換可能である。この視差情報を求める処理及び視差情報から距離情報を求める処理は、ステレオマッチング処理として公知であるため詳細な説明は省略する。
以上のことから、1つのステレオ画像により、ワーク20の3次元位置情報を1つ求めることが可能になる。よって、撮像画像取得部110により取得される時系列の撮像画像に対して、上記処理を行うことでワーク20の移動経路に沿った複数の3次元位置情報を求めることができる。
求められる3次元位置情報の例を図12(A)に示す。図12(B)に示したように、ワーク20の基準位置を3次元座標(x,y,z)により表し、且つ当該ワーク20の基準姿勢に対する回転を(u,v,w)とすれば、1つの3次元位置情報は(x,y,z,u,v,w)により表現できる。なお、基準姿勢に対する回転(u,v,w)は、xyzの各軸まわりの回転であってもよいし、他の軸まわりの回転であってもよい。図12(A)の例であれば、物体Aをワーク20とした場合に、X1〜X4の4つの3次元位置情報が求められている。
ただし、上記手法により求めた3次元位置情報の精度が充分でない場合も考えられる。例えば、図1に示したように、ユーザー10がワークAを移動させようとすると、当該ワークAを手で把持する等の動作が必要となる。すると、ユーザー10の指等により遮蔽されることで、ワークAの一部が撮像画像に撮像されない場合も生じうる。右画像及び左画像からワークが撮像された領域を抽出する際には、通常全く遮蔽されていないワークのモデル情報をパターンマッチング等に用いる。そのため、遮蔽の度合いによっては右画像、左画像からワークが撮像された領域を抽出する処理の精度が低くなるおそれがあり、結果として求められる3次元位置情報の精度も低下するおそれがある。
そこで本実施形態では、3次元位置情報取得部130での処理結果を一度ユーザー10に対して提示し、ユーザー10による編集(訂正)を行ってもよい。例えば、図12(A)に示したように求められた3次元位置情報を示す確認画面情報を生成し、当該確認画面情報を表示部等に表示してもよい。そしてユーザー10は、表示された確認画面情報を閲覧し、適切でないと判断した3次元位置情報に対して編集を行ってもよい。例えば、図12(A)に示したように(x,y,z,u,v,w)の値を適宜書き換えてもよい。編集処理部133は、ユーザー10からの入力を編集情報として受け取り、当該編集情報に従って3次元位置情報の編集処理を行う。
しかし、図12(A)に示したような(x,y,z,u,v,w)で表される3次元位置情報の編集作業は、専門的な知識を有するユーザーでなければ実行が困難である。上述の例であれば、xyzの各軸はどのように設定されているか、xyzで表されるワーク20の基準位置とはワーク中のどの位置であるか、ワーク20の基準姿勢がどのような姿勢であるか、といった情報を知らなければ、3次元位置情報により表される3次元位置を正確に把握することができず、編集作業を適切に行うこともできない。
よって、確認画面情報生成部131で生成される確認画面情報は、異なる情報であってもよい。例えば、上述したように右画像及び左画像に対するパターンマッチング処理の精度により3次元位置情報の精度低下が問題となるのであれば、当該パターンマッチング処理の結果に対してユーザー10の編集を可能としてもよい。
この場合の確認画面情報としては、例えば図13に示したように、実際に取得された右画像及び左画像を表示するとともに、パターンマッチング処理の結果を各画像に重畳して表示する情報であってもよい。図13のA1で示した点線が左画像におけるパターンマッチング処理の結果を表し、A2で示した点線が右画像におけるパターンマッチング処理の結果を表す。図13の例では、指による遮蔽等の影響により、パターンマッチング処理が正確に行えていない。
図13に示したように、パターンマッチング処理の結果と実際の撮像画像とを併せて表示すれば、パターンマッチング処理が正確に行えていないことを、ユーザー10は容易に把握できる。よってユーザー10は、例えばA1やA2等の点線を移動(必要に応じて回転や拡大、縮小を含む)して、実際に撮像されたワーク20と重なるように操作すればよい。編集処理部133は、ユーザー10による点線の移動操作を編集情報として取得し、移動後の点線により表される範囲を、各画像に対するパターンマッチング処理の結果として出力すればよい。その後の視差情報を求める処理等は同様である。
パターンマッチング処理以外の部分での誤差が小さいのであれば、図13に示した編集作業により3次元位置情報を精度よく求めることが可能になる。この場合、図12(A)に示した3次元位置情報を直接編集する場合に比べて、ユーザー10にとって容易な形式で編集を行うことが可能になる。
以上で説明した3次元位置情報の取得処理の流れを、図7のフローチャートに示す。この処理が開始されると、まず変数Jを1で初期化する(S201)。この変数Jは、求められる3次元位置情報の数に対応する変数である。
次に図6のS101で取得したステレオ画像の再生処理を行う(S202)。ここで再生と表記したのは、ステレオ画像を動画像と同程度に高頻度で取得していることを想定したものである。ステレオ画像の再生が終了したかの判定を行い(S203)、終了している場合には3次元位置情報の取得処理も終了する。
未処理のステレオ画像が残っている場合には、移動対象としているワーク(ここでは物体A)の3次元位置情報の出力指示があるか否かの判定を行う(S204)。ここでの出力指示とは、そのタイミングでの撮像画像を対象として3次元位置情報を求めるか否かを決定する指示のことであり、例えばユーザー10により入力されるものであってもよい。
図1の例であれば、ステレオカメラ30による撮像が高頻度で行われていれば、X1からX4までの移動経路上では、X2,X3以外の箇所でもステレオ画像は取得されている。しかし、全てのステレオ画像を対象として3次元位置情報を求めたのでは、処理負荷が重く、且つ似通った位置の3次元位置情報が多く求められるため、各情報の重要性が低くなる。
それに対して、障害物Bと物体Aとの衝突回避という観点から図1を見ると、X1からX4まで直線的に移動させたのでは衝突が起こるため、一旦X2やX3の方向に回避するものとしていることがわかる。この際、回避経路も細かく指定する必要はなく、代表的な点を指定すれば足りる。図1の例であれば、X1の後、X2,X3を経由してX4に到達する移動経路とすれば、各点の間を直線的に補間したとしても、物体Aは障害物Bに衝突することなく移動することが期待できる。つまり、ユーザー10が教示時に指定した移動経路については、当該移動経路上の全ての点が等価というわけではなく、重要度の高い代表点(中間点)を規定することが可能である。そしてロボットによるワーク20の移動時にも、教示時の移動経路を100%トレースする必要はなく、そのうちの代表点を少なくとも通過することが期待される制御を行えばよい。
以上の点を鑑み、本実施形態では各タイミングのステレオ画像に対して、当該ステレオ画像から3次元位置情報を求める必要があるか否か(当該ステレオ画像が移動経路上の中間点に対応するか)を、S204において判定する。この判定は、上述したようにユーザー10が行ってもよいし、情報処理装置100側で行ってもよい。
3次元位置情報の出力指示がない場合、S204でNoとなり、3次元位置情報を求めることなく、S202に戻って次のステレオ画像を対象とした処理を行う。3次元位置情報の出力指示がある場合には、S204でYesとなり、3次元位置情報を求め、データベース50に記憶する(S205)。S205で求められた3次元位置情報は、S201で設定した変数Jを用いて、XJと表記する。
その後、上述したように、必要に応じて確認画面情報生成部131、編集処理部133による確認画面の提示処理、編集処理等を行ってもよい(S206)。S205,S206により1つの3次元位置情報の取得処理が終了するため、変数Jをインクリメントし(S207)、S202に戻って次のステレオ画像を対象とした処理を行う。
4.シナリオ情報の生成
次に求められた3次元位置情報に基づくシナリオ情報の生成処理について説明する。この処理は図6におけるS103の処理に相当する。なお、以下の説明では図12(A)に示したX1〜X4の3次元位置情報が求められたものとし、ロボットとしては図4に示したように双腕ロボットを対象とした処理について説明するが、これに限定されないことは言うまでもない。
次に求められた3次元位置情報に基づくシナリオ情報の生成処理について説明する。この処理は図6におけるS103の処理に相当する。なお、以下の説明では図12(A)に示したX1〜X4の3次元位置情報が求められたものとし、ロボットとしては図4に示したように双腕ロボットを対象とした処理について説明するが、これに限定されないことは言うまでもない。
4.1 具体的な命令セット
本実施形態では、求められた複数の3次元位置情報のそれぞれについて、当該3次元位置情報をパラメーターとする命令を決定することで、シナリオ情報を生成する。本実施形態では、図1及び図2に示したように、ワークの移動経路を教示し、ロボットは当該移動経路に従ってワークを移動させる。つまりロボットによる作業がワークの移動となるため、ロボット制御において求められるシナリオ情報も,幾つかの典型的な命令を組み合わせることで実現できる。
本実施形態では、求められた複数の3次元位置情報のそれぞれについて、当該3次元位置情報をパラメーターとする命令を決定することで、シナリオ情報を生成する。本実施形態では、図1及び図2に示したように、ワークの移動経路を教示し、ロボットは当該移動経路に従ってワークを移動させる。つまりロボットによる作業がワークの移動となるため、ロボット制御において求められるシナリオ情報も,幾つかの典型的な命令を組み合わせることで実現できる。
具体的には、本実施形態では3次元位置情報をパラメーターとした把持命令、移動命令、解放命令から構成されるシナリオ情報を生成する。ここで3次元位置情報XJをパラメーターとする把持命令とは、XJの位置にあるワークをいずれかのハンドにより把持することを指示する命令である。また、XJをパラメーターとする移動命令とは、ロボットのいずれかのハンドで既に把持しているワークを、いずれかのハンドを用いてXJまで移動させることを指示する命令である。また、XJをパラメーターとする解放命令とは、ロボットのいずれかのハンドで既に把持しているワークを、XJにおいて解放する(離す)ことを指示する命令である。
例えば図12(A)に示したように、X1〜X4の4つの3次元位置情報が入力された場合には、X1をパラメーターとして把持命令、移動命令、解放命令のいずれかの命令を決定する処理を行い、X2〜X4についても同様にいずれかの命令を決定する処理を行って、複数の命令から構成されるシナリオ情報を生成することになる。なお、図8のフローチャート等を用いて後述するように、本実施形態では最後の3次元位置情報(例えばX4)については把持命令と移動命令のいずれかの命令に加えて解放命令も生成される。よって、X1〜X4をパラメーターとする命令は全部で5つとなるが、3次元位置情報の数と、シナリオ情報を構成する命令数との関係は種々の変形実施が可能である。
ただし、以上に示したものはそれぞれ広義の把持命令、広義の移動命令、広義の解放命令であり、それよりも細かい単位でのロボット制御を指示する狭義の把持命令、狭義の移動命令、狭義の解放命令を定義してもよい。
例えば、広義の把持命令は上述したように、XJの位置にあるワークをいずれかのハンドにより把持することを指示する命令である。しかしXJにおいてワークを把持するハンドが、はじめからXJにより表される位置にあるとは限らず、むしろXJ以外の位置にあることが一般的である。つまり、広義の把持命令として、Hand0でXJの位置にあるワークAを把持することを指示する場合には、まずHand0をXJまで移動させる移動命令”Hand0 Move to XJ”を行い、その後XJにおいてHand0によりワークAを把持する把持命令”Hand0 Grasp A”を組み合わせて実行する必要がある。
”Hand0 Move to XJ”により表される移動命令は、広義の命令を構成する1つの小命令である点、及びワークの存在を意識しなくてよい点を考慮すれば、上述の広義の移動命令とは異なるものであるため、本実施形態では「狭義の移動命令」と表記する。また、”Hand0 Grasp A”により表される把持命令も、広義の命令を構成する1つの小命令である点、及びハンドは現在位置で把持を行えばよく、必ずしも3次元位置情報を意識する必要がない点を考慮すれば、上述の広義の把持命令とは異なるものであるため、本実施形態では「狭義の把持命令」と表記する。
同様に、広義の移動命令についても複数の狭義の命令から構成されることが考えられる。例えば、3次元位置情報XJにおいてHand0でワークAを把持している状態から、当該ワークAを他の3次元位置情報XJ+1により表される位置へ移動させる広義の移動命令を実行する場合を考える。その際、ロボットの構成によってはHand0はXJ+1には到達できないが、他のハンドHand1であればXJ+1に到達できるという場合があり得る。ここでユーザー10による教示はXJ,XJ+1を含む移動経路でワークAを移動させることを指示するものであり、その際に用いるハンドまで限定していない。つまり上記のような状況であれば、Hand0で持っているワークAをHand1に持ち替え、Hand1によりXJ+1まで移動させるシナリオ情報を作成するとよい。
この場合、Hand1は一般的にはXJ以外の位置にあるため、まずHand1をXJまで移動させる移動命令”Hand1 Move to XJ”を行う。この移動命令は上述したように狭義の移動命令である。そして、位置XJにおいてワークAの持ち替え作業を行う。具体的には、XJにおいてHand1によりワークAを把持する把持命令”Hand1 Grasp A”を行い、その後XJにおいてHand0によりワークAを解放する解放命令”Hand0 Release A”を行う。これにより、XJにおいてHand1だけでワークAを把持した状態となったため、Hand1をXJ+1に移動させる移動命令”Hand1 Move to XJ+1”を実行すれば、広義の移動命令を実行できる。なお、ここでの”Hand1 Move to XJ+1”という移動命令は、実際にはワークAの移動を伴っているが、命令上ワークAの存在を意識しなくてよいものであるため狭義の移動命令である。
なお、XJにおいてHand0でワークAを把持している状態から、当該ワークAを他の3次元位置情報XJ+1により表される位置へ移動させる広義の移動命令において、Hand0がXJ+1に到達できる場合であれば、”Hand0 Move to XJ+1”によりこの命令は実現可能である。つまり広義の命令は必ずしも複数の狭義の命令から構成される必要はなく、場合によっては1つの狭義の命令により広義の命令が構成されることもあり得る。
また、上述のワークの持ち替えの例では、XJにおいてワークを持ち替えていたがこれに限定されるものではない。例えば、Hand1がXJには到達できない場合もあり得る。その場合には、Hand0もHand1も到達できる位置XKを設定し、当該位置XKにおいて持ち替え作業を行えばよい。この場合の広義の移動命令は、例えば”Hand0 Move to XK” ”Hand1 Move to XK” ”Hand1 Grasp A” ”Hand0 Release A” ”Hand1 Move to XJ+1”という狭義の命令を順次実行することで実現してもよい。なお、ワークAの移動経路がユーザー10により教示された移動経路から外れないことが望ましいため、XKも教示された移動経路上の位置を設定するとよい。
また、以上の持ち替え作業においては、ワークAを作業台等におろすことがないものとしていたため、持ち替え位置においてまずHand1で把持してからHand0で解放していた。しかし作業台等におろすことが許容されるのであれば、狭義の把持命令と狭義の解放命令の順序を逆にしてもよい。その他、広義の命令を狭義の命令のどのような組み合わせにより実現するかは種々の変形実施が可能である。
4.2 シナリオ情報生成処理の流れ
図8〜図11のフローチャートを用いて本実施形態のシナリオ情報生成処理の流れを説明する。ここでのシナリオ情報生成処理は、図6のS103の処理に相当する。なお、図8〜図11では双腕ロボットを想定してハンドがHand0とHand1の2つとしているが、3つ以上のハンドを持つ場合にも拡張可能である。
図8〜図11のフローチャートを用いて本実施形態のシナリオ情報生成処理の流れを説明する。ここでのシナリオ情報生成処理は、図6のS103の処理に相当する。なお、図8〜図11では双腕ロボットを想定してハンドがHand0とHand1の2つとしているが、3つ以上のハンドを持つ場合にも拡張可能である。
図8にシナリオ情報生成処理の全体処理フローを示す。この処理が開始されると、まず変数Jを1で初期化するとともに、状態変数を空で初期化する(S301)。ここでのJは図7のS201のJと同様のものであり、S205でデータベース50に記憶された3次元位置情報を時系列順に読み出してくる際に使用する。また、状態変数とはロボットのハンドによるワークの把持状態を表すものであり、ロボットのいずれのハンドでもワークを把持していない場合には、状態変数=空となる。また、Handi(ここではi=0,1)によりワークが把持されている場合には、状態変数=Handiとなる。なお、図8ではワークを把持していない状態からロボット制御が開始されるものとしているため、状態変数の初期値は空としているが、いずれかのハンドでワークが把持された状態からロボット制御を開始してもよく、その場合、状態変数はワークを把持しているハンドを表す値で初期化される。
次にデータベース50を参照して3次元位置情報XJが記憶されているかを判定する(S302)。例えば最初のS302の処理においてはX1が記憶されているかの判定となる。S302でNoの場合とは、例えば図12(A)のようにX1〜X4が記憶されている際にX5を処理対象とした場合に対応し、記憶された3次元位置情報に対する処理を終了したことになる。よって、記憶された最後の3次元位置情報であるXJ−1をパラメーターとする解放命令を生成し(S306)、シナリオ情報生成処理を終了する。
XJがデータベース50に記憶されている場合には、S302でYesとなり、当該3次元位置情報XJをパラメーターとする命令生成処理を行う(S303)。S303の処理の詳細は図9〜図11を用いて後述する。
S303の処理後、命令生成が成功したか否かの判定を行う(S304)。命令生成が失敗した場合には、シナリオ情報の生成にも失敗したものとしてシナリオ情報生成処理を終了する。この場合、図6のS104の判定においてNoとなるため、シナリオ情報は実行されずに本実施形態の処理が終了する。S304でNoとなるのは、後述する図10のS504や図11のS607でNoと判定されるケースである。具体的には、ロボットのいずれのハンドでもXJに到達できず、教示により求められた3次元位置情報を通過する移動経路でのワークの移動を、対象としているロボットでは実現できない場合に対応する。
命令生成に成功した場合には、S304でYesとなり、Jをインクリメントして(S305)、S302に戻ってデータベース50に記憶された次の3次元位置情報を対象とした処理を行う。
次に図9を用いてS303におけるXJをパラメーターとする命令生成処理の流れを説明する。この処理が開始されると、まず状態変数が空であるか否かの判定を行う(S401)。S401でYesの場合には、ワークがいずれのハンドでも把持されていない状態となる。本実施形態ではワークの移動を行うことがロボット制御の目的であり、当該ワークの移動はハンドにより行われることを想定している以上、この場合にはいずれかのハンドでワークを把持することが必要となる。よって、S401でYesの場合には、XJをパラメーターとする把持命令を生成する(S402)。
S402の把持命令生成処理の流れを図10に示す。把持命令の生成処理においては、まずHand0がXJに到達できるか否かの判定を行う(S501)。ここでの判定は、データベース50に記憶されたロボットデータ55のうち、ハンドの可動範囲を表す可動範囲情報を併せて読み出すことで行えばよい。S501でYesの場合、ワークAをHand0で把持すればよい。よって上述したように、Hand0をXJまで移動させる狭義の移動命令”Hand0 Move to XJ”を生成し、その後XJにおいてHand0によりワークAを把持する狭義の把持命令”Hand0 Grasp A”を生成する(S502)。また、S502で生成された命令が実行される場合には、ワークはHand0により把持されることになるため、状態変数をHand0に更新し(S503)、把持命令の生成処理を終了する。
一方、S501でNoの場合にはHand1がXJに到達できるか否かの判定を行う(S504)。S504でYesの場合、ワークAをHand1で把持すればよいため、S502と同様に”Hand1 Move to XJ”及び”Hand1 Grasp A”から広義の把持命令を構成すればよい(S505)。そしてS503と同様に、状態変数をHand1に更新し(S506)、把持命令の生成処理を終了する。
また、S504でもNoの場合、対象としているロボットではいずれのハンドもXJに到達できず、当該ロボットを用いてXJを含む移動経路でワークAを移動することは不可能となる。この場合、命令生成処理が失敗となり、さらにシナリオ情報生成処理も失敗となるため、シナリオが実行されることなく処理が終了する(図6のS104でNoとなる)。
また、S401でNoの場合には、いずれかのハンドでワークAを把持していることになる。よってXJをパラメーターとする移動命令を生成する(S403)。S403の移動命令生成処理の流れを図11に示す。移動命令の生成処理においては、まずロボットのハンドのうち、いずれのハンドによりワークAが把持されているかの判定を行う。具体的には、状態変数がHand0かの判定を行う(S601)。S601でYesの場合には、Hand0によりワークが把持されていることになるため、把持中のハンドを表す変数HANDcurをHand0とし、ワークを把持していないハンドを表す変数HANDotherをHand1とする。また、S601でNoの場合、ここではハンドは2つであるものとしているため、Hand1によりワークが把持されていることになる。よってHANDcurをHand1とし、HANDotherをHand0となる。なお、ハンドが3つ以上の場合でも同様であり、状態変数に基づいてワーク把持中のハンドと空のハンドを識別すればよい。
その後、ワークを把持しているHANDcurがXJに到達できるかの判定を行う(S604)。S604でYesの場合、ワーク把持中のハンドをXJまで移動させれば、ワークAをXJまで移動できることになる。よって”HANDcur Move to XJ”を移動命令として生成する(S605)。この場合、ワークは変わらずHANDcurにより把持されていることになるため、状態変数はHANDcurとして(S606)、移動命令の生成処理を終了する。
一方、S604でNoの場合には、空のハンドであるHANDotherがXJに到達できるかの判定を行う(S607)。S607でYesの場合には、上述したようにHANDcurからHANDotherへワークの持ち替えを行う。具体的には、”HANDother Move to HANDcur”、”HANDother Grasp A”、”HANDcur Release A”、”HANDother Move to XJ”を移動命令として生成すればよい(S608)。なおS608では持ち替え位置を特定せずに、空のハンドをワーク把持中のハンドと同じ位置に移動させるものとして、狭義の移動命令を”HANDother Move to HANDcur”と記載している。S608で生成される命令を実行した場合、それまで空だったハンドにワークを持ち替えることになるため、状態変数をHANDotherに更新し(S609)、移動命令の生成処理を終了する。
また、S607でNoの場合には、図10のS504でNoの場合と同様に、対象としているロボットではいずれのハンドもXJに到達できず、当該ロボットを用いてXJを含む移動経路でワークAを移動することは不可能となる。その後の処理もS504でNoの場合と同様であり、命令生成処理が失敗となり、さらにシナリオ情報生成処理も失敗となるため、シナリオが実行されることなく処理が終了する(図6のS104でNoとなる)。
以上の処理により求められるシナリオ情報の例を図14に示す。図14に示したように3次元位置情報をパラメーターとする命令(広義の命令)が決定され、さらに当該命令を1又は複数の狭義の命令により構成する。シナリオ情報としては狭義の命令の組み合わせを用いればよく、各狭義の命令を上から順次解釈、実行することでロボット制御が実現可能である。
5.本実施形態の具体例
以上の本実施形態では、情報処理装置100は図3に示したように、ワーク20が撮像された撮像画像を取得する撮像画像取得部110と、取得した撮像画像からワーク20の3次元位置情報を求める位置情報取得部(図3の3次元位置情報取得部130に対応)と、3次元位置情報に基づいて、ロボット(狭義にはロボット本体300)にワーク20を移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部150を含む。
以上の本実施形態では、情報処理装置100は図3に示したように、ワーク20が撮像された撮像画像を取得する撮像画像取得部110と、取得した撮像画像からワーク20の3次元位置情報を求める位置情報取得部(図3の3次元位置情報取得部130に対応)と、3次元位置情報に基づいて、ロボット(狭義にはロボット本体300)にワーク20を移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部150を含む。
ここで、3次元位置情報とは、ワークの3次元位置を表す情報であり、例えばxyzの3軸により規定される空間における所与の座標値(x,y,z)を3次元位置情報としてもよい。ただし、ワークは点ではなく大きさを有する物体であることから、ワークの姿勢も考慮することができ、当該姿勢の情報も3次元位置情報に含めてもよい。例えば、図12(B)に示したように、基準姿勢に対するxyzの各軸まわりのワークの回転をuvwとして、図12(A)に示したように(x,y,z,u,v,w)により1つの3次元位置情報を表現してもよい。
これにより、ワーク20が撮像された撮像画像に基づいて、当該撮像画像上でのワーク20の3次元位置と同様の3次元位置を基準として、ロボットにワーク20を移動させるシナリオ情報を生成することが可能になる。この場合、ワーク20の配置(或いは移動)はユーザー10の教示により実現することが想定されるが、ユーザー10にとっては実際のワーク20を所望の3次元位置に配置することで、同様の位置を基準とする(狭義には同様の位置を通過する)ワーク20の移動をロボットに実行させることができる。そのため、ユーザー10からすれば、自身の教示作業と、その後ロボットにより行われるロボット動作との関係が明確であり、直感的にわかりやすい教示が可能になる。さらに、ワーク20の実物を用いているため、教示に従ったシナリオ情報を用いてロボット制御を行えば、当該ワーク20が環境に配置された物体と衝突する可能性は低く、安全な動作が実現できる。また、3次元位置を求めるだけにとどまらず、複数の命令から構成されるシナリオ情報の生成まで行うため、ワーク20の移動をどのようなロボット動作により実現するかを適切に決定することも可能になる。
また、撮像画像取得部110は、移動するワーク20を複数回撮像した時系列の撮像画像を取得し、位置情報取得部は、複数回撮像した時系列の撮像画像から、ワーク20の3次元位置情報を求めてもよい。
ここで、移動するワークを複数回撮像した撮像画像(時系列の撮像画像)とは、例えば図1に示したようにユーザー10により移動されるワークAを撮像部(狭義にはステレオカメラ30の第1の撮像部30−1と第2の撮像部30−2)により撮像することで取得される画像である。
これにより、移動するワーク20を複数回撮像した時系列の撮像画像を取得することで、ワーク20の1つの3次元位置を求めるだけでなく、複数の3次元位置の時系列的な変化、すなわちワーク20の移動経路を求めることが可能になる。そのため、撮像画像上でのワーク20の移動経路と同様の移動経路で、ロボットにワーク20を移動させるシナリオ情報を生成することができる。ユーザー10にとっては、実際のワーク20を所望の経路に沿って移動させることで、同様の経路でのワーク20の移動をロボットに実行させることができるため、直感的にわかりやすい教示が可能である。
また、シナリオ情報生成部150は、ロボットの可動範囲情報に基づいて、シナリオ情報を生成してもよい。
ここで、ロボットの可動範囲情報とは図3におけるデータベース50のロボットデータ55に含まれるものであってもよい。可動範囲情報とは具体的にはロボットの可動部分(具体的には可動機構により構成される可動部分)が到達できる3次元位置、姿勢を表すものである。通常のロボットでは、各関節の関節角の値は取り得る範囲が決まっている。例えば人型のロボットであれば、腰部分の回転範囲、肩関節の回転範囲、肘関節の回転範囲、手首関節の回転範囲は設計により決定されている。腰関節のとれる範囲が決まっていれば、肩関節のとれる位置姿勢の範囲は決まることになるし、さらに肩関節のとれる範囲が決まっていれば、腰と肩の関節の状態から肘のとれる位置姿勢の範囲は決まることになる。つまり、広く知られているフォワードキネマティクス等を用いることで、ロボットの可動部分(狭義にはハンド)の可動範囲を事前に求めておくことができる。
なお、ロボットの可動機構とは、ロボットの可動部分を構成する機械機構であり、例えばロボットのアーム、エンドエフェクター、又はロボットの移動機構などである。アームはリンクと関節(ジョイント)により構成される。ロボットの移動機構とは、ロボットを移動させるための機構であり、車輪機構や歩行機構などである。
これにより、ワーク20の移動経路上での3次元位置情報に加えて、ロボットの可動範囲情報に基づいて、シナリオ情報を適切に生成することが可能になる。教示により得られた移動経路がロボットの移動経路であるならば、当該教示に従ったロボット制御においては、ロボットを当該移動経路上で移動させればよいため容易に実現可能である。しかし教示により得られた移動経路がワークの移動経路である場合、ワークがその移動経路に従って移動すればよいため、それを実現するためのロボット動作は自由度が非常に高い。例えば、図4に示したベースユニット部400のキャスターをロボット制御により動作可能であれば、ロボットはアームやハンドを固定したまま、キャスターによるロボット本体ごとの移動によりワークを移動させてもよい。また、アームやハンドは固定しつつ、腰部分の回転によりワークを移動させることができるかもしれないし、腰を固定しつつアームとハンドの動きによりワークを移動させることができるかもしれない。つまり、ワークの移動経路を与えられた場合には、対象としているロボットにより実現可能であることを最低条件としつつ、何らかの制約を加えることで実行するロボット制御を特定する必要がある。その点、ロボットの可動範囲情報は、ロボット動作が当該ロボットにより実現可能であるかを判定可能な情報であるため、適切な制約を加えてシナリオ情報を生成することを可能にするものである。
また、ロボット(狭義にはロボット本体300)は、各アームがエンドエフェクター(例えば図4の319)を有する複数のアームを含んでもよい。そしてシナリオ情報生成部150は、エンドエフェクターの可動範囲情報と、3次元位置情報とに基づいて、エンドエフェクターが3次元位置情報により表される3次元位置に到達できるアームを複数のアームから特定し、特定されたアームに設けられるエンドエフェクターを、3次元位置情報により表される3次元位置に移動させる命令を含むシナリオ情報を生成してもよい。
ここでエンドエフェクターとは、ロボットが作業対象に対して直接働きかける機能を有する部分であり、ハンド(把持部)や、手先に取り付けられるナット締め具等の各種ツールなどである。
これにより、ロボット本体300が2本以上のアームを有する場合に、各アームに設けられエンドエフェクターが、対象としている3次元位置情報に対応する位置に到達できるか否かに基づいて、ロボット動作に用いるアームを決定することが可能になる。エンドエフェクターの可動範囲情報を用いてシナリオ情報を生成することで、当該シナリオ情報に従ったロボット制御では、ロボットの構造的にとることができない制御(例えば所与の関節角が可動範囲を超える指示を行う制御)を行うことない。よって、シナリオ情報の生成に成功したのであれば、当該シナリオ情報は対象としているロボットにより無理なく実行可能であることが保証される。また、対象としているロボットではどうやっても教示された移動経路に沿ったワークの移動ができない場合には、強引にシナリオ情報を生成するのではなく、シナリオ情報の生成失敗等の判定を行うことも可能になる。
なお、3次元位置情報に姿勢の情報を含めてもよいように、可動範囲情報に姿勢の情報を含めてもよい。例えば、所与のハンドが所定位置(x,y,z)に到達することはできるが、そこでとれる姿勢(u,v,w)は所与の範囲に制限されると言うことは充分考えられる。この場合、3次元位置情報により表されるワークの3次元の位置姿勢を、エンドエフェクターの可動範囲情報により表されるエンドエフェクターの3次元の位置姿勢により実現できるか否かで、ロボット動作に用いるアームを決定すればよい。なお、この場合には、エンドエフェクターによるワークの把持状態も考慮するとよい。例えば、2本の指でワークを挟み込むハンドを用いて、細長い柱状のワークを把持する場合、短辺方向であれば把持できるが、長辺方向では把持できないといった制限が生じることがある。よってその場合、可動範囲情報により表されるエンドエフェクターの3次元の位置姿勢と、エンドエフェクターによるワークの把持状態とから、当該エンドエフェクターにより実現可能なワークの3次元での位置姿勢を推定し、推定した情報と3次元位置情報により表されるワークの3次元の位置姿勢との比較処理等を行ってもよい。
つまり本実施形態のシナリオ情報生成部150は、エンドエフェクターの可動範囲情報と、3次元位置情報とに基づいて、エンドエフェクターにより3次元位置情報により表される3次元位置及び姿勢にワークを到達させることができるアームを複数のアームから特定し、特定されたアームに設けられるエンドエフェクターにより、3次元位置情報により表される3次元位置及び姿勢にワークを移動させる命令を含むシナリオ情報を生成してもよい。
また、エンドエフェクターの可動範囲情報と3次元位置情報とに基づいて、複数のアームのうちワークを把持している第1のアームに設けられる第1のエンドエフェクターが3次元位置に到達できず、且つ第1のアームとは異なる第2のアームに設けられる第2のエンドエフェクターが3次元位置に到達できると判定された場合に、シナリオ情報生成部150は、ワークを第1のエンドエフェクターから第2のエンドエフェクターに持ち替える持ち替え命令と、ワークを把持した第2のエンドエフェクターを3次元位置に移動させる移動命令と、を含むシナリオ情報を生成してもよい。
これにより、1つのアームのエンドエフェクターではワークの移動経路に沿った移動ができない場合にも、他のアームに持ち替えて移動を継続するシナリオ情報を生成することが可能になる。よって、持ち替えを考慮しない場合に比べて、シナリオ情報の生成に失敗する可能性を抑止することができ、ロボットの構成を効果的に活用したロボット動作を実現するシナリオ情報の生成が可能になる。なお、ここでの「ワークを把持した第2のエンドエフェクターを3次元位置に移動させる移動命令」は、上述の定義を用いた場合、狭義の移動命令に対応するものである。
また、シナリオ情報生成部150は、第2のエンドエフェクターを持ち替え位置まで移動させる移動命令と、第2のエンドエフェクターによりワークを把持する把持命令と、第1のエンドエフェクターから前記ワークを解放する解放命令とを、持ち替え命令として生成してもよい。
これにより、狭義の移動命令、狭義の把持命令、狭義の解放命令を組み合わせることで、持ち替え命令を実現することが可能になる。なお、持ち替え命令と狭義の移動命令の組み合わせにより、広義の移動命令が実現される。上述したように、持ち替え位置とは第1のエンドエフェクターがそれまでいた位置(例えばXJ−1)であってもよいし、他の位置XKであってもよい。また、これらの狭義の命令の実行順序等について、種々の変形実施が可能であることも上述したとおりである。
また、位置情報取得部(3次元位置情報取得部130)は、図3に示したように、3次元位置情報を求める処理の処理結果を、ユーザーに確認させるための確認画面情報を生成する確認画面情報生成部131を含んでもよい。
ここで、3次元位置情報を求める処理の結果とは、図12(A)に示したように実際に求めた3次元位置情報そのものであってもよく、この場合の確認画面情報とは、例えば図12(A)に示した表を提示する画面情報である。或いは、3次元位置情報を求める処理の処理結果とは、3次元位置情報を求める際に得られる中間結果であってもよく、例えば図13に示したように、右画像左画像のそれぞれに対するパターンマッチング処理の結果であってもよい。この場合の確認画面情報とは、例えば図13に示した画面情報である。
これにより、3次元位置情報を求める処理の結果をユーザーに対して提示することが可能になる。3次元位置情報の算出は、例えばステレオマッチング処理等を用いることになり、何らかの理由により高精度で行うことが難しい場合もある。例えば、上述したようにワーク20がユーザーの指に遮蔽されることでパターンマッチング処理の精度が低下することが考えられる。その際、処理結果をユーザーに確認させることで、精度の低い情報を発見、場合によっては修正することができるため、作成されるシナリオ情報を、よりユーザーによる教示に近い高精度なものとすることが可能になる。
また、位置情報取得部(3次元位置情報取得部130)は、図3に示したように、確認画面情報の提示に対してユーザーから入力される編集情報を取得し、取得した編集情報に基づいて、3次元位置情報を求める処理の処理結果に対する編集処理を行う編集処理部133を含んでもよい。
これにより、確認画面情報の提示に対してユーザーが修正(編集)を望んだ場合に、ユーザー入力を編集情報として受け付け、当該編集情報に従った編集処理を行うことが可能になる。ここでの編集情報とは、図12(A)を確認画面とした場合には入力される数値情報であるし、図13を確認画面とした場合には、A1,A2で示したマッチング結果の画像上での移動情報である。また、確認画面として他の画面を用いることもでき、その場合の編集情報も種々の変形実施が可能である。図13に示したように、ユーザーが手動で編集することで、高精度で処理を行うことが可能な場面も多く、編集処理により高精度なシナリオ情報の生成が可能となる。
また、シナリオ情報生成部150は、3次元位置情報をパラメーターとする把持命令、移動命令及び解放命令の少なくとも1つから構成されるシナリオ情報を生成してもよい。
ここでの把持命令、移動命令、解放命令は、上述の定義に従えば、広義の把持命令、広義の移動命令、広義の解放命令に対応する。
これにより、3次元位置情報をパラメーターとして把持、移動、解放のいずれかの命令を作成することでシナリオ情報を生成することが可能になる。よって図14に示したように、1つの3次元位置情報に対して基本的には1つの命令を対応づけることができ、シンプルでわかりやすいシナリオ情報の生成処理が可能になる。なお、広義の命令を、それぞれ1又は複数の狭義の命令から構成することで、図14の右の列に示したように、詳細なシナリオ情報においては柔軟なロボット動作を実行可能である。
また、シナリオ情報生成部150は、ロボットによるワークの把持状態を表す状態変数に基づいて、把持命令、移動命令、解放命令のうちから、3次元位置情報をパラメーターとする命令を選択してもよい。
これにより、命令の選択を状態変数に基づいて行うことが可能になる。ここでの状態変数とは、図9のS401や図11のS601の判定で用いられるものであり、ロボットのいずれのハンドでもワークを把持していなければ値が空となり、いずれかのハンドでワークを把持しているのであれば、把持しているハンドを表す値となる変数である。ロボットによるワークの移動においては、ハンドにより把持されていなければワークは移動することができないということが基本となる。よってワークが把持されていなければ、ワークの移動のためにはいずれかのハンドでワークを把持する必要があるし、既にワークが把持されているのであれば移動を開始させることが可能である。つまり、把持状態を表す状態変数は、命令を適切に決定するにあたり有効と言える。
また、シナリオ情報生成部150は、ワーク20の移動経路に沿った各3次元位置情報を処理対象として、3次元位置情報をパラメーターとする命令の生成処理を行い、処理対象となる3次元位置情報がないと判定された場合に、命令として解放命令を選択してもよい。
これにより、データベース50に記憶された複数の3次元位置情報を、時系列に順次処理対象としていくことで、当該複数の3次元位置情報を含む移動経路に沿ったワークの移動を実現するシナリオ情報を生成することが可能になる。なお、ワークが目標位置まで到達した場合、ロボットのハンドにより把持し続けるのではなく、所定位置に置く、或いは所定の機構にはめ込む等の操作により移動が終了することが多い。よって、全ての3次元位置情報に対する処理が終了した場合には、時系列的に最後の3次元位置情報をパラメーターとして解放命令を選択すればよい。なお、目標位置においてハンドでワークを把持し続け、他のロボットに対してワークの受け渡しを行う場合のように、最後の3次元位置情報をパラメーターとした解放命令が不要な場合もあり、状況に応じて解放命令を選択するか否かを決定するものとしてもよい。
また以上の本実施形態は、図3に示したように上述の情報処理装置100を含むロボット(ロボットシステム)に適用できる。
これにより、ユーザー10からの教示に関する情報を撮像画像として取得し、当該教示に基づくシナリオ情報の生成と、当該シナリオ情報に基づくロボット制御を行い、さらに当該ロボット制御に従ってアームやハンド等を用いた動作を行うロボットを実現することができる。なお、ステレオカメラ30については、ロボットシステムに含まれなくてもよく、その場合、ユーザーによる教示は、ワーク20については実物を用いるもののロボットシステムとは無関係に行われる。また、ロボットシステムがステレオカメラ30を含んでもよい。例えば図4にGcamとして示したように、ロボットの上部(頭部)にステレオカメラであるグローバルカメラGcamが設けられる場合もある。この場合、教示による情報の取得用途と、実際のロボット制御用途の両方に、共通の撮像部を用いること等も可能である。なお、撮像部を用いた実際のロボット制御としては、撮像画像に基づいてロボット自身や周囲環境の変化を検出し、検出結果をフィードバックループにおいて利用するビジュアルサーボ等が考えられる。
なお、本実施形態の情報処理装置100等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態の情報処理装置100等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また情報処理装置100等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
10 ユーザー、20 ワーク、30 ステレオカメラ、30−1 第1の撮像部、
30−2 第2の撮像部、50 データベース、51 シナリオ情報、
53 ワークデータ、55 ロボットデータ、100 情報処理装置、
110 撮像画像取得部、130 3次元位置情報取得部、
131 確認画面情報生成部、133 編集処理部、150 シナリオ情報生成部、
170 シナリオプレーヤー、200 ロボット制御装置、300 ロボット本体、
310 アーム、311,313 関節、315,317 フレーム、
319 エンドエフェクター、320 アーム、400 ベースユニット部、
Gcam グローバルカメラ
30−2 第2の撮像部、50 データベース、51 シナリオ情報、
53 ワークデータ、55 ロボットデータ、100 情報処理装置、
110 撮像画像取得部、130 3次元位置情報取得部、
131 確認画面情報生成部、133 編集処理部、150 シナリオ情報生成部、
170 シナリオプレーヤー、200 ロボット制御装置、300 ロボット本体、
310 アーム、311,313 関節、315,317 フレーム、
319 エンドエフェクター、320 アーム、400 ベースユニット部、
Gcam グローバルカメラ
Claims (14)
- ワークが撮像された撮像画像を取得する撮像画像取得部と、
取得した前記撮像画像から前記ワークの3次元位置情報を求める位置情報取得部と、
前記3次元位置情報に基づいて、ロボットに前記ワークを移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部と、
を含むことを特徴とする情報処理装置。 - 請求項1において、
前記撮像画像取得部は、
移動する前記ワークを複数回撮像した時系列の前記撮像画像を取得し、
前記位置情報取得部は、
前記複数回撮像した時系列の前記撮像画像から、前記ワークの前記3次元位置情報を求めることを特徴とする情報処理装置。 - 請求項1又は2において、
前記シナリオ情報生成部は、
前記ロボットの可動部分の可動範囲情報に基づいて、前記シナリオ情報を生成することを特徴とする情報処理装置。 - 請求項3において、
前記ロボットは、
各アームがエンドエフェクターを有する複数のアームを含み、
前記シナリオ情報生成部は、
前記エンドエフェクターの前記可動範囲情報と、前記3次元位置情報とに基づいて、前記エンドエフェクターが前記3次元位置情報により表される3次元位置に到達できるアームを前記複数のアームから特定し、特定された前記アームに設けられる前記エンドエフェクターを、前記3次元位置情報により表される前記3次元位置に移動させる前記命令を含む前記シナリオ情報を生成することを特徴とする情報処理装置。 - 請求項4において、
前記エンドエフェクターの前記可動範囲情報と前記3次元位置情報とに基づいて、前記複数のアームのうち前記ワークを把持している第1のアームに設けられる第1のエンドエフェクターが前記3次元位置に到達できず、且つ前記第1のアームとは異なる第2のアームに設けられる第2のエンドエフェクターが前記3次元位置に到達できると判定された場合に、
前記シナリオ情報生成部は、
前記ワークを前記第1のエンドエフェクターから前記第2のエンドエフェクターに持ち替える持ち替え命令と、前記ワークを把持した前記第2のエンドエフェクターを前記3次元位置に移動させる移動命令と、を含む前記シナリオ情報を生成することを特徴とする情報処理装置。 - 請求項5において、
前記シナリオ情報生成部は、
前記第2のエンドエフェクターを持ち替え位置まで移動させる移動命令と、前記第2のエンドエフェクターにより前記ワークを把持する把持命令と、前記第1のエンドエフェクターから前記ワークを解放する解放命令とを、前記持ち替え命令として生成することを特徴とする情報処理装置。 - 請求項1乃至6のいずれかにおいて、
前記位置情報取得部は、
前記3次元位置情報を求める処理の処理結果を、ユーザーに確認させるための確認画面情報を生成する確認画面情報生成部を含むことを特徴とする情報処理装置。 - 請求項7において、
前記位置情報取得部は、
前記確認画面情報の提示に対してユーザーから入力される編集情報を取得し、取得した前記編集情報に基づいて、前記3次元位置情報を求める処理の前記処理結果に対する編集処理を行う編集処理部を含むことを特徴とする情報処理装置。 - 請求項1乃至8のいずれかにおいて、
前記シナリオ情報生成部は、
前記3次元位置情報をパラメーターとする把持命令、移動命令及び解放命令の少なくとも1つから構成される前記シナリオ情報を生成することを特徴とする情報処理装置。 - 請求項9において、
前記シナリオ情報生成部は、
前記ロボットによる前記ワークの把持状態を表す状態変数に基づいて、前記把持命令、前記移動命令、前記解放命令のうちから、前記3次元位置情報をパラメーターとする前記命令を選択することを特徴とする情報処理装置。 - 請求項9又は10において、
前記シナリオ情報生成部は、
前記ワークの移動経路に沿った各3次元位置情報を処理対象として、前記3次元位置情報をパラメーターとする前記命令の生成処理を行い、前記処理対象となる前記3次元位置情報がないと判定された場合に、前記命令として前記解放命令を選択することを特徴とする情報処理装置。 - 請求項1乃至11のいずれかに記載の情報処理装置を含むことを特徴とするロボット。
- ユーザーがワークを所与の移動経路に沿って移動させた状態を撮像部により撮像し、
撮像により得られた撮像画像に基づいて前記ワークの3次元位置情報を求め、
求めた3次元位置情報に基づいて、ロボットに前記ワークを前記移動経路に沿って移動させるため複数の命令を含むシナリオ情報を生成する、
ことを特徴とするシナリオ情報生成方法。 - ワークが撮像された撮像画像を取得する撮像画像取得部と、
取得した前記撮像画像から前記ワークの3次元位置情報を求める位置情報取得部と、
前記3次元位置情報に基づいて、ロボットに前記ワークを移動させるための複数の命令を含むシナリオ情報を生成するシナリオ情報生成部として、
コンピューターを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013190326A JP2015054378A (ja) | 2013-09-13 | 2013-09-13 | 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013190326A JP2015054378A (ja) | 2013-09-13 | 2013-09-13 | 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015054378A true JP2015054378A (ja) | 2015-03-23 |
Family
ID=52819135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013190326A Pending JP2015054378A (ja) | 2013-09-13 | 2013-09-13 | 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015054378A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112017007311T5 (de) | 2017-03-24 | 2019-12-05 | Mitsubishi Electric Corporation | Vorrichtung und Verfahren zum Erzeugen eines Roboterprogramms |
JP2021091055A (ja) * | 2019-12-12 | 2021-06-17 | 株式会社キーエンス | 測定装置 |
WO2022195680A1 (ja) * | 2021-03-15 | 2022-09-22 | 株式会社日立ハイテク | ロボットの作業教示装置及び作業教示方法 |
WO2022224449A1 (ja) * | 2021-04-23 | 2022-10-27 | 日本電気株式会社 | 制御装置、制御方法及び記憶媒体 |
WO2022264436A1 (ja) * | 2021-06-15 | 2022-12-22 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、プログラム、及び情報処理システム |
WO2023047574A1 (ja) * | 2021-09-27 | 2023-03-30 | 株式会社日立ハイテク | 作業教示方法、作業教示装置及びロボット |
JP7399035B2 (ja) | 2020-06-23 | 2023-12-15 | 東京エレクトロン株式会社 | ティーチング方法、搬送システム及びプログラム |
-
2013
- 2013-09-13 JP JP2013190326A patent/JP2015054378A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112017007311T5 (de) | 2017-03-24 | 2019-12-05 | Mitsubishi Electric Corporation | Vorrichtung und Verfahren zum Erzeugen eines Roboterprogramms |
US11003177B2 (en) | 2017-03-24 | 2021-05-11 | Mitsubishi Electric Corporation | Apparatus and method for generating robot program |
DE112017007311B4 (de) | 2017-03-24 | 2021-09-16 | Mitsubishi Electric Corporation | Vorrichtung und Verfahren zum Erzeugen eines Roboterprogramms |
JP2021091055A (ja) * | 2019-12-12 | 2021-06-17 | 株式会社キーエンス | 測定装置 |
JP7399035B2 (ja) | 2020-06-23 | 2023-12-15 | 東京エレクトロン株式会社 | ティーチング方法、搬送システム及びプログラム |
WO2022195680A1 (ja) * | 2021-03-15 | 2022-09-22 | 株式会社日立ハイテク | ロボットの作業教示装置及び作業教示方法 |
WO2022224449A1 (ja) * | 2021-04-23 | 2022-10-27 | 日本電気株式会社 | 制御装置、制御方法及び記憶媒体 |
WO2022264436A1 (ja) * | 2021-06-15 | 2022-12-22 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、プログラム、及び情報処理システム |
WO2023047574A1 (ja) * | 2021-09-27 | 2023-03-30 | 株式会社日立ハイテク | 作業教示方法、作業教示装置及びロボット |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6998660B2 (ja) | ロボットシミュレータ、ロボットシステム及びシミュレーション方法 | |
JP2015054378A (ja) | 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム | |
JP5784670B2 (ja) | 医療用ロボットに関する自動化された動作のための方法、装置、及びシステム | |
CN110394780B (zh) | 机器人的仿真装置 | |
US9919421B2 (en) | Method and apparatus for robot path teaching | |
US10905508B2 (en) | Remote control robot system | |
CN109313417B (zh) | 帮助机器人定位 | |
US20150273689A1 (en) | Robot control device, robot, robotic system, teaching method, and program | |
JP5949242B2 (ja) | ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム | |
US9984178B2 (en) | Robot simulator, robot teaching apparatus and robot teaching method | |
US9186792B2 (en) | Teaching system, teaching method and robot system | |
US20150151431A1 (en) | Robot simulator, robot teaching device, and robot teaching method | |
JP2015071206A (ja) | 制御装置、ロボット、教示データ生成方法及びプログラム | |
JP2015229234A (ja) | 作業ロボットの教示データ生成装置及び教示データ生成方法 | |
JP2018176333A (ja) | 接触センサによるワーク位置検出プログラム生成機能を備えたオフラインプログラミング装置及び方法 | |
WO2015137162A1 (ja) | 制御装置、ロボットシステム、および制御用データ生成方法 | |
CN115703227A (zh) | 机器人的控制方法、机器人以及计算机可读存储介质 | |
Mönnich et al. | A supervision system for the intuitive usage of a telemanipulated surgical robotic setup | |
WO2022127650A1 (zh) | 手术机器人及其控制方法、控制装置 | |
JP2015058493A (ja) | 制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム | |
JP2015100874A (ja) | ロボットシステム | |
JP4399815B2 (ja) | ロボットの制御方法及び制御装置 | |
JP2023017436A (ja) | ロボット制御装置 | |
Rosen et al. | A Virtual Reality Teleoperation Interface for Industrial Robot Manipulators | |
JP2023017435A (ja) | 教示データ修正装置 |