IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ハイテクノロジーズの特許一覧

<>
  • 特許-ロボットの作業教示装置 図1
  • 特許-ロボットの作業教示装置 図2
  • 特許-ロボットの作業教示装置 図3
  • 特許-ロボットの作業教示装置 図4
  • 特許-ロボットの作業教示装置 図5
  • 特許-ロボットの作業教示装置 図6
  • 特許-ロボットの作業教示装置 図7
  • 特許-ロボットの作業教示装置 図8
  • 特許-ロボットの作業教示装置 図9
  • 特許-ロボットの作業教示装置 図10
  • 特許-ロボットの作業教示装置 図11
  • 特許-ロボットの作業教示装置 図12
  • 特許-ロボットの作業教示装置 図13
  • 特許-ロボットの作業教示装置 図14
  • 特許-ロボットの作業教示装置 図15
  • 特許-ロボットの作業教示装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-28
(45)【発行日】2024-09-05
(54)【発明の名称】ロボットの作業教示装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240829BHJP
   B25J 13/08 20060101ALI20240829BHJP
【FI】
B25J9/22 A
B25J13/08 A
【請求項の数】 10
(21)【出願番号】P 2023506404
(86)(22)【出願日】2021-03-15
(86)【国際出願番号】 JP2021010391
(87)【国際公開番号】W WO2022195680
(87)【国際公開日】2022-09-22
【審査請求日】2023-09-06
(73)【特許権者】
【識別番号】501387839
【氏名又は名称】株式会社日立ハイテク
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】石川 慎一
(72)【発明者】
【氏名】小山 昌宏
(72)【発明者】
【氏名】井上 智博
(72)【発明者】
【氏名】高橋 弘樹
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2015-071206(JP,A)
【文献】特開2015-054378(JP,A)
【文献】特開2012-228757(JP,A)
【文献】特開2018-167334(JP,A)
【文献】特開2018-167361(JP,A)
【文献】特開2008-207262(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
教示者による作業をロボットに教示するロボットの作業教示装置であって、
前記教示者の動作を複数の方向から撮像する撮像部と、
前記教示者により把持される物体の位置及び姿勢である教示用ポーズを前記撮像部により計測する教示用ポーズ計測部と、
前記教示者により移動される前記物体が位置決めされたことを検出する位置決め検出部と、
前記教示者により前記物体が把持されたことを検出する把持動作検出部と、
前記教示者により前記物体が有する機能を操作することが行われたことを検出する機能操作検出部と、
前記教示者による前記物体への作業状態の確認が行われたことを検出する作業状態確認動作検出部と、
前記教示用ポーズ計測部と前記位置決め検出部と前記把持動作検出部と前記機能操作検出部と前記作業状態確認動作検出部とからの信号を受けて前記教示者の動作ごとに分割した前記ロボットの教示プログラムを生成する教示プログラム生成部と、
前記教示プログラム生成部で生成した教示プログラムを実行する教示プログラム実行部と、
を備えたことを特徴とするロボットの作業教示装置。
【請求項2】
請求項1記載のロボットの作業教示装置であって、
表示部を更に備え、前記表示部には、前記教示プログラム生成部で生成した前記ロボットの前記教示プログラムをシーケンシャル・ファンクション・チャート形式で表示する第1の領域と、前記第1の領域に表示された前記シーケンシャル・ファンクション・チャート形式の前記教示プログラムから選択したステップで実行されるコマンド列を表示する第2の領域と、前記第1の領域に表示された前記シーケンシャル・ファンクション・チャート形式の前記教示プログラムから選択したトランジションで判定される条件式を表示する第3の領域とを備えることを特徴とするロボットの作業教示装置。
【請求項3】
請求項1記載のロボットの作業教示装置であって、
前記位置決め検出部で前記教示者により移動される前記物体が位置決めされたことを検出することと、前記把持動作検出部で前記教示者により前記物体が把持されたことを検出することと、前記機能操作検出部で前記教示者により前記物体が有する機能の操作が行われたことを検出することと、前記作業状態確認動作検出部で前記教示者による前記物体への作業状態の確認が行われたことを検出することとを、前記教示用ポーズ計測部で前記教示者による教示用ポーズを計測することと同期して行うことを特徴とするロボットの作業教示装置。
【請求項4】
請求項1記載のロボットの作業教示装置であって、
前記教示者による前記物体の位置決め又は前記物体の把持動作又は前記物体が有する機能の操作を検出する操作検出部と、前記物体の位置決め又は前記物体の把持動作又は前記物体が有する機能の操作が行われたことを前記教示者が入力する入力部とを更に備え、
前記教示用ポーズ計測部と前記位置決め検出部と前記把持動作検出部と前記機能操作検出部と前記作業状態確認動作検出部とは、前記撮像部又は前記操作検出部又は前記入力部からの信号を受けて処理した信号を前記教示プログラム生成部に出力することを特徴とするロボットの作業教示装置。
【請求項5】
請求項4記載のロボットの作業教示装置であって、前記教示プログラム生成部は、前記位置決め検出部からの信号、又は、前記操作検出部からの信号、又は、前記入力部からの信号を受けたタイミングごとに分割して前記ロボットの教示プログラムを生成することを特徴とするロボットの作業教示装置。
【請求項6】
請求項4記載のロボットの作業教示装置であって、
前記位置決め検出部は、前記撮像部で撮像した前記教示者の動作が一定時間変動しないことを以って、又は、前記操作検出部で検出された信号又は前記教示者が前記入力部に入力した信号を受けて、前記教示者により移動される前記物体が位置決めされたことを検出することを特徴とするロボットの作業教示装置。
【請求項7】
請求項4記載のロボットの作業教示装置であって、
前記操作検出部は前記教示者が手指に装着した感圧スイッチを含み、前記入力部は前記教示者が足元で操作するフットスイッチまたは前記教示者の音声を入力するマイクロフォンの何れかを備え、前記把持動作検出部は、前記感圧スイッチ、又は前記フットスイッチ、又は前記マイクロフォンからの出力信号を受けて前記教示者による前記物体の把持動作が行われたことを検出することを特徴とするロボットの作業教示装置。
【請求項8】
請求項4記載のロボットの作業教示装置であって、
前記操作検出部は前記教示者が手指に装着した感圧スイッチを含み、前記入力部は前記教示者が足元で操作するフットスイッチまたは前記教示者の音声を入力するマイクロフォンの何れかを備え、前記機能操作検出部は、前記感圧スイッチ、又は前記フットスイッチ、又は前記マイクロフォンからの出力信号を受けて前記教示者による前記物体が有する機能の操作が行われたことを検出することを特徴とするロボットの作業教示装置。
【請求項9】
請求項4記載のロボットの作業教示装置であって、
前記操作検出部は前記教示者が手指に装着した感圧スイッチを含み、前記入力部は前記教示者が足元で操作するフットスイッチまたは前記教示者の音声を入力するマイクロフォンの何れかを備え、前記作業状態確認動作検出部は、前記感圧スイッチ、又は前記フットスイッチ、又は前記マイクロフォンからの出力信号を受けて前記教示者による前記物体への作業状態の確認が行われたことを検出することを特徴とするロボットの作業教示装置。
【請求項10】
請求項1記載のロボットの作業教示装置であって、
前記教示プログラム生成部で生成する前記教示者の動作ごとに分割した前記ロボットの教示プログラムは、前記把持された物体の位置決め点で区切られた単位動作ごとに分割され、前記単位動作内に含まれる前記教示用ポーズと前記ロボットにより把持される前記物体と同種の物体の位置及び姿勢が一致するように前記ロボットの動作を生成するように記述した前記ロボットの教示プログラムであることを特徴とするロボットの作業教示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人の作業動作をロボットに教示するためのロボットの作業教示装置に関する。
【背景技術】
【0002】
特許文献1のロボット教示システムは、ロボットの教示位置を指定するためのボタンを備えた教示ツールを教示者がロボットを動作させたい位置に合わせ、ここでボタンを押すことで教示位置を指定し、このときの教示ツールの位置及び姿勢をステレオカメラで計測して、これをロボットの教示位置として決定し、さらに、ここで決定した教示位置の間を補間してロボットを動作させる教示プログラムを生成するように構成されている。
【0003】
また、特許文献2には、画像情報を含む作業情報を取得する取得装置を備えたロボット教示システムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-136275号公報
【文献】国際公開WO2019/064752号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボットの手首部に備えられたハンドにより、様々な作業対象物や作業用ツールを把持し、さらに作業用ツールが有する各種機能を操作しながら、一連の作業をロボットにより実行させる場合、このような作業対象物や作業用ツールの把持や操作に関するコマンドをロボットの教示位置のシーケンス(ロボットの移動経路)に関連付けながら、ロボットの教示プログラムの中に記述する必要がある。
【0006】
また、ロボットの一連の作業の各工程の区切りにおいて、現在の工程が正常終了したかどうかを判断し、次の工程に移行する処理もロボットの教示プログラムの中に記述すべき内容である。例えば、工程の最後に作業対象物の状態を画像認識し、事前に記憶していた目標状態と同じになっていれば正常終了、そうでなければ異常終了と判定する処理が教示プログラムの中に記述される。
【0007】
以上のようなロボットの教示プログラムの記述は、特許文献1で述べられたロボットの動作位置の教示とは別に、教示者が一つ一つ入力する必要があり、ロボットに実行させる作業内容が複雑になると、このような教示者による入力作業及びデバッグ作業が増加し、教示プログラムの開発工数が増大する原因となっていた。
【0008】
また、特許文献2に開示されたロボット教示システムにおいても、ロボットによる被把持物への操作や作業状態の検出を教示することを、ロボットの動作位置の教示とは別に、教示者が一つ一つ入力する必要があり、教示者による入力作業及びデバッグ作業が増加し、教示プログラムの開発工数が増大する原因となっていた。
【0009】
本発明は、上述のような課題を解決するためになされたもので、教示者が一連の作業を実演する際の作業対象物や作業用ツールなどの被把持物の動作を計測するとともに、この計測と同期して、教示者が被把持物の把持や操作、作業状態確認を行ったことを検出することで、ロボットに一連の作業を実行させるための教示プログラムを生成するロボットの作業教示装置及び作業教示方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記した課題を解決するために、本発明では、教示者による作業をロボットに教示するロボットの作業教示装置を、教示者の動作を複数の方向から撮像する撮像部と、この撮像部により教示者により把持される物体(作業対象物や作業用ツールなど)の位置及び姿勢である教示用ポーズを計測する教示用ポーズ計測部と、教示者により移動される物体が位置決めされたことを検出する位置決め検出部と、教示者により物体が把持されたことを検出する把持動作検出部と、教示者により物体が有する機能が操作されたことを検出する機能操作検出部と、教示者による物体への作業状態の確認が行われたことを検出する作業状態確認動作検出部と、教示用ポーズ計測部と位置決め検出部と把持動作検出部と機能操作検出部と作業状態確認動作検出部とからの信号を受けて教示者の動作ごとに分割したロボットの教示プログラムを生成する教示プログラム生成部と、この教示プログラム生成部で生成した教示プログラムを実行する教示プログラム実行部とを備えて構成した。
【発明の効果】
【0012】
本発明よれば、人の作業をロボットの作業に変換する際、人が作業で用いる作業対象物または作業用ツールなどの被把持物を用いて通常通りに作業を実演するだけで、ロボットに一連の作業を実行させるための教示プログラムを、ロボットの移動経路の記述だけでなく、ロボットにより把持される被把持物の把持、被把持物の機能操作、作業状態確認の記述も含めて生成できるため、ロボットの作業教示が容易になり、教示プログラムの開発効率を向上させるという効果がある。
【図面の簡単な説明】
【0013】
図1】本発明の一実施例に係るロボットの作業教示装置1の全体構成を説明するブロック図である。
図2】教示用ポーズを計測するカメラ201~204を作業台10に対して配置した例を示す平面図である。
図3】(a)は、教示用ポーズを計測するためのマーカープレート311を取り付けたマイクロピペット310の斜視図、(b)は、教示用ポーズを計測するためのマーカープレート321を取り付けた試験管320の斜視図である。
図4】(a)は、教示者11による被把持物の位置決め、把持、機能操作を検出する感圧スイッチ411~416を内蔵した教示用グローブ410の斜視図、(b)は、教示者11が手に装着してマイクロピペット310を把持している例を示す教示用グローブ410の斜視図である。
図5】教示者11による被把持物の位置決め、把持、機能操作を入力するフットスイッチ501、教示者11の音声を入力するマイクロフォン502を使用している例を示す教示者11とその周辺の斜視図である。
図6】マイクロピペット310を用いて試薬を試験管320に分注する作業の手順を示すフローチャートである。
図7】作業台10の上でマイクロピペット310を用いて分注作業を行った際のマイクロピペット310の移動経路と、これを教示用ポーズの部分シーケンスとして分割した例を模式的に示す、ピペットスタンド701とチップボックス702と試薬ボトル704を載置した作業台10の正面図である。
図8】教示プログラム生成部106の処理の手順を示すフローチャートである。
図9図8に示した教示プログラム生成部106の処理の手順の続きを示すフローチャートである。
図10】(a)は、教示プログラム生成部106で生成される教示用ポーズの部分シーケンスのデータの例を示す表、(b)は、教示プログラム生成部106で生成される教示用ポーズの部分シーケンスから生成されるロボットの関節変位のシーケンスのデータの例を示す表である。
図11】教示プログラム生成部106により生成されるロボットの教示プログラムをシーケンシャル・ファンクション・チャートの形式で表した例を示す図である。
図12図11に示したシーケンシャル・ファンクション・チャートを教示プログラム編集部107で編集した例を示す図である。
図13図12に示したシーケンシャル・ファンクション・チャートを教示プログラム編集部107でさらに編集した例を示す図である。
図14】(a)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs2のアクションとして記述されたコマンド列1401を示す図、(b)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs2におけるアクションの出力側のトランジションt201の処理として記述された遷移条件式1402の内容を示す図、(c)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs4の処理として記述されたコマンド列1403を示す図、(d)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs4におけるアクションの出力側のトランジションt401の処理として記述された遷移条件式1404の内容を示す図、(e)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs6の処理として記述されたコマンド列1405を示す図、(f)は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップs6におけるアクションの出力側のトランジションt601の処理として記述された遷移条件式1406の内容を示す図である。
図15】(a)は、教示プログラム編集部107を操作して図11~13に示したシーケンシャル・ファンクション・チャートのステップs4の処理を編集している画面1501の正面図、(b)は、教示プログラム編集部107を操作して図11~13に示したシーケンシャル・ファンクション・チャートのトランジションt401の遷移条件式を編集している画面1503の正面図である。
図16】教示プログラム実行部108の処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
本発明の実施形態に係るロボットの作業教示装置は、教示者が一連の作業を実演することで被把持物の動作をロボットで再生できる教示プログラムを生成するロボット教示装置であって、カメラやセンサなどで被把持物の位置及び姿勢を時系列に計測し、それと同期して被把持物に対する位置決め、把持、機能操作、確認動作を検出することで、位置決めされたタイミングで被把持物の時系列データを分割し、被把持物の把持、機能操作、確認動作を検出したタイミングでそれらコマンドを実行することが記述された、教示プログラムを自動で生成できるようにしたものである。
【0015】
これにより、ロボットの作業教示装置において、従来は、被把持物に対する操作や作業状態確認を実行するために、ロボットの動作教示後に操作内容や作業状態確認処理を別途プログラムする必要があったものを、本発明によれば、被把持物の機能操作を含む教示プログラムを自動で生成できるようにした。
【0016】
すなわち、本発明に係るロボットの作業教示装置においては、教示者により把持される被把持物の位置及び姿勢を教示用ポーズとして計測し、これと同期して、被把持物が位置決めされたことを検出し、この位置決めが検出されたタイミングで教示用ポーズのシーケンスを分割して教示用ポーズの部分シーケンスとして記憶する。さらに、教示用ポーズの計測と同期し、被把持物の把持、被把持物の有する機能の操作、作業状態の確認が行われたことを検出し、これらが検出されたタイミングで実行される被把持物の把持、被把持物の機能操作、作業状態確認の行為として記憶する。
【0017】
そして、これらの情報に基づいて、ロボットにより把持される被把持物の位置及び姿勢が教示用ポーズの部分シーケンスに含まれる各教示用ポーズと同一の位置及び姿勢となるよう、教示用ポーズの部分シーケンスをロボットの関節変位のシーケンスに変換、実行するコマンドを生成し、これを教示者が教示した順に従って実行するとともに、被把持物の把持、被把持物の機能操作、作業状態確認を行うコマンドを生成し、これを被把持物の把持、被把持物の機能操作、作業状態確認の行為が検出されたタイミングで実行するように記述されたロボットの教示プログラムを生成する。さらに、ここで生成したロボットの教示プログラムを実行することで、教示者が実演した作業と同じようにロボットに一連の作業を実行させるようにした。
【0018】
また、本発明の実施形態に係るロボットの作業教示方法は、教示者により把持される被把持物の位置及び姿勢を教示用ポーズとして計測し、これと同期して、被把持物が位置決めされたことを検出し、この位置決めが検出されたタイミングで教示用ポーズのシーケンスを分割して教示用ポーズの部分シーケンスとして記憶する。さらに、教示用ポーズの計測と同期し、被把持物の把持、被把持物の有する機能の操作、作業状態の確認が行われたことを検出し、これらが検出されたタイミングで実行される被把持物の把持、被把持物の機能操作、作業状態確認の行為として記憶する。これらの情報に基づいて、ロボットにより把持される被把持物の位置及び姿勢が教示用ポーズの部分シーケンスに含まれる各教示用ポーズと同一の位置及び姿勢となるよう、教示用ポーズの部分シーケンスをロボットの関節変位のシーケンスに変換、実行するコマンドを生成し、これを教示者が教示した順に従って実行するとともに、被把持物の把持、被把持物の機能操作、作業状態確認を行うコマンドを生成し、これを被把持物の把持、被把持物の機能操作、作業状態確認の行為が検出されたタイミングで実行するように記述されたロボットの教示プログラムを生成する。さらに、ここで生成したロボットの教示プログラムを実行することで、教示者が実演した作業と同じようにロボットに一連の作業を実行させる。
【0019】
以下、図面を参照して本発明の実施例を説明する。
【実施例
【0020】
図1は、本発明の一実施例に係るロボットの作業教示装置1の全体構成を説明する概略図である。
【0021】
ロボットの作業教示装置1は、教示者11が把持する被把持物の3次元位置及び姿勢を計測するためのカメラ201~204と被把持物に取り付けた右マーカープレート311、左マーカープレート321、教示者11により把持される被把持物の位置決め、把持動作、機能操作、作業状態確認を検出するための後述の各種デバイス、作業教示に関わる各演算処理部を実行するコンピュータ100から構成される。
【0022】
ロボットの作業教示装置1において、教示者11はロボット12への教示のため、作業台10に向かって作業を行う。例えば、教示者11は、右手で把持した作業用ツールであるマイクロピペット310により、左手で把持した作業対象物である試験管320に試薬を分注する。以下、これらの教示者11により把持される被把持物を第1被把持物と称する。マイクロピペット310にはモーションキャプチャ用の右マーカープレート311が取り付けられる。試験管320にはモーションキャプチャ用の左マーカープレート321が取り付けられる。
【0023】
ここで、右マーカープレート311及び左マーカープレート321のそれぞれには、モーションキャプチャするための反射マーカーが固有の配置で取り付けられており、カメラ201、202、203、204により撮像された際に、右マーカープレート311と左マーカープレート321のそれぞれが区別して認識され、それぞれのプレートの中心に設定されたマーカー座標系の位置及び姿勢が計測される。なお、マイクロピペット310及び試験管320は、教示者11により把持される被把持物の一例であり、被把持物はこれらに限定されるものではない。
【0024】
ロボット12は、作業台10と同様の作業台10'に向かって設置され、その右ハンドで把持したマイクロピペット310'により、左ハンドで把持した試験管320'に試薬を分注するよう教示される。以下、これらのロボット12により把持される被把持物を第2被把持物と称する。マイクロピペット310'及び試験管320'(第2被把持物)は、教示者11により把持されるマイクロピペット310及び試験管320(第1被把持物)に対応するものである。マイクロピペット310'及び試験管320'は、マイクロピペット310及び試験管320と同一の形状とすることができるが、完全に同一である必要はなく、形状の差異が把握されている限りにおいて、同種のものであればよく、形状や材質その他の性状において異なるものであってもよい。
【0025】
なお、図示の例では、ロボット12は左アーム121と右アーム122を備えた双腕のロボットであるが、これに限定されるものではない。例えば、ロボットは、右腕の単腕のロボットと、左腕の単腕のロボットとの2つのロボットの組み合わせであってもよい。その2つのロボットは、それぞれ異なる種類のロボットであってもよい。また、教示者の2本の腕の作業を、3本以上のアームを有するロボットにより再現することも可能である。また、ロボット12は、図示のような人間の体型を模擬したものには限定されず、所期の動作が可能である限り、特定の形状には限定されない。
【0026】
教示用ポーズ計測部101は、カメラ201~204で取得された画像から教示者11により把持される被把持物(マイクロピペット310、試験管320)の3次元位置及び姿勢を計測する。具体的には、教示用ポーズ計測部101は、右マーカープレート311及び左マーカープレート321をカメラ201、202、203、204により撮像し、右マーカープレート311及び左マーカープレート321のそれぞれの3次元位置及び姿勢を時系列で計測する。以下、物体の3次元位置及び姿勢のことを「ポーズ」と称する。すなわち、「ポーズ」とは、被把持物の位置だけでなく、その傾きや回転を含むデータである。
【0027】
位置決め検出部102は、教示者11による教示作業中に、教示用ポーズ計測部101による被把持物のポーズ(以下、教示用ポーズと称する)の計測と同期して、被把持物が位置決めされたことを検出する。具体的には、教示用ポーズ計測部101により計測される被把持物のポーズが一定時間変動しないことをもって被把持物の位置決めを検出するか、後述する教示者11が手指に装着した感圧スイッチ413~416(図4参照)、教示者11が足元で操作するフットスイッチ501(図5参照)、あるいは教示者11の音声を入力するマイクロフォン502(図5参照)のいずれかにより、被把持物が位置決めされたことを検出する。
【0028】
把持動作検出部103は、教示者11による教示作業中に、教示用ポーズ計測部101による教示用ポーズの計測と同期して、被把持物の把持動作を検出する。具体的には、後述する教示者11が手指に装着した感圧スイッチ413~416(図4参照)、教示者11が足元で操作するフットスイッチ501(図5参照)、あるいは教示者11の音声を入力するマイクロフォン502(図5参照)のいずれかからの信号を受けて、被把持物の把持動作(把持/解放)を検出する。
【0029】
機能操作検出部104は、教示者11による教示作業中に、教示用ポーズの計測と同期して、被把持物が有する機能の操作が行われたことを検出する。具体的には、後述する教示者11が手指に装着した感圧スイッチ411、412(図4参照)、教示者11が足元で操作するフットスイッチ501(図5参照)、あるいは教示者11の音声を入力するマイクロフォン502(図5参照)のいずれかからの信号を受けて、被把持物が有する機能の操作(例えば、マイクロピペット310の吸引・吐出ボタン313の押し動作など)が行われたことを検出する。
【0030】
作業状態確認動作検出部105は、教示者11による教示作業中に、教示用ポーズの計測と同期して、作業状態の確認が行われたことを検出する。具体的には、後述する教示者11が手指に装着した感圧スイッチ413~416(図4参照)、教示者11が足元で操作するフットスイッチ501(図5参照)、あるいは教示者11の音声を入力するマイクロフォン502(図5参照)のいずれかからの信号を受けて、作業状態確認(例えば、ロボット12に備えられたカメラ画像認識機能による作業状態確認など)が行われたことを検出する。
【0031】
教示プログラム生成部106は、教示者11による教示作業中に、教示者11により把持される被把持物(第1被把持物)が位置決めされたことを検出したタイミングで教示用ポーズの時系列データ(シーケンス)を分割し、これを教示用ポーズの部分シーケンスとして記憶する。また、第1被把持物の把持動作、第1被把持物の機能操作が検出されたタイミングでこれらを第1被把持物に対する動作として記憶し、作業状態確認が検出されたタイミングでこれを作業状態確認動作として記憶する。
【0032】
以上の情報に基づき、ロボット12により把持される被把持物(第2被把持物)のポーズが教示用ポーズの部分シーケンスに含まれる各教示用ポーズと同一のポーズとなるように、教示用ポーズの部分シーケンスをロボット12の関節変位のシーケンスに変換、実行するコマンドを生成し、これを教示者11が教示した順に従って実行するとともに、第2被把持物に対する動作を行うコマンドを生成し、これを第1被把持物に対する動作が検出されたタイミングで実行し、さらに作業状態確認を行うコマンドを生成し、これを作業状態確認が検出されたタイミングで実行するように記述されたロボット12の教示プログラムを生成する。
【0033】
教示プログラム編集部107は、教示プログラム生成部106により生成されたロボット12の教示プログラムに対し、教示者11が後述のグラフィカル・ユーザ・インタフェースなどを介して、修正、追加などの編集を行えるようにするツールである。
【0034】
教示プログラム実行部108は、教示プログラム生成部106により生成されたロボット12の教示プログラム、または教示プログラム編集部107により編集されたロボット12の教示プログラムに記述されたコマンドを順次解釈し、ロボット12の動作を実行するための関節駆動指令、ロボット12の手先に備えられたハンドの駆動指令などを出力し、ロボット12の各関節軸、ハンドなどを制御する。
【0035】
図2は、図1に示す教示用ポーズ計測部101に接続されるカメラ201~204の配置の一例を示す。作業台10に向かって作業を行う教示者11が把持している被把持物(図1で示したマイクロピペット310、試験管320など)のポーズを計測するため、カメラ201~204が、作業台10を挟んで教示者11とは反対側に配置される。
【0036】
カメラ201~204の視野210は、作業台10上で互いに重複するように設定され、これにより作業台10上の作業領域が全てカバーされ、被把持物としての作業用ツールや作業対象物のポーズが撮像される。作業台10上には、モーションキャプチャの基準座標系となる作業台座標系2100(図中、ΣW)が設定され、モーションキャプチャにより計測される被把持物(作業用ツール、作業対象物)のポーズは、作業台座標系2100におけるポーズとして表現される。
【0037】
図3(a)は、右マーカープレート311をマイクロピペット310に取り付けた状態、図3(b)は、左マーカープレート321を試験管320に取り付けた状態を示す。マイクロピペット310は、吸引・吐出ボタン313を備える。図3(a)に示すように、マイクロピペット310には、右マーカープレート311を取り付けるためのアタッチメント312が装着される。同様に、図3(b)に示すように、試験管320には左マーカープレート321を取り付けるためのアタッチメント322が装着される。
【0038】
右マーカープレート311は、マイクロピペット310に対して、右マーカープレート311に設定された右マーカープレート座標系3100(図中、ΣRM)の軸の1つ(例えば、X軸)が、マイクロピペット310の鉛直方向と略一致するように取り付けられる。同様に、左マーカープレート321は、試験管320に対して、左マーカープレート321に設定された左マーカープレート座標系3200(図中、ΣLM)の軸の1つ(例えば、X軸)が試験管320の鉛直方向と略一致するように取り付けられる。
【0039】
右マーカープレート311、左マーカープレート321の基板には、それぞれ4個ずつの反射マーカー311a~311d、321a~321dが配置される。図3(a)に示した反射マーカー311a~311dは、右マーカープレート311の基板上で左右及び上下に非対称に配置される。反射マーカー311a~311dの配置パターンを教示用ポーズ計測部101に登録しておけば、右マーカープレート311のポーズを計測できる。また、左右及び上下に非対称な配置とすることにより、計測対象である右マーカープレート311の姿勢を容易に判定できる。右マーカープレート座標系3100は、反射マーカー311a~311dの配置パターンを登録する際に、右マーカープレート311の中心を原点する座標系として定義する。
【0040】
同様に、図3(b)に示した反射マーカー321a~321dは、左マーカープレート321の基板上で左右及び上下に非対称に配置される。右マーカープレート311と左マーカープレート321の反射マーカーの配置パターンを互いに異なる配置パターンとすることにより、教示用ポーズ計測部101は右マーカープレート311と左マーカープレート321のそれぞれを当該配置パターンに基づき容易に識別できる。
【0041】
なお、異なる配置パターンとする代わりに、図3(a)の反射マーカー311a~311dの大きさや色を図3(b)の反射マーカー321a~321dとは異なるものとすることで、左右を識別することも可能である。また、図3(a)のマーカープレート311と図3(b)のマーカープレート321のそれぞれの反射マーカーの個数を変えて、個数の違いに基づき左右を識別することも可能である。
【0042】
図4は、図1に示した各検出部102~105の検出デバイスとして用いられる感圧スイッチ411~416を内蔵した教示用グローブ410と、教示者11がこれを手に装着してマイクロピペット310を把持している例を示す図である。図4(a)は、教示用グローブ410における感圧スイッチ411~416の配置の例、図4(b)は、教示者11が教示用グローブ410を装着してマイクロピペット310を把持し、吸引・吐出ボタン313を押している状態を示す。
【0043】
感圧スイッチ411、412は、教示者11の親指部分に配置されており、マイクロピペット310の吸引・吐出ボタン313を押したことを検出できる。また、感圧スイッチ413~416は、教示者11がマイクロピペット310を把持したことを検出できる。なお、感圧スイッチ411~416の信号は信号処理部417に入力され(信号4120)、ここでノイズフィルタ処理や閾値判定処理を行った結果をコンピュータ100に対して出力する(信号4170)。
【0044】
図5は、図1に示した各検出部102~105の検出デバイスとして用いられるフットスイッチ501、教示者11の音声を入力するマイクロフォン502を使用している例を示す図である。フットスイッチ501は複数個設けられ、例えば、教示者11が作業教示中にマイクロピペット310の把持や吸引・吐出ボタン313の操作を行ったタイミングで、これらの把持動作、機能操作に割り付けられたフットスイッチ501を押すことで、これらの把持動作、機能操作が行われたことを検出する。
【0045】
マイクロフォン502は、教示者11の作業教示中の音声を拾えるようになっており、例えば、教示者11が作業教示中にマイクロピペット310の把持や吸引・吐出ボタン313の操作を行ったタイミングで、これらの把持動作、機能操作に割り付けられた音声を入力することで、これらの把持動作、機能操作が行われたことを検出する。
【0046】
なお、前述の通り、図4に示した教示用グローブ410、図5に示したフットスイッチ501とマイクロフォン502は、図1に示した各検出部102~105と接続する検出デバイスとして利用可能であり、作業教示内容、作業環境などに応じて、これらのデバイスを組み合わせて利用することも可能である。
【0047】
図6は、マイクロピペット310を用いて試薬を試験管320に分注する作業の手順を示すフローチャートである。教示者11は、作業を開始すると(S601)、まず、左手を試験管スタンドに置かれた試験管320の把持位置へ移動し(S602)、試験管320を把持する(S603)。ここで、試験管320を正常に把持したことを目視などにより確認する(S604)。次に、右手をピペットスタンドに置かれたマイクロピペット310の把持位置へ移動し(S605)、マイクロピペット310を把持する(S606)。ここで、マイクロピペット310を正常に把持したことを目視などにより確認する(S607)。さらに、左手の試験管320を待機位置へ移動する(S608)。
【0048】
次に、右手のマイクロピペット310をチップ装着位置へ移動し、チップを装着する(S609)。ここで、チップを正常に装着したことを目視などにより確認する(S610)。次に、マイクロピペット310を試薬ボトル内の試薬吸引位置へ移動し(S611)、マイクロピペット310の吸引・吐出ボタン313を押して試薬をチップ内に吸引する(S612)。ここで、チップ内に試薬を正常に吸引したことを目視などにより確認する(S613)。次に、マイクロピペット310のチップ先端を試験管320内の吐出位置へ移動し(S614)、マイクロピペット310の吸引・吐出ボタン313を押してチップ内の試薬を試験管320内に吐出する(S615)。ここで、試験管320内に試薬を正常に吐出したことを目視などにより確認する(S616)。なお、図6では、このあとに続く作業の手順は省略している。
【0049】
以上の手順は、教示者11による作業手順を示したものであるが、ロボット12も全く同じ手順に従ってマイクロピペット310’と試験管320’を用いて作業を行う。教示者11が目視により作業状態を確認する部分は、ロボット12に接続されるカメラの画像認識機能により作業状態を確認する。なお、このような作業状態の確認をカメラの画像認識以外の手段で行うことも可能であり、例えば、ロボット12のハンドに内蔵された図示していないリミットスイッチあるいは接触センサにより、マイクロピペット310’や試験管320’の把持状態を確認することも可能である。また、光電センサを用いた液面検出により、試薬の吸引や吐出の状態を確認することも可能である。
【0050】
図7は、教示者11が作業台10の上でマイクロピペット310を用いて分注作業を行った際の右手で把持したマイクロピペット310の移動経路と、これを教示用ポーズの部分シーケンスとして分割した例を模式的に示す図である。
【0051】
まず、ピペットスタンド701に置かれたマイクロピペット310の把持位置(図中、P1と表す)へ右手を移動し、ここでマイクロピペット310を把持する(図中、Graspと表す)。ここで、マイクロピペット310を正常に把持したことを目視などにより確認する(図中、Check 1と表す)。マイクロピペット310の把持動作は、図4に示した教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、あるいは、図5に示したフットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Grasp」と発声されたこと)により検出される。
【0052】
また、マイクロピペット310の把持状態の確認動作も、同様に教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Check grasp pipet」と発声されたこと)により検出される。
【0053】
次に、右手で把持したマイクロピペット310を、移動経路710に沿ってチップボックス702内のチップ703の装着位置(図中、Pi)へ移動して位置決めする。ここで、チップ703を正常に装着したことを確認する(図中、Check 2)。移動経路710は、図中に示す移動開始点P1から位置決め点Piまでの点列、P1、P2・・・Piで構成される。これらの点列は、教示者11が作業を実演する際、教示者11が把持するマイクロピペット310の3次元空間内の動作を、モーションキャプチャにより計測して得られる教示用ポーズであり、一定のサンプリング周期で計測した時系列データである。この移動経路710を構成する点列のデータが教示用ポーズの部分シーケンスとなる。
【0054】
位置決め点Piで位置決めされたことは、Piで一定時間動作が停止したことにより検出されるか、あるいは、教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Stop here」と発声されたこと)により検出される。
【0055】
また、マイクロピペット310のチップ703の装着状態の確認動作は、教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Check set tip」と発声されたこと)により検出される。
【0056】
次に、チップ703を装着したマイクロピペット310を、移動経路711に沿って試薬ボトル704内の試薬吸引位置(図中、Pj)へ移動して位置決めする。ここで、マイクロピペット310の吸引・吐出ボタン313を押して、チップ703内に試薬705を吸引する(図中、Aspirate)。さらに、チップ703内に試薬705を正常に吸引したことを確認する(図中、Check 3)。
【0057】
移動経路711は、移動開始点Piから位置決め点Pjまでの点列、Pi、Pi+1・・・Pjで構成され、位置決め点Pjで位置決めされたことは、Pjで一定時間動作が停止したことにより検出されるか、あるいは、教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力により検出される。
【0058】
位置決め点Pjでマイクロピペット310の吸引・吐出ボタン313を押されたこと、すなわち、マイクロピペット310の機能操作は、教示用グローブ410の感圧スイッチ411、412のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Aspirate」と発声されたこと)により検出される。
【0059】
また、チップ703内に試薬705を正常に吸引したことを確認することは、同様に教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Check aspirate」と発声されたこと)を検出することにより行われる。
【0060】
次に、試薬705を吸引したマイクロピペット310を、移動経路712に沿って試験管320内の試薬吐出位置(図中、Pk)へ移動して位置決めする(試験管320は事前に左手で把持して待機しているものとする)。ここで、マイクロピペット310の吸引・吐出ボタン313を押して、試験管320内に試薬705を吐出する(図中、Dispense)。さらに、試験管320内に試薬705を正常に吐出したことを確認する(図中、Check 4)。移動経路712は、移動開始点Pjから位置決め点Pkまでの点列、Pj、Pj+1・・・Pkで構成され、位置決め点Pkで位置決めされたことは、Pkで一定時間動作が停止したことにより検出されるか、あるいは、教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力により検出される。
【0061】
位置決め点Pkでマイクロピペット310の吸引・吐出ボタン313を押されたこと、すなわち、マイクロピペット310の機能操作は、教示用グローブ410の感圧スイッチ411、412のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Dispense」と発声されたこと)により検出される。
【0062】
また、試験管320内への吐出状態の確認動作も、同様に教示用グローブ410の感圧スイッチ413~416のいずれかが加圧されたこと、フットスイッチ501が押されたこと、またはマイクロフォン502による音声入力(例えば、「Check dispense」と発声されたこと)により検出される。
【0063】
図8及び図9は、教示プログラム生成部106の処理の手順を示すフローチャートである。教示プログラム生成部106では、教示者11が作業の実演による作業教示を始めると(S801)、教示用ポーズ計測部101により、教示者11により把持される被把持物のポーズを教示用ポーズとして計測する(S802)。ここで、図6に示した作業のように両手を用いた作業の場合、教示者11の右手と左手により把持される被把持物のそれぞれのポーズを教示用ポーズとして計測する。
【0064】
次に、被把持物位置決め検出部102により、右手または左手のいずれかの被把持物の位置決めを検出すると(S803でYESの場合)、位置決めを検出した側の手のそれまで計測していた教示用ポーズの時系列データ(シーケンス)を分割し、これを位置決めを検出した側の手の教示用ポーズの部分シーケンスとして記憶する(S804)。また、右手または左手のいずれかの被把持物の位置決めを検出していなければ(S803でNOの場合)、教示用ポーズの計測を継続する(S802)。
【0065】
次に、S804で部分シーケンスを記憶した後、教示用ポーズの部分シーケンスを、ロボット12による被把持物のポーズが教示用ポーズと同一になるよう、ロボット12の関節変位のシーケンスに変換、実行するコマンドを生成する(S805)。さらに、把持動作検出部103により、位置決めを検出した側の手による被把持物の把持動作を検出すると(S806でYESの場合)、これを教示用ポーズの部分シーケンスにおける被把持物の把持動作として記憶する(S807)。一方、把持動作を検出しなかったとき(S806でNOの場合)は、S809へ進む。
【0066】
次に、S807で把持動作として記憶した後、被把持物の把持動作を行うコマンドを生成する(S808)。さらに、機能操作検出部104により、位置決めを検出した側の手による被把持物の機能操作を検出すると(S809でYESの場合)、これを教示用ポーズの部分シーケンスにおける被把持物の機能操作として記憶する(S810)。一方、被把持部の機能操作を検出しなかったとき(S809でNOの場合)は、図9に示すS812に進む。
【0067】
次に、S810で機能操作として記憶した後、被把持物の機能操作を行うコマンドを生成する(S811)。さらに、作業状態確認動作検出部105により、位置決めを検出した側の手による作業状態の確認動作を検出すると(S812でYESの場合)、これを教示用ポーズの部分シーケンスにおける作業状態の確認動作として記憶する(S813)。一方、確認動作を検出しなかったとき(S812でNOの場合)は、S815に進む。
【0068】
次に、S813で確認動作として記憶した後、作業状態の確認動作を行うコマンドを生成する(S814)。
【0069】
ここまでの処理が終わったあと、ロボット12の教示プログラムとなるシーケンシャル・ファンクション・チャートのステップを生成し、そこで実行されるアクションとして上記で生成したコマンドを記述する(S815)。さらに、このステップの出力側のトランジションを生成し、ここで作業状態の確認結果の成否をトランジションの遷移条件として記述する(S816)。このあと、教示者11による作業の実演が終了すれば(S817でYESの場合)、教示プログラム生成部106の処理を終了する(S818)。一方、教示者11による作業教示が継続されれば(S817でNOの場合)、S802の教示用ポーズの計測に戻る。
【0070】
なお、本実施形態では、教示プログラムをシーケンシャル・ファンクション・チャートの形式で記述する例を示しているが、これに代えて、フローチャート、状態遷移図などの形式を用いて記述することも可能である。
【0071】
図10は、教示プログラム生成部106で生成される教示用ポーズの部分シーケンスとこれから生成されるロボットの関節変位のシーケンスのデータの例を示す図である。図10(a)は、教示用ポーズの部分シーケンスのデータ1001の例を示し、ここでは教示者11により把持される被把持物のポーズを3次元位置及び姿勢(四元数)のシーケンスとして表現している。図10(b)は、ロボット12の関節変位のシーケンスのデータ1002の例を示し、ここではロボット12の腕が7軸構成の場合の各関節の角度のシーケンスとして表現している。
【0072】
ここで示したように、教示用ポーズの部分シーケンスデータ1001、ロボット12の関節変位のシーケンスデータ1002は、それぞれ教示者11、ロボット12の片手分のデータとして管理されており、教示者11による作業が両手による作業の場合、これらのデータが右手用、左手用に生成される。
【0073】
また、教示用ポーズの部分シーケンスデータ1001、ロボット12の関節変位のシーケンスデータ1002の各データは時系列データとして記憶され、それぞれ各時刻における3次元位置及び姿勢データ、各関節角度データが時刻順に並んだデータとなっている。これらのデータには整理番号(図中、No.で示す)が付与され、各整理番号が各時刻に対応している。ここで、各時刻は前述のモーションキャプチャのサンプリング周期で更新される時刻を示し、例えば、50ミリ秒単位で刻まれた時刻となる。
【0074】
なお、図10(a)では、教示用ポーズの位置をデカルト座標系(X, Y, Z)で表したが、これを別の座標系、例えば、円筒座標系などで表すことも可能である。また、教示用ポーズの姿勢を四元数(Rx, Ry, Rz, Rw)で表したが、これをロール・ピッチ・ヨー、オイラー角などで表すことも可能である。図10(b)では、ロボット12の腕が7軸構成(各軸名称をJ1~J7とする)の例を示したが、これ以外の軸構成であっても良い。また、J1~J7の関節変位を回転軸の角度データで表したが、これ以外の関節変位、例えば、並進軸の位置などで表すことも可能である。
【0075】
図11は、教示プログラム生成部106により生成されるロボットの教示プログラムをシーケンシャル・ファンクション・チャートの形式で表した例を示す図である。まず、教示者11が作業教示を始めると、初期ステップs1が生成され、ここに「Initial」というステップ名称が記述される。このとき、同時に初期ステップs1の出力側のトランジションt101が生成され、ここに「Ready」とコメントが記述される。さらに、初期ステップs1とトランジションt101の間を連結するリンクが生成される。なお、初期ステップs1で実行されるアクションと、その出力側のトランジションt101の遷移条件はなく、プログラム実行を開始すると、無条件に次のステップに移行するものとする。
【0076】
初期ステップs1には内部的にステップ番号1が付与され、トランジションt101にはトランジション番号101(ステップs1の出力側のトランジションの1番目を示す)が付与される。ステップ番号、トランジション番号の付与については、以降で生成されるステップ、トランジションについても同様である。
【0077】
図8の処理手順で述べたように、教示者11のいずれかの手の位置決めを検出すると、次のステップs2が生成され、ここに「Step 2」というステップ名称が記述される。同時に、ステップs2の出力側のトランジションt201が生成され、ここに「Succeeded」とコメントが記述される。さらに、ステップs2とトランジションt201の間のリンクが生成される。なお、ここで自動的に記述されるステップ名称、コメントは、あとで教示プログラム編集部107により修正できる。
【0078】
また、ステップs2が生成された際、そこで実行されるアクションとして、まず、位置決めを検出した側の手の教示用ポーズの部分シーケンス(図10(a)に相当)が生成され、これとロボット12による被把持物のポーズが教示用ポーズと同一になるよう、ロボット12の関節変位のシーケンス(図10(b)に相当)を生成し、実行するコマンドが生成される。このときに位置決めを検出した側の手の把持動作を検出すれば、被把持物の把持動作を行うコマンドを生成する。さらに、位置決めを検出した側の手の作業状態の確認動作を検出すれば、作業状態の確認動作を行うコマンドが生成される。
【0079】
トランジションt201の遷移条件としては、作業状態の確認動作が行われた場合は、その確認結果の成否を判定する条件式が記述される。作業状態の確認動作が行われなかった場合は、ロボットの関節変位のシーケンス、すなわちロボットの位置決めまでの動作が正常に完了したこと、さらに、被把持物の把持動作が行われた際は、それが正常に完了したことをトランジションt201の遷移条件として判定する。
【0080】
以降、同様に、教示者11のいずれかの手の位置決めを検出すると、次のステップ及びトランジションが生成され(図11に示した例では、s3からs12まで、及びt301からt1201まで)、それらのアクション、遷移条件が生成される。図11に示した例では、教示者11の作業教示が終了した際、終了ステップs12が生成され、ここに「End」というステップ名称が記述される。終了ステップs12のアクションはない。
【0081】
図11に示したシーケンシャル・ファンクション・チャートでは、ステップとトランジションをリンクで接続することでプログラムの処理の順序が記述されており、このリンクの接続関係が教示者11により教示された作業の順序を表現している。
【0082】
図12は、図11に示したシーケンシャル・ファンクション・チャートを教示プログラム編集部107により編集した例を示す図である。この図では、ステップ名称を作業内容を表す名称(英語表記の例を示す)に修正している。図12においては、図11に示した各ステップに対応するステップに同じ番号で表示し、を付している。図11図12における同じステップ番号の作業内容は同じである。すなわち、図12は、以下のような作業を表すプログラムとなる。
【0083】
プログラム実行を開始すると(s1)、左アーム121のハンドで試験管320’、右アーム122のハンドでマイクロピペット310’を把持して、それぞれのスタンドから取り出す(s2)。次に、左アーム121で把持した試験管320’を待機位置に移動する(s3)。また、右アーム122のハンドで把持したマイクロピペット310’にチップボックス702内のチップ703を装着する(s4)。次に、マイクロピペット310’のチップ703内に試薬ボトル704内の試薬705を吸引し(s5)、これを左アーム121のハンドで把持した試験管320’内の吐出位置まで挿入し(s6)、試薬705を吐出する(s7)。次に、マイクロピペット310’を試験管320’から抜き出し(s8)、マイクロピペット310’からチップ703を取り外す(s9)。さらに、左アーム121のハンドで把持した試験管320’を振って、その中の試薬705を撹拌する(s10)。最後に、試験管320’とマイクロピペット310’をそれぞれのスタンドに置き(s11)、一連の作業を終了する(s12)。
【0084】
なお、図12では、各トランジションのコメントについては、図11の記述をそのままにしているが、これらを適宜修正することも可能である。例えば、トランジションt201のコメントを単純に「OK」と記述しても良い。
【0085】
図13は、図12に示したシーケンシャル・ファンクション・チャートをさらに編集した例を示す図である。この図では、マイクロピペット310’にチップ703を装着した際(s4)、チップ703の装着状態をカメラの画像認識で確認し、チップ703の装着に成功すれば(t401)、次のステップs4に移行するように記述されていたプログラムにおいて、もしチップ703の装着に失敗すれば(t402)、再度、チップ703の装着動作を行う(s13)というエラー対応処理を追加した例を示す。
【0086】
これと同様に、図13のプログラムの各トランジションでは、直前のステップの作業状態の確認結果の成否を判定する条件式が記述されているので、作業状態の確認結果が失敗した場合、すなわち、何らかのエラーが発生した場合の対応処理を追加することが可能である。このようにして、教示者11の作業実演により自動的に生成された教示プログラムに対して、教示プログラム編集部107により、あとでエラー対応処理を追加することで、教示プログラム実行時の信頼性を向上できる。
【0087】
また、作業条件に応じて動作を変えたい場合(例えば、試薬705の種類に応じて撹拌時の試験管320’を振る回数を増やす場合など)は、新たなトランジションとステップを追加して、ここに遷移条件(例えば、試薬705の種類を判定する条件式など)とアクション(例えば、試験管320’を振る回数を増やした動作を実行するコマンドなど)を記述することも可能であり、このようにして教示プログラムの機能拡張が可能である。
【0088】
図14は、図11~13に示したシーケンシャル・ファンクション・チャートにおけるステップ及びトランジションの処理記述の例を示す図である。
【0089】
図14(a)は、図11~13のステップs2のアクションとして記述されたコマンド列1401を示す。コマンド列1401の「larm_move("traj_larm_s2")」は、ステップs2(s2)の動作として分割されたロボット12の左アーム121の教示用ポーズの部分シーケンス("traj_larm_s2"という名称で自動的に記憶される)を実行するコマンドである。
【0090】
同様に、「rarm_move("traj_rarm_s2")」は、ロボット12の右アーム122の教示用ポーズの部分シーケンス("traj_rarm_s2"という名称で自動的に記憶される)を実行するコマンドである。「larm_grasp()」は、ロボット12の左アーム121のハンドを閉じて物体(この場合、試験管320’)を把持するコマンドである。「rarm_grasp()」は、ロボット12の右アーム122のハンドを閉じて物体(この場合、マイクロピペット310’)を把持するコマンドである。
【0091】
さらに、「larm_check("get_tube")」は、左アーム121のハンドにより試験管320’を正常に把持しているかどうかを画像認識により確認するコマンドである。同様に、「rarm_check("get_pipet")」は、右アーム122のハンドによりマイクロピペット310’を正常に把持しているかどうかを画像認識により確認するコマンドである。
【0092】
図14(b)は、ステップs2(s2)の出力側のトランジションt201の処理として記述された遷移条件式1402を示す。遷移条件式1402の「larm_check == SUCCEEDED and rarm_check == SUCCEEDED」は、前述の試験管320’及びマイクロピペット310’が正常に把持されていることが確認されたことを示す条件式であり、ロボット12の作業状態の確認結果の成否を判定する条件式となる。なお、これらの条件式は、コマンド列1401の内容から自動的に生成される。
【0093】
図14(c)は、図11~13のステップs4(s4)の処理として記述されたコマンド列1403、図14(d)は、その出力側のトランジションt401の処理として記述された遷移条件式1404を示す。これらの処理内容は、コマンド列1401及び遷移条件式1402と同様であり、「rarm_check("set_tip")」は、右アーム122のハンドで把持されたマイクロピペット310’にチップ703を正常に装着しているかどうかを画像認識により確認するコマンドである。
【0094】
図14(e)は、図11~13のステップs6(s6)の処理として記述されたコマンド列1405、図14(f)は、その出力側のトランジションt601の処理として記述された遷移条件式1406を示す。コマンド列1405の「rarm_move("traj_rarm_s6")」は、ステップs5(s5)の動作として分割されたロボット12の右アーム122の教示用ポーズの部分シーケンス("traj_rarm_s6"という名称で自動的に記憶される)を実行するコマンドである。遷移条件式1406の「rarm_status == SUCCEEDED」は、このコマンドの実行、すなわち、右アーム122の移動が正常終了したことを示す条件式である。前述のコマンド列1401のように作業状態確認が特に行われない場合、遷移条件式1406のように当該ステップのコマンドが正常終了していることを表す条件式が記述される。なお、この条件式は、コマンド列1405の内容から自動的に生成される。
【0095】
図15は、教示プログラム編集部107を構成する画面の表示及び入力の例を示す図である。教示プログラム編集部107を構成する画面は、コンピュータ100に備え付けられてもよいし、図示していないコンピュータ100から離れた場所に設けてもよい。
【0096】
図15(a)は、図11~13に示したシーケンシャル・ファンクション・チャートのステップs4(s4)の処理を編集している画面1501を示す。ここで、ステップs4にマウス等のカーソルを合わせてダブルクリックすると、ステップ編集ウィンドウ1502が表示され、ここでステップs4の名称1502aの編集(図の例では「Step 4」を「Set tip」に書き換え)と、このステップs4で実行するコマンド列1502bの編集を行う。
【0097】
図15(b)は、トランジションt401の遷移条件式を編集している画面1503を示す。ここで、トランジションt401にマウス等のカーソルを合わせてダブルクリックすると、トランジション編集ウィンドウ1504が表示され、ここでトランジションt401のコメント1504aの編集と、このトランジションt401で判定する遷移条件の条件式1504bの編集を行う(この例では、自動的に生成された記述をそのまま採用している)。
【0098】
図16は、教示プログラム実行部108の処理の手順を示すフローチャートである。教示プログラム実行部108により教示プログラムの実行を開始すると(S1601)、まず、初期ステップの次のステップのステップ番号を、例えば、図11~13に示すような教示プログラムであるシーケンシャル・ファンクション・チャートのリンクの接続関係から取得し、これを内部で保持される現在のステップ番号に代入する(S1602)。次に、現在のステップ番号が示しているステップに記述された各種コマンドを実行する。すなわち、ロボット12のハンドによる被把持物のポーズが教示用ポーズと同一になるよう、ロボット12の関節変位のシーケンスを生成・実行するコマンドを実行する(S1603)。次に、ロボット12のハンドによる被把持物の把持動作を行うコマンドを実行し(S1604)、ロボット12のハンドによる被把持物の機能操作を行うコマンドを実行する(S1605)。さらに、ロボット12による作業状態の確認動作を行うコマンドを実行する(S1606)。そのあと、現在のステップの出力側のいずれかのトランジションで遷移条件として記述された条件式が成立していれば(S1607でYESの場合)、シーケンシャル・ファンクション・チャートのリンクの接続関係から次のステップ番号を取得し、これを現在のステップ番号に代入する(S1608)。また、現在のステップの出力側のいずれのトランジションでも遷移条件が成立していなければ(S1607でNOの場合)、これらのいずれかが成立するまで待つ。
【0099】
なお、S1608で更新された現在のステップ番号が終了ステップのステップ番号と一致すれば(S1609でYESの場合)、教示プログラムの実行を終了する(S1610)。一方、更新された現在のステップ番号が終了ステップのステップ番号と一致していなければ(S1609でNOの場合)、S1603からのステップを繰り返して実行する。
【0100】
以上に述べたように、本実施形態によれば、人の作業をロボットの作業に変換する際、人が作業で用いる被把持物を用いて通常通りに作業を実演するだけで、ロボットに一連の作業を実行させるための教示プログラムを、ロボットの移動経路の記述だけでなく、ロボットにより把持される被把持物の把持、被把持物の機能操作、作業状態確認の記述も含めて生成できるため、従来技術の被把持物の動作計測後に操作内容や操作状態確認処理を別途プログラムする方法と比べてロボットの作業教示が容易になり、教示プログラムの開発効率を向上できる。
【0101】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0102】
1…ロボットの作業教示装置、100…コンピュータ、10、10’…作業台、11…教示者、12…ロボット、201~204…カメラ、310、310’…マイクロピペット、320、320’…試験管、311、321…マーカープレート、210…カメラの視野、2100…作業台座標系、311a~311d、321a~321d…反射マーカー、312、322…アタッチメント、3100、3200…マーカープレート座標系、410…教示用グローブ、411~416…感圧スイッチ、417…信号処理部、4120、4170…信号、501…フットスイッチ、502…マイクロフォン、701…ピペットスタンド、702…チップボックス、703…チップ、704…試薬ボトル、705…試薬、710~712…移動経路、1001…教示用ポーズのシーケンス、1002…ロボットの関節変位のシーケンスデータ、s1~s13・・・シーケンシャル・ファンクション・チャートのステップ、t101~t1101…シーケンシャル・ファンクション・チャートのトランジション、1401、1403、1405…コマンド列、1402、1404、1406…遷移条件式、1501、1503…教示プログラム編集部の画面、1502…ステップ編集ウィンドウ、1502a…ステップ名称、1502b…コマンド列、1504…トランジション編集ウィンドウ、1504a…トランジションのコメント、1504b…遷移条件式
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16