(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-28
(45)【発行日】2022-05-12
(54)【発明の名称】ロボットシステム
(51)【国際特許分類】
B25J 9/22 20060101AFI20220502BHJP
G05B 19/42 20060101ALI20220502BHJP
【FI】
B25J9/22 A
G05B19/42 P
(21)【出願番号】P 2018143136
(22)【出願日】2018-07-31
【審査請求日】2021-07-27
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】110000556
【氏名又は名称】特許業務法人 有古特許事務所
(72)【発明者】
【氏名】橋本 康彦
(72)【発明者】
【氏名】田中 繁次
(72)【発明者】
【氏名】掃部 雅幸
(72)【発明者】
【氏名】丸山 佳彦
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】国際公開第2017/033356(WO,A1)
【文献】特開2011-224696(JP,A)
【文献】特開2015-231640(JP,A)
【文献】特開2011-194497(JP,A)
【文献】特開昭63-174104(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
ロボット本体と、
前記ロボット本体に所定の動作をさせるための自動動作情報を記憶する記憶部と、
前記自動動作情報に基づいて前記ロボット本体の動作を制御する動作制御部と、
前記自動動作情報に基づく動作中にある前記ロボット本体の動作を修正するための修正操作に基づいて修正操作情報を生成する操作部と、
前記操作部による前記修正操作の制限範囲を設定する制限範囲設定部と、を備え、
前記動作制御部は、前記修正操作情報を取得し、前記修正操作情報に基づく修正動作を行うよう前記ロボット本体を制御し、
前記記憶部は、前記修正動作に基づく修正動作情報を次回の前記自動動作情報として記憶可能に構成され、
前記動作制御部は、前記自動動作情報に基づく動作位置から前記制限範囲を超えて前記修正操作が行われた場合に、所定の制限処理を行うよう構成され、
前記制限範囲設定部は、修正前の前記自動動作情報に基づく動作位置と前記修正動作情報に基づく動作位置との位置偏差を算出し、前記位置偏差が第1しきい値以下である場合、次回の前記操作部による前記修正操作時において、前記制限範囲を狭くするよう構成される、ロボットシステム。
【請求項2】
前記制限範囲設定部は、前記位置偏差が前記第1しきい値以上である第2しきい値より大きい場合、次回の前記操作部による前記修正操作時において、前記制限範囲を広くするよう構成される、請求項1に記載のロボットシステム。
【請求項3】
前記動作制御部は、前記所定の制限処理として前記制限範囲外への前記ロボット本体の移動を制限する、請求項1または2に記載のロボットシステム。
【請求項4】
前記操作部は、前記修正動作情報に基づく動作位置が有効か否かに関する成否情報を入力する修正成否入力部を備え、
前記制限範囲設定部は、前記位置偏差が前記第1しきい値以下であり、かつ、前記修正動作情報に基づく動作位置が有効であることを示す前記成否情報が入力された場合、前記制限範囲を狭くするよう構成される、請求項1から3の何れかに記載のロボットシステム。
【請求項5】
前記ロボット本体は、スレーブアームを備え、前記操作部は、前記スレーブアームの作業領域外に設置されたマスターアームを備えている、請求項1から4の何れかに記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムに関する。
【背景技術】
【0002】
従来から、製造現場では溶接、塗装、部品の組付け、シール剤の塗布などの繰り返し作業が産業用ロボットにより自動で行われている。ロボットに作業を行わせるためには、作業に必要な情報をロボットに指示し、記憶させる教示が必要になる。ロボットの教示方式としては、例えば、教示者がロボットを直接触って動かすことによるダイレクト教示、ティーチングペンダントを用いた遠隔操縦による教示、プログラミングによる教示、マスタースレーブによる教示などがある。例えば特許文献1には、ダイレクト教示によりロボットアームに作業の軌道を記憶させる教示作業の一例が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、種々の理由からロボットに教示した動作を部分的に変更する必要が生じる場合がある。例えば、ワークのロット変更等によるロボットの作業対象の位置などが教示時のものから部分的に変化した場合には、ロボットが目的の作業を遂行できなくなったり、作業の精度が悪化したりするなどの問題が生じ得る。また、教示作業を終えた後に、当初作成した教示情報では作業の一部において不具合があることが発見される場合もある。このような場合には、改めて教示作業を行うことにより、ロボットの自動運転に使用される教示情報を変更することになる。しかし、教示には熟練者の技術が必要になることが多く、多くの時間と労力を要するため教示者に負担となっており、これは、ロボット動作の一部を変更する場合であっても同様である。
【0005】
そこで、本発明は、予め設定されたロボットの動作を容易かつ適切に修正可能なロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係るロボットシステムは、ロボット本体と、前記ロボット本体に所定の動作をさせるための自動動作情報を記憶する記憶部と、前記自動動作情報に基づいて前記ロボット本体の動作を制御する動作制御部と、前記自動動作情報に基づく動作中にある前記ロボット本体の動作を修正するための修正操作に基づいて修正操作情報を生成する操作部と、前記操作部による前記修正操作の制限範囲を設定する制限範囲設定部と、を備え、前記動作制御部は、前記修正操作情報を取得し、前記修正操作情報に基づく修正動作を行うよう前記ロボット本体を制御し、前記記憶部は、前記修正動作に基づく修正動作情報を次回の前記自動動作情報として記憶可能に構成され、前記動作制御部は、前記自動動作情報に基づく動作位置から前記制限範囲を超えて前記修正操作が行われた場合に、所定の制限処理を行うよう構成され、前記制限範囲設定部は、修正前の前記自動動作情報に基づく動作位置と前記修正動作情報に基づく動作位置との位置偏差を算出し、前記位置偏差が第1しきい値以下である場合、次回の前記操作部による前記修正操作時において、前記制限範囲を狭くするよう構成される。
【0007】
上記構成によれば、自動動作情報に基づくロボット本体の動作中に、操作部による修正操作に基づいてロボット本体の動作をリアルタイムに修正することができる。また、修正操作には、所定の制限範囲が設定されており、この制限範囲を超えて修正操作を行った場合には所定の制限処理が行われる。修正前の自動動作情報に基づく動作位置と修正動作に基づく修正動作情報との位置偏差が第1しきい値以下である場合、次回の修正後の自動動作情報に基づくロボット本体の動作中において、制限範囲が前回より狭くなる。この結果、自動動作情報からの修正量が少ない場合には次回の修正操作において所定の制限処理が開始され易くなる。このように、修正量が少なくなるほど修正操作が制限なく許容される範囲が狭くなっていくことにより、ロボット本体の動作の修正作業を繰り返した場合に、ロボット本体の動作を、より理想的な動作に収束させ易くなる。したがって、予め設定されたロボットの動作を容易かつ適切に修正することができる。
【0008】
前記制限範囲設定部は、前記位置偏差が前記第1しきい値以上である第2しきい値より大きい場合、次回の前記操作部による前記修正操作時において、前記制限範囲を広くするよう構成されてもよい。
【0009】
この場合、自動動作情報からの修正量が多い場合には次回の修正操作において所定の制限処理が開始され難くなる。このように、修正量が多くなるほど修正操作が制限なく許容される範囲が広くなっていくことにより、修正に必要な操作量を確保することができる。
【0010】
前記動作制御部は、前記所定の制限処理として前記制限範囲外への前記ロボット本体の移動を制限してもよい。
【0011】
前記操作部は、前記修正動作情報に基づく動作位置が有効か否かに関する成否情報を入力する修正成否入力部を備え、前記制限範囲設定部は、前記位置偏差が前記第1しきい値以下であり、かつ、前記修正動作情報に基づく動作位置が有効であることを示す前記成否情報が入力された場合、前記制限範囲を狭くするよう構成されてもよい。
【0012】
上記構成によれば、位置偏差が第1しきい値以下であり、かつ、修正動作情報に基づく動作位置が有効である場合に、制限範囲が前回より狭くなる。したがって、誤った修正操作によって次回の制限範囲が狭くなることを防止することができる。
【0013】
前記ロボット本体は、スレーブアームを備え、前記操作部は、前記スレーブアームの作業領域外に設置されたマスターアームを備えていてもよい。
【発明の効果】
【0014】
本発明は、予め設定されたロボットの動作を容易かつ適切に修正可能なロボットシステムを提供することができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、一実施の形態の形態に係るロボットシステムの構成を示す模式図である。
【
図2】
図2は、
図1に示すロボットシステムの制御系統の構成を示す模式図である。
【
図3】
図3は、
図2に示す動作制御部の制御系のブロック図の一例を示す図である。
【
図4A】
図4Aは、本実施の形態におけるロボットシステムのハンド部の動作例を示す図である。
【
図5】
図5は、本実施の形態における制限範囲設定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。なお、以下では全ての図面を通じて同一または相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0017】
図1は、一実施の形態の形態に係るロボットシステムの構成を示す模式図である。本実施の形態におけるロボットシステム100は、マスタースレーブ方式のロボットを利用したシステムである。
図1に示すように、本実施の形態におけるロボットシステム100は、ロボット10と、マスターアーム70を含む入力装置2と、記憶装置4と、を備えている。
【0018】
ロボットシステム100では、スレーブアーム1の作業領域から離れた位置(作業領域外)にいるオペレータがマスターアーム70を動かして指令を入力することで、スレーブアーム1が該指令に対応した動作を行い、特定の作業を行うことができる。また、ロボットシステム100では、スレーブアーム1は、オペレータによるマスターアーム70の操作なしに、所定の作業を自動的に行うこともできる。
【0019】
本明細書では、マスターアーム70を介して入力された指令に従って、スレーブアーム1を動作させる動作モードを「手動モード」と称する。この手動モードでは、記憶装置4に記憶されている自動動作情報を用いることなく、操作者が操作する入力装置2からの操作情報(動作指令)を受けて、その操作情報に基づいて制御装置3がスレーブアーム1を動作制御する。なお、上述の「手動モード」には、オペレータがマスターアーム70を操作することによって入力された指令に基づいて動作中のスレーブアーム1の動作の一部が自動で動作補正される場合も含む。
【0020】
また、予め設定されたタスクプログラムに従ってスレーブアーム1を動作させる動作モードを「自動モード」と称する。この自動モードでは、記憶装置4に記憶されている自動動作情報に基づいて制御装置3がスレーブアーム1を動作制御する。
【0021】
さらに、本実施の形態におけるロボットシステム100では、スレーブアーム1の自動動作中に、マスターアーム70の操作をスレーブアーム1の動作に反映させて、自動で行うことになっていた動作を修正することができるように構成されている。本明細書では、マスターアーム70による修正操作に基づく修正操作情報を自動動作情報に基づくスレーブアーム1の動作に反映可能な状態で、予め設定されたタスクプログラムに従ってスレーブアーム1を動作させる動作モードを「修正自動モード」と称する。なお、上述の「自動モード」は、スレーブアーム1を動作させる動作モードが自動モードであるときはマスターアーム70の操作がスレーブアーム1の動作に反映されないという点で、「修正自動モード」と区別される。
【0022】
(ロボット10)
ロボット10は、スレーブアーム1と、スレーブアーム1の先端に装着されるエンドエフェクタ(図示略)と、スレーブアーム1およびエンドエフェクタの動作を制御する制御装置3とを備えている。スレーブアーム1は、基台15と、基台15に支持された腕部13と、腕部13の先端に支持され、エンドエフェクタが装着される手首部14とを備えている。本実施の形態において、スレーブアーム1と、エンドエフェクタとでロボット本体を構成している。
【0023】
スレーブアーム1は、
図1に示すように3以上の複数の関節JT1~JT6を有する多関節ロボットアームであって、複数のリンク11a~11fが順次連結されて構成されている。より詳しくは、第1関節JT1では、基台15と、第1リンク11aの基端部とが、鉛直方向に延びる軸回りに回転可能に連結されている。第2関節JT2では、第1リンク11aの先端部と、第2リンク11bの基端部とが、水平方向に延びる軸回りに回転可能に連結されている。第3関節JT3では、第2リンク11bの先端部と、第3リンク11cの基端部とが、水平方向に延びる軸回りに回転可能に連結されている。第4関節JT4では、第3リンク11cの先端部と、第4リンク11dの基端部とが、第4リンク11cの長手方向に延びる軸回りに回転可能に連結されている。第5関節JT5では、第4リンク11dの先端部と、第5リンク11eの基端部とが、リンク11dの長手方向と直交する軸回りに回転可能に連結されている。第6関節JT6では、第5リンク11eの先端部と第6リンク11fの基端部とが、捻れ回転可能に連結されている。そして、第6リンク11fの先端部にはメカニカルインターフェースが設けられている。このメカニカルインターフェースには、作業内容に対応したエンドエフェクタが着脱可能に装着される。
【0024】
上記の第1関節JT1、第1リンク11a、第2関節JT2、第2リンク11b、第3関節JT3、及び第3リンク11cから成るリンクと関節との連結体によって、スレーブアーム1の腕部13が形成されている。また、上記の第4関節JT4、第4リンク11d、第5関節JT5、第5リンク11e、第6関節JT6、及び第4リンク11fから成るリンクと関節との連結体によって、スレーブアーム1の手首部14が形成されている。
【0025】
関節JT1~JT6のそれぞれには、それが連結する2つの部材を相対的に回転させるアクチュエータの一例としての駆動モータM(
図3参照)が設けられている。駆動モータMは、例えば、制御装置3によってサーボ制御されるサーボモータである。また、関節JT1~JT6には、駆動モータMの回転位置を検出するための回転センサE(
図3参照)と、駆動モータMの回転を制御する電流を検出するための電流センサC(
図3参照)とが設けられている。回転センサEは、例えばエンコーダである。
【0026】
制御装置3は、例えば、マイクロコントローラ、MPU、PLC(Programmable Logic Controller)、論理回路等からなる演算部(図示せず)と、ROMやRAM等からなるメモリ部(図示せず)とにより構成することができる。
【0027】
図2は、
図1に示すロボットシステム100の制御系統の構成を示す模式図である。制御装置3は、
図2に示すように、機能ブロックとして、動作制御部31と、制限範囲設定部32とを備えている。これらの機能ブロックは、例えば、制御装置3の演算部がメモリ部に格納されているプログラムを読み出し実行することにより実現できる。動作制御部31は、スレーブアーム1の動作を制御する。動作制御部31によるスレーブアーム1の動作の制御についての詳細は後述する。
【0028】
(入力装置2)
入力装置2は、スレーブアーム1の作業領域外に設置され、オペレータからの操作指示を受け付け、受け付けた操作指示を制御装置3に送信する操作部を構成する装置である。入力装置2は、所定の設定入力等を行う入力部7と、マスターアーム70とを備えている。入力部7は、例えば、スイッチ、調整ツマミ、操作レバー、操作パネルまたは携帯端末(タブレット等)の表示画面に表示される仮想の入力ボタン等により構成され得る。
【0029】
図2に示すように、入力部7は、モード選択部71と、動作情報選択部72と、修正成否入力部73と、を備えている。モード選択部71は、スレーブアーム1を動作させる動作モードを、上述した自動モード、修正自動モードおよび手動モードからオペレータが選択するためのものである。動作情報選択部72は、スレーブアーム1に動作させるための複数の動作情報の中から、自動モードまたは修正自動モードでスレーブアーム1を動作させるときに動作制御部31が用いる動作情報を選択するためのものである。
【0030】
修正成否入力部73は、修正自動モードにおいて、修正動作情報に基づく動作位置が有効か否かに関する成否情報を入力するためのものである。すなわち、修正成否入力部73は、マスターアーム70による修正操作の結果、スレーブアーム1の動作がオペレータの所望する動作に近づいたか否かを入力するためのものである。
【0031】
マスターアーム70は、スレーブアーム1と相似構造をしているためマスターアーム70の構成に関する説明は省略する。ただし、マスターアーム70は、スレーブアーム1と非相似構造をしていてもよい。マスターアーム70を動かすことにより操作情報が生成され、生成された操作情報は制御装置3に送られる。本実施の形態のロボットシステム100では、スレーブアーム1を動作させる動作モードが手動モードであるときに操作情報が制御装置3に送られると、スレーブアーム1が制御装置3によりマスターアーム70の動きに追随して動くよう制御される。スレーブアーム1を動作させる動作モードが修正自動モードであるときに操作情報(修正操作情報)が制御装置3に送られると、当該修正操作情報に基づいて自動動作情報が修正され、修正後の修正動作情報に基づいてスレーブアーム1の動作が制御される。
【0032】
(カメラ51およびモニタ52)
さらに、ロボットシステム100は、カメラ51と、モニタ52と、を備えている。カメラ51は、スレーブアーム1の作業状況を撮影するカメラであり、モニタ52は、オペレータがスレーブアーム1による作業状況を確認するためモニタである。カメラ51は、スレーブアーム1が設けられている空間に設置されており、モニタ52は、マスターアーム70が設けられている空間に設置されている。オペレータは、モニタ52に表示されたスレーブアーム1の作業状況を見ながらマスターアーム70を操作する。カメラ51およびモニタ52は、制御装置3を介して接続されており、カメラ51により撮像された撮像情報は、制御装置3を介してモニタ52に送られる。ただし、カメラ51およびモニタ52は、制御装置3を介さずに、互いに直接または別の装置を介して接続されてもよい。カメラ51およびモニタ52は、互いに有線により接続されてもよいし、無線により接続されてもよい。
【0033】
(記憶装置4)
記憶装置4は、読み書き可能な記録媒体であり、スレーブアーム1に自動で所定の動作をさせるための情報が自動動作情報41として記憶されている。自動動作情報41は、スレーブアーム1に自動で所定の動作をさせるのに必要な全ての情報である必要はなく、一部の情報であってもよい。また、自動動作情報41は、スレーブアーム1の動作に関する情報であれば、いかなる情報であってもよい。例えば、自動動作情報41は、時系列データを含む軌道情報であってもよいし、所定の時間間隔ごと離散的な位置におけるスレーブアーム1の姿勢を表した経路情報であってもよい。自動動作情報41は、例えば、スレーブアーム1の軌道に沿った速度を含んでもよい。
【0034】
記憶装置4には、少なくとも1つの自動動作情報41が記憶されており、そのうちの1つは、例えば、教示作業により所定の作業を行うようスレーブアーム1を動作させて記憶された教示情報41aである。本実施の形態では、教示情報41aとしての自動動作情報41は、マスターアーム70を操作することによりスレーブアーム1の動作を指示し記憶させた情報であるが、これに限定されず、いかなる教示方式で記憶されたものであってもよい。例えば教示情報41aとしての自動動作情報41は、ダイレクト教示により記憶された情報であってもよい。なお、本実施の形態に係るロボットシステム100では、記憶装置4は、制御装置3と別体に設けられているが、制御装置3と一体として設けられていてもよい。
【0035】
(スレーブアーム1の動作制御)
以下では、動作制御部31によるスレーブアーム1の動作の制御について
図2を参照して説明する。
【0036】
動作制御部31には、記憶装置4に記憶された少なくとも1つの自動動作情報41のうちの1つが、スレーブアーム1に自動で動作させるための自動動作情報として送られる。また、動作制御部31には、マスターアーム70を操作することにより生成された操作情報が送られる。
【0037】
動作制御部31は、モード選択部71で選択されている動作モードに従い、自動動作情報および操作情報の一方または両方を用いる。
【0038】
モード選択部71で選択されている動作モードが手動モードであるとき、動作制御部31は操作情報を用いる。より詳しくは、動作制御部31は、スレーブアーム1を動作させる動作モードが手動モードであるとき、記憶装置4に記憶された自動動作情報41を用いずに、マスターアーム70を操作することにより送られた操作情報(入力指令)に従って、スレーブアーム1の動作を制御する。
【0039】
また、モード選択部71で選択されている動作モードが自動モードであるとき、動作制御部31は自動動作情報を用いる。より詳しくは、動作制御部31は、スレーブアーム1を動作させる動作モードが自動モードであるとき、マスターアーム70から送られた操作情報を用いずに、予め設定されたタスクプログラムに従って記憶装置4から送られた自動動作情報に基づいてスレーブアーム1の動作を制御する。
【0040】
また、モード選択部71で選択されている動作モードが修正自動モードであるとき、動作制御部31は、自動動作情報および操作情報(修正操作情報)の両方を用いる。なお、動作モードが修正自動モードであるときに、修正操作情報が動作制御部31に送られていない場合は、動作制御部31は自動動作情報のみを用いる。より詳しくは、動作制御部31は、スレーブアーム1を動作させる動作モードが修正自動モードであるとき、スレーブアーム1が自動動作情報を用いた自動動作中に修正操作情報を受けると、修正操作情報に基づいて自動動作情報を修正し、修正後の修正動作情報に基づいてスレーブアーム1の動作を制御する。これにより、スレーブアーム1は、自動動作情報に関する動作、すなわち自動で行うことになっていた動作から修正された動作を行う。
【0041】
以下では、スレーブアーム1を動作させる動作モードが修正自動モードであるときのスレーブアーム1の動作修正について、
図3を参照して説明する。
図3は、
図2に示す動作制御部31の制御系のブロック図の一例を示す図である。この例では、自動動作情報および修正操作情報は、例えば時系列データを含む軌道情報である。
【0042】
動作制御部31は、加算器31a、減算器31b,31e,31g、位置制御器31c、微分器31d、速度制御器31fを備え、自動動作情報に基づく指令値および修正操作情報に基づく指令値により、スレーブアーム1の駆動モータMの回転位置を制御する。
【0043】
加算器31aは、自動動作情報に基づく位置指令値に、修正操作情報に基づく修正指令値を加算することによって、修正された位置指令値を生成する。加算器31aは、修正された位置指令値を減算器31bに送る。
【0044】
減算器31bは、修正された位置指令値から、回転センサEで検出された位置現在値を減算して、角度偏差を生成する。減算器31bは、生成した角度偏差を位置制御器31cに送る。
【0045】
位置制御器31cは、予め定められた伝達関数や比例係数に基づいた演算処理により、減算器31bから送られた角度偏差から速度指令値を生成する。位置制御器31cは、生成した速度指令値を減算器31eに送る。
【0046】
微分器31dは、回転センサEで検出された位置現在値情報を微分して、駆動モータMの回転角度の単位時間あたりの変化量、すなわち速度現在値を生成する。微分器31dは、生成した速度現在値を減算器31eに送る。
【0047】
減算器31eは、位置制御器31cから送られた速度指令値から、微分器31dから送られた速度現在値を減算して、速度偏差を生成する。減算器31eは、生成した速度偏差を速度制御器31fに送る。
【0048】
速度制御器31fは、予め定められた伝達関数や比例係数に基づいた演算処理により、減算器31eから送られた速度偏差からトルク指令値(電流指令値)を生成する。速度制御器31fは、生成したトルク指令値を減算器31gに送る。
【0049】
減算器31gは、速度制御器31fから送られたトルク指令値から、電流センサCで検出された電流現在値を減算して、電流偏差を生成する。減算器31gは、生成した電流偏差を駆動モータMに送り、駆動モータMを駆動する。
【0050】
このように動作制御部31は駆動モータMを制御して、自動動作情報に関する動作から修正された動作を行うようスレーブアーム1を制御する。なお、スレーブアーム11の動作モードが自動モードであるときは、減算器31bに自動動作情報に基づく位置指令値が送られ、スレーブアーム11の動作モードが手動モードであるときは、減算器31bに操作情報に基づく位置指令値が送られる。
【0051】
記憶装置4は、修正された動作をスレーブアーム1が行ったときに、修正された動作をスレーブアーム1が行うための修正動作情報を、自動動作情報41として自動的に記憶するように構成されている。ただし、記憶装置4は、修正された動作をスレーブアーム1が行ったときに、上記の修正動作情報を自動動作情報41として記憶するか否かを選択できるように構成されてもよい。この場合、例えば、スレーブアーム1の修正された動作が終了した後に、制御装置3から入力装置2に修正された動作を記憶するか否かを問い合わせるよう構成されてもよい。
【0052】
動作制御部31は、次回以降の動作において、記憶装置4に自動動作情報41として記憶された修正動作情報を、自動動作情報として用いることが可能である。本実施の形態では、動作制御部31は、記憶装置4に記憶された最新の自動動作情報41を自動動作情報として用いてスレーブアーム1の動作を制御するよう構成されている。なお、修正操作を完全に反映した修正動作情報を次回の自動動作情報とする代わりに、修正操作を一部または所定割合反映したものを次回の自動動作情報としてもよい。
【0053】
以下、
図4Aから
図4Cを参照して、ロボットシステム100によるスレーブアーム1の動作修正の具体例について説明する。本例においては、孔61aが形成されたワーク61をスレーブアーム1が把持して、ワーク61の孔61aが所定位置に固定されたピン62に嵌合するようにワーク61を操作するという作業を例示する。
【0054】
図4Aは、本実施の形態におけるロボットシステムのハンド部の動作例を示す図である。
図4Aに示すように、ピン62はある製品のフレーム63に設けられたものであり、そのフレーム63は工場の床に固定されている。ピン62はフレーム63から鉛直上方の方向に突出している。そして、ワーク61は、フレーム63に取り付けるべきブラケットであり、平板状である。スレーブアーム1の手首部14には、エンドエフェクタとしてワーク61を把持するハンド部12が装着される。ワーク61はスレーブアーム1のハンド部12に保持される。
【0055】
この作業において、例えば、予め手動モードにおいてオペレータがマスターアーム70を操作してスレーブアーム1を動作させることにより、動作制御部31が自動動作情報41(教示情報41a)を作成し、記憶装置4に記憶する。
【0056】
図4Bは、
図4Aに示すハンド部12の自動動作情報に基づく動作軌道を示す図であり、
図4Cは、
図4Bにおける修正動作情報に基づく動作軌道を示す図である。
図4Bおよび
図4Cにおいてはハンド部12およびワーク61については図示を省略している。動作修正モードにおいて、動作制御部31は、操作部であるマスターアーム70による修正操作がない限り、ハンド部12が動作軌道L1に沿って移動するようにスレーブアーム1を制御する。なお、
図6Bにおいて、動作軌道L1は、ハンド部12に把持されたワーク61の孔61aの位置を示している。
【0057】
自動動作情報に基づくハンド部12の移動中に修正操作が行われると、動作制御部31は、マスターアーム70による修正操作に基づく修正操作情報を取得し、スレーブアーム1が修正操作情報に基づく修正動作を行うように制御する。記憶装置4は、修正動作に基づく修正動作情報を次回の自動動作情報41として記憶する。
図4Bにおいて、修正動作情報に基づく動作軌道L2が破線で示されている。
【0058】
修正自動モードにおいて、動作制御部31は、スレーブアーム1の自動動作情報に基づく動作位置から所定の制限範囲A1を超えて修正操作が行われた場合に、所定の制限処理を行うよう構成されている。例えば、動作制御部31は、所定の制限処理として制限範囲A1外へのスレーブアーム1の移動を制限する。移動の制限には、マスターアーム70の制限範囲A1外の操作分のスレーブアーム1の移動を禁止する、または、マスターアーム70の制限範囲A1外の操作量に対するスレーブアーム1の動作量を小さくする(スレーブアーム1の移動速度を遅くする)等が含まれ得る。なお、所定の制限処理は、スレーブアームの移動を制限する態様に限られず、例えば、マスターアーム70の制限範囲A1に対応する操作量以上の操作を禁止する、マスターアーム70の動きを遅く(重く)する、オペレータに対してアラームを報知する等、種々の制限処理を採用し得る。
【0059】
このような所定の制限処理を行うために、制限範囲設定部32は、マスターアーム70による修正操作の制限範囲を設定する。
図4Bの例において、一の動作位置P1における制限範囲A1は、スレーブアーム1の移動方向に直交する仮想平面上において動作位置P1を中心とし、半径R1の円(または球)として定められる。
【0060】
(制限範囲設定処理)
修正自動モードにおいて、修正操作が行われた場合、制限範囲設定部32は、制限範囲の変更に関する制限範囲設定処理を実行する。
図5は、本実施の形態における制限範囲設定処理の流れを示すフローチャートである。
【0061】
制限範囲設定部32は、所定期間の動作終了後、当該所定期間の一連の動作において修正操作があったか否かを判定する(ステップS1)。所定期間は、例えば、
図4Aの例において、ハンド部12がワーク61を把持してからワーク61をワーク61の孔61aが所定位置に固定されたピン62に嵌合するように移動させるまでの1工程の動作を行う期間等、自由に設定可能である。
【0062】
修正操作があったと判定された場合(ステップS1でYes)、制限範囲設定部32は、修正前の自動動作情報に基づく動作位置P1と修正動作情報に基づく動作位置P2との位置偏差ΔPを算出する(ステップS2)。算出された位置偏差ΔPは、制御装置3のメモリに一時記憶される。
【0063】
また、入力装置2は、オペレータに、当該修正操作に基づくスレーブアーム1の修正動作が有効か否かについての修正成否入力部73への入力を促す。例えば、修正成否入力部73が入力装置2の表示画面に仮想の入力ボタンを表示することによって構成される場合、当該表示画面に当該仮想の入力ボタン(成功ボタンおよび失敗ボタン)を表示する。
【0064】
オペレータは、修正成否入力部73によりスレーブアーム1の修正動作が有効か否かを入力する。例えば、スレーブアーム1の修正動作がオペレータの所望する動作に近づいたと認められる場合、オペレータによって有効の入力が行われる。例えば、上記のように入力装置2のモニタに2つの仮想の入力ボタンが表示される場合、そのうちの成功ボタンを押下操作する。オペレータによる有効の入力が行われた場合、スレーブアーム1の修正動作(修正動作情報に基づく動作位置)が有効であることを示す成否情報が制御装置3の制限範囲設定部32に送信される。
【0065】
制限範囲設定部32は、入力装置2から受信した成否情報が有効であることを示す情報であるか否かを判定する(ステップS3)。有効な成否情報である場合(ステップS3でYes)、制限範囲設定部32は、修正自動モードにおける修正操作の操作量に応じて次回のスレーブアーム1の動作に対する制限範囲を変更する。より具体的には、制限範囲設定部32は、位置偏差ΔPが第1しきい値T1以下であるか否かを判定する(ステップS4)。位置偏差ΔPが第1しきい値T1以下である場合(ステップS4でYes)、制限範囲設定部32は、次回のマスターアーム70による修正操作時において、制限範囲を第1制限範囲A1から第2制限範囲A2(<A1)に狭くする(ステップS5)。
【0066】
すなわち、本実施の形態において、制限範囲設定部32は、位置偏差ΔPが第1しきい値T1以下であり、かつ、修正動作情報に基づく動作位置が有効であることを示す成否情報が入力された場合、制限範囲を狭くする。
【0067】
例えば、
図4Bの例において、自動動作情報に基づく動作位置P1に対して修正操作を行った後の修正動作情報に基づく動作位置P2は、動作位置P1から第1しきい値T1以下の操作量に基づく位置である。したがって、
図4Cに示すように、次回において、当該修正動作情報を自動動作情報としてスレーブアーム1が動作する際、その動作軌道L2上の一の動作位置P3における制限範囲は、第1制限範囲A1より狭い第2制限範囲A2となる。例えば、第1制限範囲A1の半径R1=10mmである場合に、第2制限範囲A2の半径R2が3mmに設定される。
【0068】
本実施の形態において、制限範囲設定部32は、所定の時間間隔ごとの動作位置P1とそれに対応する修正動作情報に基づく動作位置P2との位置偏差ΔPを求め、位置偏差ΔPの最大値を第1しきい値T1と比較する。これに代えて、所定の時間間隔ごとの動作位置P1から近似処理等を用いて求められる動作軌道L1と、各動作位置P1に対応する修正動作情報に基づく動作位置P2から求められる動作軌道L2とから位置偏差ΔPの最大値を第1しきい値T1と比較してもよい。また、動作軌道L1およびL2のうちの一部の範囲において位置偏差ΔPを求めてもよい。また、制限範囲設定部32は、複数の動作位置における位置偏差ΔPの平均値を第1しきい値T1と比較してもよい。
【0069】
上記構成によれば、自動動作情報に基づくスレーブアーム1の動作中に、マスターアーム70による修正操作に基づいてスレーブアーム1の動作をリアルタイムに修正することができる。また、修正操作には、所定の制限範囲A1が設定されており、この制限範囲A1を超えて修正操作を行った場合には所定の制限処理が行われる。修正前の自動動作情報に基づく動作位置P1と修正動作に基づく動作位置P2との位置偏差ΔPが第1しきい値T1以下である場合、次回の修正後の自動動作情報に基づくスレーブアーム1の動作中において、制限範囲が前回の第1制限範囲A1より狭い第2制限範囲A2となる。この結果、自動動作情報からの修正量が少ない場合には次回の修正操作において所定の制限処理が開始され易くなる。このように、修正量が少なくなるほど修正操作が制限なく許容される範囲が狭くなっていくことにより、スレーブアーム1の動作の修正作業を繰り返した場合に、スレーブアーム1の動作を、より理想的な動作に収束させ易くなる。したがって、予め設定されたスレーブアーム1の動作を容易かつ適切に修正することができる。
【0070】
上記実施の形態において、有効な成否情報でない場合、すなわち、上記例において、オペレータによって失敗ボタンが押下操作された場合(ステップS3でNo)または位置偏差ΔPが第1しきい値T1より大きい場合(ステップS4でNo)、制限範囲設定部32は、位置偏差ΔPが第2しきい値T2より大きいか否かを判定する(ステップS6)。位置偏差ΔPが第2しきい値T2より大きい場合(ステップS6でYes)、制限範囲設定部32は、次回のマスターアーム70による修正操作時において、制限範囲を第1制限範囲A1から第3制限範囲A3(>A1)に広くする(ステップS7)。
【0071】
すなわち、位置偏差ΔPが第2しきい値T2より大きい場合に、制限範囲が前回より広くなる。これにより、自動動作情報からの修正量が多い場合には次回の修正操作において所定の制限処理が開始され難くなる。このように、修正量が多くなるほど修正操作が制限なく許容される範囲が広くなっていくことにより、修正に必要な操作量を確保することができる。特に、ワークのロット変更などで動作位置を比較的大きく変更する必要がある場合に有効である。
【0072】
なお、本実施の形態においては、修正動作情報に基づく動作位置が有効ではないことを示す成否情報が入力された場合でも、位置偏差ΔPを算出しているが、有効な成否情報でない場合(ステップS3でNo)、位置偏差ΔPを算出することなく制限範囲を維持または広げてもよい。また、位置偏差ΔPが第1しきい値T1より大きい場合(ステップS4でNo)、位置偏差ΔPを算出することなく制限範囲を維持または広げてもよい。
【0073】
また、修正成否入力部73はなくてもよい。すなわち、オペレータの成否判断によらず制限範囲が変化してもよい。例えば、単に位置偏差ΔPに基づいて制限範囲を変更してもよい。すなわち、制限範囲設定部32は、第1しきい値T1以下であれば制限範囲を狭くし、第2しきい値T2より大きければ制限範囲を広くしてもよい。また、何らかの指標に基づいて制限範囲設定部32が修正動作情報に基づく動作位置が有効であるか否かを判定してもよい。例えば、制限範囲設定部32は、修正動作情報に基づいて定められるスレーブアーム1(ハンド部12)の動作軌道上の所定の動作位置における曲率半径を演算し、当該曲率半径が所定のしきい値(第3しきい値)以上であれば有効であると判定してもよい。すなわち、制限範囲設定部32は、動作軌道において急峻に曲がっている箇所がなければ有効な修正動作情報であると判定してもよい。
【0074】
また、第1しきい値T1および第2しきい値T2は、T1≦T2である限り特に制限されない。例えば、第1しきい値T1と第2しきい値T2とは同じ値であってもよい。なお、第1しきい値T1と第2しきい値T2とが異なる値である場合、制限範囲設定部32は、位置偏差ΔPが第1しきい値T1より大きく第2しきい値T2以下である場合、制限範囲を維持する(変更しない)ようにしてもよい。
【0075】
また、第1しきい値T1および/または第2しきい値T2は、制限範囲A1の境界値より小さくても、大きくても、同じ値でもよい。また、制限範囲が変化した場合に、制限範囲の大きさに応じて第1しきい値T1および/または第2しきい値T2が変化してもよい。例えば、第1しきい値T1および第2しきい値T2が制限範囲A1,A2を定める半径R1に対する所定の比率(例えば半分)の値に設定されてもよい。これに代えて、第1しきい値T1および/または第2しきい値T2は、制限範囲の変化によらず、一定の値に設定されてもよい。
【0076】
また、制限範囲を狭くするためのしきい値(第1しきい値T1)を複数設け、位置偏差ΔPの値に応じて段階的に制限範囲を狭くしてもよい。
【0077】
また、上記実施の形態において、制限範囲は、動作位置P1を中心に設定されている例(動作位置P1から制限範囲の境界までの距離が半径R1で等しい例)について説明したが、制限範囲の設定態様はこれに限られない。例えば、動作位置P1から何れかの方向に制限範囲が偏っていてもよい。例えば、自動動作情報に基づく動作軌道L1が曲線を描く場合、その曲線の内側(曲率中心側)に対してその曲線の外側において制限範囲が広くなる(またはその逆になる)ように、制限範囲が設定されてもよい。
【0078】
(その他の実施形態)
以上、本発明の一実施の形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【0079】
例えば、上記実施の形態においては、マスタースレーブ方式のロボットを利用したロボットシステム100について説明したが、マスタ-スレーブ方式のロボットシステム以外のロボットシステムにも適用可能である。すなわち、修正動作モードにおける修正操作を行う操作部は、マスターアーム70を備えていなくてもよい。
【0080】
例えば、マスターアーム70の代わりに、入力装置2として、オペレータの操作に基づいて、動作中にあるスレーブアーム1の自動動作情報に基づく動作軌道L1における動作位置を変更するための修正位置入力部を備えていてもよい。修正位置入力部は、操作可能に構成されており、例えば方向スイッチ、操作レバーまたはタブレットなどの携帯端末が例示できる。このような修正位置入力部を用いてオペレータが所定方向への操作入力を行うと、スレーブアーム1の動作位置から所定方向へ操作入力期間または操作入力量に応じた操作量分の位置修正を行うための修正操作情報が生成される。このような態様でも、上記実施の形態と同様の効果が得られる。
【0081】
また、上記実施の形態では、モード選択部71や動作情報選択部72などの各操作部は、1つの入力装置2に備えられているが、別々の入力装置に設けられてもよい。
【産業上の利用可能性】
【0082】
本発明は、予め設定されたロボットの動作を容易かつ適切に修正可能なロボットシステムを提供するために有用である。
【符号の説明】
【0083】
1 スレーブアーム(ロボット本体)
4 記憶装置(記憶部)
31 動作制御部
32 制限範囲設定部
41 自動動作情報
70 マスターアーム(操作部)
73 修正成否入力部
100 ロボットシステム