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

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

▶ ファナック株式会社の特許一覧

特許7173798動作プログラムの変数を監視するロボットの制御装置
<>
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図1
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図2
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図3
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図4
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図5
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図6
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図7
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図8
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図9
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図10
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図11
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図12
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図13
  • 特許-動作プログラムの変数を監視するロボットの制御装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】動作プログラムの変数を監視するロボットの制御装置
(51)【国際特許分類】
   B25J 19/06 20060101AFI20221109BHJP
   B25J 9/22 20060101ALI20221109BHJP
   G05B 19/42 20060101ALI20221109BHJP
【FI】
B25J19/06
B25J9/22 A
G05B19/42 P
【請求項の数】 5
(21)【出願番号】P 2018166204
(22)【出願日】2018-09-05
(65)【公開番号】P2020037165
(43)【公開日】2020-03-12
【審査請求日】2021-07-13
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100130133
【弁理士】
【氏名又は名称】曽根 太樹
(72)【発明者】
【氏名】杉生 憲司
【審査官】木原 裕二
(56)【参考文献】
【文献】特開昭58-225406(JP,A)
【文献】特開2015-231640(JP,A)
【文献】特開平09-122548(JP,A)
【文献】米国特許出願公開第2012/0143371(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 19/06
B25J 9/22
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
ロボットの動作を制御する動作制御部と、
ロボットの制御に関する情報およびロボットの動作プログラムを記憶する記憶部と、
前記動作プログラムの設定値を監視する監視部とを備え、
前記動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含み、
前記主変数は、ロボットの位置および姿勢を指定する変数であり、
前記補助変数は、ロボットの位置および姿勢を指定する変数、または、前記主変数に基づくロボットの位置および姿勢を調整する変数であり、
前記動作制御部は、前記動作プログラムを実行している期間中に前記補助変数の値が変更されると、前記補助変数の値に基づいて前記動作プログラムによるロボットの動作を変更し、
前記監視部は、前記補助変数の値が許容範囲内であるか否かを判定する判定部と、前記補助変数の値が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部とを含み、
前記判定部は、前記動作プログラムを実行している期間中に、制御装置により前記補助変数が変更されたときに、前記補助変数の値が許容範囲内であるか否かを判定する、ロボットの制御装置。
【請求項2】
発信部は、前記補助変数の値が許容範囲を逸脱した信号を前記動作制御部に送信し、
前記動作制御部は、ロボットを停止する制御を実施する、請求項1に記載のロボットの制御装置。
【請求項3】
ロボットの制御に関する情報を表示する表示部を備え、
表示部は、前記補助変数の許容範囲を表示する、請求項1また2に記載のロボットの制御装置。
【請求項4】
ロボットの動作を制御する動作制御部と、
ロボットの制御に関する情報およびロボットの動作プログラムを記憶する記憶部と、
前記動作プログラムの設定値を監視する監視部とを備え、
前記動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含み、
前記主変数は、ロボットの位置および姿勢を指定する変数であり、
前記補助変数は、前記主変数に基づくロボットの位置および姿勢を調整する変数であり、
前記動作制御部は、前記動作プログラムを実行している期間中に前記補助変数の値が変更されると、前記補助変数の値に基づいて前記動作プログラムによるロボットの動作を変更し、
前記監視部は、前記補助変数に基づいてロボットが動作したときのロボットの位置および姿勢を算出する位置算出部と、位置算出部により算出されたロボットの位置および姿勢が許容範囲内であるか否かを判定する判定部と、位置算出部により算出されたロボットの位置および姿勢が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部とを含み、
前記判定部は、前記動作プログラムを実行している期間中に、制御装置により前記補助変数が変更されたときに、前記ロボットの位置および姿勢が許容範囲内であるか否かを判定する、ロボットの制御装置。
【請求項5】
ロボットの動作を制御する動作制御部と、
ロボットの制御に関する情報を記憶する記憶部と、
ロボットの動作プログラムの設定値を監視する監視部とを備え、
前記動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含み、
前記主変数は、ロボットの位置および姿勢を指定する変数であり、
前記補助変数は、ロボットの位置および姿勢を指定する変数、または、前記主変数に基づくロボットの位置および姿勢を調整する変数であり、
前記記憶部は、前記動作プログラムを記憶する第1の領域と、前記補助変数の値を記憶する第2の領域と、ロボットの表面に予め設定された設定点の位置の許容範囲を記憶する第3の領域とを有し、
前記動作制御部は、第2の領域に記憶されている前記補助変数の値が変更されると、前記補助変数の値に基づいて前記動作プログラムによるロボットの動作を変更し、
前記監視部は、前記補助変数に基づいてロボットが動作したときの前記設定点の位置を算出する位置算出部と、前記設定点の位置が許容範囲内であるか否かを判定する判定部と、前記設定点の位置が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部とを含む、ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作プログラムの変数を監視するロボットの制御装置に関する。
【背景技術】
【0002】
ロボット装置は、ロボットと、ロボットに取り付けられた作業ツールと、ロボットを制御する制御装置とを備える。制御装置は、予め作成された動作プログラムに基づいてロボットおよび作業ツールを駆動する。また、制御装置は、ロボットの動作を監視する監視機能を備えることができる。すなわち、制御装置は、ロボットが所望の動作にて駆動するか否かを監視する機能を備えることができる。例えば、ロボットが所望の動作以外の動作を実施した場合に、制御装置はロボットの動作を制限することが知られている(例えば、特開昭60-160407号公報、および特開平6-119022号公報を参照)。
【0003】
また、ロボットの制御装置は、現在のロボットの位置および姿勢を一時的に記憶することが知られている。制御装置は、現在のロボットの位置および姿勢に基づいて、様々な制御を実施することができる(例えば、特開平1-269105号公報を参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開昭60-160407号公報
【文献】特開平6-119022号公報
【文献】特開平1-269105号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボットの動作プログラムには、ロボットの位置および姿勢が定められた移動点の情報が記載される。ロボットの位置および姿勢は、例えば、予め定められた座標系の座標値により設定することができる。動作プログラムには、このような移動点の情報が複数記載されている。ロボットの制御装置は、これらの移動点に向かうようにロボットの位置および姿勢を制御することができる。
【0006】
動作プログラムに記載される移動点の情報を設定するために、作業者は、教示操作盤を操作することにより手動でロボットの位置および姿勢を変更することができる。そして、作業者は、ロボットの位置および姿勢が所望の状態になったときに、ロボットの位置および姿勢を教示点として制御装置に記憶することができる。ロボットの制御装置は、教示点に基づいて動作プログラムの移動点の情報を生成することができる。
【0007】
ところで、作業者は、動作プログラムに記載された移動点の情報を変更する場合がある。例えば、作業者は、ロボットの動作プログラムを作成するために、ロボットの移動点を設定する。この後に、移動点に対応するロボットの位置および姿勢を僅かに修正したい場合がある。または、ロボットが操作するワークの種類を変更する場合には、動作プログラムに設定されている移動点の情報を変更したい場合がある。一方で、動作プログラムには、動作プログラムの作成後に修正しない移動点の情報も存在する。このために、作業者は、一部の移動点の情報を修正する場合にも動作プログラムの全体を見て、所望の移動点の情報を変更する必要が有る。
【0008】
また、ロボットの動作プログラムを書き換える場合に、作業者は誤った移動点の情報を設定する場合がある。ロボットは、駆動した時に予想できない移動点に向かって移動する場合がある。例えば、作業者がロボットの移動点の座標値を間違えた場合に、ロボットが所望の方向と異なる方向に動いたり、所望の動作量よりも大きな動作量にて動いたりする場合がある。この結果、ロボットが作業者またはロボットの周りに配置されている物に衝突する虞がある。
【課題を解決するための手段】
【0009】
本開示の第1の態様のロボットの制御装置は、ロボットの動作を制御する動作制御部と、ロボットの制御に関する情報およびロボットの動作プログラムを記憶する記憶部と、動作プログラムの設定値を監視する監視部とを備える。動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含む。主変数は、ロボットの位置および姿勢を指定する変数である。補助変数は、ロボットの位置および姿勢を指定する変数、または、主変数に基づくロボットの位置および姿勢を調整する変数である。動作制御部は、動作プログラムを実行している期間中に補助変数の値が変更されると、補助変数の値に基づいて動作プログラムによるロボットの動作を変更する。監視部は、補助変数の値が許容範囲内であるか否かを判定する判定部を含む。監視部は、補助変数の値が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部を含む。判定部は、動作プログラムを実行している期間中に、制御装置により補助変数が変更されたときに、補助変数の値が許容範囲内であるか否かを判定する。
【0010】
本開示の第2の態様のロボットの制御装置は、ロボットの動作を制御する動作制御部と、ロボットの制御に関する情報およびロボットの動作プログラムを記憶する記憶部と、動作プログラムの設定値を監視する監視部とを備える。動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含む。主変数は、ロボットの位置および姿勢を指定する変数である。補助変数は、主変数に基づくロボットの位置および姿勢を調整する変数である。動作制御部は、動作プログラムを実行している期間中に補助変数の値が変更されると、補助変数の値に基づいて動作プログラムによるロボットの動作を変更する。監視部は、補助変数に基づいてロボットが動作したときのロボットの位置および姿勢を算出する位置算出部を含む。監視部は、位置算出部により算出されたロボットの位置および姿勢が許容範囲内であるか否かを判定する判定部を含む。監視部は、位置算出部により算出されたロボットの位置および姿勢が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部を含む。判定部は、動作プログラムを実行している期間中に、制御装置により補助変数が変更されたときに、ロボットの位置および姿勢が許容範囲内であるか否かを判定する。
【0011】
本開示の第3の態様のロボットの制御装置は、ロボットの動作を制御する動作制御部と、ロボットの制御に関する情報を記憶する記憶部と、ロボットの動作プログラムの設定値を監視する監視部とを備える。動作プログラムは、ロボットの動作を定めるための主変数および補助変数を含む。主変数は、ロボットの位置および姿勢を指定する変数である。補助変数は、ロボットの位置および姿勢を指定する変数、または、主変数に基づくロボットの位置および姿勢を調整する変数である。記憶部は、動作プログラムを記憶する第1の領域と、補助変数の値を記憶する第2の領域と、ロボットの表面に予め設定された設定点の位置の許容範囲を記憶する第3の領域とを有する。動作制御部は、第2の領域に記憶されている補助変数の値が変更されると、補助変数の値に基づいて動作プログラムによるロボットの動作を変更する。監視部は、補助変数に基づいてロボットが動作したときの設定点の位置を算出する位置算出部を含む。監視部は、設定点の位置が許容範囲内であるか否かを判定する判定部を含む。監視部は、設定点の位置が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部を含む。
【発明の効果】
【0012】
本開示の態様のロボットの制御装置によれば、ロボットの移動点を容易に変更することができて、更に、ロボットが所望の範囲を超えて動作することを抑制することができる。
【図面の簡単な説明】
【0013】
図1】実施の形態におけるロボット装置の概略図である。
図2】実施の形態におけるロボット装置のブロック図である。
図3】実施の形態における第1の制御を説明するためのロボットの第1の側面図である。
図4】第1の制御を実施するための第1の動作プログラムである。
図5】第1の動作プログラムの補助変数の情報が設定されたファイルである。
図6】補助変数の許容範囲を定めるための直交座標系を説明する概略図である。
図7】補助変数の許容範囲を定めるための方法を説明する概略図である。
図8】第1の制御を説明するためのロボットの第2の側面図である。
図9】第1の制御のフローチャートである。
図10】実施の形態における第2の制御を説明するためのロボットの側面図である。
図11】第2の制御を実施するための第2の動作プログラムである。
図12】第2の動作プログラムの補助変数の情報が設定されたファイルである。
図13】実施の形態における第3の制御を実施するための第3の動作プログラムである。
図14】実施の形態における第4の制御を説明するためのロボットの側面図である。
【発明を実施するための形態】
【0014】
図1から図14を参照して、実施の形態におけるロボットの制御装置について説明する。図1は、本実施の形態におけるロボット装置の概略図である。ロボット装置5は、作業ツールとしてのハンド2と、ハンド2を移動するロボット1とを備える。
【0015】
本実施の形態のロボット1は、複数の関節部18a,18b,18cを含む多関節ロボットである。ロボット1は、移動可能な複数の構成部材を含む。ロボット1のそれぞれの構成部材は、駆動軸J1~J6の周りに回転するように形成される。
【0016】
ロボット1は、ベース部14と、ベース部14に支持された旋回ベース13とを含む。旋回ベース13は、ベース部14に対して回転する。ロボット1は、上部アーム11および下部アーム12を含む。下部アーム12は、旋回ベース13に支持されている。上部アーム11は、下部アーム12に支持されている。ロボット1は、上部アーム11に支持されているリスト15を含む。リスト15のフランジ16には、ハンド2が固定されている。
【0017】
本実施の形態のロボットは、6個の駆動軸を有するが、この形態に限られない。任意の機構にて位置および姿勢を変更するロボットを採用することができる。また、本実施の形態の作業ツールは、ワークを把持するハンドであるが、この形態に限れられない。作業者は、ロボット装置が行う作業に応じた作業ツールを選定することができる。例えば、溶接を行う作業ツールまたは接着剤を塗布する作業ツールなどを採用することができる。
【0018】
本実施の形態のロボット装置5には、基準座標系71が設定されている。図1に示す例では、ロボット1のベース部14に、基準座標系71の原点が配置されている。基準座標系71はワールド座標系とも称される。基準座標系71は、原点の位置が固定され、更に、座標軸の向きが固定されている座標系である。ロボット1の位置および姿勢が変化しても基準座標系71の位置および向きは変化しない。基準座標系71は、座標軸として、互いに直交するX軸、Y軸、およびZ軸を有する。また、X軸の周りの座標軸としてW軸が設定される。Y軸の周りの座標軸としてP軸が設定される。Z軸の周りの座標軸としてR軸が設定される。
【0019】
本実施の形態では、作業ツールの任意の位置に設定された原点を有するツール座標系が設定されている。本実施の形態のツール座標系72の原点は、ツール先端点に設定されている。ツール座標系72は、座標軸として、互いに直交するX軸、Y軸、およびZ軸を有する。図1に示す例では、ツール座標系72は、Z軸の延びる方向がハンド2の爪部の延びる方向と平行になるように設定されている。また、ツール座標系72は、X軸の周りのW軸、Y軸の周りのP軸、およびZ軸の周りのR軸を有する。ロボット1の位置および姿勢が変化すると、ツール座標系72の原点の位置および姿勢が変化する。例えば、ロボット1の位置は、ツール先端点の位置に対応する。また、ロボット1の姿勢は、基準座標系71に対するツール座標系72の向きが対応する。
【0020】
図2に、本実施の形態におけるロボット装置のブロック図を示す。図1および図2を参照して、ロボット1は、ロボット1の位置および姿勢を変化させるロボット駆動装置を含む。ロボット駆動装置は、アームおよびリスト等の構成部材を駆動するロボット駆動モータ22を含む。本実施の形態では、それぞれの駆動軸J1~J6に対応して、複数のロボット駆動モータ22が配置されている。ロボット駆動モータ22が駆動することにより、それぞれの構成部材の向きが変化する。
【0021】
ロボット装置5は、ハンド2を駆動するハンド駆動装置を備える。ハンド駆動装置は、ハンド2の爪部を駆動するハンド駆動モータ21を含む。ハンド駆動モータ21が駆動することによりハンド2の爪部が開いたり閉じたりする。なお、ハンドは、空気圧などにより駆動するように形成されていても構わない。
【0022】
ロボット装置5は、ロボット1およびハンド2を制御する制御装置4を備える。制御装置4は、制御を行う制御装置本体40と、作業者が制御装置本体40を操作するための教示操作盤37とを含む。制御装置本体40は、バスを介して互いに接続されたCPU(Central Processing Unit)、RAM(Random Access Memory)、およびROM(Read Only Memory)等を有する演算処理装置(コンピュータ)を含む。ロボット1およびハンド2は、通信装置を介して制御装置4に接続されている。
【0023】
教示操作盤37は、通信装置を介して制御装置本体40に接続されている。教示操作盤37は、ロボット1およびハンド2に関する情報を入力する入力部38を含む。入力部38は、キーボードおよびダイヤルなどにより構成されている。作業者は、動作プログラム、変数の設定値、および変数の許容範囲などを入力部38から制御装置4に入力することができる。教示操作盤37は、ロボット1およびハンド2に関する情報を表示する表示部39を含む。
【0024】
制御装置4には、ロボット1およびハンド2の動作を行うために予め作成された動作プログラム46が入力される。または、作業者が教示操作盤37を操作してロボット1を駆動することにより、ロボット1の教示点を設定することができる。制御装置4は、教示点に基づいて、ロボット1およびハンド2の動作プログラム46を生成することができる。
【0025】
制御装置本体40は、ロボット1およびハンド2の制御に関する情報を記憶する記憶部42を含む。動作プログラム46は、記憶部42に記憶される。本実施の形態のロボット装置5は、動作プログラム46に基づいてワークを搬送する。ロボット1は、自動的に初期の位置から目標位置までワークを搬送することができる。
【0026】
制御装置本体40は、ロボット1の動作を制御する動作制御部43を含む。動作制御部43は、動作プログラム46に基づいて、ロボット1を駆動するための動作指令をロボット駆動部45に送出する。ロボット駆動部45は、ロボット駆動モータ22を駆動する電気回路を含む。ロボット駆動部45は、動作指令に基づいてロボット駆動モータ22に電気を供給する。
【0027】
また、動作制御部43は、ハンド2の動作を制御する。動作制御部43は、動作プログラム46に基づいてハンド2を駆動する動作指令をハンド駆動部44に送出する。ハンド駆動部44は、ハンド駆動モータ21を駆動する電気回路を含む。ハンド駆動部44は、動作指令に基づいてハンド駆動モータ21に電気を供給する。
【0028】
ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、アーム等の駆動軸に対応するロボット駆動モータ22に取り付けられた位置検出器19を含む。位置検出器19の出力により、それぞれの駆動軸における構成部材の向きを取得することができる。例えば、位置検出器19は、ロボット駆動モータ22が駆動するときの回転角を検出する。また、位置検出器19は、ロボット駆動モータ22の回転角に基づいて、ロボット駆動モータ22の回転速度を算出することができる。本実施の形態では、複数の位置検出器19の出力に基づいて、ロボット1の位置および姿勢が検出される。
【0029】
図3に、本実施の形態における第1の制御を説明するためのロボットの第1の側面図を示す。第1の制御においては、ロボット1のツール先端点が移動点MP1から移動点MP2に移動するようにロボット1の位置および姿勢が変化する。さらに、ツール先端点が移動点MP2から移動点MPR1に移動するようにロボット1の位置および姿勢が変化する。
【0030】
図4に、本実施の形態の第1の制御を実施するための動作プログラムを示す。本実施の形態における動作プログラムは、ロボット1の動作を定めるための主変数および補助変数を含む。主変数は、記号Pにて示されている。また、補助変数は、記号PRにて示されている。動作プログラムには、主変数および補助変数を用いて、移動点の情報が記載されている。
【0031】
主変数は、ロボット1の位置および姿勢を指定する変数である。例えば、動作プログラム46aの1行目の指令文においては、主変数P[1]の移動点まで移動する指令が記載されている。より具体的には、記号Jは、ロボット1のそれぞれの駆動軸の駆動による移動を示している。また、それぞれの駆動軸の最高速度に対して100%の速度にて移動する指令が記載されている。記号FINEは、高い精度でロボットを駆動することを示している。すなわち、1行目の指令文においては、各駆動軸の速度は最高速度で、主変数P[1]に対応する移動点MP1まで移動することが示されている。図3では、1行目の指令文が実行された後のロボット1の状態が示されている。
【0032】
主変数P[1]は、移動点MP1に対応している。主変数に対応するロボット1の位置および姿勢は、例えば、動作プログラム46aの内部に設定されている。例えば、主変数に対応するロボット1の位置および姿勢は、動作プログラム46aの最後に記載されている。本実施の形態では、主変数P[1]に対応する移動点MP1におけるロボット1の位置は、ツール先端点の位置にて指定される。ツール先端点の位置は、基準座標系71のX軸の座標値、Y軸の座標値、およびZ軸の座標値にて指定される。また、移動点MP1におけるロボット1の姿勢は、ツール座標系72の向きにて指定される。ツール座標系72の向きは、基準座標系71のW軸の座標値、P軸の座標値、およびR軸の座標値にて指定される。
【0033】
主変数P[2]は、図3における移動点MP2に対応する。動作プログラム46aの2行目の指令文において、記号Lは、ツール先端点が直線的に移動することを示している。2行目の指令文においては、ツール先端点が移動点MP1から移動点MP2に向かって直線的に移動するようにロボット1を制御することが示されている。また、移動点MP1から移動点MP2に向かって、速度500mm/secにて移動することが記載されている。このように、動作プログラムにおいては、主変数P[1],P[2]を用いてロボットの動作を定めることができる。
【0034】
動作プログラム46aの3行目には、補助変数PR[1]が記載されている。第1の制御においては、補助変数PR[1]は、ロボットの位置および姿勢を指定する変数である。補助変数PR[1]は、図3における移動点MPR1に対応する。この指令文においては、各駆動軸の動作速度が最高速度の70%の速度にて、移動点MP2から移動点MPR1に移動することが示されている。すなわち、PR[1]にて定められる位置に向かって移動することが定められている。
【0035】
図5に、補助変数が設定されたファイルの例を示す。ファイル96には、補助変数PR[1]のロボット1の位置について、ワールド座標系のX軸の座標値、Y軸の座標値、およびZ軸の座標値が設定されている。また、ロボット1の姿勢について、ツール座標系72の向きを示すワールド座標系のW軸の座標値、P軸の座標値、およびR軸の座標値が設定されている。なお記号GP1は、複数のロボットを制御する時に有効な変数であり、1番目のロボットを示している。
【0036】
図2を参照して、このような補助変数47が設定されたファイル96は、記憶部42に記憶されている。補助変数のファイル96は、動作プログラム46aのファイルとは別に記憶されている。更に、後述するように、本実施の形態では、補助変数47の許容範囲48がファイルに設定されている。補助変数47の許容範囲48のファイルも記憶部42に記憶されている。
【0037】
本実施の形態の記憶部42は、動作プログラム46を記憶する第1の領域と、補助変数47を記憶する第2の領域と、補助変数47の許容範囲48を記憶する第3の領域とを有する。本実施の形態においては、動作プログラム46、補助変数47、および許容範囲48は互いに独立して記憶されている。すなわち、本実施の形態の記憶部42には、動作プログラム46が記載された第1のファイルが記憶されている。記憶部42には、補助変数47の値が記載された第2のファイルが記憶されている。さらに、記憶部42には、補助変数47の許容範囲48が設定された第3のファイルが記憶されている。
【0038】
主変数P[1],P[2]は、動作プログラム46aのみにて使用される変数である。主変数P[1],P[2]は、他の動作プログラムとは関係のない変数である。また、主変数P[1],P[2]は、動作プログラムを作成した後に変更することが少ない位置および姿勢を設定することができる。
【0039】
これに対して、補助変数PR[1]は、動作プログラムを作成した後に変更する可能性がある移動点に対して設定することができる。例えば、ロボットの教示操作を行っている時に、作業者が調整する可能性のある移動点を補助変数に設定することができる。また、補助変数は、複数の動作プログラムにて使用することができる。すなわち、補助変数は、複数の動作プログラムに対して共通の変数にすることができる。例えば、1つのロボットが連続して2つの動作プログラムを実行する場合に、1番目の動作プログラムおよび2番目の動作プログラムにおいて、同一の補助変数を使用することができる。
【0040】
動作制御部43は、動作プログラム46に基づいてロボット1およびハンド2の動作指令を送出する。このときに、動作プログラム46に補助変数47が含まれている場合に、動作制御部43は、ファイル96から補助変数47の値を取得する。動作制御部43は、補助変数47の値を用いて、ロボット1およびハンド2を制御する。
【0041】
このために、ファイル96に設定されている補助変数47の値が変更されると、動作制御部43は、補助変数47の値に基づいてロボット1の動作を変更する。ここでの例では、動作制御部43は、補助変数PR[1]により設定されている位置および姿勢になるように、ロボット1を制御する。
【0042】
作業者は、補助変数の値を修正することにより、ロボット1が移動する位置および姿勢を容易に変更することができる。例えば、図5に示す補助変数のファイル96の記載を変更することより、図3における移動点MPR1におけるロボット1の位置および姿勢を変更することができる。この時に、作業者は、動作プログラム46aは変更する必要はない。このように、作業者は、動作プログラム46aを見なくても、ロボット1の位置および姿勢を変更することができる。この結果、ロボット1の位置および姿勢を変更するときの作業効率が向上する。
【0043】
また、1つのロボットが複数の動作プログラムにて駆動される場合に、複数の動作プログラムにおいて、共通の移動点が存在する場合がある。作業者は、共通の移動点の情報を補助変数として設定することができる。共通の移動点の情報を変更する場合に、作業者は、1つの補助変数のファイルを開いて補助変数の情報を変更する。作業者は、全ての動作プログラムを書き換る必要はないために、作業効率が向上する。
【0044】
本実施の形態の制御装置4においては、補助変数47の値を変更しても、動作プログラム46に記載されている主変数に対応する位置および姿勢は変更されない。このために、動作プログラム46を作成した後に修正を行う可能性がある移動点を、補助変数にて設定することが好ましい。例えば、ハンド2がワークを把持する位置は、細かい位置の調整が必要である。ロボット1の位置および姿勢を僅かに調整する場合がある。このようなロボット1の位置および姿勢を調整する移動点を補助変数として設定することができる。
【0045】
ところで、作業者は、補助変数47の値を変更する場合に、所望の値とは大きく異なる値を誤って入力する場合がある。例えば、X軸の座標値の桁数が1つ大きくなると、ロボット1が基準座標系71のX軸の方向に大きく移動してしまう。本実施の形態における制御装置4は、補助変数の設定の誤りを監視する機能を有する。
【0046】
図2を参照して、本実施の形態における制御装置4は、ロボット1の動作プログラム46の設定値を監視する監視部51を含む。監視部51は、動作プログラム46に設定されている補助変数47を監視する。第1の制御においては、補助変数47の許容範囲48が予め定められている。許容範囲48は、補助変数に設定されても良い数値の範囲である。記憶部42は、第3の領域に補助変数47の許容範囲48を記憶する。なお、補助変数の許容範囲48は、補助変数47と共に同じ領域に記憶されていても構わない。例えば、許容範囲48は、補助変数47の値と共に1つのファイルにて記憶されていても構わない。
【0047】
許容範囲48は、それぞれの補助変数47に対して個別に設定されている。例えば、5個の補助変数PR[n]に対して、5個の許容範囲48を設定することができる。または、動作プログラム46に設定されている少なくとも1個の補助変数47に許容範囲48を設定することができる。
【0048】
許容範囲48は、補助変数47にて使用されている形式に対応するように設定することができる。例えば、図5に示す補助変数は、基準座標系71の座標値にて設定されている。このために、許容範囲は、基準座標系71のそれぞれの座標軸に対して上限値と下限値とを設定することができる。上限値と下限値とに挟まれる範囲が許容範囲48になる。
【0049】
また、ロボット1の位置および姿勢は、任意の形態にて表すことができる。例えば、ロボット1の位置および姿勢は、ロボット1のそれぞれの駆動軸における回転角度にて表すことができる。本実施の形態のロボット1は、6個の駆動軸J1~J6を有する。動作プログラムにおける主変数および補助変数は、複数の駆動軸J1~J6の回転角度にて設定されることができる。この場合には、次の表1に示すように、それぞれの駆動軸J1~J6に対して回転角度の上限値および下限値を設定することができる。上限値と下限値とに挟まれる範囲が許容範囲になる。
【0050】
【表1】
【0051】
更に、許容範囲は、任意の方法にて設定することができる。図6に、許容範囲の設定方法の説明図を示す。許容範囲の設定方法としては、ロボット1が配置されている空間の任意の位置に基準点79を設定することができる。基準点79は、補助変数にて設定される位置の近傍に配置することができる。そして、X軸、Y軸、およびZ軸を有する座標系を任意の向きにて設定する。X軸の方向、Y軸の方向、およびZ軸の方向において、基準点79から予め定められた距離にて離れた点を設定する。そして、この点を通る直方体を許容範囲48aに設定することができる。この場合の許容範囲は、次の表2に示すように、それぞれの座標軸ごとに設定することができる。表2の許容範囲では、Z軸方向のみについて基準点からずれて設定されることが許容されている。
【0052】
【表2】
【0053】
図7に、許容範囲の設定方法の他の説明図を示す。図6においては、直交座標系を用いて許容範囲を設定したが、この形態に限られない。円筒座標系または極座標系を用いて許容範囲を設定しても構わない。更に、図7に示す例においては、任意の位置に基準点79を設定することができる。基準点79を通る任意の基準方向をZ軸として設定することができる。そして、基準方向からの軸の傾きθと、ハンド2の中心軸の周りの回転角φの値を用いて、許容範囲を設定しても構わない。
【0054】
図2を参照して、監視部51は、補助変数47の値が許容範囲48内であるか否かを判定する判定部52を含む。また、監視部51は、補助変数47の値が許容範囲48を逸脱する場合に、許容範囲48を逸脱した信号を発信する発信部53を含む。発信部53は、変更された補助変数47が異常であることを他の部分に送信する。
【0055】
図3を参照して、補助変数PR[1]に対応する移動点MPR1に関して、許容範囲48aが示されている。図3に示す例では、移動点MPR1は、許容範囲48aの内部に配置されている。例えば、補助変数47に対応する全ての座標軸における座標値が、許容範囲の座標値の範囲内である。このために、判定部52は、作業者が入力した補助変数47の値が妥当な値であると判定する。
【0056】
図8に、本実施の形態における第1の制御を説明するためのロボットの第2の側面図を示す。図8に示す例においては、補助変数PR[1]に対応する移動点MPR1は、許容範囲48aの外側に配置されている。例えば、補助変数47の座標値のうち少なくとも一つの座標値が、許容範囲の座標値の許容範囲から逸脱している。この場合に、判定部52は、補助変数47の値が許容範囲48を逸脱すると判定する。判定部52は、補助変数の値が異常であると判定する。
【0057】
そして、発信部53は、教示操作盤37に対して、表示部39の画面に警告を表示する指令を発信する。表示部39は、警告を表示する指令を受信して、画面に補助変数の値が許容範囲を逸脱していることを表示する。
【0058】
図9に、本実施の形態における第1の制御のフローチャートを示す。図9に示す制御は、補助変数の値が変更される度に実施することができる。例えば、作業者が補助変数のファイルを開いて補助変数の値を変更する。次に、作業者が補助変数の値を保存した時に、この制御を実施することができる。または、予め定められた時間間隔ごとに、図9に示す制御を実施しても構わない。
【0059】
ステップ81において、監視部51は、補助変数の監視を実施するか否かを判定する。本実施の形態においては、作業者は、補助変数の監視を実施するか否かを予め定めておくことができる。そして、作業者は、補助変数の監視を実施するか否かのフラグを記憶部42に記憶しておくことができる。監視部51は、このフラグを記憶部42から読み込む。ステップ81において、補助変数の監視を実施しない場合には、この制御を終了する。ステップ81において、補助変数の監視を実施する場合に、制御はステップ82に移行する。
【0060】
ステップ82においては、監視部51は、補助変数の許容範囲が設定されているか否かを判定する。ステップ82において、全ての補助変数について、許容範囲が設定されていない場合には、この制御を終了する。ステップ82において、少なくとも1つの補助変数について、許容範囲が設定されている場合には、制御はステップ83に移行する。または、ステップ82においては、今回の制御の直前に変更された補助変数について、判定を行っても構わない。ステップ83において、判定部52は、補助変数の値および許容範囲を取得する。
【0061】
次に、ステップ84において、判定部52は、補助変数の値が許容範囲内であるか否かを判定する。動作プログラムに複数の補助変数が含まれている場合には、全ての補助変数についてこの判定を実施することができる。または、判定部52は、今回の制御の前に変更された補助変数の判定を実施しても構わない。
【0062】
ステップ84において、補助変数の値が許容範囲内である場合には、この制御を終了する。一方で、ステップ84において、補助変数の値が許容範囲を逸脱している場合に、制御はステップ85に移行する。
【0063】
ステップ85において、発信部53は、教示操作盤37に対して警告を表示する指令を示す。そして、教示操作盤37の表示部39は、補助変数の値が異常であることを表示する。
【0064】
作業者は、表示部39に表示される警告を見て、補助変数の値を変更することができる。そして、作業者は、適正な範囲内において補助変数の値を調整しながら動作プログラムを生成することができる。動作プログラムが完成したときには、作業者がロボット1の駆動を開始するボタンを押すことにより、ロボット1は、動作プログラムに従って駆動する。
【0065】
本実施の形態の制御装置4の監視部51は、補助変数の値が許容範囲内であるか否かを判定する判定部52と、補助変数の値が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信する発信部53とを有する。このために、補助変数に基づいて動作されるロボット1の位置および姿勢が許容される範囲内であるか否かを判定することができる。
【0066】
本実施の形態の制御装置4は、補助変数の値を変更するための入力部38を含む教示操作盤37を備える。そして、判定部52は、作業者が入力部38により補助変数の値を変更したときに、補助変数の値が許容範囲内であるか否かを判定する。補助変数47の値を変更する必要がある場合に、作業者は、補助変数47が設定されているファイル96を開くことにより、容易に補助変数の値を変更することができる。このときに、監視部51による監視が行われるために、作業者が誤った補助変数の値を入力しているか否かを判定することができる。
【0067】
更に、教示操作盤37は、補助変数の値が許容範囲を逸脱している場合に、表示部39に警報を表示する。この構成を採用することにより、作業者が誤った補助変数の値を入力した場合に、作業者に知らせることができる。ロボット1が予想しなかった方向に移動したり、大きな移動量にて移動したりすることを抑制することができる。この結果、ロボット1が作業者または他の物に衝突することを抑制できる。なお、制御装置4は、補助変数の値が許容範囲を逸脱している場合に、任意の制御を実施することができる。例えば、教示操作盤が警報音を発するように制御しても構わない。
【0068】
また、表示部39は、補助変数の許容範囲を画面に表示しても構わない。特に、作業者が補助変数の値を入力したり変更したりする画面に許容範囲を表示することができる。教示操作盤37は、記憶部42から、補助変数47の許容範囲48を取得することができる。そして、表示部39は、作業者が補助変数47の値を入力する画面において許容範囲48を表示することができる。この制御により、作業者が許容範囲から外れる補助変数の値を入力することを抑制できる。
【0069】
また、教示操作盤37の表示部39は、ロボット1の画像を表示しても構わない。そして、表示部39は、補助変数に基づく移動点および許容範囲をロボットの画像に重ねて表示しても構わない。この制御を行うことにより、作業者が入力部38から補助変数の値を入力しているときに補助変数に対応する位置をロボット1の画像にて確認することができる。作業者が、誤った値を入力することを抑制することができる。なお、ロボットの画像としては、2次元の画像または3次元の画像を表示することができる。
【0070】
次に、本実施の形態における第2の制御を説明する。図10に、第2の制御を説明するためのロボットの側面図を示す。第2の制御において、補助変数は、主変数に基づくロボット1の位置および姿勢を調整する変数である。第2の制御の補助変数は、主変数において定められる移動点の位置をずらす為の変数である。第2の制御の補助変数では、主変数にて定められるロボット1の位置および姿勢からのずれ量が設定される。
【0071】
図11に、本実施の形態における第2の制御を説明するための動作プログラムを示す。図10および図11を参照して、動作プログラム46bには、主変数P[1],P[2],P[3]と、補助変数PR[2]が記載されている。図10および図11に示す例においては、移動点MP1に対応する主変数P[1]が定められる。移動点MP2に対応する主変数P[2]が定められる。移動点MP3に対応する主変数P[3]が定められる。第2の制御においては、移動点MP2は、補助変数PR[2]にて移動点MP2Sまでオフセットされる。この制御により、ロボット1のツール先端点は、移動点MP1から移動点MP2Sに移動する。この後に、ツール先端点は、移動点MP2SからMP3に移動する。
【0072】
図12に、第2の制御における補助変数が設定されているファイルを示す。図10から図12を参照して、動作プログラム46bの2行目には、補助変数PR[2]を用いて主変数P[2]に基づくロボット1の位置および姿勢をオフセットさせる指令が記載されている。ここでの例では、ファイル97には、ツール座標系72の座標軸ごとに、位置をずらす量が設定されている。
【0073】
補助変数PR[2]では、Z軸方向の移動量として+100mmが記載されている。Z軸以外の座標軸の方向の移動量はゼロである。このために、補助変数PR[2]では、移動点MP2をツール座標系72のZ軸の方向に+100mmにて移動させることが示されている。移動点MP2Sは、移動点MP2をツール座標系72のZ軸の方向に+100mmずらした点である。動作制御部43は、ツール先端点が移動点MP1から移動点MP2Sに移動するように、ロボット1の位置および姿勢を変更する。
【0074】
このような移動点をずらすための補助変数においても、許容範囲を設定することができる。許容範囲としては、第1の制御と同様に、ロボット1の位置および姿勢を定めている形式と同様に形式にて設定することができる。例えば、図12に示す例では、ツール座標系72の座標軸ごとに、移動量の上限値および下限値を設定することができる。または、ロボット1の位置および姿勢が、ロボット1の駆動軸の回転角にて設定されている場合には、駆動軸ごとに回転角をずらす量の上限値および下限値を設定することができる。
【0075】
監視部51の判定部52は、第1の制御と同様に補助変数の値が許容範囲内であるか否かを判定することができる。第2の制御では、所定の移動量が判定範囲内であるか否かが判定される。発信部53は、第1の制御と同様に、補助変数の値が許容範囲を逸脱する場合に、許容範囲を逸脱する信号を発信することができる。このように、監視部51は、補助変数の値を監視することができる。
【0076】
ところで、図2および図11を参照して、本実施の形態における監視部51は、補助変数に基づいてロボット1が動作したときのロボット1の位置および姿勢を算出する位置算出部55を含む。ここでの例では、位置算出部55は、動作プログラム46bの2行目の指令文に従って移動したときのロボット1の位置および姿勢を算出する。例えば、位置算出部55は、ツール先端点が移動点MP2Sに配置された時のツール先端点の位置およびツール座標系72の向きを算出する。または、位置算出部55は、ツール先端点が移動点MP2Sに配置された時のロボット1の位置および姿勢として、ロボット1の駆動軸J1~J6の回転角度を算出することができる。
【0077】
一方で、作業者は、補助変数にてずらした後の移動点MP2Sにおけるロボット1の位置および姿勢に関する許容範囲48aを予め設定しておくことができる。許容範囲48aは、記憶部42に記憶させておくことができる。
【0078】
次に、判定部52は、位置算出部55により算出されたロボット1の位置および姿勢が許容範囲内であるか否かを判定する。発信部53は、位置算出部55により算出されたロボット1の位置および姿勢が許容範囲を逸脱する場合に、許容範囲を逸脱した信号を発信する。
【0079】
このように、第2の制御においては、補助変数に基づいて変更された後のロボット1の位置および姿勢を判定しても構わない。上記以外の第2の制御の方法、作用、および効果については、第1の制御と同様であるので、ここでは説明を繰り返さない。
【0080】
前述の第1の制御および第2の制御は、作業者が教示操作盤を用いて補助変数の値を変更したときに実施する例を説明しているが、制御装置による制御は、この形態に限られない。制御装置が補助変数を変更したときにも同様の監視の制御を実施することができる。
【0081】
本実施の形態の第3の制御では、制御装置が補助変数を変更する時に、監視部が動作プログラムの設定値を監視する。図13に、本実施の形態における第3の制御を実施するための動作プログラムを示す。
【0082】
ロボット1が動作プログラムにて駆動している時に、制御装置4が、予め定められた計算式により補助変数の値を算出する場合がある。動作プログラム46cにおいては、1行目の指令文において、補助変数PR[1]に補助変数PR[2]の値を入力している。
【0083】
動作プログラム46cの2行目の指令文において、補助変数PR[2]が予め定められた計算式にて算出されている。補助変数PR[2]の1番目の要素に対して100を加算する制御を実施している。例えば、補助変数PR[2]が基準座標系71の座標値にて表される場合に、1番目の要素は、基準座標系71の複数の座標軸の座標値のうちX軸の座標値になる。このため、2行目の指令文により、X軸の座標値に100を加算する。すなわち、現在の補助変数PR[2]のX軸の座標値に100を加算し、その他の座標軸の座標値は変更しない変数を新たな補助変数PR[2]に設定している。記憶部42は、新たな補助変数PR[2]を記憶する。そして、動作プログラム46cの3行目の指令文では、ツール先端点が算出された補助変数PR[2]に対応する移動点に向かって移動することが指定されている。
【0084】
このように、動作プログラム46cの実行中に、動作プログラム46cに基づいて補助変数の値が変更される場合がある。図2を参照して、監視部51は、補助変数47が修正されたことを検出する修正検出部57を含む。修正検出部57は、動作プログラム46の実行中に補助変数47が変更されたことを検出する。本実施の形態の監視部51は、補助変数47が変更された場合には、変更された後の補助変数47について判定を行う。
【0085】
判定部52は、ロボット1が駆動している期間中に、制御装置4により補助変数が変更されたときに、補助変数の値が許容範囲内であるか否かを判定する。この制御を実施することにより、動作プログラムを実行しているときに、補助変数の値が変更されても補助変数が許容範囲内であるか否かを判定することができる。判定部52による判定方法の制御は、第1の制御または第2の制御と同様に実施することができる。
【0086】
さらに、補助変数の値が許容範囲を逸脱した場合に、発信部53は、補助変数の値が許容範囲を逸脱した信号を動作制御部43に送出することができる。動作制御部43は、ロボット1およびハンド2を停止する制御を実施する。この制御を実施することにより、ロボットが予期しない方向に動いて、作業者に衝突したり、他の装置に衝突したりすることを抑制することができる。
【0087】
なお、動作プログラムの実行中に、制御装置により補助変数が変更される制御としては、任意の制御を実施することができる。例えば、図2を参照して、本実施の形態のロボット装置5は、ワークの画像を撮像する3次元カメラ8を備える。動作制御部43は、動作プログラム46に基づいて、ワークを撮像する指令を3次元カメラ8に送出する。3次元カメラ8は、ワークを撮像できる位置に固定されている。例えば、3次元カメラ8は、コンベヤ等で搬送されるワークを撮像するように架台に固定されている。
【0088】
例えば、コンベヤで搬送されてきたワークは、3次元カメラ8にて撮像される。3次元カメラ8にて撮像された画像は、監視部51に送信される。監視部51は、画像を処理する画像処理部56を含む。画像処理部56は、3次元カメラ8にて撮像した画像に基づいてコンベヤにおけるワークの位置および姿勢を検出する。そして、画像処理部56は、予め定められた基準位置に対するワークのずれ量を算出することができる。
【0089】
監視部51は、補助変数の値を算出する補助変数算出部58を含む。補助変数算出部58は、このワークのずれ量に基づいて、ロボット1がワークを把持する時のロボット1の位置および姿勢の修正量を算出する。動作プログラムには、ワークの基準位置に対してロボットの位置および姿勢をずらすための補助変数が設定されている。補助変数算出部は、ロボット1の位置および姿勢の修正量に基づいて、補助変数を算出することができる。記憶部42は、この補助変数を記憶することができる。変更された補助変数に基づいてロボット1の位置および姿勢を制御することにより、ロボット1はワークを確実に把持することができる。
【0090】
この場合にも、修正検出部57は、補助変数が変更されたことを検出する。監視部51の判定部52は、補助変数が予め定められた許容範囲内であるか否かを判定することができる。
【0091】
このように、補助変数は作業者により設定されるだけでなく、制御装置により変更されても構わない。または、制御装置4は、外部の装置から補助変数の値を受信して、記憶部に記憶することができる。そして、監視部51は、この補助変数の値を判定しても構わない。
【0092】
上記以外の第3の制御の方法、作用、および効果については、第1の制御および第2の制御と同様であるので、ここでは説明を繰り返さない。
【0093】
図14に、本実施の形態における第4の制御を説明するロボットの側面図を示す。ロボット6においては、上部アーム11に、作業ツールを駆動するための駆動装置75が配置されている。例えば、アーク溶接を行う作業ツールが用いられる場合には、ワイヤーを供給する装置が上部アーム11などのロボット1の構成部品に配置される場合がある。
【0094】
第4の制御においては、ロボット1の表面に設定点76が予め設定されている。図14に示す例においては、駆動装置75の上側の角に設定点76が設定されている。監視部51の位置算出部55は、補助変数に基づいてロボットが動作したときの設定点76の位置を算出する。例えば、位置算出部55は、設定点76の位置を基準座標系の座標値にて算出することができる。
【0095】
また、設定点76の位置の許容範囲が予め定められて、記憶部42に記憶されている。設定点76の位置の許容範囲は、例えば基準座標系71の座標値にて定めることができる。判定部52は、位置算出部55により算出された設定点の位置が許容範囲内であるか否かを判定する。そして、位置算出部55により算出された設定点の位置が許容範囲を逸脱する場合には、発信部53は許容範囲を逸脱した信号を発信することができる。
【0096】
ロボット1の表面に設定される設定点76は、任意の位置に配置することができる。例えば図14に示すロボット1において、上部アーム11の端部のうちリスト15が取り付けられている端部と反対側の端部が関節部から飛び出している。この上部アーム11の端部は、作業者または他の装置に衝突する虞がある。このために、上部アーム11の端部に設定点77を設定することができる。
【0097】
上記以外の第4の制御の方法、作用、および効果については、第1の制御から第3の制御と同様であるので、ここでは説明を繰り返さない。
【0098】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
【0099】
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【0100】
1,6 ロボット
2 ハンド
4 制御装置
37 教示操作盤
38 入力部
39 表示部
42 記憶部
43 動作制御部
46,46a,46b,46c 動作プログラム
47 補助変数
48,48a,48b 許容範囲
51 監視部
52 判定部
53 発信部
55 位置算出部
57 修正検出部
58 補助変数算出部
76,77 設定点
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14