(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】ロボット教示装置及び作業教示方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20240313BHJP
G05B 19/42 20060101ALI20240313BHJP
【FI】
B25J9/22 A
G05B19/42 J
(21)【出願番号】P 2022532190
(86)(22)【出願日】2020-06-25
(86)【国際出願番号】 JP2020025077
(87)【国際公開番号】W WO2021260898
(87)【国際公開日】2021-12-30
【審査請求日】2022-12-16
(73)【特許権者】
【識別番号】501387839
【氏名又は名称】株式会社日立ハイテク
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】小山 昌宏
(72)【発明者】
【氏名】小河原 昭吾
(72)【発明者】
【氏名】石川 慎一
(72)【発明者】
【氏名】井上 智博
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2015-071206(JP,A)
【文献】国際公開第2019/092792(WO,A1)
【文献】国際公開第2015/137167(WO,A1)
【文献】国際公開第2020/066949(WO,A1)
【文献】特開2011-131326(JP,A)
【文献】特開2018-069366(JP,A)
【文献】特開2018-167361(JP,A)
【文献】特開2014-117781(JP,A)
【文献】特表2012-528015(JP,A)
【文献】特開2002-120174(JP,A)
【文献】特許第6038417(JP,B1)
【文献】特開2016-010824(JP,A)
【文献】寺田 耕志、他,小自由度アームと全方位台車を活用した移動把持ロボットHSR-2015,第33回日本ロボット学会学術講演会予稿集DVD-ROM 2015年 The 33rd Annual ,日本,社団法人 日本ロボット学会,2015年09月03日
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
複数の把持部により被把持物を把持して移動させるロボットに作業を教示するロボット教示装置であって、
教示作業中に教示者により把持される第1被把持物のポーズである教示用ポーズを計測及び/又は算出する教示用ポーズ計測部と、
前記ロボットにより把持される第2被把持物のポーズが、前記教示用ポーズと同一のポーズとなるよう、前記ロボットの関節変位のシーケンスを生成するロボット動作生成部と、
を備え、
前記ロボット動作生成部は、算出された前記ロボットの前記関節変位のシーケンスが前記ロボットの可動範囲を超える場合、又は算出された前記関節変位のシーケンスに従って前記ロボットを駆動させたならば前記ロボットと周囲構造物との間に干渉が発生すると判断される場合、
・前記第2被把持物の位置、
・前記可動範囲を超えること、又は前記干渉が発生することの判断がされたときに、駆動対象ではなかった別の関節の変位、又は
・前記ロボットが搭載される台座の位置
の少なくともいずれかを、前記把持部の相対的な位置及び姿勢の関係を保ったまま、変更する、
ロボット教示装置。
【請求項2】
前記教示用ポーズ計測部は、前記第1被把持物の少なくとも1つの基準点の軌道を計測及び/又は算出し、
前記ロボット動作生成部は、前記第1被把持物の前記少なくとも1つの基準点の軌道に基づき前記関節変位のシーケンスを生成する、請求項1に記載のロボット教示装置。
【請求項3】
前記教示用ポーズ計測部は、前記教示用ポーズを時系列で計測及び/又は算出し、
前記ロボット動作生成部は、前記教示用ポーズの前記時系列に同期した前記関節変位のシーケンスを生成する、請求項1に記載のロボット教示装置。
【請求項4】
前記ロボット動作生成部は、前記第1被把持物を基準にした被把持物座標系と、前記ロボットの把持部を基準にした把持部座標系との位置関係に基づいた座標変換により、前記ロボットの把持部のポーズを計測及び/又は算出する、請求項1に記載のロボット教示装置。
【請求項5】
前記ロボット動作生成部は、前記ロボットの把持部を基準にした把持部座標系と、前記ロボットの手首フランジ中心を基準にしたリンク先端座標系との位置関係に基づいた座標変換により、前記教示用ポーズから前記ロボットのリンク先端のポーズを算出する、請求項4に記載のロボット教示装置。
【請求項6】
前記ロボット動作生成部は、前記リンク先端のポーズの時系列データから前記ロボットの関節変位を逆運動学計算の解として算出し、前記関節変位のシーケンスを生成する、請求項5に記載のロボット教示装置。
【請求項7】
前記ロボット動作生成部は、前記第2被把持物が位置すべき位置を前後、左右、上下の少なくともいずれかの方向に平行移動することにより、前記第2被把持物の位置を変更する、請求項1に記載のロボット教示装置。
【請求項8】
前記ロボット動作生成部は、前記別の関節として、前記ロボットの腰部関節の変位を変更する、請求項1に記載のロボット教示装置。
【請求項9】
前記ロボット動作生成部は、前記ロボットが搭載される台座の位置を前後、左右、上下のいずれかの方向に平行移動する、請求項1に記載のロボット教示装置。
【請求項10】
前記ロボット動作生成部で生成された前記シーケンスに従う前記ロボットの把持部の軌跡を表示する表示部を備える、請求項1に記載のロボット教示装置。
【請求項11】
前記表示部は、
前記軌跡のうち、前記ロボットの可動範囲を超えるか、又は周囲構造物との間に干渉が発生する位置を表示するよう構成された、請求項10に記載のロボット教示装置。
【請求項12】
前記ロボット動作生成部は、前記可動範囲に含まれ、且つ前記干渉を回避することができる解決策を表示し、
ユーザにより、前記解決策を選択させるよう構成された、請求項11に記載のロボット教示装置。
【請求項13】
前記ロボット動作生成部で生成されたデータに基づき、少なくとも1個の単位動作からなる一連の作業を作業シナリオとして記述する作業シナリオ編集部と、
前記作業シナリオを順次解釈し、前記ロボットの前記単位動作を実行する作業シナリオ実行部と
を備えた、請求項1に記載のロボット教示装置。
【請求項14】
複数の把持部により被把持物を把持して移動させるロボットに作業を教示する作業教示方法であって、
教示作業中に教示者により把持される第1被把持物のポーズである教示用ポーズを計測及び/又は算出する教示用ポーズ計測ステップと、
前記第1被把持物のポーズのデータから、第2被把持物を把持する前記ロボットの把持部のポーズを算出する把持部ポーズ算出ステップと、
前記把持部のポーズのデータから、前記ロボットの関節変位のシーケンスを逆運動学計算の解として算出し、その際に前記ロボットの関節変位が可動範囲を超える場合、又は算出された関節変位のシーケンスに従って前記ロボットを駆動させたならば前記ロボットと周囲構造物との間に干渉が発生する場合、
・前記第2被把持物が取るべきポーズ、
・前記可動範囲を超えること、又は前記干渉が発生することの判断がされたときに、駆動対象ではなかった別の関節の変位、又は
・前記ロボットが搭載される台座の位置
の少なくともいずれかを、前記把持部の相対的な位置及び姿勢の関係を保ったまま、変更することにより、前記ロボットの可動範囲内かつ周囲構造物との干渉が発生しない関節変位の解を探索し、前記ロボットが実行可能な関節変位のシーケンスを生成するロボット動作生成ステップと、
前記関節変位のシーケンスを前記ロボットの一定時間の単位動作として扱い、少なくとも1個の単位動作からなる一連の作業を作業シナリオとして記述し、
前記ロボットの単位動作を選択し、これを前記作業シナリオの中のある単位動作に連続する単位動作として追加・接続する際、前記一連の作業中の単位動作での前記ロボットの把持部のポーズと、追加される単位動作での前記ロボットの把持部のポーズが一致しない場合、これらのポーズを前記ロボットの可動範囲内で周囲構造物との干渉を発生させずに連続的に補間するための前記ロボットの関節変位のシーケンスを生成し、前記補間するための前記ロボットの前記関節変位のシーケンスを前記作業シナリオに挿入する作業シナリオ編集ステップと、
前記作業シナリオを順次解釈して実行する作業シナリオ実行ステップと、
前記作業シナリオに従い前記ロボットの関節軸の駆動制御を行うロボット関節軸制御ステップと、
を備えたロボットの作業教示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業動作をロボットに教示するためのロボット教示装置、及び作業教示方法に関する。
【背景技術】
【0002】
人の作業動作等をセンサやカメラ等により検知して、ロボットに作業動作を教示するロボット教示装置が知られている。例えば、特許文献1のロボット教示装置は、教示者の手先の動きを検知して、これに対応するロボットの動作軌跡を生成する。
【0003】
特許文献1を含む従来のロボット教示装置では、教示者の動きからロボットの動作が生成されるが、作業対象物の動きが正確に把握されていないという問題がある。このため、作業に用いるロボットの種類、作業内容、作業環境などによっては、ロボットの可動範囲内で動作が成立しないか、又はロボットと周囲構造物との間で干渉が発生するなど、ロボットが作業を実行可能な動作を生成することができないという課題があった。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上述のような課題に鑑み、ロボットの可動範囲内で周囲構造物との干渉が発生せず、ロボットが作業を実行可能な動作を生成することができるロボット教示装置及び作業教示方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係るロボット教示装置は、被把持物を把持して移動させるロボットに作業を教示するロボット教示装置に関する。この装置は、教示作業中に教示者により把持される第1被把持物のポーズである教示用ポーズを計測及び/又は算出する教示用ポーズ計測部と、前記ロボットにより把持される第2被把持物のポーズが、前記教示用ポーズと同一のポーズとなるよう、前記ロボットの関節変位のシーケンスを生成するロボット動作生成部と、
を備える。
【発明の効果】
【0007】
本発明によれば、ロボットの可動範囲内で周囲構造物との干渉が発生せず、ロボットが作業を実行可能な動作を生成することができるロボット教示装置及び作業教示方法を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】第1の実施の形態に係るロボット教示装置
100の全体構成を説明する概略図である。
【
図2】教示用ポーズ計測部101を構成するカメラ201~204の配置例を示す概略図である。
【
図3】教示用ポーズ計測部101を構成するマーカプレート301、302の構成例を説明する概略図である。
【
図4】教示用ポーズ計測部101を構成するマーカプレート301、302をマイクロピペット401と試験管402に取り付けた状態を示す斜視図である。
【
図5】マイクロピペット401と試験管402に取り付けたマーカプレート301、302と、それらを取り付けるためのアタッチメント410、420の分解図である。
【
図6】試験管402´を把持するロボット12のハンド620の構造
を示す斜視図である。
【
図7】試験管402´を把持するロボット12のハンド620
と座標系との関係を示す図である。
【
図8】第1の実施の形態に係る教示装置
100の動作を説明するフローチャートである。
【
図9】ロボット動作生成部103におけるロボット12のハンドの把持中心の位置の変更の例を示す概略図である。
【
図10】ロボット動作生成部103におけるロボット12の腰軸位置の変更の例を示す概略図である。
【
図11】ロボット動作生成部103におけるロボット12の台座の位置の変更の例を示す概略図である。
【
図12】ロボット動作生成部103におけるロボット12のハンドの把持中心の位置、腰軸位置、台座位置の変更による関節変位の解を探索する処理の流れを示すフローチャートである。
【
図13】ロボット動作生成部103におけるロボット12のハンドの把持中心の動作軌跡を可視化する画面の一例である。
【
図14】作業シナリオ編集部105におけるユーザインタフェース画面の一例を示す。
【
図15】第2の実施の形態の動作を説明するフローチャートである。
【
図16】第2の実施の形態における作業シナリオ編集部105における表示画面の一例を示す。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して本実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本開示の原理に則った実施形態と実装例を示しているが、これらは本開示の理解のためのものであり、決して本開示を限定的に解釈するために用いられるものではない。本明細書の記述は典型的な例示に過ぎず、本開示の特許請求の範囲又は適用例を如何なる意味においても限定するものではない。
【0010】
本実施形態では、当業者が本開示を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本開示の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【0011】
[第1の実施の形態]
第1の実施形態に係るロボット教示装置及び作業教示方法について、図面を参照して説明する。
図1は、第1の実施の形態に係るロボット教示装置
100の構成図である。
【0012】
ロボット教示装置100は、コンピュータ1と、モーションキャプチャ用の複数台(図示の例では4台)のカメラ201~204から構成される。コンピュータ1は、カメラ201~204が取得した画像に基づき、ロボット12に動作を教示するためのデータを生成する。
【0013】
コンピュータ1は、一例として、CPU(Central Processing Unit)8001、GPU(Graphics Processing Unit)8002、ROM8003、RAM8004、ハードディスクドライブ(HDD)8005、表示制御部8006、入出力制御部8007、通信制御部8008、ディスプレイ8009(表示部)、キーボード8010、及びマウス8011を備えて構成される。CPU8001は、教示用プログラムの動作の全体を司る中央制御装置である。GPU8002は、一例として、カメラ201~204から得られた画像に基づく画像処理及び画像認識を実行するための制御装置である。
【0014】
ROM8003は、教示用プログラムや、教示用プログラムを実行するのに必要な各種データを格納する記憶装置である。RAM8004は、同プログラムの演算結果等を一時的に記憶する記憶装置である。またハードディスクドライブ8005には、教示操作により生成された作業シナリオのデータが記憶される。
【0015】
表示制御部8006は、前述のプログラムの実行画面等をディスプレイ8009に表示させる場合の表示制御を担当する制御部である。入出力制御部8007は、各種入力デバイス(キーボード8010、マウス8011等)からのデータや命令の入力、及びCPU8001又はGPU8002から出力される各種データの出力を制御する制御部である。また、通信制御部8008は、サーバや、その他の外部のコンピュータとの間でのデータ通信を司る制御部である。
【0016】
このロボット教示装置100において、教示者11はロボット12への教示のため、作業台10に向かって作業を行う。例えば、教示者11は、右手で把持した作業用ツール(被把持物)であるマイクロピペット401により、左手で把持した作業対象物(被把持物)である試験管402に試薬を分注する。マイクロピペット401にはモーションキャプチャ用の右マーカプレート301が取り付けられる一方、試験管402にはモーションキャプチャ用の左マーカプレート302が取り付けられている。この右マーカプレート301及び左マーカプレート302が、カメラ201、202、203、204により撮像される。ここでのマイクロピペット401及び試験管402は、教示者11により把持される被把持物の一例であり、被把持物はこれらに限定されるものではない。
【0017】
教示者11は、ロボット12に作業を教示する主体である。教示者11は、基本的には人間であるが、教示者11がロボットであってもよい。すなわち、作業を教示されたロボットが教示者11となり、別のロボット12に作業を教示することもできる。
【0018】
このような人手作業をロボットにより自動化するため、教示者11によるマイクロピペット401及び試験管402の動作をカメラ201~204で撮像し、コンピュータ1によりその動作を解析し、その解析結果をロボット12に教示する。図示の例では、ロボット12は双腕のロボット12であるが、これに限定されるものではない。例えば、ロボットは、右腕の単腕のロボットと、左腕の単腕のロボットとの2つのロボットの組み合わせであってもよい。その2つのロボットは、それぞれ異なる種類のロボットであってもよい。また、教示者の2本の腕の作業を、3本以上のアームを有するロボットにより再現することも可能である。また、ロボット12は、図示のような人間の体型を模擬したものには限定されず、所期の動作が可能である限り、特定の形状には限定されない。また、ロボット12は、後述するように、台座を含むものであってもよい。本実施の形態において「ロボット」とは、コンピュータ1によって生成される作業シナリオに従って動作をする機械要素の全てを意味する。
【0019】
ロボット12は、作業台10と同様の作業台10´に向かって設置される。ロボット12は、その右ハンド610で把持したマイクロピペット401´により、左ハンド620で把持した試験管402´に試薬を分注するよう教示される。マイクロピペット401´及び試験管402´(第2把持物)は、教示者11により把持されるマイクロピペット401及び試験管402(第1把持物)に対応するものである。マイクロピペット401´及び試験管402´は、マイクロピペット401及び試験管402と同一の形状とすることができるが、完全に同一である必要はなく、形状の差異が把握されている限りにおいて、同種のものであればよく、形状や材質その他の性状において異なるものであってもよい。また、教示動作中においてロボット12により把持されるマイクロピペット401´及び試験管402´は、実際に使用可能な構造を有していなくても良く、例えば模型(ダミー)であってもよい。
【0020】
コンピュータ1は、ROM8003等に記憶された教示用プログラムに従い、以下に説明する構成要素101~108を、コンピュータ1中において実現する。
【0021】
教示用ポーズ計測部101は、カメラ201~204で取得された画像に従い、教示者11により把持される被把持物(マイクロピペット401、試験管402)の三次元位置及び/又は姿勢を計測する。具体的に教示用ポーズ計測部101は、前述の右マーカプレート301及び左マーカプレート302をカメラ201、202、203、204により撮像し、右マーカプレート301及び左マーカプレート302のそれぞれの3次元位置及び/又は姿勢を時系列で計測する。以下、物体の3次元位置、及び/又は姿勢のことを「ポーズ」と称する。換言すれば、「ポーズ」とは、被把持物の位置に加え(又はこれに代えて)、その傾きや回転などを含むデータであってもよい。教示用ポーズ計測部101は、マーカプレート301及び302、カメラ201~204、及びコンピュータ1内の演算処理部により構成される。また、教示用ポーズ計測部101は、被把持物であるマイクロピペット401や試験管402の少なくとも1つの基準点の軌道を、得られたポーズに基づいて計測及び/又は算出する。軌道のデータは、広義には基準点の位置の時系列データであり、連続する曲線のデータであってもよいし、飛び飛びの点列のデータであってもよい。
【0022】
教示用ポーズ記憶部102は、教示用ポーズ計測部101により計測された右マーカプレート301及び左マーカプレート302のポーズを時系列データとして記憶する。
【0023】
ロボット動作生成部103は、教示用ポーズ記憶部102により記憶された右マーカプレート301及び左マーカプレート302のポーズから、ロボット12の右ハンド610及び左ハンド620の把持中心(ツールセンタポイントとも称する)のポーズに変換し、これらの把持中心のポーズを実現するロボット12の関節変位のシーケンスを逆運動学計算の解として算出する。教示用ポーズが時系列データとして生成されている場合、ロボット動作生成部103で生成される動作データも、この教示用ポーズの時系列データと同期したデータとすることができる。両データが同期することにより、教示者11の動作を時間的にも正確に再現することが可能になる。ロボット動作生成部103は、被把持物であるマイクロピペット401や試験管402の少なくとも1つの基準点の軌道に基づき、関節変位のシーケンスを生成する。
【0024】
ロボット動作記憶部104は、ロボット動作生成部103により算出されたロボット12の右ハンド610及び左ハンド620の把持中心のポーズと関節変位の時系列データを記憶する。
【0025】
作業シナリオ編集部105は、ロボット動作記憶部104により記憶されたロボット12の右ハンド610及び左ハンド620の把持中心のポーズの時系列データ、及び関節変位の時系列データを、一定時間の単位動作のデータとして扱い、少なくとも1個の単位動作からなる一連の作業を「作業シナリオ」として記述する。作業シナリオ記憶部106は、作業シナリオ編集部105により記述された作業シナリオを記憶する。
【0026】
作業シナリオ実行部107は、作業シナリオ記憶部106により記憶された作業シナリオを順次解釈し、ロボット12の単位動作を実行するための関節軸駆動指令を出力する。関節軸制御部108は、作業シナリオ実行部107により出力されるロボット12の関節軸駆動指令を実行し、ロボット12の各関節軸を制御する。
【0027】
なお、教示対象とする作業の全工程を同一周期の時系列データとして計測する必要はない。例えば、精密な動作の再現性が求められる工程では、計測のサンプリング周期を短く設定する一方で、大まかな動作の再現が得られれば良い工程では、計測のサンプリング周期を長く設定することができる。さらに、動作の始点のポーズと終点のポーズのみが正確に再現されていれば良い作業もあり、この場合の教示用ポーズは、動作の始点のポーズと終点のポーズのみとすることができる。
【0028】
図2は、
図1に示す教示用ポーズ計測部101におけるカメラ201~204の配置の一例を示す。作業台10に向かって作業を行う教示者11が把持している被把持物(例:マイクロピペット401、試験管402)のポーズを計測するため、カメラ201~204が、作業台10を挟んで教示者11とは反対側に配置される。
【0029】
カメラ201~204の視野210は、作業台10上で互いに重複するように設定され、これにより作業台10上の作業領域が全てカバーされ、被把持物としての作業用ツール(マイクロピペット401)、及び被把持物としての作業対象物(試験管402)のポーズが撮像される。作業台10上には、モーションキャプチャの基準座標系となる作業台座標系2100(図中、ΣW)が設定され、モーションキャプチャにより計測される被把持物(作業用ツール、作業対象物)のポーズは、作業台座標系2100におけるポーズとして表現される。
【0030】
図3(a)及び(b)は、それぞれ、マーカプレート301、302の具体的な構成例を示す。マーカプレート301、302は、基板S1、S2を備えると共に、その基板S1、S2に反射マーカ311~314、321~324を配置して構成される。
図3(a)、(b)は、マーカプレート301、302に設定されたマーカプレート座標系3100(ΣRM)、3200(ΣLM)も示している。
【0031】
反射マーカ311~314は、基板S1に関し左右及び上下に非対称に配置されている。反射マーカ311~314配置パターンをコンピュータ1に登録しておけば、右マーカプレート301のポーズを計測することができる。また、左右及び上下に非対称な配置とすることにより、検出対象である被把持物の姿勢を容易に判定することができる。マーカプレート座標系3100は、反射マーカ311~314の配置パターンをモーションキャプチャシステムに登録する際に右マーカプレート301の中心を原点する座標系として定義する。
【0032】
同様に、反射マーカ321~324は、基板S2に関し左右及び上下に非対称に配置されている。なお、右マーカプレート301と左マーカプレート302の反射マーカの配置パターンはそれぞれ異なる配置パターンとすることができる。互いに異なる配置パターンとすることにより、教示用ポーズ計測部101は、右マーカプレート301、左マーカプレート302のそれぞれのポーズを、当該配置パターンに基づいて容易に識別することができる。なお、異なる配置パターンとする代わりに、反射マーカ311~314の色を、反射マーカ321~324とは異なるものとすることにより、左右の識別をすることも可能である。また、右マーカプレート301と左マーカプレート302とで、反射マーカの個数を変更することもできる。個数の違いに基づき、左右の識別が容易になる。
【0033】
図4は、マーカプレート301、302をマイクロピペット401と試験管402に取り付けた状態を示す。
図4(a)に示すように、マイクロピペット401には、右マーカプレート301を取り付けるためのアタッチメント410が用意される。同様に、
図4(b)に示すように、試験管402には左マーカプレート302を取り付けるためのアタッチメント420が用意される。マーカプレート301、302は、マイクロピペット401と試験管402に対し、その座標系3100、3200の軸の1つ(例えばX軸)が、マイクロピペット401及び試験管402の鉛直方向と略一致するように取り付けられる。
【0034】
図5は、
図4に示したアタッチメント410の分解図である。
図5(a)に示すように、アタッチメント410は、
図5に示す部品410a~gを、マイクロピペット401を囲いつつ組み立てることにより、マイクロピペット401に取り付けられる。具体的には、C字状部材410cをマイクロピペット401に嵌合させた後、半円状部材410a、410bを、C字状部材410cの外周の溝に嵌合させて固定する。その後、L字状部材410dを、C字状部材410cにネジ410e、410fによりネジ止めする。右マーカプレート301は、この組立後のアタッチメント410にネジ410gにより固定することができる。アタッチメント410は教示者11がマイクロピペット401を把持、操作する際の妨げとならないような形状及び位置を与えられており、教示者11が作業中にモーションキャプチャによりマイクロピペット401のポーズを計測しやすいようになっている。
【0035】
図5(b)に示すように、アタッチメント420は、C字状部材420aから構成され得る。C字状部材420aのC字状の部分は、試験管402の外径と略同一の内径を有し弾性力により試験管402を把持可能とされる。左マーカプレート302は、C字状部材420aの基部にネジ420bにより固定され得る。アタッチメント420は、教示者11が試験管402を把持、操作する際の妨げとならないような形状となっており、教示者11が作業中に試験管402のポーズを計測しやすいようになっている。当然のことながら、各マーカプレート301、302は、人が作業を教示する際にのみ、作業対象物または作業用ツールに取り付けられる。
【0036】
図6(a)は、ロボット12の左ハンド620により試験管402´が把持された状態を示す斜視図である。左ハンド620には2本の指620a、620bが備えられ、指620a、620bは、図示しないスライド駆動機構により左右方向に移動可能に構成されている。これらの指620a、620bにより試験管
402’が挟まれることで、試験管
402’が左ハンド620により把持される。
図6(b)、(c)は、それぞれ左ハンド620の側面図、上面図であり、左ハンド620の指620a、620bの把持中心に設定された左把持部座標系6200(図中、ΣLT)と、左ハンド620を取り付けるロボット12の左手首フランジ620cの中心に設定された左リンク先端座標系7200(図中、ΣLE)との位置関係が示されている。なお、図示は省略するが、ロボット12の右ハンド610は、左ハンド620と略同様の構造を有するものとすることができ、同様の要領でマイクロピペット401’を把持することができる。
【0037】
図7は、試験管402’を把持するロボット12の左ハンド620に設定された座標系7200と、左マーカプレート302に設定された左マーカプレート座標系3200の関係を示す図である。なお、
図7は、理解の容易のため、仮想的に、試験管402’にマーカプレート302が取り付けられた状態を示している。
【0038】
図7(a)、(b)に示すように、左マーカプレート座標系3200は、左把持部座標系6200をZ軸方向に距離Lmだけ平行移動したものであり、左把持部座標系6200は、左リンク先端座標系7200をZ軸方向に距離Ltだけ平行移動したものとなっている。これらの座標系の関係から、左マーカプレート302のポーズを計測すれば、そのときの左ハンド620の把持中心のポーズを算出でき、さらに左手首フランジ620cの中心のポーズを算出することができる。すなわち、ロボット動作生成部103は、被把持物を基準にした被把持物座標系(3100、3200)と、ロボット12の把持部を基準にした把持部座標系(6200、7200)との位置関係に基づいた座標変換により、ロボット12の把持部のポーズを計測及び/又は算出するよう構成される。また、ロボット動作生成部103は、ロボット12の把持部を基準にした把持部座標系と、ロボットの手首フランジの中心を基準にしたリンク先端座標系との位置関係に基づいた座標変換により、教示用ポーズからロボットのリンク先端のポーズを算出するよう構成される。そして、ロボット動作生成部103は、リンク先端のポーズの時系列データからロボット12の関節変位を逆運動学計算の解として算出し、関節変位のシーケンスを生成する。
【0039】
手首フランジ620cの中心のポーズが分かれば、ロボット12のアームのリンク機構における逆運動学計算の解としてロボット12のアームの関節変位のシーケンスが求められる。また、各座標系3200、6200、7200の位置関係は、上記のようなZ方向の平行移動した関係には限定されず、関係が既知であればよい。また、各座標系の位置関係は固定である必要は無く、関係が既知である限りおいて変動してもよい。
【0040】
なお、上記の例では、マーカプレートからの光を光学的にカメラ201~204で検知して被把持物のポーズを計測する例を示したが、これに代えて、被把持物の動きをホール素子等を用いて磁気式に検知するモーションキャプチャシステムを採用してもよい。又は、マーカプレートを用いず、被把持物や教示者11の動作をカメラで撮影し、その映像を解析するシステムを採用することもできる。
【0041】
図8のフローチャートを参照して、第1の実施の形態のロボット教示装置の動作を説明する。動作が開始されると(ステップS801)、教示者11がマイクロピペット401(作業用ツール)と試験管402(作業対象物)を用いた作業を実演する。その際、教示者11が自身の手に持ったマイクロピペット401及び試験管402のポーズを、カメラ201~204を含む教示用ポーズ計測部101により時系列で計測する(ステップS802)。
【0042】
次に、ステップS802で計測したマイクロピペット401及び試験管402のポーズを、教示用ポーズの時系列データとして教示用ポーズ記憶部102に記憶する(ステップS803)。さらに、マイクロピペット401及び試験管402のポーズの時系列データから、ロボット12の把持部(前述の右ハンド610、左ハンド620)の把持中心のポーズを算出する(ステップS804)。そして、算出されたロボット12の把持部のポーズを時系列データとして記憶する(ステップS805)。
【0043】
さらに、ロボット12の把持部のポーズの時系列データから、逆運動学計算の解としてロボット12の各アームの関節変位のシーケンスを算出する(ステップS806)。ここで算出した各アームの関節変位がロボット12の可動範囲を超える場合、又は算出した関節変位のシーケンスに従ってロボット12を駆動したならばロボット12と周囲構造物との間に干渉が発生する可能性があるか否かが判断される(ステップS807)。周囲構造物の位置や形状に関するデータは、予めロボット動作生成部103、具体的にはHDD8005等に保持されている。
【0044】
ロボット12の可動範囲を超えるか、又は干渉発生が予想される場合(NO)、ロボット12の把持部のポーズ(被把持物のポーズと同じ)、ステップS807以前では駆動対象に含めていなかったロボット12の腰部関節(腰軸)の位置、又はロボット12が搭載される台座の位置のいずれかを変更することにより、ロボット12の可動範囲内で周囲構造物との干渉が発生しない関節変位のシーケンスの解が探索される(ステップS808)。この結果、関節変位のシーケンスの解が得られた場合、ロボット動作生成部103は、ここで得られた関節変位の時系列データをロボット動作データとする。
【0045】
なお、ステップS806で算出した関節変位がロボット12の可動範囲内であり、算出した関節変位のシーケンスに従ってロボット12を駆動しても周囲構造物との間に干渉が発生しなければ、ここで算出した関節変位の時系列データをロボット動作データとする(ステップS807)。以上の処理により、ロボット12の関節変位のシーケンスが得られれば、ロボット12の把持部のポーズ、関節変位の時系列データ、腰軸位置、台座位置を併せて、最終的にロボット動作データとしてロボット動作記憶部104に記憶し、一連の処理を完了する(ステップS809)。
【0046】
図9は、
図8に示したロボット動作生成部103によるロボット12の把持部の位置の変更(ステップS808)の具体例を示す図である。
図9(a)は、ロボット12の右ハンド610及び左ハンド620(把持部)の相対的な位置及び姿勢の関係を保ったまま、ロボット12から見て前方向に把持部を平行移動した例を示している(例えば、ポーズ901から902にポーズを変更する)。
【0047】
同様に、
図9(b)は、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、ロボット12から見て右方向に把持部を平行移動した例を示している(例えば、ポーズ903から904にポーズ変更)。
図9(c)は、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、ロボット12から見て上方向に把持部を平行移動した例を示している(例えば、ポーズ905から906にポーズを変更)。
【0048】
前述の通り、教示用ポーズは作業台10上に設定された作業台座標系2100に従う
ポーズとして表現され得るが、作業台10´とロボット12の相対的な位置関係によっては、ロボット12の可動範囲内で動作ができない場合や、仮に可動範囲内の動作であったとしても作業台10´上の周囲構造物にロボット12が干渉する場合がある。このような場合には、教示用ポーズから単純にロボット12の動作を生成することができない。一方、
図9に示したように、把持部の相対的な位置及び姿勢の関係を保ったまま、把持部を平行移動しても教示した作業内容に影響がない場合が多く、ロボット12の可動範囲内で周囲構造物との干渉が発生しない、すなわち、ロボット12にとって動作しやすいポーズをとることが可能となる。
【0049】
図10を参照して、
図8のステップS808で説明した、ロボット動作生成部103におけるロボットの腰軸位置の変更の具体例を説明する。
図10(a)は、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、ロボット12から見て時計回り(右回り)に腰旋回軸を回転した例を示している(ポーズ1001から1002にポーズを変更)。
【0050】
同様に、
図10(b)は、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、ロボット12から見て前方向に腰傾斜軸を回転した例を示している(ポーズ1003から1004にポーズを変更)。このような腰軸位置の変更により、ロボット12にとって動作しやすいポーズをとることが可能となる。
【0051】
図11は、ロボット動作生成部103におけるロボットの台座位置の変更の例を示す図である。
図11(a)は、ロボット12が搭載される台座の位置をロボット12から見て前方向に移動した例を示している(ポーズ1101から1102へポーズを変更)。同様に、
図11(b)は、ロボット12が搭載される台座の位置をロボット12から見て右方向に移動した例を示している(ポーズ1103から1104へポーズを変更)。また、
図11(c)は、ロボット12が搭載される台座の位置をロボット12から見て上方向に移動した例を示している(ポーズ1105から1106にポーズを変更)。このような台座位置の変更により、ロボット12にとって動作しやすいポーズをとることが可能となる。
【0052】
なお、本実施の形態では、ロボット12が搭載される台座位置を変更する例を示したが、これに代えて、ロボット12を無人搬送車に搭載し、この無人搬送車の停止位置を変更することも可能である。
【0053】
図12のフローチャートを参照して、ロボット動作生成部103におけるロボットの把持部のポーズ、腰軸位置、台座位置の変更による関節変位のシーケンスの解を探索する処理(ステップS808)の詳細を説明する。教示用ポーズからロボット12の可動範囲内かつ周囲構造物との干渉が発生しない関節変位のシーケンスが逆運動学計算の解として得られない場合、まず、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、把持部のポーズを前後、左右、上下方向の少なくともいずれかの方向に変更し、ロボット12の可動範囲内で周囲構造物の干渉が発生しない関節変位のシーケンスの解を探索する(ステップS1202)。ここで、関節変位のシーケンスの解が得られれば処理を完了する(ステップS1203のYES、ステップS1209)。
【0054】
一方、関節変位のシーケンスの解が得られなければ(ステップS1203のNO)、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、腰部の腰軸のうち、旋回軸を回転させるか(
図10(a)参照)、又は傾斜軸を回転させるか(
図10(b)参照)のいずれか(又は両方)を実行して把持部の位置を変更し、ロボット12の可動範囲内で周囲構造物の干渉が発生しない関節変位のシーケンスの解を探索する(ステップS1204)。関節変位のシーケンスの解が得られれば処理を完了する(ステップS1205のYES)。一方、関節変位のシーケンスの解が得られなければ(ステップS1205のNO)、ステップS1206に移行する。
【0055】
ステップS1206では、ロボット12の把持部の相対的な位置及び姿勢の関係を保ったまま、台座の位置を前後、左右、上下方向の少なくともいずれかの方向に変更し、ロボット12の可動範囲内で周囲構造物との干渉が発生しない関節変位のシーケンスの解を探索する(ステップS1206)。関節変位のシーケンスの解が得られれば処理を完了する(ステップS1207のYES)。
【0056】
一方、関節変位のシーケンスの解が得られなければ(ステップS1207のNO)、教示用ポーズに対して最終的に解が得られなかったとして、エラー判定を行い(ステップS1208)、その判定結果をディスプレイ8009等に出力する。なお、最終的にエラーとなった場合は、教示のやり直しが必要となる。
【0057】
なお、
図11の動作例では、ロボット12の把持部のポーズ、腰軸位置、台座位置のそれぞれを変更し、関節変位の解を探索する例を示したが、これらを同時又は並行して変更して関節変位の解を探索しても良い。例えば、台座位置を前方向に変更し、且つさらにロボット12の把持部ポーズを上方向に平行移動することで、関節変位の解を探索しても良い。
【0058】
ロボット動作生成部103は、コンピュータ側で把持部の軌跡を自動演算してロボット動作として生成するものとすることができるが、
図13のように、ユーザの判断(選択)を介在させることも可能である。
図13は、ロボット動作生成部103におけるロボット12のハンド610、620の把持中心の動作軌跡を可視化した可視化画面1300の一例を示している。可視化画面1300は、ディスプレイ8009上に表示することができる。
【0059】
図13の可視化画面1300は、ロボット12の右ハンド610、及び左ハンド620の把持中心の動作軌跡を作業台座標系2100のXY平面に投影した軌跡を曲線で描画したものである。点線1301aは、計測された教示用ポーズを実現する場合において要求される右ハンド610の把持中心の軌跡を示し、黒い丸印は各時刻(t1~t12)の把持中心の位置を示す。
【0060】
曲線のうち、点線1301aは、教示用ポーズに対してロボット12の可動範囲内で周囲構造物の干渉が発生しない関節変位のシーケンスの解が得られた部分を示す(すなわち、教示用ポーズが要求する通りにロボット12を駆動可能である部分を示している)。一方、実線1301bは、ロボット12の可動範囲内の解が得られなかった部分を示している(すなわち、教示用ポーズが要求する通りにロボット12を駆動することは不可能である部分を示している)。また、実線1301bには、可動範囲超過(Limit over)を示すメッセージ1301cも併記される。
【0061】
同様に、点線1302aは左ハンド620の把持中心の軌跡を示し、黒い丸印は各時刻(t1~t12)の把持中心の位置を示す。曲線のうち、点線1302aは、教示用ポーズに対してロボット12の可動範囲内で周囲構造物の干渉が発生しない関節変位のシーケンスの解が得られた部分を示す。一方、実線1302bは、ロボット12の周囲構造物との干渉が発生する部分を示している。また、実線1302bには、干渉発生(Collision)を示すメッセージ1302cが併記されている。
【0062】
教示用ポーズの時系列データをロボット12の動作に変換した場合、ロボット12の可動範囲内で周囲構造物の干渉が発生しない関節変位のシーケンスの解が得られたデータ数が全体の時系列データに対してどれだけの割合であるかを動作再生率と定義する。可視化画面1301中に右アームの動作再生率1301d、左アームの動作再生率1302dが表示される。
【0063】
さらに、教示用ポーズに対してロボット12の可動範囲内の解が得られない場合、あるいは可動範囲内の解が得られたとしても周囲構造物との干渉が発生する場合には、可動範囲超過や干渉を解消するために推奨される解決策が、可視化画面1301中の解決策表示欄1303に表示される。ここで提示される解決策は、
図12に示した関節変位のシーケンスの解の探索により得られるものであり、
図13の例では、ロボット12の把持部を前方向(作業台座標系2100のX方向)へ30mmだけ平行移動する、という解決策が解決策表示欄1303に表示されている。ここで提示された解決策をロボット12のユーザが選択すれば、それに基づいて最終的なロボット動作データが生成される。
【0064】
図14は、
図1に示す作業シナリオ編集部105におけるユーザインタフェース画面の概略を示す図である。このユーザインタフェース画面は、ディスプレイ8009に表示され得る。
【0065】
作業シナリオ編集部105のユーザインタフェース画面は、ロボット単位動作表示部1401、ロボット状態表示部1402、及び作業シナリオ記述部1403を備える。ロボット単位動作表示部1401は、ロボット動作記憶部104に記憶されたロボット12の単位動作を選択し、この単位動作を2次元または3次元の動画、あるいはロボット12の把持部の軌跡として表示する。
【0066】
ロボット状態表示部1402は、ロボット単位動作表示部1401に表示されるロボット12の関節変位、ロボット12の把持部のポーズ、ロボット12が搭載される台座の位置などの状態を表示する。作業シナリオ記述部1403は、ロボット12の一連の作業シナリオをフローチャート形式で記述し、ここにロボット動作記憶部
104に記憶されたロボット12の単位動作だけでなく、ロボット12の把持部の動作、ロボット12が把持する被把持物の操作、単位動作の前後の条件分岐処理、単位動作の繰り返し処理などを記述可能とする。ユーザは、この作業シナリオ記述部1403において作業シナリオを確認し、作業の追加、変更、削除などの編集を行うことができる。例えば、
図14に示すように、作業シナリオ記述部1403において、単位動作Scene#1とScene#2の間に、新たな単位動作を追加することができる。
【0067】
以上に述べたように、本実施形態によれば、人の実作業の動作をロボットの作業動作に変換する際、ロボットの可動範囲内で周囲構造物との干渉が発生しない関節変位の解を探索し、ロボットが実行可能な動作を生成できるため、人の実作業に基づいてロボットの作業動作を容易に教示でき、ロボットシステムの開発効率を向上させることができる。
【0068】
なお、上記の実施形態では、作業シナリオをフローチャート形式で記述する例を示したが、これに代えて、状態遷移図、タイミングチャートなどの形式を用いて記述しても良い。
【0069】
[第2の実施の形態]
次に、第2の実施形態に係るロボット教示装置及び作業教示方法について、
図15~
図16を参照して説明する。第2の実施の形態のロボット教示装置は、ハードウェアの全体構成は第1の実施の形態(
図1~
図6)と同様であるので、重複する説明は以下では省略する。また、ロボットへの教示の手順も第1の実施の形態と基本的には同様である(
図8)。ただし、この第2実施の形態は、作業シナリオの編集の手順において、第1の実施の形態とは異なる動作を含んでいる。
【0070】
図15のフローチャートを参照して、第2の実施の形態において、作業シナリオ編集部105において、単位動作を作業シナリオに追加する処理を行う場合の動作の例を説明する。
【0071】
まず、ロボット動作記憶部に記憶された単位動作が読み出され、作業シナリオ記述部1403(
図14)において、各単位動作がその動作順に記述される。なお、このような単位動作のことを「シーン」と称することとする。
【0072】
ユーザは、作業シナリオ記述部1403において、シーンの列として記述されたシナリオを見て、追加したいシーンを、登録シーンのメニューの中から1つ選択する(ステップS1502)。
【0073】
次に、追加するシーンを、例えば作業シナリオの直前のシーンに接続する(ステップS1503)。ここで、直前のシーンの終了時のロボット12のポーズと、追加するシーンの開始時のポーズが一致するか否かが判定される(ステップS1504)。一致しなければ(NO)、ロボット12の可動範囲内かつ周囲構造物との干渉がないように、シーン間を連続的に補間して接続するロボット12の関節変位のシーケンス(関節軌道とも称する)を生成する(ステップS1505)。
【0074】
一方、直前のシーンの終了時のロボット12のポーズと追加するシーンの開始時のポーズが一致していれば(ステップS1505)、作業シナリオを終了するかどうかを判定する。作業シナリオを終了しない場合には、ステップS1502に戻り(ステップS1506)、さらにシーンをメニューから選択し、作業シナリオに追加する。一方、作業シナリオを終了する場合、処理フローを完了する(ステップS1506)。
【0075】
図16は、作業シナリオ編集部105においてシーンを挿入する場合の実行画面の例を示している。
図16(a)では、シーン1601(Scene#1)とシーン1602(
Scene#2)との間に新たなシーンを接続しようとしたとき、直前のシーン1601の終了時のロボット12のポーズと、追加するシーンの開始時のポーズが一致していないこと(Inconsistent pose)がメッセージ1603として表示されている。
図16(b)では、直前のシーンの終了時のポーズと追加するシーンの開始時のポーズを補間して接続する関節軌道1604が自動的に挿入され、このように接続する関節軌道が生成されたことがメッセージ1605として表示されている。
【0076】
[その他]
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0077】
1…ロボット教示装置、 10…作業台、11…教示者、 12…ロボット、 201、202、203、204…カメラ、 210…カメラの視野、 301、302…マーカプレート、 311~314、321~324…反射マーカ、 401、401´…マイクロピペット、402、402´…試験管、 410、420…アタッチメント、 610…右ハンド、 620…左ハンド、 620a、620b…左ハンド620の指、 620c…左手首フランジ、 2100…作業台座標系、 3100…右マーカプレート座標系、 3200…左マーカプレート座標系、 6200…左把持部座標系、7200…左リンク先端座標系、 8001…CPU、 8002…GPU、 8003…ROM、 8004…RAM、 8005…ハードディスクドライブ(HDD)、 8006…表示制御部、 8007…入出力制御部、 8008…通信制御部、 8009…ディスプレイ(表示部)、 8010キーボード、 8011…マウス。