(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】ロボットシステムおよびロボットシステムの制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240228BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2019224689
(22)【出願日】2019-12-12
【審査請求日】2022-11-22
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100091292
【氏名又は名称】増田 達哉
(74)【代理人】
【識別番号】100091627
【氏名又は名称】朝比 一夫
(72)【発明者】
【氏名】水落 俊一
(72)【発明者】
【氏名】小笠原 直樹
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2002-187081(JP,A)
【文献】国際公開第2015/052790(WO,A1)
【文献】国際公開第2018/079075(WO,A1)
【文献】特開2018-132829(JP,A)
【文献】PALJUG,Experimental Study of Two Robot Arms Manipulating Large Objects,IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY,米国,IEEE SERVICE CENTER,1995年06月, vol. 3, no. 2, pages 177 - 188
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
複数の回転軸を有するロボットアームと、
前記回転軸にそれぞれ設けられ、前記ロボットアームの
前記回転軸の位
置を取得する
主エンコーダー
および副エンコーダーと、
前記ロボットアームの動作を制御する制御処理を実行する第1制御部と、
前記第1制御部と独立して設けられ、前記
主エンコーダー
および前記副エンコーダーに対し、前記位置
に対応する主位置情報
および副位置情報を要求する位置情報要求信号を送信する第2制御部と、
を備え、
前記第2制御部は、
前記位置情報要求信号の送信に対応し
て前記第1制御部に対する割り込み信号を送信
する機能と、
前記位置情報要求信号に基づいて前記主位置情報および前記副位置情報を順次受信する機能と、
前記主位置情報と前記副位置情報とを統合して前記回転軸の位置情報を生成する機能と、
を有し、
前記第1制御部は、前記割り込み信号と
、前記
第2制御部で生成された前記回転軸の位置情報と、に基づいて、前記制御処理を実行する
機能を有することを特徴とするロボットシステム。
【請求項2】
撮像部を備え、
前記第1制御部は、前記撮像部で取得した画像についての画像処理を実行する請求項1に記載のロボットシステム。
【請求項3】
前記第2制御部は、前記位置情報要求信号の送信を所定の間隔で繰り返す請求項
1または2に記載のロボットシステム。
【請求項4】
前記第2制御部は、前記回転軸の位置情報が表している前記回転軸の軸番号を第2制御部側軸番号として特定する機能を有し、
前記第1制御部は、
受信した前記割り込み信号
の数と既知の軸数とに基づいて、前記回転軸の位置情報が表している前記回転軸の軸番号を第1制御部側軸番号として特定する機能と、
前記割り込み信号に対応して前記第2制御部に
前記第2制御部側軸番号を要求し
、取得
する機能と、
前記第1制御部側軸番号と前記第2制御部側軸番号とを比較する比較処理を実行する
機能と、
を有する請求項1ないし
3のいずれか1項に記載のロボットシステム。
【請求項5】
前記第1制御部は、前記比較処理の結果、前記
第1制御部側軸番号と前記
第2制御部側軸番号とが所定の回数以上異なっていたとき、異常信号を出力する
機能を有する請求項
4に記載のロボットシステム。
【請求項6】
前記第2制御部は、送信した前記割り込み信号の数と既知の軸数とに基づいて、前記第2制御部側軸番号を特定する機能を有する請求項4または5に記載のロボットシステム。
【請求項7】
前記第1制御部は、前記第1制御部側軸番号と前記第2制御部側軸番号とを照合し、一致している場合、前記割り込み信号の送受信が正常であることを検出する機能を有する請求項6に記載のロボットシステム。
【請求項8】
複数の回転軸を有するロボットアームと、
前記回転軸にそれぞれ設けられ、前記ロボットアームの
前記回転軸の位
置を取得するエンコーダーと、
前記ロボットアームの動作を制御する制御処理を実行する第1制御部と、
前記第1制御部と独立して設けられ、前記エンコーダーに対し
、位置情報要求信号を送信する第2制御部と、
を備えるロボットシステムの制御方法であって、
前記エンコーダーは、主エンコーダーおよび副エンコーダーで構成され、
前記第2制御部
が、前記
主エンコーダー
および前記副エンコーダーに対し、前記位置情報要求信号を送信し、かつ、前記第1制御部に対し、前記位置情報要求信号に対応
して割り込み信号を送信する
とともに、前記位置情報要求信号に基づいて前記主エンコーダーから出力された主位置情報および前記副エンコーダーから出力された副位置情報を順次受信し、前記主位置情報と前記副位置情報とを統合して前記回転軸の位置情報を生成するステップと、
前記第1制御部
が、前記割り込み信号と
、前記
第2制御部で生成された前記回転軸の位置情報と、に基づいて、前記制御処理を実行するステップと、
を有することを特徴とするロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムおよびロボットシステムの制御方法に関するものである。
【背景技術】
【0002】
特許文献1には、機械や設備等の制御対象を制御する制御装置として、CPUユニットと、電源ユニットと、IOユニットと、を備えるプログラマブル・ロジック・コントローラーが開示されている。このうち、CPUユニットは、マイクロプロセッサーと、メモリーと、チップセットと、システムタイマーを含む通信コントローラーと、を備えている。システムタイマーは、一定の時間間隔ごとに割り込み信号を発生してマイクロプロセッサーに提供する。マイクロプロセッサーは、システムタイマーが発生する割り込み信号を利用して、所定の周期で制御プログラムを繰り返し実行することにより、制御対象を制御するための動作を実現する。
【0003】
このようなCPUユニットでは、マイクロプロセッサーとメモリーとがチップセットを介して接続されている。このため、マイクロプロセッサーにおいて負荷の大きい制御プログラムが実行されている場合、チップセットやメモリー等のリソースが制御プログラムに占有されることがある。このとき、割り込み信号を利用した別のプログラムが、チップセットを介してメモリーにアクセスした場合、メモリーからのデータの取得が遅延することがある。そうすると、別のプログラムが実行されるタイミングが本来のタイミングからずれてしまう。
【0004】
例えば、ロボットアームを備えるロボットでは、エンコーダーが取得した位置情報に基づいて、ロボットアームの駆動を制御する。また、ロボットは、カメラを備えており、カメラで撮像した画像を制御装置において処理することにより、ロボットアームの駆動制御に利用する。このため、ロボットの制御装置は、特許文献1に記載のプログラマブル・ロジック・コントローラーと同様の装置構成を有するといえる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のような画像処理が行われるロボットでは、制御装置において画像処理を行っている間、制御装置のリソースが画像処理に占有されることになり、エンコーダーに対して位置情報を要求するタイミングが本来のタイミングからずれてしまう。その結果、正確な位置情報を取得することができず、ロボットアームの駆動速度の精度が低下するという問題がある。
【課題を解決するための手段】
【0007】
本発明の適用例に係るロボットシステムは、
複数の回転軸を有するロボットアームと、
前記回転軸にそれぞれ設けられ、前記ロボットアームの前記回転軸の位置を取得する主エンコーダーおよび副エンコーダーと、
前記ロボットアームの動作を制御する制御処理を実行する第1制御部と、
前記第1制御部と独立して設けられ、前記主エンコーダーおよび前記副エンコーダーに対し、前記位置に対応する主位置情報および副位置情報を要求する位置情報要求信号を送信する第2制御部と、
を備え、
前記第2制御部は、
前記位置情報要求信号の送信に対応して前記第1制御部に対する割り込み信号を送信する機能と、
前記位置情報要求信号に基づいて前記主位置情報および前記副位置情報を順次受信する機能と、
前記主位置情報と前記副位置情報とを統合して前記回転軸の位置情報を生成する機能と、
を有し、
前記第1制御部は、前記割り込み信号と、前記第2制御部で生成された前記回転軸の位置情報と、に基づいて、前記制御処理を実行する機能を有する。
【0008】
本発明の適用例に係るロボットシステムの制御方法は、
複数の回転軸を有するロボットアームと、
前記回転軸にそれぞれ設けられ、前記ロボットアームの前記回転軸の位置を取得するエンコーダーと、
前記ロボットアームの動作を制御する制御処理を実行する第1制御部と、
前記第1制御部と独立して設けられ、前記エンコーダーに対し、位置情報要求信号を送信する第2制御部と、
を備えるロボットシステムの制御方法であって、
前記エンコーダーは、主エンコーダーおよび副エンコーダーで構成され、
前記第2制御部が、前記主エンコーダーおよび前記副エンコーダーに対し、前記位置情報要求信号を送信し、かつ、前記第1制御部に対し、前記位置情報要求信号に対応して割り込み信号を送信するとともに、前記位置情報要求信号に基づいて前記主エンコーダーから出力された主位置情報および前記副エンコーダーから出力された副位置情報を順次受信し、前記主位置情報と前記副位置情報とを統合して前記回転軸の位置情報を生成するステップと、
前記第1制御部が、前記割り込み信号と、前記第2制御部で生成された前記回転軸の位置情報と、に基づいて、前記制御処理を実行するステップと、
を有する。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態に係るロボットシステムを示す側面図である。
【
図2】
図1に示すロボットシステムのブロック図である。
【
図3】
図2の各コアに割り当てられている処理の一例を示す図である。
【
図4】
図2に示す制御装置とロボットとの間の信号やデータの流れを経過時間に沿ってまとめたタイミングチャートである。
【
図5】従来の制御装置とロボットとの間の信号やデータの流れを経過時間に沿ってまとめたタイミングチャートである。
【
図6】第1制御部が有する異常検出機能を説明するための模式図である。
【
図7】第1制御部が割り込み信号を受信したとき、それに対応する第1制御部側軸番号の例および第2制御部側軸番号の例を示した表である。
【発明を実施するための形態】
【0010】
以下、本発明のロボットシステムおよびロボットシステムの制御方法の好適な実施形態を添付図面に基づいて詳細に説明する。
【0011】
1.第1実施形態
まず、第1実施形態に係るロボットシステムについて説明する。
【0012】
図1は、第1実施形態に係るロボットシステムを示す側面図である。
図2は、
図1に示すロボットシステムのブロック図である。
【0013】
1.1.ロボットシステムの概要
図1に示すロボットシステム1は、ロボット2と、ロボット2の作動を制御する制御装置5と、を有している。ロボットシステム1の用途は、特に限定されないが、例えば、精密機器やこれを構成する部品等の対象物の給材、除材、搬送および組立等が挙げられる。
【0014】
図1に示すロボット2は、基台21と、基台21に連結されているロボットアーム22と、ロボットアーム22に設けられた撮像部4と、を備える。
基台21は、例えば、床、壁、天井、移動可能な台車上等の被設置部に固定される。
【0015】
ロボットアーム22は、基台21に第1軸J1まわりに回動可能に連結されたアーム221と、アーム221に対して第2軸J2まわりに回動可能に連結されたアーム222と、アーム222に対して第3軸J3まわりに回動可能に連結されたアーム223と、アーム223に対して第4軸J4まわりに回動可能に連結されたアーム224と、アーム224に対して第5軸J5まわりに回動可能に連結されたアーム225と、アーム225に対して第6軸J6まわりに回動可能に連結されたアーム226と、を有している。また、アーム226には、ロボット2に実行させる作業に応じたエンドエフェクター26が装着される。
【0016】
なお、ロボット2の構成は、本実施形態の構成に限定されず、例えば、ロボットアーム22が有するアームの数が1本~5本であってもよいし、7本以上であってもよい。また、ロボット2の種類は、スカラロボットや、2つのロボットアーム22を有する双腕ロボットであってもよい。
【0017】
ロボット2は、
図2に示すように、第1駆動部231と、第2駆動部232と、第3駆動部233と、第4駆動部234と、第5駆動部235と、第6駆動部236と、を有している。第1駆動部231は、基台21に対してアーム221を回動させる図示しないモーターと、図示しない減速機と、を備えている。第2駆動部232は、アーム221に対してアーム222を回動させる図示しないモーターと、図示しない減速機と、を備えている。第3駆動部233は、アーム222に対してアーム223を回動させる図示しないモーターと、図示しない減速機と、を備えている。第4駆動部234は、アーム223に対してアーム224を回動させる図示しないモーターと、図示しない減速機と、を備えている。第5駆動部235は、アーム224に対してアーム225を回動させる図示しないモーターと、図示しない減速機と、を備えている。第6駆動部236は、アーム225に対してアーム226を回動させる図示しないモーターと、図示しない減速機と、を備えている。
【0018】
制御装置5は、アーム221~226が目的とする位置になるように、第1駆動部231、第2駆動部232、第3駆動部233、第4駆動部234、第5駆動部235および第6駆動部236の各作動を制御する。
【0019】
ロボット2は、各駆動部のモーターまたは減速機の回転軸に設けられ、回転軸の回転角度を検出するエンコーダー24を有している。これにより、エンコーダー24は、ロボットアーム22の位置情報を取得する。位置情報とは、各回転軸の回転角度を表す情報のことをいう。また、エンコーダー24は、取得した位置情報を、回転軸ごとに、制御装置5に送信する機能を有している。
【0020】
また、本実施形態に係るロボット2では、エンコーダー24が多重化されている。多重化とは、回転軸ごとに複数のエンコーダーを設けることにより、複数の位置情報を取得できるようにすることをいう。エンコーダー24に冗長性を持たせたり、各回転軸の位置や速度をより高精度に検出したりすることができる。
【0021】
具体的には、エンコーダー24は、第1主エンコーダー241a、第1副エンコーダー241b、第2主エンコーダー242a、第2副エンコーダー242b、第3主エンコーダー243a、第3副エンコーダー243b、第4主エンコーダー244a、第4副エンコーダー244b、第5主エンコーダー245a、第5副エンコーダー245b、第6主エンコーダー246a、および第6副エンコーダー246bを含んでいる。
【0022】
第1駆動部231のモーターまたは減速機には、その回転軸の回転角度を検出する第1主エンコーダー241aおよび第1副エンコーダー241bが設けられている。第2駆動部232のモーターまたは減速機には、その回転軸の回転角度を検出する第2主エンコーダー242aおよび第2副エンコーダー242bが設けられている。第3駆動部233のモーターまたは減速機には、その回転軸の回転角度を検出する第3主エンコーダー243aおよび第3副エンコーダー243bが設けられている。第4駆動部234のモーターまたは減速機には、その回転軸の回転角度を検出する第4主エンコーダー244aおよび第4副エンコーダー244bが設けられている。第5駆動部235のモーターまたは減速機には、その回転軸の回転角度を検出する第5主エンコーダー245aおよび第5副エンコーダー245bが設けられている。第6駆動部236のモーターまたは減速機には、その回転軸の回転角度を検出する第6主エンコーダー246aおよび第6副エンコーダー246bが設けられている。
【0023】
各モーターとしては、例えば、ACサーボモーター、DCサーボモーター等が挙げられる。各減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等が挙げられる。
【0024】
各モーターは、図示しないモータードライバーを介して制御装置5と電気的に接続されている。また、エンコーダー24も、制御装置5と電気的に接続されている。
【0025】
撮像部4は、ロボットアーム22に装着され、ロボット2による作業の対象物やエンドエフェクター26を撮像する。撮像部4は、制御装置5と電気的に接続されている。
【0026】
1.2.制御装置のハードウェア構成
制御装置5は、ロボット2に対して通信可能に接続されている。制御装置5とロボット2との間は、有線で接続されていてもよいし、無線で接続されていてもよい。
【0027】
制御装置5は、第1制御部51と、第2制御部52と、システムバス53と、メインメモリー54と、を備えている。
【0028】
第1制御部51は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等のプロセッサーを含む。このプロセッサーは、マルチタスクで動作するシングルコアのプロセッサーであってもよいが、マルチコアのプロセッサーであるのが好ましい。マルチコアのプロセッサーを用いることにより、異なるアプリケーションプログラムの実行を各コアに割り当てることができる。これにより、各アプリケーションプログラムを円滑に実行することができ、制御装置5の性能、特にリアルタイム性を高めることができる。
【0029】
図2に示す第1制御部51は、マルチコアのプロセッサーを備えており、このプロセッサーは、第1コア511、第2コア512、第3コア513および第4コア514を含んでいる。なお、プロセッサーのコア数は、4つに限定されない。
【0030】
図3は、
図2の各コアに割り当てられている処理の一例を示す図である。
図3に示す例は、第1制御部51に用いられているマルチコアのプロセッサーを、非対称型マルチプロセッシング(AMP)によって作動させる例である。非対称型マルチプロセッシングは、1つのプロセッサー上において、異なるOS(Operating System)やベアメタルを混在させる技術である。
【0031】
第1コア511には、ロボットアーム22の動作を制御するロボットアーム制御処理を含む、ロボット2の制御処理が割り当てられている。
【0032】
第2コア512および第3コア513には、画像処理が割り当てられている。画像処理としては、例えば、撮像部4による撮像処理、得られた画像に対するフィルター処理等が挙げられる。
【0033】
これらの第1コア511、第2コア512および第3コア513には、例えばLinux(登録商標)のような汎用OSが割り当てられる。これにより、これらの第1コア511、第2コア512および第3コア513には、上記処理を含む種々の汎用処理を実行させることができる。汎用処理としては、上述した画像処理の他に、例えば、力覚センサー、感圧センサー、近接センサー等の出力に対する演算処理等が挙げられる。
【0034】
第4コア514には、例えばロボットアーム22の動作位置に関する処理、ロボットアーム22の動作速度に関する処理、第2制御部52との通信に関する処理、その他の通信に関する処理等が挙げられる。これらは、それぞれ、所定の時間間隔で実行することを要求される処理であるため、ここでは「所定間隔処理」という。なお、その他の通信とは、例えば、フィールドバスに関する処理、標準入出力に関する処理等が挙げられる。また、所定の時間間隔とは、特に限定されないが、例えば数十マイクロ秒~数ミリ秒程度とされる。
【0035】
第4コア514は、例えばOSが割り当てられていない、いわゆるベアメタルである。ベアメタルは、ベアメタル型ハイパーバイザーとも呼ばれ、OSを介することなく、ハードウェア上でアプリケーションプログラムを直接実行させることを可能にする仮想化環境またはそれを構築する仮想化ソフトウェアのことをいう。第4コア514をベアメタルにすることで、第4コア514に汎用OSを割り当てた場合に比べて、所定間隔処理をより遅滞なく実行させやすくなる。つまり、リアルタイム性を高めることができる。なお、第4コア514は、ベアメタルに限定されるものではなく、例えば任意のOSが割り当てられた構成であってもよい。
【0036】
第1制御部51は、第1コア511、第2コア512、第3コア513および第4コア514にそれぞれ対応する図示しない1次キャッシュメモリーを含んでいてもよい。
【0037】
一方、
図2に示す第1制御部51は、第1コア511、第2コア512、第3コア513および第4コア514に共通の2次キャッシュメモリー515を含んでいる。
【0038】
なお、コア同士および各コアと2次キャッシュメモリー515との間は、図示しないインターコネクトを介して通信可能に接続されている。
【0039】
第1制御部51は、この他に、図示しないシステムタイマー等を含んでいてもよい。
第1制御部51のハードウェア構成は、上述した各部が物理的に独立した構成であってもよいが、1チップに集積された構成であるのが好ましい。具体的には、第1制御部51のハードウェア構成は、SoC(System On Chip)であるのが好ましい。これにより、第1制御部51の小型化、省電力化および低コスト化を図ることができる。
【0040】
第2制御部52は、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等の素子を含む。第2制御部52は、所定の時間間隔でタイミング信号を生成する機能、タイミング信号生成とともに割り込み信号を生成し、第1制御部51に送信する機能、タイミング信号生成とともに位置情報要求信号を生成し、エンコーダー24に送信する機能等を有する。
【0041】
第2制御部52は、
図2に示すシステムバス53を介して第1制御部51と通信可能に接続されている。
【0042】
また、システムバス53には、メインメモリー54が通信可能に接続されている。メインメモリー54としては、例えば、RAM(Random Access Memory)等が挙げられる。この他、システムバス53には、図示しない各種インターフェース、不揮発性メモリー、通信コントローラー等が通信可能に接続されていてもよい。なお、システムバス53は、第1制御部51と第2制御部52とを接続する第1専用バス、および、第1制御部51とメインメモリー54とを接続する第2専用バス、に独立して構成されていてもよい。
【0043】
1.3.制御装置のソフトウェア構成
次に、制御装置5のソフトウェア構成、すなわち、制御装置5の作動例について説明する。以下、制御装置5がエンコーダー24から位置情報や速度情報を取得するプロセスを例に挙げ、制御装置5とロボット2との間で送受信される信号やデータについて説明する。
【0044】
図4は、
図2に示す制御装置5とロボット2との間の信号やデータの流れを経過時間に沿ってまとめたタイミングチャートである。なお、
図4において、矢印は、信号やデータの流れを示している。また、実線の四角は、処理、動作、または信号等の送受信を示している。矢印は、実線の四角同士を結んでいる。
【0045】
図4の横軸は、時間軸であり、時間は左から右に向かって流れている。
図4では、最初の期間を期間t1とし、その次の期間を期間t2とし、それ以降、期間t3、期間t4、・・・と続いている。各期間の長さは、互いに等しくなっている。また、
図4に示す処理対象軸とは、第1制御部51の第4コア514が時分割で実行する、位置情報に関する処理について、その対象となる軸を示している。具体的には、処理対象軸とは、各期間において、第1制御部51の第4コア514が位置情報を処理する対象の軸が、前述した第1軸J1、第2軸J2、第3軸J3、第4軸J4、第5軸J5および第6軸J6のうちのいずれであるかを示している。処理対象軸には、第1軸J1から第6軸J6までの各軸が順次設定され、かつ、それが繰り返される。
【0046】
図4の縦軸には、制御装置5またはロボット2の各部を列挙している。前述した矢印の起点および終点は、それぞれ
図4の縦軸に示す各部のいずれかに位置している。なお、
図4に示す、第2制御部52の送信側とは、第2制御部52のうち、各部に信号を送信する領域のことを指している。また、
図4に示す、第2制御部52の受信側とは、第2制御部52のうち、エンコーダー24から位置情報のデータを受信し、第1制御部51に向けて送信する領域のことを指している。
【0047】
1.3.1.期間t1
図4に示す最初の期間t1では、第2制御部52が発生させた1つのタイミング信号st4に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si4を送信する。
【0048】
第1制御部51の第4コア514では、割り込み信号si4を受信し、それをトリガーとして、第4軸J4の位置に関する処理を実行する。この処理は、期間t1よりも前の期間において第2制御部52から送信された第4軸J4に関する図示しない位置情報を取得する取得処理pg4と、位置情報から第4軸J4の位置や速度を求める演算処理pc4と、を含む。これらの処理によって、第4軸J4の位置、すなわち第4軸J4の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第4軸J4の回動速度を得る。なお、処理の詳細については、後述する。
【0049】
一方、この期間t1では、第2制御部52が発生させた1つのタイミング信号st4に基づいて、第2制御部52から第1主エンコーダー241aおよび第1副エンコーダー241bに向けて位置情報要求信号sr1を送信する。
【0050】
第1主エンコーダー241aおよび第1副エンコーダー241bは、それぞれ、位置情報要求信号sr1を受信し、それをトリガーとして、第1軸J1の位置を検出する位置検出動作pr1を行う。続いて、第1主エンコーダー241aおよび第1副エンコーダー241bは、位置検出動作pr1によって取得した第1軸J1の位置に関する情報である第1主位置情報dm1および第1副位置情報ds1を、順次、第2制御部52に送信する。
【0051】
第2制御部52は、第1主位置情報dm1および第1副位置情報ds1を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第1軸J1の位置、ステータスに関する第1位置情報d1として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0052】
なお、上述した各種信号やデータの送受信は、期間t1内で行われる必要はなく、期間t1より後の期間で行われてもよい。
図4では、一例として、第1主位置情報dm1および第1副位置情報ds1の送信、ならびに、第1位置情報d1の読み出しが、それぞれ期間t2で行われている。
【0053】
なお、第1位置情報d1を保存するのは、2次キャッシュメモリー515に限定されず、第2制御部52が備える図示しない記憶部であってもよい。これは、後述する第2位置情報d2以降についても同様である。
【0054】
1.3.2.期間t2
図4に示す期間t2では、第2制御部52が発生させたタイミング信号st5に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si5を送信する。
【0055】
第1制御部51の第4コア514では、割り込み信号si5を受信し、それをトリガーとして、第5軸J5の位置に関する処理を実行する。この処理は、期間t2よりも前の期間において第2制御部52から送信された第5軸J5に関する図示しない位置情報を取得する取得処理pg5と、位置情報から第5軸J5の位置や速度を求める演算処理pc5と、を含む。これらの処理によって、第5軸J5の位置、すなわち第5軸J5の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第5軸J5の回動速度を得る。なお、処理の詳細については、後述する。
【0056】
一方、この期間t2では、第2制御部52が発生させたタイミング信号st5に基づいて、第2制御部52から第2主エンコーダー242aおよび第2副エンコーダー242bに向けて位置情報要求信号sr2を送信する。
【0057】
第2主エンコーダー242aおよび第2副エンコーダー242bは、それぞれ、位置情報要求信号sr2を受信し、それをトリガーとして、第2軸J2の位置を検出する位置検出動作pr2を行う。続いて、第2主エンコーダー242aおよび第2副エンコーダー242bは、位置検出動作pr2によって取得した第2軸J2の位置に関する情報である第2主位置情報dm2および第2副位置情報ds2を、順次、第2制御部52に送信する。
【0058】
第2制御部52は、第2主位置情報dm2および第2副位置情報ds2を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第2軸J2の位置、ステータスに関する第2位置情報d2として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0059】
なお、上述した各種信号やデータの送受信は、期間t2内で行われる必要はなく、期間t2より後の期間で行われてもよい。
図4では、一例として、第2主位置情報dm2および第2副位置情報ds2の送信、ならびに、第2位置情報d2の読み出しが、それぞれ期間t3で行われている。
【0060】
1.3.3.期間t3
図4に示す期間t3では、第2制御部52が発生させたタイミング信号st6に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si6を送信する。
【0061】
第1制御部51の第4コア514では、割り込み信号si6を受信し、それをトリガーとして、第6軸J6の位置に関する処理を実行する。この処理は、期間t3よりも前の期間において第2制御部52から送信された第6軸J6に関する図示しない位置情報を取得する取得処理pg6と、位置情報から第6軸J6の位置や速度を求める演算処理pc6と、を含む。これらの処理によって、第6軸J6の位置、すなわち第6軸J6の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第6軸J6の回動速度を得る。なお、処理の詳細については、後述する。
【0062】
一方、この期間t3では、第2制御部52が発生させたタイミング信号st6に基づいて、第2制御部52から第3主エンコーダー243aおよび第3副エンコーダー243bに向けて位置情報要求信号sr3を送信する。
【0063】
第3主エンコーダー243aおよび第3副エンコーダー243bは、それぞれ、位置情報要求信号sr3を受信し、それをトリガーとして、第3軸J3の位置を検出する位置検出動作pr3を行う。続いて、第3主エンコーダー243aおよび第3副エンコーダー243bは、位置検出動作pr3によって取得した第3軸J3の位置に関する情報である第3主位置情報dm3および第3副位置情報ds3を、順次、第2制御部52に送信する。
【0064】
第2制御部52は、第3主位置情報dm3および第3副位置情報ds3を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第3軸J3の位置、ステータスに関する第3位置情報d3として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0065】
なお、上述した各種信号やデータの送受信は、期間t3内で行われる必要はなく、期間t3より後の期間で行われてもよい。
図4では、一例として、第3主位置情報dm3および第3副位置情報ds3の送信、ならびに、第3位置情報d3の読み出しが、それぞれ期間t4で行われている。
【0066】
1.3.4.期間t4
図4に示す期間t4では、第2制御部52が発生させたタイミング信号st1に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si1を送信する。
【0067】
第1制御部51の第4コア514では、割り込み信号si1を受信し、それをトリガーとして、第1軸J1の位置に関する処理を実行する。この処理は、前述した期間t1において第2制御部52から送信された第1軸J1に関する第1位置情報d1を取得する取得処理pg1と、位置情報から第1軸J1の位置や速度を求める演算処理pc1と、を含む。これらの処理によって、第1軸J1の位置、すなわち第1軸J1の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第1軸J1の回動速度を得る。
【0068】
ここで、第4コア514において、取得処理pg1および演算処理pc1を実行する際、そのタイミングは、前述したように、割り込み信号si1に基づいて決められる。一方、これらの処理に用いる第1位置情報d1が第1制御部51に送信されるタイミングは、前述した期間t1において第2制御部52から送信された位置情報要求信号sr1に基づいて決められる。
【0069】
したがって、割り込み信号si1は、タイミング信号st1に基づいて送信されたものであり、位置情報要求信号sr1は、期間t1でのタイミング信号st4に基づいて送信されたものである。これらのタイミング信号st1、st4は、第1制御部51から独立した第2制御部52において所定の間隔で精度よく発生させたものである。これにより、位置情報要求信号sr1に対応して2次キャッシュメモリー515に保存された第1位置情報d1が、期間t4で第1制御部51により読み出せるようになっている。換言すれば、精度の高いタイミング信号st1、st4を利用して各信号の送信タイミングを最適化することにより、第1制御部51は、前述した取得処理pg1および演算処理pc1を開始する直前に、その処理に必要な第1位置情報d1を読み込むことが可能になる。これにより、両者のタイミングを同期させる処理を別に用意する必要がなくなり、制御装置5の構成の簡素化を図ることができる。
【0070】
一方、この期間t4では、第2制御部52が発生させたタイミング信号st1に基づいて、第2制御部52から第4主エンコーダー244aおよび第4副エンコーダー244bに向けて位置情報要求信号sr4を送信する。
【0071】
第4主エンコーダー244aおよび第4副エンコーダー244bは、それぞれ、位置情報要求信号sr4を受信し、それをトリガーとして、第4軸J4の位置を検出する位置検出動作pr4を行う。続いて、第4主エンコーダー244aおよび第4副エンコーダー244bは、位置検出動作pr4によって取得した第4軸J4の位置に関する情報である第4主位置情報dm4および第4副位置情報ds4を、順次、第2制御部52に送信する。
【0072】
第2制御部52は、第4主位置情報dm4および第4副位置情報ds4を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第4軸J4の位置、ステータスに関する第4位置情報d4として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0073】
なお、上述した各種信号やデータの送受信は、期間t4内で行われる必要はなく、期間t4より後の期間で行われてもよい。
図4では、一例として、第4主位置情報dm4および第4副位置情報ds4の送信、ならびに、第4位置情報d4の読み出しが、それぞれ期間t5で行われている。
【0074】
1.3.5.期間t5
図4に示す期間t5では、第2制御部52が発生させたタイミング信号st2に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si2を送信する。
【0075】
第1制御部51の第4コア514では、割り込み信号si2を受信し、それをトリガーとして、第2軸J2の位置に関する処理を実行する。この処理は、前述した期間t2において第2制御部52から送信された第2軸J2に関する第2位置情報d2を取得する取得処理pg2と、位置情報から第2軸J2の位置や速度を求める演算処理pc2と、を含む。これらの処理によって、第2軸J2の位置、すなわち第2軸J2の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第2軸J2の回動速度を得る。
【0076】
ここで、第4コア514において、取得処理pg2および演算処理pc2を実行する際、そのタイミングは、前述したように、割り込み信号si2に基づいて決められる。一方、これらの処理に用いる第2位置情報d2が第1制御部51に送信されるタイミングは、前述した期間t2において第2制御部52から送信された位置情報要求信号sr2に基づいて決められる。
【0077】
したがって、割り込み信号si2は、タイミング信号st2に基づいて送信されたものであり、位置情報要求信号sr2は、期間t2でのタイミング信号st5に基づいて送信されたものである。これらのタイミング信号st2、st5は、第1制御部51から独立した第2制御部52において所定の間隔で精度よく発生させたものである。これにより、位置情報要求信号sr2に対応して2次キャッシュメモリー515に保存された第2位置情報d2が、期間t5で第1制御部51により読み出せるようになっている。換言すれば、精度の高いタイミング信号st2、st5を利用して各信号の送信タイミングを最適化することにより、第1制御部51は、前述した取得処理pg2および演算処理pc2を開始する直前に、その処理に必要な第2位置情報d2を読み込むことが可能になる。これにより、両者のタイミングを同期させる処理を別に用意する必要がなくなり、制御装置5の構成の簡素化を図ることができる。
【0078】
一方、この期間t5では、第2制御部52が発生させたタイミング信号st2に基づいて、第2制御部52から第5主エンコーダー245aおよび第5副エンコーダー245bに向けて位置情報要求信号sr5を送信する。
【0079】
第5主エンコーダー245aおよび第5副エンコーダー245bは、それぞれ、位置情報要求信号sr5を受信し、それをトリガーとして、第5軸J5の位置を検出する位置検出動作pr5を行う。続いて、第5主エンコーダー245aおよび第5副エンコーダー245bは、位置検出動作pr5によって取得した第5軸J5の位置に関する情報である第5主位置情報dm5および第5副位置情報ds5を、順次、第2制御部52に送信する。
【0080】
第2制御部52は、第5主位置情報dm5および第5副位置情報ds5を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第5軸J5の位置、ステータスに関する第5位置情報d5として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0081】
なお、上述した各種信号やデータの送受信は、期間t5内で行われる必要はなく、期間t5より後の期間で行われてもよい。
図4では、一例として、第5主位置情報dm5および第5副位置情報ds5の送信、ならびに、第5位置情報d5の読み出しが、それぞれ期間t6で行われている。
【0082】
1.3.6.期間t6
図4に示す期間t6では、第2制御部52が発生させたタイミング信号st3に基づいて、第2制御部52から第1制御部51に向けて割り込み信号si3を送信する。
【0083】
第1制御部51の第4コア514では、割り込み信号si3を受信し、それをトリガーとして、第3軸J3の位置に関する処理を実行する。この処理は、前述した期間t3において第2制御部52から送信された第3軸J3に関する第3位置情報d3を取得する取得処理pg3と、位置情報から第3軸J3の位置や速度を求める演算処理pc3と、を含む。これらの処理によって、第3軸J3の位置、すなわち第3軸J3の原点からの回動角度を得るとともに、求めた位置の単位時間当たりの変化量に基づいて第3軸J3の回動速度を得る。
【0084】
ここで、第4コア514において、取得処理pg3および演算処理pc3を実行する際、そのタイミングは、前述したように、割り込み信号si3に基づいて決められる。一方、これらの処理に用いる第3位置情報d3が第1制御部51に送信されるタイミングは、前述した期間t3において第2制御部52から送信された位置情報要求信号sr3に基づいて決められる。
【0085】
したがって、割り込み信号si3は、タイミング信号st3に基づいて送信されたものであり、位置情報要求信号sr3は、期間t3でのタイミング信号st6に基づいて送信されたものである。これらのタイミング信号st3、st6は、第1制御部51から独立した第2制御部52において所定の間隔で精度よく発生させたものである。これにより、位置情報要求信号sr3に対応して2次キャッシュメモリー515に保存された第3位置情報d3が、期間t6で第1制御部51により読み出せるようになっている。換言すれば、精度の高いタイミング信号st3、st6を利用して各信号の送信タイミングを最適化することにより、第1制御部51は、前述した取得処理pg3および演算処理pc3を開始する直前に、その処理に必要な第3位置情報d3を読み込むことが可能になる。これにより、両者のタイミングを同期させる処理を別に用意する必要がなくなり、制御装置5の構成の簡素化を図ることができる。
【0086】
一方、この期間t6では、第2制御部52が発生させたタイミング信号st3に基づいて、第2制御部52から第6主エンコーダー246aおよび第6副エンコーダー246bに向けて位置情報要求信号sr6を送信する。
【0087】
第6主エンコーダー246aおよび第6副エンコーダー246bは、それぞれ、位置情報要求信号sr6を受信し、それをトリガーとして、第6軸J6の位置を検出する位置検出動作pr6を行う。続いて、第6主エンコーダー246aおよび第6副エンコーダー246bは、位置検出動作pr6によって取得した第6軸J6の位置に関する情報である第6主位置情報dm6および第6副位置情報ds6を、順次、第2制御部52に送信する。
【0088】
第2制御部52は、第6主位置情報dm6および第6副位置情報ds6を受信し、これらの情報を統合する。そして、第2制御部52は、統合した情報を、第6軸J6の位置、ステータスに関する第6位置情報d6として、例えば2次キャッシュメモリー515に保存し、第1制御部51がこれを読み出す。
【0089】
なお、上述した各種信号やデータの送受信は、期間t6内で行われる必要はなく、期間t6より後の期間で行われてもよい。
図4では、一例として、第6主位置情報dm6および第6副位置情報ds6の送信、ならびに、第6位置情報d6の読み出しが、それぞれ期間t7で行われている。
【0090】
1.3.7.期間t7以降
図4に示す期間t7以降、具体的には期間t7~t10では、前述した期間t1~t6と同じようにして、信号やデータの送受信、動作、処理等が繰り返される。その結果、制御装置5では、所定の間隔で第1軸J1から第6軸J6までの各軸の位置や速度等を取得することができる。そして、制御装置5では、取得した位置や速度等に基づいて、ロボットアーム22の動作を適切に制御することが可能になる。
【0091】
1.3.8.従来技術との比較
ここで、従来技術と本実施形態との違いについて説明する。
【0092】
図5は、従来の制御装置とロボットとの間の信号やデータの流れを経過時間に沿ってまとめたタイミングチャートである。
図5の横軸や縦軸は、
図4と同様である。なお、説明の便宜上、
図5において、
図4の同じ構成には同一の符号を付している。
【0093】
前述した
図4では、第2制御部52が発生させたタイミング信号st4、st5、st6、st1、・・・に基づいて、第2制御部52から位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信している。なお、タイミング信号st4、st5、st6、st1、・・・の発生周期は、特に限定されないが、例えば、数十マイクロ秒である。
【0094】
一方、従来技術を示す
図5では、これらのタイミング信号に代えて、第1制御部51から位置情報の取得に関する制御信号sc4’、sc5’、sc6’、sc1’、・・・を送信している。そして、それを受信した第2制御部52は、エンコーダー24に向けて位置情報要求信号sr1’、sr2’、sr3’、sr4’、・・・を送信している。
【0095】
つまり、前述した
図4では、第2制御部52からタイミング信号st4、st5、st6、st1、・・・を発生させ、それに基づいて第2制御部52から位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信しているのに対し、従来技術を示す
図5では、第1制御部51から第2制御部52に向けて制御信号sc4’、sc5’、sc6’、sc1’、・・・を送信し、それに基づいて第2制御部52から位置情報要求信号sr1’、sr2’、sr3’、sr4’、・・・を送信している点で相違している。
【0096】
この場合、位置情報要求信号sr1’、sr2’、sr3’、sr4’、・・・の送信間隔は、制御信号sc4’、sc5’、sc6’、sc1’、・・・の送信間隔に依存することになる。
【0097】
図5に示す、第1制御部51における制御信号sc4’、sc5’、sc6’、sc1’、・・・の送信は、第4コア514における所定間隔処理に基づいて行われる。ここでは、取得処理pg4、pg5、pg6、pg1、・・・の直前に、この制御信号sc4’、sc5’、sc6’、sc1’、・・・を送信する所定間隔処理が実行されているものとする。
【0098】
ところが、第1制御部51では、この所定間隔処理と並行して、画像処理等の汎用処理が実行されることがある。このような汎用処理は、第1制御部51の2次キャッシュメモリー515やシステムバス53を一時的に占有する。そうすると、所定間隔処理に必要なプログラムが2次キャッシュメモリー515から追い出されてしまい、所定間隔処理を開始するタイミングに遅延が発生する。これが、従来技術における課題である。以下、この課題をより具体的に説明する。
【0099】
従来技術を示す
図5には、期間t7において、制御信号sc4’を送信する所定間隔処理の開始が遅延した例を示している。制御信号sc4’の送信が遅延すると、第2制御部52から位置情報要求信号sr1’を送信するタイミングも遅延する。そうすると、第1軸J1の位置を検出する位置検出動作pr1の開始も遅延し、第1主位置情報dm1および第1副位置情報ds1の送信、ならびに、第1位置情報d1の送信も、それぞれ遅延する。
図5では、説明の便宜のため、開始が遅延した期間t7の所定間隔処理にドットを付している。併せて、この遅延に影響を受けた処理や動作にもドットを付している。
【0100】
一方、
図5の期間t8には、制御信号sc5’を送信する所定間隔処理が、当初想定していたタイミングで開始した例を示している。そうすると、第2制御部52から位置情報要求信号sr2’を送信するタイミングも想定通りとなる。そして、第2軸J2の位置を検出する位置検出動作pr2を開始するタイミングも想定通りとなり、第2主位置情報dm2および第2副位置情報ds2の送信、ならびに、第2位置情報d2の送信も、それぞれ当初の想定通りのタイミングで行われる。
【0101】
これらの結果、第2制御部52では、
図5に示すように、例えば、第1副位置情報ds1を受信する期間と第2主位置情報dm2を受信する期間との重複が発生する。これにより、第2制御部52においてデータの混信が発生し、正常なデータを得ることができなくなる。その結果、第1軸J1や第2軸J2について、正確な位置や速度を取得することができないという問題が発生する。
【0102】
また、第1制御部51では、位置検出動作pr1、pr2、pr3、pr4、・・・が所定の時間間隔で実行されることを前提して、各軸の位置から速度を算出している。ところが、
図5に示すように、制御信号sc4’の送信が遅延すると、位置検出動作pr1の開始が遅延し、この前提が崩れてしまう。これにより、算出する速度の精度が低下するという問題も発生する。
【0103】
これに対し、本実施形態を示す
図4では、第2制御部52が発生させたタイミング信号st4、st5、st6、st1、・・・に基づいて、第2制御部52から位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信している。このタイミング信号st4、st5、st6、st1、・・・は、第1制御部51とは独立した第2制御部52から発生させた信号である。したがって、タイミング信号st4、st5、st6、st1、・・・の発生間隔は、第1制御部51の状態によらず、所定の間隔に維持される。つまり、第1制御部51において、2次キャッシュメモリー515やシステムバス53が画像処理等に占有されている場合でも、それによってタイミング信号st4、st5、st6、st1、・・・の発生間隔が左右されることはない。したがって、タイミング信号st4、st5、st6、st1、・・・に基づいて送信される位置情報要求信号sr1、sr2、sr3、sr4、・・・の送信も、第1制御部51の状態によらず、遅延しなくなる。その結果、データの混信の発生が防止されるとともに、前述した前提が維持されることになるため、制御装置5において正確な位置や速度を取得することができる。
【0104】
ただし、本実施形態においても、第1制御部51の2次キャッシュメモリー515やシステムバス53が汎用処理に占有された場合には、所定間隔処理の遅延は起こり得る。
図4には、期間t7において、取得処理pg4および演算処理pc4の開始が遅延した例を示している。
図4では、説明の便宜のため、開始が遅延した処理にドットを付している。
【0105】
しかしながら、本実施形態では、このような所定間隔処理の遅延が起こったとしても、位置情報要求信号sr1の送信は遅延しない。このため、データの混信を発生させることがなく、期間t10では、第1制御部51が正常な第1位置情報d1を取得することができる。また、位置情報要求信号sr1の送信が遅延することがないので、制御装置5では、正確な速度の取得が担保される。
【0106】
そして、制御装置5では、このようにして取得した各軸の位置や速度に基づいて、ロボットアーム22の動作を精度よく制御する制御処理を実行することができる。
【0107】
以上のように、本実施形態に係るロボットシステム1は、ロボットアーム22と、ロボットアーム22の位置情報を取得するエンコーダー24と、ロボットアーム22の動作を制御する制御処理を実行する第1制御部51と、第1制御部51と独立して設けられ、エンコーダー24に対し、位置情報を要求する位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信する第2制御部52と、を備えている。そして、第2制御部52は、位置情報要求信号sr1、sr2、sr3、sr4、・・・の送信に対応して、第1制御部51に対する割り込み信号si4、si5、si6、si1、・・・を送信する。また、第1制御部51は、割り込み信号si4、si5、si6、si1、・・・と、位置情報要求信号sr1、sr2、sr3、sr4、・・・に基づいてエンコーダー24から出力される位置情報と、に基づいて、制御処理を実行する。
【0108】
このようなロボットシステム1によれば、制御装置5において、ロボットアーム22の正確な位置や速度を取得することができる。このため、制御装置5では、ロボットアーム22の動作を精度よく制御することができる。つまり、エンコーダー24からの位置情報に基づいてロボットアーム22の動作を制御するにあたって、第1制御部51で画像処理等の負荷の大きな汎用処理が実行されている場合であっても、動作精度の低下を抑制可能なロボットシステム1を実現することができる。
【0109】
なお、第2制御部52が第1制御部51と独立しているとは、第1制御部51と第2制御部52とでキャッシュメモリーまたはそれに代わるメモリーを共有していない状態を指す。したがって、第1制御部51および第2制御部52は、互いに個別の素子であってもよいし、1チップに集積されていてもよい。
【0110】
また、
図2に示すロボットシステム1は、撮像部4を備えている。そして、第1制御部51は、撮像部4で取得した画像についての画像処理を実行するように構成されている。このような画像処理は、2次キャッシュメモリー515やシステムバス53の占有率が高い処理であるが、このような処理が実行される制御装置5において、上記の効果は、特に意義がある。
【0111】
また、
図2に示すエンコーダー24は、前述したように多重化されている。これにより、エンコーダー24に冗長性を持たせたり、エンコーダー24からの位置情報に基づいて得られる各回転軸の位置や速度をより高精度に検出したりすることができる。
【0112】
また、第2制御部52は、前述したように、位置情報要求信号sr1、sr2、sr3、sr4、・・・の送信を所定の間隔で繰り返すように構成されている。そして、この間隔をあらかじめ既知としておくことで、エンコーダー24から取得された位置情報に基づいて、第1制御部51において各軸の回動速度を算出することが可能になる。つまり、位置情報に時刻情報を含めなくても回動速度を算出することができるので、制御装置5の構成の簡素化を図ることができる。
【0113】
また、本実施形態に係るロボットシステム1の制御方法は、ロボットアーム22と、ロボットアーム22の位置情報を取得するエンコーダー24と、ロボットアーム22の動作を制御する制御処理を実行する第1制御部51と、第1制御部51と独立して設けられ、エンコーダー24に対し、位置情報を要求する位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信する第2制御部52と、を備えるロボットシステム1を制御する方法である。
【0114】
この制御方法は、第2制御部52により、エンコーダー24に対し、位置情報要求信号sr1、sr2、sr3、sr4、・・・を送信し、かつ、第1制御部51に対し、位置情報要求信号sr1、sr2、sr3、sr4、・・・に対応する割り込み信号si4、si5、si6、si1、・・・を送信するステップと、第1制御部51により、割り込み信号si4、si5、si6、si1、・・・と、位置情報要求信号sr1、sr2、sr3、sr4、・・・に基づいてエンコーダー24から出力される位置情報と、に基づいて、制御処理を実行するステップと、を有する。
【0115】
このような制御方法によれば、ロボットシステム1の制御装置5において、ロボットアーム22の正確な位置や速度を取得することができる。このため、制御装置5では、ロボットアーム22の動作を精度よく制御することができる。つまり、エンコーダー24からの位置情報に基づいてロボットアーム22の動作を制御するにあたって、第1制御部51で画像処理等の負荷の大きな汎用処理が実行されている場合であっても、動作精度の低下を抑制することができる。
【0116】
なお、第1制御部51は、第2制御部52が第1制御部51に向けて送信する割り込み信号si4、si5、si6、si1、・・・が正常に送受信されているか否かを検出する異常検出機能を有していてもよい。
【0117】
図6は、第1制御部51が有する異常検出機能を説明するための模式図である。具体的には、
図6は、第2制御部52から第1制御部51へ送信される割り込み信号si4、si5、si6、si1、・・・の信号波形と、軸情報要求信号saおよび軸情報daの流れと、を模式的に示す図である。
【0118】
第1制御部51は、
図6に示すような、所定の周期で発生する割り込み信号si4、si5、si6、si1、・・・を受信し、それをトリガーとして、前述した取得処理pg4、pg5、pg6、pg1、・・・、および、演算処理pc4、pc5、pc6、pc1、・・・を実行する。ここで、第1制御部51は、受信した割り込み信号の数を計数し、既知の軸数と照らし合わせることによって、各取得処理において第1制御部51が取得する位置情報がどの軸についての情報であるかを特定する機能を有する。このようにして第1制御部51の内部で特定した軸番号を、ここでは「第1制御部側軸番号」という。軸番号は、例えば、第1軸J1の場合、1であり、第2軸J2の場合、2である。
【0119】
一方、これとは別に、
図6に示す第1制御部51は、各軸についての情報を第2制御部52に対して要求する。つまり、第1制御部51は、軸情報要求信号saを送信する機能を有している。また、
図6に示す第2制御部52は、軸情報要求信号saに基づいて、第1制御部51に対して軸情報daを返信する機能を有している。ここで、第2制御部52は、例えば、送信した割り込み信号の数を計数し、既知の軸数と照らし合わせることによって、軸情報daを特定する機能を有する。そして、このようにして第2制御部52の内部で特定した軸番号を、軸情報daとして第1制御部51に返信する。軸情報要求信号saの送信および軸情報daの返信は、割り込み信号si4、si5、si6、si1、・・・に対応して所定の間隔で繰り返される。このようにして第2制御部52から返信された軸情報daに基づく軸番号を、ここでは「第2制御部側軸番号」という。
【0120】
図7は、第1制御部51が割り込み信号si1、si2、si3を受信したとき、それに対応する第1制御部側軸番号の例および第2制御部側軸番号の例を示した表である。なお、
図7では、正常時、つまり、割り込み信号si1、si2、si3が正常に送受信された場合と、ノイズ発生時と、抜け発生時と、に分けた3つの表を示している。
【0121】
割り込み信号si1、si2、si3を受信したとき、第1制御部51は、前述したように、取得処理pg1、pg2、pg3により、第1位置情報d1、第2位置情報d2、第3位置情報d3を取得する。したがって、正常時には、第1制御部側軸番号は、1、2、3となり、第2制御部側軸番号も、1、2、3となる。その結果、第1制御部51では、第1制御部側軸番号と第2制御部側軸番号とを照合し、これらが一致している場合、割り込み信号si4、si5、si6、si1、・・・の送受信が正常であることを検出する。
【0122】
次に、ノイズ発生時について説明する。ノイズとは、割り込み信号si1、si2、si3と誤認し得る異常信号のことをいう。
図7の例では、割り込み信号si2と割り込み信号si3との間に、異常信号sxが混入している。
【0123】
異常信号sxを受信したとき、第1制御部51では、この異常信号sxを本来の割り込み信号si3と誤認してしまう。このため、異常信号sxに対応する第1制御部側軸番号は3となる。一方、第2制御部52は、この時点で、未だ割り込み信号si3を送信していないため、第2制御部側軸番号は2のままである。そうすると、第1制御部51では、第1制御部側軸番号と第2制御部側軸番号との不整合が検出される。具体的には、第1制御部側軸番号>第2制御部側軸番号という大小関係が検出される。このような不整合を検出した場合、第1制御部51は、異常信号sxがノイズであると判断する。このように判断した場合、第1制御部51は、割り込み信号の受信をトリガーとして実行される処理を行わないようにする。これにより、ノイズを原因とした、誤ったタイミングでの取得処理や演算処理の開始を回避することができる。
【0124】
次に、抜け発生時について説明する。抜けとは、割り込み信号si1、si2、si3のうち、少なくとも1つを受信できないことをいう。
図7では、第2制御部52が割り込み信号si1、si2、si3を送信したものの、第1制御部51が割り込み信号si2のみ受信できなかった例を示している。
【0125】
この場合、本来、割り込み信号si2を受信するタイミングにおける第1制御部側軸番号は、1のままである。一方、このタイミングは、第2制御部52が割り込み信号si2を送信した後のタイミングであるため、第2制御部側軸番号は、2となる。
【0126】
そして、割り込み信号si3を受信するタイミングにおける第1制御部側軸番号は、2となる。一方、このタイミングは、第2制御部52が割り込み信号si3を送信した後のタイミングであるため、第2制御部側軸番号は、3となる。
【0127】
そうすると、第1制御部51では、第1制御部側軸番号と第2制御部側軸番号との不整合が検出される。具体的には、第1制御部側軸番号<第2制御部側軸番号という大小関係が検出される。このような不整合を検出した場合、第1制御部51は、割り込み信号si2の抜けが発生したと判断する。このように判断した場合、第1制御部51は、第1制御部側軸番号を1つ加算する処理を行い、第1制御部側軸番号と第2制御部側軸番号を合わせるようにすればよい。
【0128】
以上のように、本実施形態に係るロボットアーム22は、複数のアーム221~226を有し、ロボットシステム1は、アーム221~226に対応するエンコーダー24をそれぞれ備えている。そして、第1制御部51は、
図6および
図7に示すように、割り込み信号si1、si2、si3に対応して第1制御部51が保有している第1個別情報である第1制御部側軸番号と、割り込み信号si1、si2、si3に対応して第2制御部52に要求し取得した第2個別情報である第2制御部側軸番号と、を比較する比較処理を実行する機能を有している。
【0129】
このような構成によれば、第1制御部側軸番号と第2制御部側軸番号とを比較することによって、割り込み信号si1、si2、si3のノイズや抜けを検出することができる。これにより、異常な割り込み信号が見逃されたまま、各種処理が継続してしまうのを防止することができる。その結果、各軸の位置や速度の検出精度が低下するのを防止することができる。
【0130】
なお、割り込み信号si1、si2、si3の抜けが頻発する場合には、各軸の位置や速度の検出精度が低下するため、ロボットシステム1は、その作動を停止するようになっていてもよい。
【0131】
一例として、第1制御部51は、前述した比較処理の結果、第1個別情報である第1制御部側軸番号と第2個別情報である第2制御部側軸番号とが所定の回数以上異なっていたとき、異常信号を出力する機能を有していてもよい。これにより、制御装置5は、異常信号に基づいて、ロボットシステム1の作動を停止させることができる。その結果、ロボットシステム1の安全性を高めることができる。
【0132】
なお、異常信号の出力は、割り込み信号si1、si2、si3にノイズが混入した場合、割り込み信号si1、si2、si3に抜けが発生した場合、の双方で行われてもよいし、いずれか一方のみで行われてもよい。例えば、割り込み信号si1、si2、si3の抜けが所定の回数以上発生した場合には、各軸の位置や速度の検出精度への影響が大きいと考えられるため、異常信号を出力するのが望ましい。所定の回数は、特に限定されないが、例えば3回またはそれ以上の回数に設定される。
【0133】
以上、本発明のロボットシステムおよびロボットシステムの制御方法を図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、前記実施形態には、他の任意の構成物が付加されていてもよい。
【符号の説明】
【0134】
1…ロボットシステム、2…ロボット、4…撮像部、5…制御装置、21…基台、22…ロボットアーム、24…エンコーダー、26…エンドエフェクター、51…第1制御部、52…第2制御部、53…システムバス、54…メインメモリー、221…アーム、222…アーム、223…アーム、224…アーム、225…アーム、226…アーム、231…第1駆動部、232…第2駆動部、233…第3駆動部、234…第4駆動部、235…第5駆動部、236…第6駆動部、241a…第1主エンコーダー、241b…第1副エンコーダー、242a…第2主エンコーダー、242b…第2副エンコーダー、243a…第3主エンコーダー、243b…第3副エンコーダー、244a…第4主エンコーダー、244b…第4副エンコーダー、245a…第5主エンコーダー、245b…第5副エンコーダー、246a…第6主エンコーダー、246b…第6副エンコーダー、511…第1コア、512…第2コア、513…第3コア、514…第4コア、515…2次キャッシュメモリー、J1…第1軸、J2…第2軸、J3…第3軸、J4…第4軸、J5…第5軸、J6…第6軸、d1…第1位置情報、d2…第2位置情報、d3…第3位置情報、d4…第4位置情報、d5…第5位置情報、d6…第6位置情報、da…軸情報、dm1…第1主位置情報、dm2…第2主位置情報、dm3…第3主位置情報、dm4…第4主位置情報、dm5…第5主位置情報、dm6…第6主位置情報、ds1…第1副位置情報、ds2…第2副位置情報、ds3…第3副位置情報、ds4…第4副位置情報、ds5…第5副位置情報、ds6…第6副位置情報、pc1…演算処理、pc2…演算処理、pc3…演算処理、pc4…演算処理、pc5…演算処理、pc6…演算処理、pg1…取得処理、pg2…取得処理、pg3…取得処理、pg4…取得処理、pg5…取得処理、pg6…取得処理、pr1…位置検出動作、pr2…位置検出動作、pr3…位置検出動作、pr4…位置検出動作、pr5…位置検出動作、pr6…位置検出動作、sa…軸情報要求信号、sc1’…制御信号、sc2’…制御信号、sc3’…制御信号、sc4’…制御信号、sc5’…制御信号、sc6’…制御信号、si1…割り込み信号、si2…割り込み信号、si3…割り込み信号、si4…割り込み信号、si5…割り込み信号、si6…割り込み信号、sr1…位置情報要求信号、sr1’…位置情報要求信号、sr2…位置情報要求信号、sr2’…位置情報要求信号、sr3…位置情報要求信号、sr3’…位置情報要求信号、sr4…位置情報要求信号、sr4’…位置情報要求信号、sr5…位置情報要求信号、sr5’…位置情報要求信号、sr6…位置情報要求信号、sr6’…位置情報要求信号、st1…タイミング信号、st2…タイミング信号、st3…タイミング信号、st4…タイミング信号、st5…タイミング信号、st6…タイミング信号、sx…異常信号、t1…期間、t2…期間、t3…期間、t4…期間、t5…期間、t6…期間、t7…期間、t8…期間、t9…期間、t10…期間