(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】作業再開システム、製造方法、及びプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20221109BHJP
B23Q 15/00 20060101ALI20221109BHJP
G05B 19/4155 20060101ALI20221109BHJP
【FI】
B25J9/22 A
B23Q15/00 D
G05B19/4155 Z
(21)【出願番号】P 2020064646
(22)【出願日】2020-03-31
【審査請求日】2021-01-15
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】長崎 高巳
【審査官】杉田 隼一
(56)【参考文献】
【文献】特開2015-205382(JP,A)
【文献】特開2012-198775(JP,A)
【文献】特開平05-006213(JP,A)
【文献】特開平09-091018(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
B23Q 15/00
G05B 19/4155
(57)【特許請求の範囲】
【請求項1】
複数の作業の各々を順番に行う装置が途中で停止した場合に、ユーザに対し、前記装置を基本状態にすることを要求する第1要求部と、
前記装置を前記基本状態にすることが要求された場合に、前記ユーザの指示により、前記装置を前記基本状態にする状態制御部と、
前記装置に再開させる再開作業の指定を受け付ける受付部と、
前記装置の現在の状態として、前記基本状態を取得する第1取得部と、
前記装置の前記再開作業に対応する再開状態を取得する第2取得部と、
前記基本状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる再開部と、
を有する作業再開システム。
【請求項2】
複数の作業の各々を順番に行う装置が途中で停止した場合に、前記複数の作業の各々の識別情報を示す画面において、途中で停止した作業を識別可能に表示させる表示制御部と、
前記画面に表示された前記識別情報の指定を受け付けることによって、前記装置に再開させる再開作業の指定を受け付ける受付部と、
前記装置の現在の状態を取得する第1取得部と、
前記装置の前記再開作業に対応する再開状態を取得する第2取得部と、
前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる再開部と、
を有する作業再開システム。
【請求項3】
複数の作業の各々を順番に行う装置が途中で停止した場合に、前記装置に再開させる再開作業の指定を受け付ける受付部と、
前記再開作業の再開条件の指定を受け付ける第2受付部と、
前記装置の現在の状態を取得する第1取得部と、
前記装置の前記再開作業に対応する再開状態を取得する第2取得部と、
前記現在の状態から前記再開状態になるように前記装置を動作させ、前記再開条件に基づいて、前記装置に前記再開作業から再開させる再開部と、
を有する作業再開システム。
【請求項4】
複数の作業の各々が記述されたプロトコルチャートに基づいて、前記複数の作業の各々を順番に行う装置を動作させる動作制御部と、
前記装置が途中で停止した場合に、前記装置に再開させる再開作業の指定を受け付ける受付部と、
前記装置の現在の状態を取得する第1取得部と、
前記装置の前記再開作業に対応する再開状態を取得する第2取得部と、
前記現在の状態から前記再開状態になるように前記装置を動作させ、前記プロトコルチャートに基づいて、前記装置に前記再開作業から再開させる再開部と、
を有する作業再開システム。
【請求項5】
前記受付部は、前記再開作業として、前記装置が途中で停止した作業とは異なる作業の指定を受け付け可能である、
請求項1~
4の何れかに記載の作業再開システム。
【請求項6】
前記再開部は、最初の作業から前記再開作業の前の作業までを仮想的に実行し、前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる、
請求項1~
5の何れかに記載の作業再開システム。
【請求項7】
前記作業再開システムは、前記再開作業と前記再開条件とを関連付けて記憶部に記録する記録部を有し、
前記再開部は、再び前記装置が途中で停止して、記録済みの前記再開作業が指定された場合に、前記再開作業に関連付けられて記憶された前記再開条件に基づいて、前記装置に前記再開作業から再開させる、
請求項
3に記載の作業再開システム。
【請求項8】
前記再開作業は、繰り返し実行されるループ動作を含み、
前記再開条件は、再開時のループである、
請求項
3又は
7に記載の作業再開システム。
【請求項9】
複数の作業の各々を順番に行う装置が途中で停止した場合に、ユーザに対し、前記装置を基本状態にすることを要求し、
前記装置を前記基本状態にすることが要求された場合に、前記ユーザの指示により、前記装置を前記基本状態にし、
前記装置に再開させる再開作業の指定を受け付け、
前記装置の現在の状態として、前記基本状態を取得し、
前記装置の前記再開作業に対応する再開状態を取得し、
前記基本状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させ、
前記再開作業から再開した前記装置に、対象物を製造させる、
製造方法。
【請求項10】
複数の作業の各々を順番に行う装置が途中で停止した場合に、ユーザに対し、前記装置を基本状態にすることを要求する第1要求部、
前記装置を前記基本状態にすることが要求された場合に、前記ユーザの指示により、前記装置を前記基本状態にする状態制御部、
前記装置に再開させる再開作業の指定を受け付ける受付部、
前記装置の現在の状態として、前記基本状態を取得する第1取得部、
前記装置の前記再開作業に対応する再開状態を取得する第2取得部、
前記基本状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる再開部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、作業再開システム、製造方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、複数の作業の各々が順番に記述されたプロトコルチャートに基づいて指令を生成し、ロボットを動作させるシステムが記載されている。このようなシステムでは、何らかの障害が発生してロボットが途中で停止すると、ユーザは、障害を復旧させて、停止中のロボットを初期状態に戻す。その後に、ユーザが再開を指示すると、ロボットは、プロトコルチャートに記述された最初の作業から再開する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の一態様が解決しようとする課題は、例えば、複数の作業の各々を順番に実行する装置に任意の作業から再開させることである。
【課題を解決するための手段】
【0005】
本開示の一側面に係る作業再開システムは、複数の作業の各々を順番に行う装置が途中で停止した場合に、前記装置に再開させる再開作業の指定を受け付ける受付部と、前記装置の現在の状態を取得する第1取得部と、前記装置の前記再開作業に対応する再開状態を取得する第2取得部と、前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる再開部と、を有する。
【0006】
本開示の一側面に係る製造方法は、複数の作業の各々を順番に行う装置が途中で停止した場合に、前記装置に再開させる再開作業の指定を受け付け、前記装置の現在の状態を取得し、前記装置の前記再開作業に対応する再開状態を取得し、前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させ、前記再開作業から再開した前記装置に、対象物を製造させる。
【0007】
本開示の一側面に係るプログラムは、複数の作業の各々を順番に行う装置が途中で停止した場合に、前記装置に再開させる再開作業の指定を受け付ける受付部、前記装置の現在の状態を取得する第1取得部、前記装置の前記再開作業に対応する再開状態を取得する第2取得部、前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる再開部、としてコンピュータを機能させる。
【0008】
本開示の一側面によれば、前記作業再開システムは、前記装置が途中で停止した場合に、前記装置を基本状態にする状態制御部を有し、前記第1取得部は、前記現在の状態として、前記基本状態を取得し、前記再開部は、前記基本状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる。
【0009】
本開示の一側面によれば、前記作業再開システムは、ユーザに対し、前記装置を前記基本状態にすることを要求する第1要求部と、前記装置を前記基本状態にすることが要求された場合に、前記ユーザの指示により、前記装置を前記基本状態にする状態制御部と、を有する。
【0010】
本開示の一側面によれば、前記受付部は、前記再開作業として、前記装置が途中で停止した作業とは異なる作業の指定を受け付け可能である。
【0011】
本開示の一側面によれば、前記作業再開システムは、前記複数の作業の各々の識別情報を示す画面において、途中で停止した作業を識別可能に表示させる表示制御部を更に有し、前記受付部は、前記画面に表示された前記識別情報の指定を受け付ける。
【0012】
本開示の一側面によれば、前記作業再開システムは、前記再開作業に対応する前記装置の周辺環境を取得する第3取得部と、ユーザに対し、前記再開作業に対応する前記周辺環境にすることを要求する第2要求部と、を有する。
【0013】
本開示の一側面によれば、前記再開部は、最初の作業から前記再開作業の前の作業までを仮想的に実行し、前記現在の状態から前記再開状態になるように前記装置を動作させ、前記装置に前記再開作業から再開させる。
【0014】
本開示の一側面によれば、前記作業再開システムは、前記再開作業の再開条件の指定を受け付ける第2受付部を有し、前記再開部は、前記再開条件に基づいて、前記装置に前記再開作業から再開させる。
【0015】
本開示の一側面によれば、前記作業再開システムは、前記再開作業と前記再開条件とを関連付けて記憶部に記録する記録部を有し、前記再開部は、再び前記装置が途中で停止して、記録済みの前記再開作業が指定された場合に、前記再開作業に関連付けられて記憶された前記再開条件に基づいて、前記装置に前記再開作業から再開させる。
【0016】
本開示の一側面によれば、前記再開作業は、繰り返し実行されるループ動作を含み、前記再開条件は、再開時のループである。
【0017】
本開示の一側面によれば、前記作業再開システムは、前記複数の作業の各々が記述されたプロトコルチャートに基づいて、前記装置を動作させる動作制御部を有し、前記再開部は、前記プロトコルチャートに基づいて、前記装置に前記再開作業から再開させる。
【発明の効果】
【0018】
本開示によれば、例えば、複数の作業の各々を順番に実行する装置に任意の作業から再開させることができる。
【図面の簡単な説明】
【0019】
【
図1】ロボットシステムの全体構成の一例を示す図である。
【
図2】ロボットが動作する様子の一例を示す図である。
【
図6】ロボットが原点復帰する様子を示す図である。
【
図7】プロトコルメーカの画面でプロトコルが表示される様子を示す図である。
【
図8】再開するプロトコルが指定された場合の画面例を示す図である。
【
図9】継続プロトコルが生成される場合のシーケンスデータの一例を示す図である。
【
図11】ロボットシステムで実現される機能を示す機能ブロック図である。
【
図12】ロボットが動作を停止した場合にロボットシステムで実行される処理の一例を示すフロー図である。
【
図13】ロボットが動作を停止した場合にロボットシステムで実行される処理の一例を示すフロー図である。
【発明を実施するための形態】
【0020】
[1.作業再開システムの全体構成]
装置が動作中に何らかの障害で停止した場合、ユーザは、障害を復旧させて装置を初期状態に戻し、最初の作業から再開させる必要があった。装置は、不要な作業も実行する必要があり、再開後の作業が非効率的である。そこで発明者は、装置に任意の作業から再開させるために鋭意研究開発を行った結果、新規かつ独創的な作業再開システム等に想到した。以降、本実施形態に係る作業再開システム等を詳細に説明する。
【0021】
本実施形態では、作業再開システムをロボットの制御に適用した例を挙げて説明する。以降説明するロボットシステムは、作業再開システムの一例である。このため、本実施形態でロボットシステムと記載した箇所は、作業再開システムと読み替えることができる。作業再開システムは、ロボットの制御に限られず、任意の場面に適用可能である。例えば、作業再開システムは、モータコントローラ、インバータ、又はPLC(Programmable Logic Controller)などの他の産業装置の作業を再開させる画面に適用してもよい。
【0022】
図1は、ロボットシステムSの全体構成の一例を示す図である。
図1に示すように、ロボットシステムSは、指令生成装置1、ロボットコントローラ2、及びロボット3を含む。指令生成装置1とロボットコントローラ2は、ネットワークによって通信可能に接続される。ネットワークは、任意の種類であってよく、例えば、産業用ネットワーク、LAN、又はインターネットである。ロボットコントローラ2とロボット3は、電力線及び信号線などによって接続される。
図1では、指令生成装置1、ロボットコントローラ2、及びロボット3の各々を1台ずつ示しているが、これらは複数台あってもよい。
【0023】
指令生成装置1は、ユーザが操作するコンピュータである。例えば、指令生成装置1は、パーソナルコンピュータ、サーバコンピュータ、携帯端末(タブレット型端末又はウェアラブル端末を含む)、又は携帯電話(スマートフォンを含む)である。
図1に示すように、指令生成装置1は、CPU1a、記憶部1b、通信部1c、操作部1d、及び表示部1eを含む。
【0024】
CPU1aは、少なくとも1つのプロセッサを含む。記憶部1bは、RAMやハードディスクを含む。記憶部1bは、プログラム及びデータを記憶する。CPU1aは、これらプログラムやデータに基づいて、処理を実行する。通信部1cは、ネットワークカードや各種通信コネクタ等の通信インタフェースを含む。通信部1cは、他の装置と通信する。操作部1dは、マウスやキーボード等の入力デバイスである。表示部1eは、液晶ディスプレイ又は有機ELディスプレイ等である。
【0025】
ロボットコントローラ2は、ロボット3を制御するコンピュータである。例えば、ロボットコントローラ2は、CPU、記憶部、及び通信部等を含み、指令生成装置1から受信した指令に基づいて、ロボット3を制御する。ロボット3は、任意の形式であってよく、例えば、垂直多関節型、水平多関節型、又はガントリ型である。例えば、ロボット3は、モータとセンサ類を含む。センサは、任意の種類であってよく、例えば、モータエンコーダ、把持センサ、モーションセンサ、ジャイロセンサ、又はビジョンセンサである。これらのセンサ類は、ロボット3に含まれているのではなく、ロボットコントローラ2に接続されていてもよい。
【0026】
なお、指令生成装置1に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されてもよい。また、指令生成装置1のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されてもよい。
【0027】
[2.ロボットシステムの概要]
本実施形態では、生命科学における実験又は試料に対する処理が行われる場面を例に挙げて、ロボットシステムSの処理を説明する。ロボットシステムSが適用される場面は、本実施形態の例に限られず、食品の製造やパーツの組み立てといった他の任意の場面に適用可能である。例えば、ロボットコントローラ2及びロボット3は、種々の実験や処理に柔軟に対応可能な汎用機としての性質を有する。ロボットコントローラ2は、熟練者による手技を高精度に再現するように、ロボット3を制御する。
【0028】
図2は、ロボット3が動作する様子の一例を示す図である。
図2に示すように、ロボット3は、2本のアームを用いて、処理対象又は処理対象を収容した容器に対する処理を行う。処理対象は、実験又は検査における処理の対象となる材料であり、例えば、生体組織又は菌である。例えば、容器は、マイクロチューブ、ペトリ皿、又はマイクロプレートである。
【0029】
本実施形態では、ロボット3は、第1の処理対象が格納された第1のマイクロチューブ4aに対する第1の作業群と、第2の処理対象が格納された第2のマイクロチューブ4bに対する第2の作業群と、の各々を行う。第1の処理対象と第2の処理対象は、同じ種類であってもよいし、異なる種類であってもよい。第1のマイクロチューブ4aは、ユーザにより、チューブラック5aの第1の位置に予め格納されている。第2のマイクロチューブ4bは、ユーザにより、チューブラック5aの第2の位置に予め格納されている。
【0030】
第1の作業群は、遠心分離機6を用いて、第1のマイクロチューブ4aを処理するための一連の作業である。例えば、ロボット3は、チューブラック5aからメインラック5bに、第1のマイクロチューブ4aを移動させる。その後に、ロボット3は、メインラック5bから遠心分離機6に、第1のマイクロチューブ4aを移動させて配置する。遠心分離機6は、第1のマイクロチューブ4aを所定時間だけ処理する。所定時間が経過すると、ロボット3は、遠心分離機6からメインラック5bに、第1のマイクロチューブ4aを移動させる。以上により、第1の作業群が完了する。
【0031】
第2の作業群は、ピペット7を利用して、恒温槽9に配置された液剤を第2のマイクロチューブ4bに注入して混ぜるための一連の作業である。例えば、ロボット3は、チューブラック5aからメインラック5bに、第2のマイクロチューブ4bを移動させる。ロボット3は、ピペットラック8の所定の位置に収納されたピペット7を把持し、恒温槽9に配置された液剤をピペット7で吸引する。ロボット3は、メインラック5bに配置された第2のマイクロチューブ4bに液剤を注入し、ボルテックスミキサー10に第2のマイクロチューブ4bを移動させる。ボルテックスミキサー10は、第2のマイクロチューブ4bを所定時間だけ処理する。所定時間が経過すると、ロボット3は、ダストボックス11にピペット7を破棄する。ロボット3は、メインラック5bに第2のマイクロチューブ4bを移動させる。以上により、第2の作業群が完了する。
【0032】
本実施形態では、指令生成装置1は、第1の作業群と第2の作業群が記述されたプロトコルチャートに基づいて、ロボットコントローラ2がロボット3を制御するための指令を生成する。プロトコルチャートは、人がプロトコルを認識できるように記述されたチャートである。プロトコルは、実験又は処理の手順と、その手順を実行するための条件と、が記述された情報である。広い意味では、機器が実行する処理だけでなく、人の手作業もプロトコルに含まれる。プロトコルチャートは、予め定められた様式で記述される。例えば、プロトコルチャートには、処理対象又は処理対象を収容した容器に対する処理の内容が記述される。
【0033】
プロトコルチャートには、個々の処理を視覚的に表現した少なくとも1つの処理シンボルが記述される。処理シンボルの配置により、個々の処理の手順が明示される。プロトコルチャート自体は、公知のチャートを利用可能であり、例えば、先行技術文献に記載した公報又は特開2018-167361号公報に記載されたチャートを利用可能である。本実施形態では、指令生成装置1に、プロトコルを生成するためのプログラム(以降、プロトコルメーカ)が記憶されている。例えば、プロトコルメーカが起動すると、プロトコルチャートの内容が表示部1eに表示される。
【0034】
図3は、プロトコルチャートの一例を示す図である。
図3に示すように、プロトコルチャートCは、処理対象を収容する容器ごとに、プロトコルが記述されている。本実施形態では、第1のマイクロチューブ4aと第2のマイクロチューブ4bの2つの容器に対する処理が行われるので、2つのプロトコル群が記述される。例えば、プロトコルチャートCの左側には、第1の作業群に対応するプロトコル群が記述される。また例えば、プロトコルチャートCの右側には、第2の作業群に対応するプロトコル群が記述される。
【0035】
例えば、プロトコルチャートCの左側には、第1のマイクロチューブ4aに対応する初期シンボル100a及び最終シンボル101aが配置される。初期シンボル100a及び最終シンボル101aは、作業の対象となる容器を識別する情報であり、例えば、第1のマイクロチューブ4aの名前である「Tube1」の文字列を含む。初期シンボル100a及び最終シンボル101aは、第1のマイクロチューブ4aが配置された位置や格納された処理対象に関する情報などを含んでもよい。
【0036】
初期シンボル100aは、用意すべき容器数を示す容器数シンボル102aを含む。同じ作業が行われる第1のマイクロチューブ4aが複数個存在する場合には、容器数シンボル102aには、その数を示す数値が表示される。初期シンボル100aと最終シンボル101aは、順序線103aによって接続される。初期シンボル100aと最終シンボル101aの間には、遠心分離機6を利用した処理を示す処理シンボル104a1,104a2が記述される。これらの処理シンボル104a1,104a2は、処理の時系列順に配置される。
【0037】
また例えば、プロトコルチャートCの右側には、第2のマイクロチューブ4bに対応する初期シンボル100b及び最終シンボル101bが配置される。初期シンボル100b、最終シンボル101b、容器数シンボル102b、及び順序線103bの各々の意味は、第1のマイクロチューブ4aのものと同様である。初期シンボル100bと最終シンボル101bの間には、液剤を加える処理を示す処理シンボル104b1、液剤を混合する処理を示す処理シンボル104b2、及び実験で使用したツールをダストボックス11に破棄する処理を示す処理シンボル104b3が記述される。
【0038】
なお、以降の説明では、初期シンボル100a,100b、最終シンボル101a,101b、順序線103a,103b、及び処理シンボル104a1,104a2,104b1,104b2,104b3をそれぞれ区別しないときは、初期シンボル100、最終シンボル101、順序線103、及び処理シンボル104と記載する。
【0039】
プロトコルチャートCは、視覚的に表現されているため、ロボットコントローラ2に入力する指令に変換する必要がある。指令生成装置1は、プロトコルチャートCに記述された手順に沿って指令を生成し、ロボットコントローラ2に指令を入力する。指令の生成方法自体は、公知の手法を利用可能である。本実施形態では、先述した特開2018-167361号公報に記載された生成方法を例に挙げる。以降、指令の生成方法を簡単に説明するが、詳細については同公報を参照されたい。例えば、指令生成装置1は、プロトコルチャートCに基づいて、作業全体の流れを示すシーケンスデータを生成する。
【0040】
図4は、シーケンスデータの一例を示す図である。
図4に示すように、シーケンスデータDには、容器の初期配置情報と、個々のプロトコルに関する情報と、が含まれる。初期配置情報は、作業開始時の容器の配置を示す情報であり、例えば、容器の名前、初期位置、個数、状態、及び容量などの情報を含む。初期配置情報を生成するために必要な情報は、プロトコルチャートCに記述されているものとする。例えば、初期配置情報は、初期シンボル100の記述に基づいて生成される。
【0041】
個々のプロトコルに関する情報としては、プロトコルを実行するための条件(例えば、遠心分離機6の温度と処理時間、液剤の注入量、ボルテックスミキサー10の混合時間)、初期状態反映フラグ、ジョブ変換フラグ、プロトコル名、及び処理対象の容器名が含まれる。例えば、これらの情報は、処理シンボル104の記述に基づいて生成される。
【0042】
初期状態反映フラグは、初期状態を反映させるか否かを示すフラグであり、例えば、「0」は初期状態を反映させないことを示し、「1」は初期状態を反映させることを示す。ジョブ変換フラグは、ジョブ変換をするか否かを示すフラグであり、例えば、「0」はジョブ変換しないことを示し、「1」はジョブ変換することを示す。
図4の状態では、初期状態から全てのプロトコルを実行するための指令が生成されるので、初期状態反映フラグは全て「0」になり、ジョブ変換フラグは全て「1」となる。なお、初期状態反映フラグとジョブ変換フラグは、1つのフラグにまとめてもよい。
【0043】
指令生成装置1は、シーケンスデータDに基づいて、単位ジョブを生成する。単位ジョブは、ロボット3の基本的な動作を示すジョブである。単位ジョブは、ジョブ変換フラグが「1」のプロトコルが生成対象となる。例えば、単位ジョブは、複数の連続的な動作をするための命令を含む。例えば、「容器を掴む」という単位ジョブは、「移動」、「掴む」、「移動」といった一連の命令を含む。また例えば、「容器を置く」という単位ジョブは、「移動」、「置く」、「移動」といった一連の命令を含む。単位ジョブは、開始位置と終了位置を含む。
【0044】
開始位置は、単位ジョブの開始時のロボット3の位置である。終了位置は、単位ジョブの終了時のロボット3の位置である。位置とは、ロボット3の各関節の位置(各モータの位置)である。位置は、ロボット3の姿勢ということもできる。例えば、「容器を掴む」という単位ジョブであれば、容器を掴む前の位置(開始位置)と、容器を掴んだ後の位置(終了位置)と、が単位ジョブに含まれる。また例えば、「容器を置く」という単位ジョブであれば、容器を置く前の位置(開始位置)と、容器を置いた後の位置(終了位置)と、が単位ジョブに含まれる。
【0045】
指令生成装置1は、単位ジョブだけでなく、つなぎジョブも生成する。つなぎジョブは、単位ジョブ間のロボット3の位置の違いを吸収する動作を示すジョブである。別の言い方をすれば、つなぎジョブは、ある単位ジョブの終了位置から次の単位ジョブの開始位置に、ロボット3を移動させる動作を示すジョブである。ロボット3の移動は、姿勢の変化を含むことがある。つなぎジョブは、ロボット3の単なる移動だけが定義されていてもよいし、移動以外の動作(例えば、姿勢のみの変化)が定義されていてもよい。
【0046】
指令生成装置1には、プロトコルチャートCのプロトコルが示す作業コマンドごとに、少なくとも1つの単位ジョブを定義したコマンド定義データベースDB1が記憶されている。
図3及び
図4の例であれば、作業コマンドは、「Centrifuge」や「Add」などのプロトコルの内容である。指令生成装置1は、コマンド定義データベースDB1を参照し、作業コマンドに必要な単位ジョブのセットを取得する。指令生成装置1は、単位ジョブのセットに基づいて、ロボットシステムSにおける状態を示す状態情報を生成する。例えば、指令生成装置1は、初期状態反映フラグが「1」のコマンドを実行したときの容器の状態変換を計算し、状態情報を生成してもよい。
【0047】
状態情報は、ロボット3自体の詳細な状態、及び、ロボット3の周囲の詳細な状態を示す。例えば、状態情報は、容器の蓋が閉まっているか否か、容器には何がどの程度入っているか、容器はどこに格納されているか、ロボット3の姿勢はどのようなものか、又はロボット3に何が把持されているか、といったように、ロボットシステムSの状態を知るために必要な情報が含まれる。指令生成装置1は、状態情報が時系列的に格納された状態情報データベースDB2を記憶する。
【0048】
指令生成装置1は、生成された単位ジョブと状態情報に基づいて、つなぎジョブを生成する。つなぎジョブは、単位ジョブ間ごとに生成される。つなぎジョブは、単なる直線移動ではなく、他の機器と干渉しないようなルートが選定されてもよい。指令生成装置1は、単位ジョブとつなぎジョブを直列的に接続し、ロボットコントローラ2に対するロボット動作指令を生成する。
【0049】
ロボット動作指令は、人が目で見て分かるプロトコルをロボットコントローラ2が理解できる形に落とし込んだ指令である。ロボット動作指令は、プロトコルチャートCに記述された一連の流れを実行するための指令とそれに必要なパラメータなどが含まれる。例えば、ロボット動作指令は、単位ジョブやつなぎジョブがロボット言語又はラダー言語に変換されることによって生成されてもよい。ロボットコントローラ2は、指令生成装置1からロボット動作指令を受信し、ロボット3を制御する。
【0050】
ロボットコントローラ2は、作業中に何らかの障害が発生すると、ロボット3を停止させる。例えば、ロボット3は、動作中に他の機器と干渉したり、把持している物体を落としたりすると停止する。ロボット3が停止すると、指令生成装置1においてアラームが発生する。ユーザは、アラームを受けてロボット3の状態を確認し、所定の手順に沿って障害を復旧させる。ここでは、ロボット3が、「Add」のプロトコルで液剤を注入し終わった直後に停止した場合の復旧手順を例に挙げて説明する。
【0051】
図5は、復旧手順の一例を示す図である。
図5に示すように、ロボット3が停止すると(手順0)、ユーザは、指令生成装置1を操作して、ロボット3を原点復帰させる(手順1)。原点とは、ロボット3の基本姿勢である。基本姿勢は、任意の姿勢であってよく、例えば、ロボット3が何も把持せずに、正面を向いてアームを所定の姿勢にすることである。
【0052】
図6は、ロボット3が原点復帰する様子を示す図である。
図6に示すように、ロボット3がピペット7を把持して液剤を注入する姿勢で停止した場合、ユーザは、ロボット3からピペット7を取り外す。液剤の注入が完了した直後にロボット3が停止した場合、ピペット7はその後の作業で利用されないので、ユーザは、ダストボックス11にピペット7又はその先端部を破棄してもよい。
【0053】
ユーザは、ロボット3を何も把持していない状態にしてから、指令生成装置1に対し、ロボット3を原点復帰させるための操作を行う。指令生成装置1は、この操作を受け付けると、ロボットコントローラ2に対し、原点復帰する旨のロボット動作指令を送信する。ロボットコントローラ2は、ロボット動作指令を受信すると、予め定められた姿勢を取るように、ロボット3を制御する。以上により、ロボット3の原点復帰が完了する。
【0054】
図5に戻り、ユーザは、ロボット3が停止した原因となった不具合の処置を行う(手順2)。例えば、ロボット3が何らかの物体と干渉して停止したのであれば、ユーザは、その物体を取り除く。また例えば、ロボット3が把持していた物体を落として停止したのであれば、ユーザは、その物体を拾い上げて所定の位置に戻す。不具合の処置は、これらに限られず、障害を復旧させるための処置であればよい。
【0055】
不具合の処理が完了すると、ユーザは、途中から再開する再開プロトコルの処理シンボル104を選択し、指令生成装置1は、その処理シンボル104が示す作業から再開するための継続プロトコルを生成する(手順3)。継続プロトコルには、再開プロトコルから最後のプロトコルまでの全てのプロトコルが含まれる。手順3では、ユーザは、指令生成装置1を操作してプロトコルメーカを起動して該当するプロトコルを確認する。
【0056】
図7は、プロトコルメーカの画面でプロトコルが表示される様子を示す図である。
図7に示すように、プロトコルメーカの画面では、プロトコルチャートCのうち、ロボット3が停止した時のプロトコルが強調表示される。ここでは、「Add」のプロトコルで停止したので、処理シンボル104b1が強調表示される。ユーザは、再現画面Gから、再開したいプロトコルの処理シンボル104を指定する。ユーザは、任意のプロトコルを指定可能である。例えば、ユーザは、ロボット3が停止した時のプロトコルを指定してもよいし、その前後のプロトコルを指定してもよい。
【0057】
図8は、再開するプロトコルが指定された場合の画面例を示す図である。ここでは、「Add」のプロトコルが略完了した時点でロボット3が動作を停止している。更に、ユーザの処置により、「Add」のプロトコルの残り部分は実行する必要がない。このため、ユーザが「Mix」のプロトコルの処理シンボル104b2を指定したものとする。
図7に示すように、ユーザが処理シンボル104b2を指定すると、それよりも前のシンボルがグレーアウトされる。
【0058】
図7の状態でユーザが所定のジョブ生成操作を行うと、ジョブを別名で保存することを促すダイアログが表示される。ジョブ生成操作は、継続プロトコルに応じたジョブを生成するための操作である。本実施形態では、ジョブ生成操作により生成されるジョブは、指令生成装置1に所定のファイル名で保存される。このジョブは、最初に生成されたジョブとは別名で保存される。ユーザがダイアログに従って操作をすると、継続プロトコルのジョブの生成が開始される。ジョブの生成手順は、最初に生成されたジョブと同様であってよい。
【0059】
図9は、継続プロトコルが生成される場合のシーケンスデータDの一例を示す図である。
図9に示すように、シーケンスデータDの全体的の構造は、
図4と同様であるが、初期状態反映フラグとジョブ変換フラグの値が
図4とは異なる。ここでは、最初の「Centrifuge」プロトコルと「Add」プロトコルは実行しないので、初期状態反映フラグが「1」になりジョブ変換フラグの値が「0」になる。指令生成装置1は、初期状態反映フラグが「1」のプロトコルを実行したときの容器の状態変化を計算し、ジョブ変換フラグの値が「1」のプロトコルについてのみ単位ジョブを生成する。つなぎジョブの生成方法についても先述した通りである。
【0060】
上記のように、継続プロトコルにおいても、ジョブ生成操作により生成されるジョブには、先述した単位ジョブとつなぎジョブが含まれる。ただし、ユーザはロボット3が原点復帰しているので、指令生成装置1は、ロボット3を原点の位置から、ユーザが指定した再開プロトコルに対応する初期位置まで移動させる必要がある。本実施形態では、指令生成装置1は、つなぎジョブを利用して、原点の位置からユーザが指定した作業の初期位置まで移動させ、ユーザが指定した作業からスムーズに再開させるようにしている。
【0061】
なお、再開プロトコルまでの単位ジョブ(ジョブ変換フラグが「0」のプロトコルの単位ジョブ)は、仮想的に実行され(あるいは単位ジョブをそもそも生成しない)、ロボットコントローラ2には実行させない。指令生成装置1は、原点復帰したロボット3を、再開プロトコルの単位ジョブの開始位置に移動させるためのつなぎジョブから、ロボットコントローラ2に実行させる。ユーザは、指令生成装置1に対し、継続プロトコルの実行を指示すると(手順4)、指令生成装置1は、再開時に再現すべき状態を示す再現画面Gを表示させる。
【0062】
図10は、再現画面Gの一例を示す図である。
図10に示すように、再現画面Gには、再開時のロボット3の状態、容器の状態、周辺機器の状態、及びロボット3が把持する機器の状態が表示される。再現画面Gには、各機器の配置を示すガイダンスが表示されてもよい。再現画面Gに示される情報は、再開プロトコルの開始直前の状態情報の内容である。ユーザは、再現画面Gの案内に従って再開時の状態を再現し(手順5)、所定の操作を行うと、ロボット3は動作を再開する。
【0063】
以上のように、指令生成装置1は、ロボット3が途中で停止した場合に、ユーザに任意の再開プロトコルを指定させる。ロボット3は、ユーザの操作に応じて原点復帰するので、指令生成装置1は、原点復帰したロボット3を、ユーザが指定した再開プロトコルの単位ジョブの開始位置に移動させるためのつなぎジョブを生成する。これにより、ユーザが指定した再開プロトコルからスムーズに再開できるようにしている。以降、ロボットシステムSの詳細を説明する。
【0064】
[3.ロボットシステムで実現される機能]
図11は、ロボットシステムSで実現される機能を示す機能ブロック図である。本実施形態では、主な機能な指令生成装置1によって実現される場合を説明する。
図11に示すように、指令生成装置1は、データ記憶部1000、動作制御部1001、第1要求部1002、状態制御部1003、表示制御部1004、受付部1005、第1取得部1006、第2取得部1007、第3取得部1008、第2要求部1009、及び再開部1010を含む。
【0065】
[3-1.データ記憶部]
データ記憶部1000は、記憶部1bを主として実現される。データ記憶部1000は、ロボットコントローラ2にロボット動作指令を送信するために必要なデータを記憶する。例えば、データ記憶部1000は、コマンド定義データベースDB1と、状態情報データベースDB2と、を記憶する。
【0066】
コマンド定義データベースDB1には、プロトコルチャートCに記述されたプロトコルに対応する単位ジョブが定義されている。例えば、初期シンボル100のプロトコルには、「チューブラック5a上に移動」、「容器を掴む」、「メインラック5b上に移動」、「容器を置く」、「メインラック5b上に移動」のコマンドを含む単位ジョブが関連付けられている。この単位ジョブの開始位置は、チューブラック5a上の位置である。この単位ジョブの終了位置は、メインラック5b上の位置である。
【0067】
処理シンボル104のプロトコルには、その中に記述された文字列に応じた単位ジョブが定義されている。例えば、「Centrifuge」のプロトコルには、「メインラック5b上に移動」、「容器を掴む」、「遠心分離機6上に移動」、「容器を置く」、「待機する」、「遠心分離機6上に移動」、「容器を掴む」、「遠心分離機6上に移動」のコマンドを含む単位ジョブが関連付けられている。この単位ジョブの開始位置は、メインラック5b上の位置である。この単位ジョブの終了位置は、遠心分離機6上の位置である。
【0068】
また例えば、「Add」のプロトコルには、「ピペットラック8上に移動」、「ピペット7を掴む」、「恒温槽9上に移動」、「液剤の吸引」、「メインラック5b上に移動」、「液剤の注入」、「メインラック5b上に移動」のコマンドを含む単位ジョブが関連付けられている。この単位ジョブの開始位置は、ピペットラック8上の位置である。この単位ジョブの終了位置は、メインラック5b上の位置である。
【0069】
また例えば、「Mix」のプロトコルには、「メインラック5b上に移動」、「容器を掴む」、「ボルテックスミキサー10上に移動」、「容器を置く」、「待機する」、「ボルテックスミキサー10上に移動」の命令を含む単位ジョブが関連付けられている。この単位ジョブの開始位置は、メインラック5b上の位置である。この単位ジョブの終了位置は、ボルテックスミキサー10上の位置である。
【0070】
また例えば、「Discard」のプロトコルには、「ダストボックス11上に移動」、「把持している物体を離す」、「ダストボックス11上に移動」の命令を含む単位ジョブが関連付けられている。この単位ジョブの開始位置及び終了位置は、ダストボックス11上の位置である。
【0071】
また例えば、最終シンボル101のプロトコルには、「メインラック5b上に移動」、「容器を置く」、「メインラック5b上に移動」の命令を含む単位ジョブが関連付けられている。この単位ジョブの開始位置及び終了位置は、それぞれメインラック5b上の位置である。
【0072】
状態情報データベースDB2は、各単位ジョブが実行される時点における状態情報と、状態対応表と、を含む。例えば、状態情報データベースDB2には、初期状態から作業終了までの状態情報が時系列的に格納される。状態対応表は、状態情報で用いられる値の意味が定義された表である。例えば、状態対応表には、ロボット3のハンドの状態を示す値、遠心分離機6の状態を示す値、ピペットラック8の状態を示す値、恒温槽9の状態を示す値、及びボルテックスミキサー10の状態を示す値の意味が定義されている。
【0073】
[3-2.動作制御部]
動作制御部1001は、CPU1aを主として実現される。動作制御部1001は、ロボットコントローラ2に対し、ロボット3を動作させるためのロボット動作指令を送信する。ロボット3は、複数の作業の各々を順番に行う装置の一例である。このため、本実施形態でロボット3と記載した箇所は、装置と読み替えることができる。この装置は、人の代わりに作業を行う装置であればよく、他の任意の産業装置であってよい。作業は、工程又は動作ということもできる。容器の把持、容器の移動、容器の配置、液剤の吸引、液剤の注入、及び処理対象の混合は、作業の一例である。
【0074】
本実施形態では、動作制御部1001は、複数の作業の各々が記述されたプロトコルチャートCに基づいて、ロボット3を動作させる。プロトコルチャートCは、データ記憶部1000に予め記憶されていてもよいし、操作部1dからその場で入力されてもよい。動作制御部1001は、プロトコルチャートCに基づいて、処理の全体的な流れを示すシーケンスデータDを生成する。本実施形態では、プロトコルメーカに、プロトコルチャートCにおける初期シンボル100、最終シンボル101、順序線103、及び処理シンボル104の並び順やその内容からシーケンスデータDを生成するためのコードが記述されている。動作制御部1001は、そのコードを実行し、プロトコルチャートCの内容を解釈してシーケンスデータDを生成する。
【0075】
動作制御部1001は、コマンド定義データベースDB1とシーケンスデータDとに基づいて、単位ジョブを生成する。動作制御部1001は、コマンド定義データベースDB1を参照し、シーケンスデータDに示されたプロトコルに対応する単位ジョブを生成する。動作制御部1001は、シーケンスデータDに示された処理順となるように、単位ジョブを並べてデータ記憶部1000に記録する。本実施形態では、シーケンスデータDにおけるジョブ変換フラグ「1」のプロトコルだけが最終的なジョブに変換される。
【0076】
動作制御部1001は、シーケンスデータDに示されたプロトコルを実行したときの容器の状態変化を計算し、状態情報を生成する。状態情報は、状態情報データベースDB2に格納される。容器の状態変化の計算方法は、プロトコルメーカ又は他のプログラムに定義されているものとする。動作制御部1001は、単位ジョブと状態情報に基づいて、単位ジョブ間の位置をつなぐようにつなぎジョブを生成し、データ記憶部1000に記録する。動作制御部1001は、単位ジョブとつなぎジョブを時系列的に実行するように、ロボット動作指令を生成する。動作制御部1001は、ロボットコントローラ2に対し、生成したロボット動作指令を送信する。
【0077】
[3-3.第1要求部]
第1要求部1002は、CPU1aを主として実現される。第1要求部1002は、ユーザに対し、ロボット3を原点復帰させることを要求する。ロボット3を原点復帰させることは、ロボット3を基本状態にすることに相当する。このため、本実施形態でロボット3を原点復帰させる処理を説明している箇所は、ロボット3を基本状態にする処理に読み替えることができる。基本状態は、予め定められた状態であればよく、原点復帰に限られない。原点復帰は、ロボット3に設定された座標軸の原点に移動させることを意味するが、原点以外の所定の位置にロボット3を移動させることが基本状態に相当してもよい。基本状態は、ロボット3の物理的な位置(姿勢)でなくてもよく、例えば、ロボット3のパラメータや変数などの内部情報を所定の状態にすることでもよい。
【0078】
第1要求部1002は、ユーザに対し、視覚的又は聴覚的な手段を利用して、ロボット3を原点復帰させることを要求する。例えば、第1要求部1002は、ロボット3が動作を停止した場合に、ロボット3を原点復帰させることを促すメッセージを表示部1eに表示させる。また例えば、第1要求部1002は、ロボット3が動作を停止した場合に、ロボット3を原点復帰させることを促す音声をスピーカから出力する。第1要求部1002による要求は、任意の手段によって行われるようにすればよく、これらの例に限られない。例えば、第1要求部1002は、再現画面Gにおいて、ロボット3を原点復帰させることを要求してもよい。
【0079】
[3-4.状態制御部]
状態制御部1003は、CPU1aを主として実現される。状態制御部1003は、ロボット3が途中で停止した場合に、ロボット3を原点復帰させる。本実施形態では、状態制御部1003は、ロボット3を原点復帰させることが要求された場合に、ユーザの指示により、ロボット3を原点復帰させる。状態制御部1003は、第1要求部1002による要求がなされた後に、ユーザの指示が入力されたことを条件として、ロボット3を原点復帰させる。この指示は、原点復帰させるための所定の操作により行われるようにすればよい。
【0080】
状態制御部1003は、ロボットコントローラ2に対し、ロボット3を原点復帰させるためのロボット動作指令を送信する。この指令は、予め定められた形式であればよく、例えば、ロボット3の基本姿勢を示す情報を含んでもよい。ロボットコントローラ2に基本姿勢の情報が記憶されているのであれば、指令にこの情報が含まれなくてもよい。ロボットコントローラ2は、ロボット動作指令を受信すると、ロボット3を原点復帰させる。ロボットコントローラ2は、ロボット3が原点に移動するように、ロボット3内部のモータに対する出力を制御してモータを回転させる。
【0081】
なお、第1要求部1002による要求が特に行われずに、状態制御部1003は、ユーザの指示により、ロボット3を原点復帰させてもよい。また、状態制御部1003は、ユーザの操作を介することなく、自動的にロボット3を原点復帰させてもよい。この場合、状態制御部1003は、所定の条件が満たされた場合に、ロボット3を原点復帰させる。この条件は、任意の条件であってよく、例えば、ロボット3が停止してから一定時間が経過すること、又は、ロボット3が把持している物体が取り外されることである。
【0082】
[3-5.表示制御部]
表示制御部1004は、CPU1aを主として実現される。表示制御部1004は、複数の作業の各々の識別情報を示す画面において、途中で停止した作業を識別可能に表示させる。識別情報は、作業を識別可能な情報であればよく、例えば、作業の名前又はIDである。この画面には、各作業の識別情報が時系列的に表示される。本実施形態では、プロトコルチャートCがこの画面に相当し、プロトコルチャートC内のプロトコル名が識別情報に相当する。このため、本実施形態でプロトコルチャートCを説明している箇所は上記画面と読み替えることができ、プロトコル名を説明している箇所は識別情報と読み替えることができる。上記の画面は、任意の形式であってよく、チャート形式でなくてもよい。例えば、上記の画面は、テーブル形式であってもよいし、ブロック図形式であってもよい。
【0083】
途中で停止した作業は、ロボット3が停止した時に実行していた作業である。本実施形態では、ロボット3が停止した時のプロトコルは、途中で停止した作業に相当する。このため、ロボット3が停止した時のプロトコルについて説明している箇所は、途中で停止した作業と読み替えることができる。途中で停止した作業は、プロトコル以外によって識別されてもよく、例えば、プロトコル名とは異なる作業名、又は、指令の名前によって識別されてもよい。他にも例えば、プロトコルに含まれる細かな個々の作業が途中で停止した作業に相当してもよい。
【0084】
例えば、表示制御部1004は、プロトコルチャートCに、ロボット3が途中で停止したプロトコル名を識別可能に表示させる。
図7に示すように、本実施形態では、表示制御部1004は、ロボット3が途中で停止したプロトコル名を強調表示させる。強調表示は、他のプロトコル名と区別可能な表示態様である。例えば、
図7に示すように、表示制御部1004は、ロボット3が途中で停止したプロトコル名を線で囲うことによって、このプロトコル名を強調表示する。強調表示は、任意の表示態様によって行われるようにすればよく、例えば、プロトコル名を点滅表示させること、プロトコル名の色を変えること、又はプロトコル名のサイズを大きくすることであってもよい。
【0085】
[3-6.受付部]
受付部1005は、CPU1aを主として実現される。受付部1005は、複数の作業の各々を順番に行うロボット3が途中で停止した場合に、ロボット3に再開させる再開作業の指定を受け付ける。本実施形態では、プロトコルチャートCから再開プロトコルを指定することは、再開作業を指定することに相当する。このため、プロトコルチャートCからの再開プロトコルの指定について説明している箇所は、再開作業の指定と読み替えることができる。本実施形態では、受付部1005は、画面に表示された識別情報の指定を受け付けることになる。再開作業は、任意の態様で指定可能であり、例えば、作業の識別情報を直接入力することによって指定されてもよい。他にも例えば、プロトコルに含まれる細かな作業が指定されることによって、再開作業が指定されてもよい。
【0086】
例えば、受付部1005は、再開作業として、ロボット3が途中で停止した作業とは異なる作業の指定を受け付け可能である。異なる作業とは、ロボット3が途中で停止した作業よりも前の作業、又は、ロボット3が途中で停止した作業よりも後の作業である。例えば、受付部1005は、1つ前の作業の指定を受け付けてもよいし、それよりも前の作業の指定を受け付けてもよい。また例えば、受付部1005は、1つ後の作業の指定を受け付けてもよいし、それよりも後の作業の指定を受け付けてもよい。なお、受付部1005は、再開作業として、ロボット3が途中で停止した作業と同じ作業の指定を受け付けてもよい。ユーザは、任意の作業を指定可能である。
【0087】
[3-7.第1取得部]
第1取得部1006は、CPU1aを主として実現される。第1取得部1006は、ロボット3の現在の状態を取得する。本実施形態では、ロボット3が原点復帰することが復旧手順として定められているので、第1取得部1006は、現在の状態として、原点復帰した状態を取得する。原点復帰した状態とは、原点復帰したときのロボット3の位置(姿勢)の情報である。本実施形態では、この情報がデータ記憶部1000に予め記憶されており、第1取得部1006は、データ記憶部1000を参照して、ロボットの位置を取得する。
【0088】
なお、第1取得部1006は、ロボットコントローラ2から、原点復帰したときのロボット3の位置の情報を取得してもよい。第1取得部1006は、ロボットコントローラ2に対し、ロボット3の位置の検出要求を送信する。ロボットコントローラ2は、検出要求を受信すると、ロボット3の位置を検出するセンサの検出信号に基づいて、ロボット3の位置の情報を取得し、指令生成装置1に送信する。第1取得部1006は、ロボットコントローラ2により送信された情報を受信する。ロボット3を原点復帰させない場合には、第1取得部1006は、上記と同様にして、ロボットコントローラ2から、ロボット3の現在の位置の情報を取得すればよい。例えば、第1取得部1006は、ユーザが手動で調整したロボットの現在の位置の情報を取得してもよい。
【0089】
[3-8.第2取得部]
第2取得部1007は、CPU1aを主として実現される。第2取得部1007は、ロボット3の再開作業に対応する再開状態を取得する。再開状態は、再開作業をするときのロボット3の状態である。本実施形態では、ユーザが再開作業として指定したプロトコルの単位ジョブの開始位置が再開状態に相当する。このため、本実施形態でこの開始位置を説明している箇所は、再開状態と読み替えることができる。開始位置は、単位ジョブに含まれているので、第2取得部1007は、単位ジョブに含まれる開始位置を取得することによって、再開状態を取得する。再開状態は、ロボット3の位置以外の情報であってもよく、例えば、ロボット3が把持する物体であってもよい。
【0090】
なお、動作制御部1001又は再開部1010により継続プロトコルのジョブが生成される場合に、初期状態反映フラグが「1」のプロトコルを実行したときの容器の状態変化が計算されるので、第2取得部1007は、この計算結果に基づいて、再開状態を取得してもよい。例えば、第2取得部1007は、初期状態反映フラグが「1」のプロトコルが最後まで実行された場合の容器の状態(再開時の容器の状態)を再開状態として取得してもよい。また例えば、第2取得部1007は、状態情報データベースDB2を参照し、再開プロトコルの直前の状態情報を、再開状態として取得してもよい。
【0091】
[3-9.第3取得部]
第3取得部1008は、CPU1aを主として実現される。第3取得部1008は、再開作業に対応するロボット3の周辺環境を取得する。周辺環境とは、ロボット3以外の機器の状態であり、例えば、チューブラック5a、メインラック5b、遠心分離機6、ピペット7、ピペットラック8、恒温槽9、ボルテックスミキサー10、又はダストボックス11の状態である。再開作業に対応する周辺環境は、状態情報データベースDB2に格納されていてよい。本実施形態では、動作制御部1001又は再開部1010により継続プロトコルのジョブが生成される場合に、再開時の状態が計算されるので、第3取得部1008は、この計算結果のうち、周辺環境の状態を取得してもよい。
【0092】
[3-10.第2要求部]
第2要求部1009は、CPU1aを主として実現される。第2要求部1009は、ユーザに対し、再開作業に対応する周辺環境にすることを要求する。第2要求部1009は、ユーザに対し、視覚的又は聴覚的な手段を利用して、再開作業に対応する周辺環境にすることを要求する。例えば、第2要求部1009は、ロボット3の再開時の機器の配置を、表示部1eに表示させる。また例えば、第2要求部1009は、再開作業に対応する周辺環境にすることを促す音声をスピーカから出力する。本実施形態では、第2要求部1009は、再現画面Gを表示部1eに表示させることによって要求を行う。第2要求部1009による要求は、任意の手段によって行われるようにすればよく、これらの例に限られない。
【0093】
[3-11.再開部]
再開部1010は、CPU1aを主として実現される。再開部1010は、現在の状態から再開状態になるようにロボット3を動作させ、ロボット3に再開作業から再開させる。本実施形態では、ロボット3は原点復帰するので、再開部1010は、原点復帰した状態から再開状態になるようにロボット3を動作させ、ロボット3に再開作業から再開させる。原点復帰がなされない場合には、再開部1010は、第1取得部1006が取得した状態から再開状態になるようにロボット3を動作させるようにすればよい。再開部1010は、ロボットコントローラ2に対し、現在の状態から再開状態になるようにロボット3を動作させるためのロボット動作指令と、ロボット3に再開作業から再開させるためのロボット動作指令と、を送信する。
【0094】
再開部1010は、原点復帰した状態から再開状態にするためのつなぎジョブに基づいて、ロボット3に再開作業から再開させる。つなぎジョブは、動作制御部1001により生成されてもよいし、再開部1010が生成してもよい。つなぎジョブの生成方法は、先述した通りであり、ロボットの原点の位置から、再開させるプロトコルの単位ジョブの開始位置まで、所定の経路でロボット3が移動するようにジョブが生成される。再開作業に至るまでに、容器又はツールの把持が必要であれば、これらを把持する作業をするためのつなぎジョブが生成される。例えば、再開部1010は、先述した流れで継続プロトコルの動作ジョブやつなぎジョブを生成する。再開部1010は、これらのジョブに基づくロボット動作指令を生成し、ロボットコントローラ2に対し、生成したロボット動作指令を送信する。
【0095】
例えば、再開部1010は、最初の作業から再開作業の前の作業までを仮想的に実行し、現在の状態から再開状態になるようにロボット3を動作させ、ロボット3に再開作業から再開させてもよい。仮想的に実行とは、コンピュータの内部的に実行するだけであり、ロボット3を物理的に動作させないことである。本実施形態では、ジョブ変換フラグが「0」のプロトコルについてはジョブが生成されないので、再開部1010は、ジョブ変換フラグが「0」のプロトコルについて、仮想的に実行する。プロトコルの仮想的な実行は、動作制御部1001により行われてもよい
【0096】
本実施形態では、プロトコルチャートCが利用されるので、再開部1010は、プロトコルチャートCに基づいて、ロボット3に再開作業から再開させる。再開部1010は、プロトコルチャートCに基づいて生成されたロボット動作指令を、ロボットコントローラ2に送信し、ロボット3に再開作業から再開させる。再開部1010は、再開作業から再開したロボット3に、対象物を製造させる。対象物は、任意のものであってよく、例えば、最終的な処理対象である。遠心分離済みの処理対象又は液剤を混合済みの処理対象は、製造される対象物の一例である。産業用ロボットであれば、ワーク又は最終的な製品は、製造される対象物の一例である。
【0097】
[4.ロボットシステムで実行される処理]
図12及び
図13は、ロボット3が動作を停止した場合にロボットシステムSで実行される処理の一例を示すフロー図である。
図12及び
図13に示す処理は、
図11に示す機能ブロックにより実行される処理の一例である。
【0098】
図12に示すように、指令生成装置1は、プロトコルチャートCに基づいて、ロボット動作指令を生成し、ロボットコントローラ2に対し、ロボット動作指令を送信する(S1)。S1においては、指令生成装置1は、プロトコルチャートCに基づいて、シーケンスデータDを生成する。指令生成装置1は、コマンド定義データベースDB1に基づいて、シーケンスデータDに示された各プロトコルに応じた単位ジョブを生成する。指令生成装置1は、生成した単位ジョブに応じた状態情報を生成し、状態情報データベースDB2に格納する。指令生成装置1は、状態情報の内容に基づいて、各単位ジョブ間のつなぎジョブを生成する。指令生成装置1は、単位ジョブとつなぎジョブを順番に実行するようにロボット動作指令を生成し、ロボットコントローラ2に送信する。
【0099】
ロボットコントローラ2は、ロボット動作指令を受信し、ロボット3を動作させる(S2)。プロトコルチャートCに記述されたプロトコルを順番に実行するようにロボット動作指令が生成されるので、S2においては、ロボットコントローラ2は、プロトコルチャートCに記述された順序でプロトコルが実行されるように、ロボット3を動作させる。
【0100】
ロボットコントローラ2は、所定の停止条件が満たされるか否かを判定する(S3)。停止条件は、ロボット3を停止させるための条件であり、例えば、ロボット3が他の物体に干渉すること、又は、ロボット3が把持している物体を落とすことである。S3においては、ロボットコントローラ2は、モーションセンサやビジョンセンサなどのセンサ類の検出信号に基づいて、停止条件が満たされるか否かを判定する。停止条件の充足は、変数などの内部情報に基づいて判定されてもよい。
【0101】
停止条件が満たされたと判定された場合(S3;Y)、ロボットコントローラ2は、ロボット3を停止させ(S4)、指令生成装置1に対し、所定のアラームを送信する(S5)。アラームは、所定形式のデータが送信されることによって行われ、例えば、ロボット3が動作を停止したプロトコルを識別可能な情報を含む。例えば、ロボット3が停止したときに実行されていたロボット動作指令の名前は、この情報としてアラームに含まれる。
【0102】
指令生成装置1は、アラームを受信し、原点復帰を促すメッセージを表示部1eに表示させる(S6)。ユーザはこのメッセージを確認すると、ロボット3が把持するパーツ等を取り外し、原点復帰をするための操作を行う。指令生成装置1は、ユーザの操作に基づいて、ロボットコントローラ2に対し、原点復帰のロボット動作指令を送信する(S7)。このロボット動作指令は、原点復帰時のロボット3の位置(ロボット3に設定された座標系における原点の位置)を含む。
【0103】
ロボットコントローラ2は、ロボット動作指令を受信すると、ロボット3を原点復帰させる(S8)。S8においては、ロボットコントローラ2は、ロボット動作指令に含まれる位置に移動するように、ロボット3を制御する。その後、ユーザは、ロボット3周辺の不具合の処置を行う。
【0104】
指令生成装置1は、プロトコルメーカを起動し、プロトコルチャートCに、ロボット3が動作を停止したプロトコル名を表示させる(S9)。S9においては、指令生成装置1は、プロトコルチャートCにおいて、受信したアラームによって識別されるプロトコルの処理シンボル104を強調表示させる。
【0105】
指令生成装置1は、操作部1dの検出信号に基づいて、ユーザによる再開プロトコルの指定を受け付け(S10)、プロトコルチャートCにおいて、ユーザが指定した再開プロトコルより前をグレーアウトさせる(S11)。S10においては、ユーザは、プロトコルチャートCに表示された任意の処理シンボル104を選択することによって、再開プロトコルを指定する。S11においては、指令生成装置1は、ユーザが選択した処理シンボル104よりも前の部分をグレーアウトさせる。
【0106】
指令生成装置1は、操作部1dの検出信号に基づいて、ユーザによるジョブ生成操作を受け付け(S12)、指令生成装置1は、プロトコルチャートCにダイアログを表示させる(S13)。
図13に移り、指令生成装置1は、ダイアログに対するユーザの操作に基づいて、継続プロトコルのロボット動作指令を生成する(S14)。S14においては、指令生成装置1は、ユーザが指定した再開プロトコルの前のプロトコルまで、初期状態フラグを「1」にしてジョブ変換フラグを「0」にしたシーケンスデータDを生成する。指令生成装置1は、このシーケンスデータDに基づいて、単位ジョブ、つなぎジョブ、及び状態情報を生成し、ロボット動作指令を生成する。
【0107】
指令生成装置1は、操作部1dの検出信号に基づいて、ユーザによる継続プロトコルの実行操作を受け付け(S15)、指令生成装置1は、プロトコルチャートCに、再開時の状態を再現画面Gに表示させる(S16)。S16においては、指令生成装置1は、ロボット動作指令を生成する過程で生成した状態情報に基づいて、再現画面Gを表示させる。ユーザは再現画面Gに表示されたガイダンスに従って、ロボット3の周辺の環境を再開直前の状態に再現する。
【0108】
指令生成装置1は、操作部1dの検出信号に基づいて、ユーザによる再現完了操作を受け付け(S17)、ロボットコントローラ2に対し、ロボット動作指令を送信する(S18)。ロボットコントローラ2は、ロボット動作指令を受信すると、ユーザが指定した再開プロトコルから再開し(S19)、S2の処理に戻り、受信したロボット動作指令に基づく制御を継続する。S19においては、ロボットコントローラ2は、ロボット3を原点復帰した状態から、再開プロトコルの開始位置まで移動させる。ロボットコントローラ2は、再開プロトコルの開始位置までロボット3を移動させると、再開プロトコルを開始するようにロボット3を制御する。ロボットコントローラ2は、S19で受信されたロボット動作指令に基づいて、これらの制御を実行する。
【0109】
S3において、停止条件が満たされたと判定されない場合(S3;N)、ロボットコントローラ2は、最後のプロトコルまで実行したか否かを判定する(S20)。最後のプロトコルまで実行したと判定されない場合(S20;N)、S2の処理に戻り、ロボット動作指令に基づく制御が継続される。最後のプロトコルまで実行したと判定された場合(S20;Y)、本処理は終了する。
【0110】
以上説明したロボットシステムSによれば、ロボット3が途中で停止した場合に、ロボット3に再開させる再開プロトコルの指定を受け付け、現在の状態から再開プロトコルに対応する再開状態にロボット3を移行させ、ロボット3に任意の再開プロトコルから再開させることができる。例えば、停止中のロボット3を初期状態に戻して最初の作業から再開させる場合には、最初から作業をやり直さなければならず非効率であるが、ロボットシステムSによれば、任意の作業から再開可能なので、最初のプロトコルから再開プロトコルの1つ前までのプロトコルを飛ばし、再開後の作業を効率化できる。また例えば、停止時の作業の続きから再開させる場合には、ロボット3を停止時の状態に戻してから再開させる必要があるので再開作業が煩雑になるが、ロボットシステムSによれば、任意の状態からスムーズに再開できるので、再開作業の負担を軽減できる。また、スムーズに再開させることで、再開までの時間を短縮することもできる。
【0111】
また、ロボットシステムSは、ロボット3が途中で停止した場合に、ロボット3を原点復帰させ、原点復帰した状態から再開プロトコルに応じた状態にロボット3を移行させ、ロボット3に再開プロトコルから再開させることにより、どの再開プロトコルから再開させたとしても、同じ基本状態が基準となるので、よりスムーズに作業を再開させることができる。また、基準となる状態が同じなので、再開プロトコルに応じた状態に移行させるまでの仕組みを単純化できる。
【0112】
また、ロボットシステムSは、ユーザに対し、ロボット3を原点復帰させることを要求し、ユーザの指示により、ロボット3を原点復帰させることにより、ユーザの復旧操作を支援することができる。
【0113】
また、ロボットシステムSは、再開プロトコルとして、ロボット3が途中で停止したプロトコルとは異なるプロトコルの指定を受け付け可能とすることで、任意の再開プロトコルから再開させることができる。例えば、途中で停止したプロトコルの続きについてはユーザが行い、その次のプロトコルから再開することができる。また例えば、途中で停止したプロトコルの1つ前の状態にユーザが戻し、1つ前のプロトコルから再開することができる。
【0114】
また、ロボットシステムSは、途中で停止したプロトコルを識別可能な画面を表示させ、その画面の中で再開プロトコルの指定を受け付けることで、再開作業の指定をしやすくなる。
【0115】
また、ロボットシステムSは、ユーザに対し、再開プロトコルに対応する周辺環境にすることを要求することにより、ユーザの復旧操作を支援することができる。
【0116】
また、ロボットシステムSは、最初のプロトコルから再開プロトコルの前のプロトコルまでを仮想的に実行し、現在の状態から再開状態になるようにロボット3を動作させ、ロボット3に再開プロトコルから再開させることにより、再開プロトコルからスムーズに再開させることができる。例えば、最初から実行する必要のあるプログラムであったとしても、任意のプロトコルから再開することができる。
【0117】
また、ロボットシステムSは、複数のプロトコルの各々が記述されたプロトコルチャートCに基づいて、ロボット3に再開プロトコルから再開させることにより、よりスムーズに再開プロトコルから再開させることができる。
【0118】
[5.変形例]
なお、本開示は、以上に説明した実施の形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0119】
図14は、変形例の機能ブロック図である。
図14に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、第2受付部1011と記録部1012が実現される。なお、
図14では、実施形態で説明した受付部1005を第1受付部1005と記載する。
【0120】
(1)例えば、再開プロトコルだけではなく、再開プロトコルを再開させるときの再開条件をユーザに指定させてもよい。再開条件は、任意の条件を指定可能であり、例えば、再開時の容器の状態、ロボット3が利用するパーツの状態、ロボット3の位置、ロボット3が動作を待機する待機時間、周辺機器の動作時間、又は周辺機器の状態などである。他にも例えば、指令生成装置1からロボットコントローラ2のパラメータを指定可能なのであれば、再開プロトコルを再開後のパラメータが再開条件に相当してもよい。
【0121】
本変形例では、第2受付部1011が実現される。第2受付部1011は、CPU1aを主として実現される。第2受付部1011は、再開作業の再開条件の指定を受け付ける。第2受付部1011は、操作部1dの検出信号に基づいて、再開条件の指定を受け付ける。例えば、第2受付部1011は、ユーザにより指定された再開時の容器の状態、ロボット3が利用するパーツの状態、ロボット3の位置、ロボット3が動作を待機する待機時間、周辺機器の動作時間、又は周辺機器の状態を、再開条件として受け付ける。
【0122】
再開部1010は、再開条件に基づいて、ロボット3に再開作業から再開させる。再開部1010は、再開条件に基づいて、再開後のロボット動作指令を生成し、ロボットコントローラ2に送信する。例えば、再開部1010は、ユーザにより指令された状態に容器を変化させるようなロボット動作指令(例えば、容器を移動又は把持するための指令)を生成する。また例えば、再開部1010は、ユーザにより指定された状態にパーツを変化させるようなロボットの動作指令(例えば、パーツを移動又は把持するための指令)を生成する。他の再開条件についても同様に、再開部1010は、再開条件に応じたロボット動作指令を生成すればよい。
【0123】
変形例(1)によれば、再開プロトコルを再開させるための再開条件の指定を受け付けて、再開条件に基づいて、ロボット3に再開プロトコルから再開させることにより、再開プロトコルからスムーズに再開させることができる。
【0124】
(2)また例えば、変形例(1)において、ユーザが指定した再開条件がデータ記憶部1000に記録され、再び同じプロトコルが指定された場合に、記録された再開条件が読みだされて実行されてもよい。即ち、同様の障害が発生した場合に、ユーザが再開条件を再度指定しなくても再開条件に応じた再開プロトコルが実行されてもよい。
【0125】
本変形例では、記録部1012が実現される。記録部1012は、CPU1aを主として実現される。記録部1012は、再開プロトコルと再開条件とを関連付けてデータ記憶部1000に記録する。記録部1012は、ユーザが指定した再開プロトコルと再開条件を互いに紐づけでデータ記憶部1000に記録する。記憶部112は、再開プロトコル以降も含む継続プロトコル全体を記録してもよい。
【0126】
再開部1010は、再びロボット3が途中で停止して、記録済みの再開プロトコルが指定された場合に、再開プロトコルに関連付けられて記憶された再開条件に基づいて、ロボット3に再開プロトコルから再開させる。この場合、再開部1010は、ユーザによる再開条件の指定なしに、データ記憶部1000に記憶された再開条件に基づいて、再開プロトコルから再開させる。再開条件に応じた再開方法自体は、変形例(1)で説明した通りである。
【0127】
変形例(2)によれば、再開プロトコルと再開条件とを関連付けて記録しておき、再開プロトコルが指定された場合に、再開プロトコルに関連付けられて記憶された再開条件に基づいて、ロボット3に再開作業から再開させることにより、ユーザの復旧操作を支援することができる。
【0128】
(3)また例えば、再開プロトコルが、繰り返し実行されるループ動作を含む場合、再開条件は、再開時のループであってもよい。この場合、再開プロトコルでは、所定の動作が繰り替えし実行されるように動作が定められている。再開プロトコルにおける動作のループ数は、予め定められている。再開条件のループ数として、1以上であり、かつ、上限のループ数以下の数が指定される。再開部1010は、ユーザにより指定されたループ数から再開プロトコルを再開するようにロボット動作指令を生成する。このロボット動作指令には、残りのループ数だけ動作を繰り返すための指令となる。ロボットコントローラ2は、ロボット動作指令に示された残りループ数だけ動作を繰り返すように、ロボット3を動作させる。
【0129】
変形例(3)によれば、再開時のループを再開条件として含むことにより、より正確に作業を再開させることができる。
【0130】
(4)また例えば、上記変形例を組み合わせてもよい。
【0131】
また例えば、指令生成装置1がプロトコルチャートCに基づいてロボット動作指令を生成する場合を説明したが、ロボット3は、他の任意の方法によって制御可能である。例えば、ロボットコントローラ2が、ロボット言語又はラダー言語で作成されたプログラムに基づいてロボット3を制御してもよい。この場合、ユーザは、プログラム中の任意のコードを再開作業として指定する。ロボット3を原点復帰させる場合、指令生成装置1は、原点復帰した状態から、ユーザが指定したコードの直前の状態になるように、ロボットを動作させるようなロボット動作指令を生成する。ロボットコントローラ2は、このロボット動作指令に基づいて、ユーザが指定したコードの直前の状態になるようにロボット3を動作させ、当該コード以降の命令を実行すればよい。
【0132】
また例えば、上記説明した各機能は、ロボットシステムSにおける任意の装置で実現されるようにすればよい。例えば、指令生成装置1で実現されるものとして説明した機能がロボットコントローラ2又は他のコンピュータによって実現されてもよい。また例えば、各機能が1つのコンピュータによって実現されるのではなく、複数のコンピュータによって分担されてもよい。
【0133】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【0134】
S ロボットシステム、1 指令生成装置、1a CPU、1b 記憶部、1c 通信部、1d 操作部、1e 表示部、2 ロボットコントローラ、3 ロボット、4a,4b マイクロチューブ、5a チューブラック、5b メインラック、6 遠心分離機、7 ピペット、8 ピペットラック、9 恒温槽、C プロトコルチャート、D シーケンスデータ、G 再現画面、10 ボルテックスミキサー、11 ダストボックス、100,100a,100b 初期シンボル、101,101a,101b 最終シンボル、102,102a,102b 容器数シンボル、103,103a,103b 順序線、104,104a1,104a2,104b1,104b2,104b3 処理シンボル,1000 データ記憶部、1001 動作制御部、1002 第1要求部、1003 状態制御部、1004 表示制御部、1005 受付部、1006 第1取得部、1007 第2取得部、1008 第3取得部、1009 第2要求部、1010 再開部、1011 第2受付部、1012 記録部、DB1 コマンド定義データベース、DB2 状態情報データベース。