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

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

▶ オムロン株式会社の特許一覧

特開2023-133948ロボットシステムおよびコントローラ
<>
  • 特開-ロボットシステムおよびコントローラ 図1
  • 特開-ロボットシステムおよびコントローラ 図2
  • 特開-ロボットシステムおよびコントローラ 図3
  • 特開-ロボットシステムおよびコントローラ 図4
  • 特開-ロボットシステムおよびコントローラ 図5
  • 特開-ロボットシステムおよびコントローラ 図6
  • 特開-ロボットシステムおよびコントローラ 図7
  • 特開-ロボットシステムおよびコントローラ 図8
  • 特開-ロボットシステムおよびコントローラ 図9
  • 特開-ロボットシステムおよびコントローラ 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023133948
(43)【公開日】2023-09-27
(54)【発明の名称】ロボットシステムおよびコントローラ
(51)【国際特許分類】
   B25J 15/00 20060101AFI20230920BHJP
【FI】
B25J15/00 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022039220
(22)【出願日】2022-03-14
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】枇杷木 秀
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707DS01
3C707ES03
3C707ET08
3C707EU18
3C707EW01
3C707HS27
3C707LU04
(57)【要約】
【課題】ロボットのグリッパの動作に連動させてグリッパの位置決めを行う技術を提供する。
【解決手段】ロボットシステムは、エンドエフェクタとして複数の爪を有するグリッパがアーム先端に取り付けられたロボットと、ロボットを制御するコントローラとを含む。コントローラは、予め定められた動作プロファイルに従って、グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュールと、ロボットのアーム先端を、予め定められた方向に沿って、第1指令生成モジュールが生成する第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュールとを含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
ロボットシステムであって、
エンドエフェクタとして複数の爪を有するグリッパがアーム先端に取り付けられたロボットと、
前記ロボットを制御するコントローラとを備え、
前記コントローラは、
予め定められた動作プロファイルに従って、前記グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュールと、
前記ロボットのアーム先端を、予め定められた方向に沿って、前記第1指令生成モジュールが生成する前記第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュールとを備える、ロボットシステム。
【請求項2】
前記動作プロファイルは、時間に対する前記グリッパの爪の間の距離の変化を規定する、請求項1に記載のロボットシステム。
【請求項3】
前記第2指令生成モジュールは、前記第1指令生成モジュールが生成する前記第1指令が示す第1変位に所定係数を乗じて算出される第2変位を前記第2指令として出力する、請求項1または2に記載のロボットシステム。
【請求項4】
前記第2指令生成モジュールは、前記グリッパの動作開始位置から動作終了位置までの全変位に対して、前記動作プロファイルの進行率を乗じて算出される変位を前記第2指令として出力する、請求項1または2に記載のロボットシステム。
【請求項5】
前記コントローラのプロセッサが制御プログラムを実行するように構成されており、
前記制御プログラムは、前記第1指令生成モジュールおよび前記第2指令生成モジュールをそれぞれ規定するためのファンクションブロックを含む、請求項1~4のいずれか1項に記載のロボットシステム。
【請求項6】
エンドエフェクタとして複数の爪を有するグリッパがアーム先端に取り付けられたロボットを制御するコントローラであって、
予め定められた動作プロファイルに従って、前記グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュールと、
前記ロボットのアーム先端を、予め定められた方向に沿って、前記第1指令生成モジュールが生成する前記第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュールとを備える、コントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムおよびコントローラに関する。
【背景技術】
【0002】
産業オートメーション(Industrial Automation)の分野において、様々な用途にロボットが利用されている。用途に応じて、ロボットを可能な限り正確に制御することが要求される。
【0003】
例えば、特開2013-206425号公報(特許文献1)は、ロボットの多軸同期動作時の軌跡誤差を更に縮小することのできるロボットの制御装置を開示している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013-206425号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の先行技術は、ロボットを構成する複数の軸同士を同期させる技術を開示するが、ロボットを構成する軸とそれ以外の機構とを同期させる構成は開示等されていない。本発明は、ロボットのグリッパの動作に連動させてグリッパの位置決めを行う技術を提供する。
【課題を解決するための手段】
【0006】
ある実施の形態に従うロボットシステムは、エンドエフェクタとして複数の爪を有するグリッパがアーム先端に取り付けられたロボットと、ロボットを制御するコントローラとを含む。コントローラは、予め定められた動作プロファイルに従って、グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュールと、ロボットのアーム先端を、予め定められた方向に沿って、第1指令生成モジュールが生成する第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュールとを含む。
【0007】
この構成によれば、予め定められた動作プロファイルに従ってグリッパを動作させることで、当該グリッパの動作に応じてロボットのアーム先端を移動させることができる。これによって、グリッパの動作とグリッパの位置決めのより適切なタイミングに決定できる。
【0008】
動作プロファイルは、時間に対するグリッパの爪の間の距離の変化を規定するようにしてもよい。この構成によれば、目的に応じて、グリッパの爪の間の距離を制御できる。
【0009】
第2指令生成モジュールは、第1指令生成モジュールが生成する第1指令が示す第1変位に所定係数を乗じて算出される第2変位を第2指令として出力するようにしてもよい。この構成によれば、第1指令生成モジュールが生成する第1指令が示す第1変位に対して線形性を維持した第2変位を第2指令として出力できる。
【0010】
第2指令生成モジュールは、グリッパの動作開始位置から動作終了位置までの全変位に対して、動作プロファイルの進行率を乗じて算出される変位を第2指令として出力するようにしてもよい。この構成によれば、動作プロファイルの進行率に対して線形性を維持した変位を第2指令として出力できる。
【0011】
コントローラのプロセッサが制御プログラムを実行するように構成されてもよい。制御プログラムは、第1指令生成モジュールおよび第2指令生成モジュールをそれぞれ規定するためのファンクションブロックを含むようにしてもよい。この構成によれば、ファンクションブロックを制御プログラムに含めるだけで、ロボットのグリッパの動作に連動させたグリッパの位置決めを実現できる。
【0012】
別の実施の形態に従えば、エンドエフェクタとして複数の爪を有するグリッパがアーム先端に取り付けられたロボットを制御するコントローラは、予め定められた動作プロファイルに従って、グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュールと、ロボットのアーム先端を、予め定められた方向に沿って、第1指令生成モジュールが生成する第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュールとを含む。
【発明の効果】
【0013】
本発明によれば、ロボットのグリッパの動作に連動させてグリッパの位置決めを行うことができる。
【図面の簡単な説明】
【0014】
図1】本実施の形態に従うロボットシステムの全体構成例を示す模式図である。
図2】本実施の形態に従うロボットシステムのハードウェア構成例を示す模式図である。
図3】本実施の形態に従うロボットシステムの制御プログラムが提供する機能構成例を示す模式図である。
図4】本実施の形態に従うロボットシステムのグリッパの動作プロファイルの一例を示すタイムチャートである。
図5図3に示す機能構成例を実現するための制御プログラムの一例を示す図である。
図6】本実施の形態に従うロボットシステムの動作例を示す模式図である。
図7】本実施の形態に従うロボットシステムの同期制御を含む動作のタイムチャートである。
図8】本実施の形態に従うロボットシステムの動作の比較例を示すタイムチャートである。
図9】本実施の形態に従うロボットシステムのロボットコントローラで実行される制御プログラムの作成手順例を示すフローチャートである。
図10】本実施の形態に従うロボットシステムのハードウェア構成例の変形例を示す模式図である。
【発明を実施するための形態】
【0015】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0016】
<A.ロボットシステムの全体構成例>
まず、本実施の形態に従うロボットシステム1の全体構成例について説明する。
【0017】
図1は、本実施の形態に従うロボットシステム1の全体構成例を示す模式図である。図1を参照して、ロボットシステム1は、多関節ロボット(以下、単に「ロボット10」と称す。)と、ロボット10を制御するロボットコントローラ100とを含む。
【0018】
ロボット10は、ベース11と、複数の可動部12,13,14,15,16,17とを含む。可動部12,13,14,15,16,17は、ロボット10の関節(joint)に相当する。可動部12,13,14,15,16,17の各々は、図1に示すような回転軸に沿ってロボット10を構成するリンクを駆動する。
【0019】
ロボット10には、エンドエフェクタとして複数の爪を有するグリッパ20が取り付けられている。より具体的には、ロボット10のアーム先端には、エンドエフェクタとして、グリッパ20が取り付けられている。グリッパ20は、一種のロボットハンドであり、ワークを把持するなどの用途に用いられる。なお、グリッパ20は、ハンドやチャックと称されることもある。
【0020】
グリッパ20は、複数の爪を有しており、爪の間の距離を変化させることで、ワークを把持し、あるいは、把持を解放する。図1に示すグリッパ20は、本体部21と、2つの爪22,23とを含む。爪22と爪23との間の距離は、図示しないモータあるいは空気圧によって調整される。以下では、主として、爪22,23をモータ駆動する構成を説明するが、空気圧で駆動する構成を採用してもよい。
【0021】
ロボットコントローラ100には、情報処理装置200が接続されてもよい。情報処理装置200は、典型的には、汎用コンピュータであり、ロボットコントローラ100からの情報をユーザに提示するとともに、ユーザ操作に従って任意の指令をロボットコントローラ100へ与える。
【0022】
<B.ロボットシステムのハードウェア構成例>
次に、本実施の形態に従うロボットシステム1のハードウェア構成例について説明する。
【0023】
図2は、本実施の形態に従うロボットシステム1のハードウェア構成例を示す模式図である。図2を参照して、ロボット10は、可動部12,13,14,15,16,17にそれぞれ対応付けられたモータ31,32,33,34,35,36と、モータ31,32,33,34,35,36をそれぞれ駆動するドライバ41,42,43,44,45,46とを含む。
【0024】
また、ロボット10は、グリッパ20の爪22,23を駆動するためのモータ37と、モータ37を駆動するドライバ47とを含む。
【0025】
さらに、ロボット10は、ティーチングペンダント26を含む。ティーチングペンダント26は、ユーザ操作に応じて、ロボット10のティーチングなどを行う。ティーチングペンダント26は、ロボット10に対して着脱可能に構成されてもよい。
【0026】
ドライバ41,42,43,44,45,46,47、および、ティーチングペンダント26は、インターフェイス40を介して、ロボットコントローラ100と電気的に接続される。
【0027】
ロボットコントローラ100は、一種のコンピュータであり、主要なハードウェアコンポーネントとして、プロセッサ102と、メモリ104と、インターフェイス106と、ストレージ110とを含む。これらのコンポーネントはバス108を介して電気的に接続される。
【0028】
プロセッサ102は、典型的には、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などで構成される。メモリ104は、典型的には、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ストレージ110は、典型的には、SSD(Solid State Disk)やフラッシュメモリなどの不揮発性記憶装置で構成される。ストレージ110は、基本的な処理を実現するためのシステムプログラム112と、制御プログラム114とを格納する。制御プログラム114は、ロボット10を制御するためのコンピュータ読取可能な命令を含む。プロセッサ102は、ストレージ110に格納されたシステムプログラム112および制御プログラム114を読出して、メモリ104に展開して実行することで、後述するようなロボット10を制御するための処理を実現する。
【0029】
インターフェイス106は、ロボットコントローラ100とロボット10との間の信号および/またはデータのやり取りを担当する。ロボットシステム1においては、ドライバ41,42,43,44,45,46,47を制御するための指令がロボットコントローラ100からロボット10へ送信される。
【0030】
図2には、プロセッサ102がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0031】
図2には、ロボットコントローラ100をロボット10から独立して構成した例を示しているが、ロボットコントローラ100が提供する機能および処理の一部または全部をロボット10に組み入れてもよい。この場合、ロボットコントローラ100は、ロボット制御に専用化されたコントローラとして実装してもよいし、汎用的なPLC(プログラマブルコントローラ)あるいはパーソナルコンピュータを用いて実装してもよい。
【0032】
さらに、ロボットコントローラ100が提供する機能および処理の一部または全部をいわゆるクラウドと称されるネットワーク上のコンピューティングリソースを用いて実現してもよい。
【0033】
以上のように、本実施の形態に従うロボットシステム1は、どのように実装してもよい。
【0034】
<C.ロボットシステムの同期制御>
次に、本実施の形態に従うロボットシステム1の同期制御について説明する。
【0035】
エンドエフェクタとしてグリッパ20がアーム先端に取り付けられたロボット10の典型的な動作としては、ロボット10のアーム先端(グリッパ20)を把持対象のワークに近付けるとともに、ワークへの接近に合わせてグリッパ20の爪を閉じる動作が想定される。このようなロボット10の動作とグリッパ20の動作とを連動させるためには、ロボット10がワークを把持する位置に到達したタイミングでグリッパ20の爪を閉じ切るように、両者の動作を制御周期単位で調整するようなことが必要となる。なお、爪を閉じ切ることは、2つの爪が接触する状態だけではなく、ワークの大きさに応じた距離まで近付いている状態を含み得る。
【0036】
このような調整に際しては、ロボット10およびグリッパ20の動作を示すタイミングチャートが作成されることも多い。
【0037】
しかしながら、ロボット10およびグリッパ20のそれぞれの動作を調整するには、時間を要するとともに、ある程度の経験も必要であり、知識の乏しいユーザが実施することは容易ではない。
【0038】
そこで、本実施の形態に従うロボットシステム1は、ロボット10の動作とグリッパ20の動作とを同期させる制御をより容易に実現できる構成を提供する。
【0039】
図3は、本実施の形態に従うロボットシステム1の制御プログラム114が提供する機能構成例を示す模式図である。図3に示すモジュールは、典型的には、ロボットコントローラ100のプロセッサ102が制御プログラム114を実行することで実現される。
【0040】
図3を参照して、ロボットコントローラ100は、機能構成として、グリッパ動作指令生成モジュール130と、ロボット動作指令生成モジュール140と、キネマティクスモジュール150とを含む。
【0041】
グリッパ動作指令生成モジュール130は、予め定められた動作プロファイル132に従って、グリッパ動作指令値(第1指令)を生成する。すなわち、グリッパ動作指令生成モジュール130は、動作プロファイル132に従って、グリッパ20の爪22,23を閉じるように指令を生成する。グリッパ動作指令値は、例えば、グリッパ20の爪22,23を駆動するためのモータ37に対する、制御周期毎のトルク指令値、回転速度指令値、位置指令値などであってもよい。
【0042】
また、グリッパ動作指令生成モジュール130は、動作プロファイル132に従って生成するグリッパ動作指令値に応じた動作量を出力する。動作量は、動作プロファイル132に従って算出される変位(位置の変化量)であってもよいし、動作プロファイル132に規定された1サイクルのうち進行の度合いを示す進行率であってもよい。
【0043】
図4は、本実施の形態に従うロボットシステム1のグリッパ20の動作プロファイル132の一例を示すタイムチャートである。図4(A)には、爪の間の距離(変位)を示し、図4(B)には、爪の間の距離の変化速度を示し、図4(C)には、爪の間の距離の変化加速度を示す。なお、距離の変化速度および距離の変化加速度については、爪の間の距離が減少する方向を正として算出している。
【0044】
図4に示すように、グリッパ20の爪は、期間T1,T2,T3の間に、動作開始位置PGSから動作終了位置PGEまで移動する。期間T1は、加速期間であり、期間T2は、等速動作期間であり、期間T3は、減速期間である。
【0045】
なお、期間T1,T2,T3の長さ、動作開始位置PGS、動作終了位置PGE(あるいは、移動距離PGE-PGS)については、任意に設定できる。
【0046】
図4(A)に示すように、動作プロファイル132は、時間に対するグリッパ20の爪の間の距離の変化を規定するものであってもよい。あるいは、図4(B)および図4(C)に示すように、時間に対するグリッパ20の爪の間の距離の変化速度および変化加速度の変化を規定するものであってもよい。
【0047】
再度図3を参照して、ロボット動作指令生成モジュール140は、目標軌道144に従って、ロボット位置指令値(第2指令)を生成する。ロボット位置指令値は、一般的には、アーム先端(TCP:tool center point)の位置および姿勢を指定する値(位置3次元および姿勢3次元を含む)であり、グローバル座標系の座標値であってもよいし、ロボット座標系の座標値であってもよい。
【0048】
ロボット動作指令生成モジュール140は、従軸指定142により指定された軸については、グリッパ動作指令生成モジュール130からの動作量に連動して、ロボット位置指令値を算出する。すなわち、ロボット動作指令生成モジュール140は、ロボット10のアーム先端を、予め定められた方向に沿って、グリッパ動作指令生成モジュール130が生成する指令に応じて算出される変位だけ移動させるように指令(ロボット位置指令値)を生成する。
【0049】
例えば、グリッパ20の爪の動作開始位置PGSから動作終了位置PGEまでの移動に連動して、ロボット10のアーム先端がZ軸に沿って、動作開始位置PRZSから動作終了位置PRZEまでの移動する場合を想定する。なお、動作開始位置PRZSおよび動作終了位置PRZEは、Z軸方向の位置(1次元の値)とする。
【0050】
動作開始位置PGSから動作終了位置PGEまでの移動に伴う動作量と連動して、動作開始位置PRZSから動作終了位置PRZEまでの動作に係る位置が決定される。より具体的には、グリッパ20の動作量と比例してロボット10を動作させる場合には、グリッパ20の爪の位置P(t)を用いて、ロボット位置指令PRZ(t)は以下のように算出される。
【0051】
RZ(t)=PRZS+(P(t)-PGS)×(PRZE-PRZS)/(PGE-PGS
すなわち、グリッパ20の爪の位置P(t)の動作開始位置PGSからの変位に、ロボット10の全動作量に対するグリッパ20の全動作量の比率を乗じた値が、ロボット位置指令PRZ(t)の動作開始位置PRZSからの変位となる。このように、ロボット動作指令生成モジュール140は、グリッパ動作指令生成モジュール130が生成するグリッパ動作指令値が示す変位に所定係数を乗じて算出される変位をロボット位置指令値として出力する。
【0052】
あるいは、グリッパ20の動作プロファイル132の進行率α(α=0~100%)を用いる場合には、ロボット位置指令PRZ(t)は以下のように算出される。
【0053】
RZ(t)=PRZS+α×(PGE-PGS
すなわち、グリッパ20の動作プロファイル132の進行率αをロボット10の全動作量に乗じた値が、ロボット位置指令PRZ(t)の動作開始位置PRZSからの変位となる。なお、グリッパ20の動作プロファイル132の進行率αは、図4に示す例においては、全動作期間(=T1+T2+T3)に対する、現在経過している時間長さの比率を意味する。
【0054】
このように、ロボット動作指令生成モジュール140は、グリッパ20の動作開始位置PGSから動作終了位置PGEまでの全変位に対して、動作プロファイル132の進行率αを乗じて算出される変位をロボット位置指令値として出力する。
【0055】
以上のように、本実施の形態に従うロボットシステム1においては、グリッパ20による把持動作に連動して、ロボット10のアーム先端が動作するので、グリッパ20が所定のピック位置(ワークを把持する位置)に到達したタイミングでグリッパ20の爪を閉じ切ることができる。
【0056】
キネマティクスモジュール150は、ロボット10のキネマティクスに従って、ロボット動作指令生成モジュール140からのロボット位置指令値から各関節の位置あるいは角度を支持するロボット動作指令値を算出する。
【0057】
図5は、図3に示す機能構成例を実現するための制御プログラム114の一例を示す図である。図5を参照して、制御プログラム114は、動作プロファイル132を指定するためのファンクションブロック1140と、主軸を設定するためのファンクションブロック1141と、ロボットを同期制御するためのファンクションブロック1142とを含む。主軸は、仮想軸として設定されてもよい。
【0058】
ファンクションブロック1140は、グリッパ動作指令生成モジュール130(図3)を規定するための命令である。より具体的には、ファンクションブロック1140には、動作プロファイル132に従って制御される軸が指定される。図5に示す例では、ファンクションブロック1140のAxis入出力に、グリッパ20(爪22,23を駆動するモータ)を示す変数1143が設定されている。
【0059】
また、ファンクションブロック1140には、動作プロファイル132が設定される。図5に示す例では、ファンクションブロック1140のPosition、Velocily、acceleration、Deceleration、Jerk、Direction、BufferMode、MoveModeなどの複数の入力1144に、動作プロファイル132を示す情報が入力される。
【0060】
ファンクションブロック1141およびファンクションブロック1142は、ロボット動作指令生成モジュール140(図3)を規定するための命令である。
【0061】
ファンクションブロック1141には、追従して動作するロボットおよび軸が指定される。図5に示す例では、ファンクションブロック1141のRobot入出力に、対象のロボットを示す変数1145が設定されており、ファンクションブロック1141のMasterID入力に、Z軸を示す変数が指定される。
【0062】
また、ファンクションブロック1141には、主軸(仮想軸)が指定される。図5に示す例では、ファンクションブロック1141のAxis入出力に、グリッパ20(爪22,23を駆動するモータ)を示す変数1143が設定されている。
【0063】
さらに、ファンクションブロック1141には、主軸と従軸とを連動させるための情報が指定される。図5に示す例では、ファンクションブロック1141のAxisData入力に、主軸の動作量(変位)と従軸に生じさせる変位との比率を示す変数1147が設定されている。
【0064】
ファンクションブロック1142は、同期制御を有効化するための命令である。ファンクションブロック1142のExecute入力が有効化されることで、グリッパ20の動作に連動して、ロボット10が同期制御される。
【0065】
<D.動作例>
次に、本実施の形態に従うロボットシステム1の動作例について説明する。
【0066】
図6は、本実施の形態に従うロボットシステム1の動作例を示す模式図である。図6には、ロボット10がワーク30をピックして別の位置にプレイスする例を示す。なお、説明の便宜上、ロボット10自体は図示せず、ロボット10のアーム先端に取り付けられたグリッパ20を主として示す。
【0067】
より具体的には、まず、ロボットコントローラ100は、ロボット10に制御指令を与えて、ロボット10のアーム先端をワーク30へのアプローチを開始する位置(ピック開始位置)まで移動させる(図6(A)参照)。続いて、ロボットコントローラ100は、グリッパ20とロボット10との同期制御を有効化する(図6(B)参照)。すなわち、ロボットコントローラ100は、爪22,23を閉じるための指令をグリッパ20に与えるとともに、グリッパ20の動作量に応じた変位をZ軸に沿って発生させるための指令をロボット10に与える。最終的に、グリッパ20は、グリッパ20がワーク30を把持する位置(ピック位置)に到達したタイミングで爪22,23を閉じ切る(図6(C)参照)。なお、この状態になると、同期制御が無効化されてもよい。
【0068】
続いて、ロボットコントローラ100は、ロボット10に制御指令を与えて、グリッパ20がワーク30を把持した状態で、グリッパ20を所定の高さまで上昇させる(図6(D))。さらに、ロボットコントローラ100は、ロボット10に制御指令を与えて、ロボット10のアーム先端をワーク30を離す位置(プレイス位置)まで移動させ、さらに、爪22,23を開くための指令をグリッパ20に与える(図6(E)参照)。
【0069】
このような一連の動作によって、ワーク30をピックおよびプレイスする処理が完了する。
【0070】
図7は、本実施の形態に従うロボットシステム1の同期制御を含む動作のタイムチャートである。図7には、ロボット10のZ軸方向の位置のタイムチャートと、グリッパ20の爪の間の距離のタイムチャートとを示す。
【0071】
時刻t1において、ロボット10のグリッパ20は、ピック開始位置からアプローチを開始する。このとき、同期制御が有効されており、グリッパ20の爪が閉じられるとともに、グリッパ20がワーク30にアプローチする。そして、時刻t2において、ロボット10のグリッパ20はピック位置に到達し、ワーク30を把持する。すなわち、時刻t2において、ロボット10のZ軸方向の位置およびグリッパ20の爪の間の距離は、いずれもワーク30を把持する動作が完了することになる。
【0072】
その後、ロボット10のアーム先端は、ワーク30を把持した状態で上昇し、時刻t3で上昇が完了すると、プレイス開始位置まで移動する。時刻t4において、ロボット10のグリッパ20は、プレイス開始位置からアプローチを開始する。時刻t5において、ロボット10のグリッパ20はプレイス位置に到達し、時刻t6において、ワーク30を解放する。その後、ロボット10のグリッパ20は再度上昇し、初期位置まで戻る。
【0073】
図8は、本実施の形態に従うロボットシステム1の動作の比較例を示すタイムチャートである。図8(A)は、図7と同様に、同期制御を含む動作のタイムチャートを示す。
【0074】
一方、図8(B)および図8(C)には、本実施の形態に従う同期制御ではなく、タイミングを手動で調整した場合のタイムチャートを示す。
【0075】
より具体的には、図8(B)に示すタイムチャートは、ロボット10のグリッパ20がピック位置へ到達するのを待って、グリッパ20の爪を閉じ始めるという動作に相当する。図8(B)に示すように、ロボット10のグリッパ20がピック位置へ到達するのを待つため、全体の処理時間は、図8(A)に示す動作に比較して長くなる。
【0076】
また、図8(C)に示すタイムチャートは、図8(B)に示すタイムチャートにおいて、ロボット10のグリッパ20がピック位置へ到達するのを見越して、グリッパ20の爪を早めに閉じ始めるという動作に相当する。図8(C)に示すように、グリッパ20の爪を早めに閉じ始めることで、全体の処理時間は、図8(B)に示す動作に比較して短縮できるが、図8(A)と同様まで短縮するためには、グリッパ20の爪を閉じ始めるタイミングを試行錯誤的に調整する必要がある。
【0077】
これに対して、本実施の形態に従う同期制御は、グリッパ20の爪の間の距離と、グリッパ20の位置とを連動させて制御するので、このような試行錯誤的な調整は不要である。すなわち、試行錯誤的な調整をすることなく、最小の動作時間を実現できる。
【0078】
<E.制御プログラミングの作成手順例>
次に、本実施の形態に従うロボットシステム1のロボットコントローラ100で実行される制御プログラム114の作成手順例について説明する。
【0079】
図9は、本実施の形態に従うロボットシステム1のロボットコントローラ100で実行される制御プログラム114の作成手順例を示すフローチャートである。図9を参照して、ユーザは、グリッパ20の動作プロファイル132を決定する(ステップS2)。グリッパ20の動作プロファイル132は、グリッパ20の実際の動作を測定することで取得してもよいし、グリッパ20の設計値などに基づいて、任意に設計してもよい。
【0080】
続いて、ユーザは、決定した動作プロファイル132を制御プログラム114に組み入れる(ステップS4)とともに、制御プログラム114において、グリッパ20の動作軸(爪を閉じるためのモータ)を主軸に設定する(ステップS6)。なお、主軸の設定は、制御プログラム114に記述される。
【0081】
そして、ユーザは、設定した主軸と同期してロボット10が動作するように設定する(ステップS8)。なお、動作の設定は、制御プログラム114に記述される。
【0082】
以上のような処理手順によって、制御プログラム114が作成される。
<F.変形例>
上述の説明においては、グリッパ20の爪を駆動するためのドライバおよびモータがロボット10の構成の一部として構成されている例を示したが、グリッパ20の爪を駆動するための構成は、ロボット10とは独立して設けられてもよい。
【0083】
図10は、本実施の形態に従うロボットシステム1のハードウェア構成例の変形例を示す模式図である。図10を参照して、ロボットシステム1は、ロボット10に加えて、グリッパコントローラ300を含む。グリッパコントローラ300は、ロボット10のインターフェイス40からの指令を受けて、ドライバ47がモータ37を駆動することで、グリッパ20の爪の間の距離を変更する。
【0084】
このような構成において、上述した動作プロファイル132は、グリッパコントローラ300の挙動を再現するように仮想軸として設定されてもよい。
【0085】
<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0086】
[構成1]
ロボットシステム(1)であって、
エンドエフェクタとして複数の爪を有するグリッパ(20)がアーム先端に取り付けられたロボット(10)と、
前記ロボットを制御するコントローラ(100)とを備え、
前記コントローラは、
予め定められた動作プロファイル(132)に従って、前記グリッパの爪(22,23)を閉じるように第1指令を生成する第1指令生成モジュール(130)と、
前記ロボットのアーム先端を、予め定められた方向に沿って、前記第1指令生成モジュールが生成する前記第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュール(140)とを備える、ロボットシステム。
【0087】
[構成2]
前記動作プロファイルは、時間に対する前記グリッパの爪の間の距離の変化を規定する、構成1に記載のロボットシステム。
【0088】
[構成3]
前記第2指令生成モジュールは、前記第1指令生成モジュールが生成する前記第1指令が示す第1変位に所定係数を乗じて算出される第2変位を前記第2指令として出力する、構成1または2に記載のロボットシステム。
【0089】
[構成4]
前記第2指令生成モジュールは、前記グリッパの動作開始位置から動作終了位置までの全変位に対して、前記動作プロファイルの進行率を乗じて算出される変位を前記第2指令として出力する、構成1または2に記載のロボットシステム。
【0090】
[構成5]
前記コントローラのプロセッサが制御プログラム(114)を実行するように構成されており、
前記制御プログラムは、前記第1指令生成モジュールおよび前記第2指令生成モジュールをそれぞれ規定するためのファンクションブロックを含む、構成1~4のいずれか1項に記載のロボットシステム。
【0091】
[構成6]
エンドエフェクタとして複数の爪(22,23)を有するグリッパ(20)がアーム先端に取り付けられたロボット(20)を制御するコントローラ(10)であって、
予め定められた動作プロファイルに従って、前記グリッパの爪を閉じるように第1指令を生成する第1指令生成モジュール(130)と、
前記ロボットのアーム先端を、予め定められた方向に沿って、前記第1指令生成モジュールが生成する前記第1指令に応じて算出される変位だけ移動させるように第2指令を生成する第2指令生成モジュール(140)とを備える、コントローラ。
【0092】
<H.利点>
本実施の形態によれば、ロボットのグリッパの動作に連動させてグリッパの位置を自動的に決定できる。そのため、グリッパの動作とグリッパの位置制御(ロボットの動作)とを試行錯誤して調整せずとも、サイクルタイムを短縮できる。また、グリッパの動作とグリッパの位置制御(ロボットの動作)とを連動させることができるので、グリッパとロボットとの間のインターロックなどが実質的に不要となり、設計などを容易化できる。
【0093】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0094】
1 ロボットシステム、10 ロボット、11 ベース、12,13,14,15,16,17 可動部、20 グリッパ、21 本体部、22,23 爪、26 ティーチングペンダント、30 ワーク、31,32,33,34,35,36,37 モータ、40,106 インターフェイス、41,42,43,44,45,46,47 ドライバ、100 ロボットコントローラ、102 プロセッサ、104 メモリ、108 バス、110 ストレージ、112 システムプログラム、114 制御プログラム、130 グリッパ動作指令生成モジュール、132 動作プロファイル、140 ロボット動作指令生成モジュール、142 従軸指定、144 目標軌道、150 キネマティクスモジュール、200 情報処理装置、1140,1141,1142 ファンクションブロック、1143,1145,1147 変数、1144 入力。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10