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

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

▶ 川崎重工業株式会社の特許一覧

特許7393178制御方法、制御装置、ロボットシステム及びプログラム
<>
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図1
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図2
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図3
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図4
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図5
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図6
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図7
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図8
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図9A
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図9B
  • 特許-制御方法、制御装置、ロボットシステム及びプログラム 図9C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】制御方法、制御装置、ロボットシステム及びプログラム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20231129BHJP
   B25J 9/22 20060101ALI20231129BHJP
   G05B 19/42 20060101ALI20231129BHJP
【FI】
B25J9/10 A
B25J9/22 A
G05B19/42 R
【請求項の数】 22
(21)【出願番号】P 2019186009
(22)【出願日】2019-10-09
(65)【公開番号】P2021058987
(43)【公開日】2021-04-15
【審査請求日】2022-09-20
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】110000556
【氏名又は名称】弁理士法人有古特許事務所
(72)【発明者】
【氏名】竹林 潤
(72)【発明者】
【氏名】宮崎 利彦
(72)【発明者】
【氏名】藤本 裕介
(72)【発明者】
【氏名】吉田 雅也
(72)【発明者】
【氏名】亀山 篤
【審査官】國武 史帆
(56)【参考文献】
【文献】特開平07-028520(JP,A)
【文献】特開2014-073550(JP,A)
【文献】国際公開第2016/190140(WO,A1)
【文献】特開2000-061870(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/42
(57)【特許請求の範囲】
【請求項1】
エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、
前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録することと
前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することと
前記戻り経路に沿って前記エンドエフェクタを移動させることとを含み、
前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含み、
前記動作目標点の位置は、前記動作目標点の3次元位置と、前記動作目標点での基準軸の姿勢とを含み、
前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記現在位置又は前記戻り目標点の3次元位置と前記動作目標点の3次元位置との間の距離と、前記現在位置又は前記戻り目標点での前記基準軸の姿勢と前記動作目標点での前記基準軸の姿勢との間の距離とを含む
制御方法。
【請求項2】
エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、
前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録することと、
前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することと、
前記戻り経路に沿って前記エンドエフェクタを移動させることとを含み、
前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含み、
前記エンドエフェクタの状態は、前記ロボットにおいて前記エンドエフェクタが接続される部分に対する前記エンドエフェクタの特定部分の位置及び姿勢を含み、
前記制御方法は、
前記エンドエフェクタを前記第k戻り目標点から前記第(k+1)戻り目標点に移動させる場合、
前記第(k+1)戻り目標点の位置を前記エンドエフェクタの目標の位置とすることと
前記第k戻り目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とすることと
前記第k戻り目標点の情報に含まれる前記エンドエフェクタの前記特定部分の位置及び姿勢を前記エンドエフェクタの目標の状態とすることと
前記第(k+1)戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置とすることとをさらに含む
御方法。
【請求項3】
前記エンドエフェクタを前記現在位置から前記第1戻り目標点に移動させる場合、
前記第1戻り目標点の位置を前記エンドエフェクタの目標の位置とし、
前記現在位置での移動先の前記動作目標点である移動先動作目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、
前記移動先動作目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、
前記第1戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置とする
請求項1又は2に記載の制御方法。
【請求項4】
エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、
前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録することと、
前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することと、
前記戻り経路に沿って前記エンドエフェクタを移動させることとを含み、
前記制御方法は、
記録された前記動作目標点と前記現在位置との距離である目標点距離を検出することと
前記目標点距離が第1閾値以内である場合、前記現在位置は、前記目標点距離が前記第1閾値以内である前記動作目標点に位置するとみなすこととをさらに含む
御方法。
【請求項5】
エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、
前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録することと、
前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することと、
前記戻り経路に沿って前記エンドエフェクタを移動させることとを含み、
前記制御方法は、
前記現在位置と前記動作経路との距離である離隔距離を検出することと
前記離隔距離が第2閾値以内である場合、前記戻り目標点の検出を実行することと
前記離隔距離が前記第2閾値超である場合、前記戻り目標点の検出を中止することとをさらに含む
御方法。
【請求項6】
エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、
前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録することと、
前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することと、
前記戻り経路に沿って前記エンドエフェクタを移動させることとを含み、
前記制御方法は、
2つの前記動作目標点間の距離が第3閾値以下である場合、前記2つの動作目標点の位置が同じであるとみなすことをさらに含む
御方法。
【請求項7】
前記戻り目標点の候補として複数の前記動作目標点を検出した場合、最も早くに到達済みの前記動作目標点を前記戻り目標点に決定する
請求項1~6のいずれか一項に記載の制御方法。
【請求項8】
前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記動作経路に沿った距離である
請求項1~のいずれか一項に記載の制御方法。
【請求項9】
前記動作目標点は、前記ロボットへの動作の教示過程において前記ロボットに教示された動作の目標点である
請求項1~のいずれか一項に記載の制御方法。
【請求項10】
請求項1~のいずれか一項に記載の制御方法を実行する制御装置。
【請求項11】
請求項10に記載の制御装置と、
前記ロボットとを備え、
前記制御装置が前記ロボットの動作を制御する
ロボットシステム。
【請求項12】
コンピュータに実行させるプログラムであって、
ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させることと
前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することとを含み、
前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含み、
前記動作目標点の位置は、前記動作目標点の3次元位置と、前記動作目標点での基準軸の姿勢とを含み、
前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記現在位置又は前記戻り目標点の3次元位置と前記動作目標点の3次元位置との間の距離と、前記現在位置又は前記戻り目標点での前記基準軸の姿勢と前記動作目標点での前記基準軸の姿勢との間の距離とを含む
プログラム。
【請求項13】
コンピュータに実行させるプログラムであって、
ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させることと、
前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することとを含み、
前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含み、
前記エンドエフェクタの状態は、前記ロボットにおいて前記エンドエフェクタが接続される部分に対する前記エンドエフェクタの特定部分の位置及び姿勢を含み、
前記プログラムは、
前記戻り経路における前記第k戻り目標点から前記第(k+1)戻り目標点への区間戻り経路では、
前記第(k+1)戻り目標点の位置を前記エンドエフェクタの目標の位置とすることと
前記第k戻り目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とすることと
前記第k戻り目標点の情報に含まれる前記エンドエフェクタの前記特定部分の位置及び姿勢を前記エンドエフェクタの目標の状態とすることと
前記第(k+1)戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置とすることとをさらに含む
ログラム。
【請求項14】
前記戻り経路における前記現在位置から前記第1戻り目標点への区間戻り経路では、
前記第1戻り目標点の位置を前記エンドエフェクタの目標の位置とし、
前記現在位置での移動先の前記動作目標点である移動先動作目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、
前記移動先動作目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、
前記第1戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置とする
請求項12又は13に記載のプログラム。
【請求項15】
コンピュータに実行させるプログラムであって、
ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させることと、
前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することとを含み、
前記プログラムは、
記録された前記動作目標点と前記現在位置との距離である目標点距離を検出することと
前記目標点距離が第1閾値以内である場合、前記現在位置は、前記目標点距離が前記第1閾値以内である前記動作目標点に位置するとみなすこととをさらに含む
ログラム。
【請求項16】
コンピュータに実行させるプログラムであって、
ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させることと、
前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することとを含み、
前記プログラムは、
前記現在位置と前記動作経路との距離である離隔距離を検出することと
前記離隔距離が第2閾値以内である場合、前記戻り目標点の検出を実行することと
前記離隔距離が前記第2閾値超である場合、前記戻り目標点の検出を中止することとをさらに含む
ログラム。
【請求項17】
コンピュータに実行させるプログラムであって、
ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させることと、
前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得することと、
前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、及び、前記現在位置に最も近い距離の前記動作目標点のいずれかを、第1戻り目標点として選択し、前記第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出することと、
第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、及び、前記第k戻り目標点に最も近い距離の前記動作目標点のいずれかを、第(k+1)戻り目標点として選択し、前記第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出することであって、kは1~nの自然数であり、nは1以上の自然数であることと、
前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出することと、
前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定することとを含み、
前記プログラムは、
2つの前記動作目標点間の距離が第3閾値以下である場合、前記2つの動作目標点の位置が同じであるとみなすことをさらに含む
ログラム。
【請求項18】
前記プログラムは、前記ロボットの動作を制御する制御装置のシステムプログラム上で動作するアプリケーションプログラムである
請求項12~17のいずれか一項に記載のプログラム。
【請求項19】
前記アプリケーションプログラムは、インストールされて前記システムプログラムに搭載されることで動作可能になる
請求項18に記載のプログラム。
【請求項20】
前記戻り目標点の候補として複数の前記動作目標点を検出した場合、最も早くに到達済みの前記動作目標点を前記戻り目標点に決定する
請求項1219のいずれか一項に記載のプログラム。
【請求項21】
前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記動作経路に沿った距離である
請求項12~20のいずれか一項に記載のプログラム。
【請求項22】
前記動作目標点は、前記ロボットへの動作の教示過程において前記ロボットに教示された動作の目標点である
請求項1221のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御装置、ロボットシステム及びプログラムに関する。
【背景技術】
【0002】
従来、ロボットを原点復帰させる技術が知られている。例えば、動作中のロボットが何らかの原因で停止した場合、ロボットの再始動の前に、ロボットの可動部分が初期位置である原点位置に復帰される、つまりロボットが原点復帰される。例えば、特許文献1は、ロボットの原点復帰制御方法を開示する。この制御方法は、既に実行された制御プログラムを順次逆実行することによりロボットを停止位置から作業原点に復帰させる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平7-28520号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、ロボットが動作する経路が2つの点の間で往復する往復経路を含む場合、特許文献1の原点復帰制御方法は、作業原点に復帰する動作の中で、ロボットに往復経路を往復させ得る。このため、ロボットを作業原点に復帰する動作が複雑になる可能性がある。
【0005】
本発明は、原点復帰のためのロボットの動作を簡略化する制御方法、制御装置、ロボットシステム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の一態様に係る制御方法は、エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録し、前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定し、前記戻り経路に沿って前記エンドエフェクタを移動させる。
【0007】
また、本発明の一態様に係る制御装置は、本発明の一態様に係る制御方法を実行する制御装置である。
【0008】
また、本発明の一態様に係るロボットシステムは、本発明の一態様に係る制御装置と、前記ロボットとを備え、前記制御装置が前記ロボットの動作を制御する。
【0009】
また、本発明の一態様に係るプログラムは、コンピュータに実行させるプログラムであって、ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させ、前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定する。
【発明の効果】
【0010】
本発明によれば、原点復帰のためのロボットの動作を簡略化することが可能になる。
【図面の簡単な説明】
【0011】
図1】実施の形態に係るロボットシステムの一例を示す概略図
図2図1のロボットの斜視図
図3図2のロボットアームの先端部の側面図
図4図2のエンドエフェクタの側面図
図5】実施の形態に係る制御装置のハードウェア構成の一例を示すブロック図
図6】実施の形態に係る制御装置の機能的構成の一例を示すブロック図
図7】実施の形態に係るロボットの教示情報に従った動作経路の一例を示す図
図8】実施の形態に係るロボットの教示情報に従った動作経路の一例を示す図
図9A】実施の形態に係るロボットシステムの動作の一例を示すフローチャート
図9B】実施の形態に係るロボットシステムの動作の一例を示すフローチャート
図9C】実施の形態に係るロボットシステムの動作の一例を示すフローチャート
【発明を実施するための形態】
【0012】
まず、本発明の態様例を説明する。本発明の一態様に係る制御方法は、エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録し、前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定し、前記戻り経路に沿って前記エンドエフェクタを移動させる。
【0013】
上記態様によると、エンドエフェクタの動作中に記録された動作目標点を用いて、エンドエフェクタの原点復帰のための戻り経路上の戻り目標点が検出される。戻り目標点として、直前に到達済みの動作目標点、又は、最も近い距離の動作目標点が検出される。これにより、記録された動作目標点の一部を通らない戻り経路の設定が可能になり、戻り経路を構成する戻り目標点の数量の低減が可能になる。よって、原点復帰のためのロボットの動作を簡略化することが可能になる。
【0014】
本発明の一態様に係る制御方法において、前記戻り目標点の候補として複数の前記動作目標点を検出した場合、最も早くに到達済みの前記動作目標点を前記戻り目標点に決定してもよい。
【0015】
上記態様によると、戻り目標点として、動作経路上で原点により近い動作目標点が決定される。これにより、戻り経路を構成する戻り目標点の数量の低減が可能になり、戻り経路の簡略化が可能になる。
【0016】
本発明の一態様に係る制御方法において、記録された前記動作目標点と前記現在位置との距離である目標点距離を検出し、前記目標点距離が第1閾値以内である場合、前記現在位置は、前記目標点距離が前記第1閾値以内である前記動作目標点に位置するとみなしてもよい。
【0017】
上記態様によると、現在位置から動作目標点までの戻り経路を決定するための処理と、当該戻り経路に沿ってエンドエフェクタを移動させる処理とが不要になる。よって、原点復帰のための処理及びロボットの動作を簡略化することが可能になる。
【0018】
本発明の一態様に係る制御方法において、前記現在位置と前記動作経路との距離である離隔距離を検出し、前記離隔距離が第2閾値以内である場合、前記戻り目標点の検出を実行し、前記離隔距離が前記第2閾値超である場合、前記戻り目標点の検出を中止してもよい。
【0019】
上記態様によると、例えば、離隔距離が第2閾値超である場合、エンドエフェクタを第1戻り目標点に戻すと、ロボットの一部が周囲の物体と干渉する可能性がある。よって、原点復帰の際にロボットに損傷が発生することを抑えることが可能になる。
【0020】
本発明の一態様に係る制御方法において、前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記動作経路に沿った距離であってもよい。
【0021】
上記態様によると、ロボットを動作経路に沿って原点復帰させることができる。これにより、ロボットが、動作経路から逸脱した動作を行うことにより周囲の物体と干渉することが抑えられる。
【0022】
本発明の一態様に係る制御方法において、2つの前記動作目標点間の距離が第3閾値以下である場合、前記2つの動作目標点の位置が同じであるとみなしてもよい。
【0023】
上記態様によると、ロボットの現在位置又は戻り目標点と動作目標点との距離を検出する処理が簡略化される。さらに、距離が第3閾値以下である2つの動作目標点の間の動作経路を通らないような戻り経路の設定が可能である。このような戻り経路は、原点復帰のためのロボットの動作を簡略化することが可能である。
【0024】
本発明の一態様に係る制御方法において、前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含んでもよい。
【0025】
上記態様によると、エンドエフェクタに戻り目標点間で原点復帰のための動作をさせる場合、エンドエフェクタの位置変化だけでなく、エンドエフェクタの動作経路、エンドエフェクタの状態の変化、及びロボットの位置の変化を考慮したロボットの動作が可能になる。よって、原点復帰の際にロボットが周囲の物体と干渉することが抑えられる。
【0026】
本発明の一態様に係る制御方法において、前記動作目標点の位置は、前記動作目標点の3次元位置と、前記動作目標点での基準軸の姿勢とを含んでもよい。
【0027】
上記態様によると、エンドエフェクタに戻り目標点間で原点復帰のための動作をさせる場合、エンドエフェクタの位置変化だけでなく、エンドエフェクタの姿勢変化を考慮したエンドエフェクタの動作が可能になる。よって、原点復帰の際にエンドエフェクタ等が周囲の物体と干渉することが抑えられる。
【0028】
本発明の一態様に係る制御方法において、前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記現在位置又は前記戻り目標点の3次元位置と前記動作目標点の3次元位置との間の距離と、前記現在位置又は前記戻り目標点での前記基準軸の姿勢と前記動作目標点での前記基準軸の姿勢との間の距離とを含んでもよい。
【0029】
上記態様によると、現在位置又は戻り目標点と動作目標点との距離は、3次元位置の距離だけでなく姿勢変化の距離も含む。このような距離は、現在位置又は戻り目標点と動作目標点との間でのエンドエフェクタの移動距離を示すことができる。よって、現在位置又は戻り目標点と動作目標点との間の正確な距離を用いて、次の戻り目標点を検出することが可能になる。
【0030】
本発明の一態様に係る制御方法において、前記エンドエフェクタを前記第k戻り目標点から前記第(k+1)戻り目標点に移動させる場合、前記第(k+1)戻り目標点の位置を前記エンドエフェクタの目標の位置とし、前記第k戻り目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、前記第k戻り目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、前記第(k+1)戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置としてもよい。
【0031】
上記態様によると、エンドエフェクタを第k戻り目標点から第(k+1)戻り目標点に移動させる場合、原点復帰の際のロボットの動作領域が、エンドエフェクタが動作経路に沿って移動したときのロボットの動作領域から大きく逸脱することが抑えられる。よって、原点復帰の際にロボットが周囲の物体と干渉することが抑えられる。
【0032】
本発明の一態様に係る制御方法において、前記エンドエフェクタを前記現在位置から前記第1戻り目標点に移動させる場合、前記第1戻り目標点の位置を前記エンドエフェクタの目標の位置とし、前記現在位置での移動先の前記動作目標点である移動先動作目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、前記移動先動作目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、前記第1戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置としてもよい。
【0033】
上記態様によると、エンドエフェクタを現在位置から第1戻り目標点に移動させる場合、原点復帰の際のロボットの動作領域が、エンドエフェクタが動作経路に沿って移動したときのロボットの動作領域から大きく逸脱することが抑えられる。
【0034】
本発明の一態様に係る制御方法において、前記動作目標点は、前記ロボットへの動作の教示過程において前記ロボットに教示された動作の目標点であってもよい。
【0035】
上記構成によると、動作目標点の設定が簡略になり、動作目標点を用いた戻り目標点の検出が簡略になる。
【0036】
本発明の一態様に係る制御装置は、本発明の一態様に係る制御方法に実行する制御装置である。上記態様によると、本発明の一態様に係る制御方法と同様の効果が得られる。
【0037】
本発明の一態様に係るロボットシステムは、本発明の一態様に係る制御装置と、前記ロボットとを備え、前記制御装置が前記ロボットの動作を制御する。上記態様によると、本発明の一態様に係る制御方法と同様の効果が得られる。
【0038】
本発明の一態様に係るプログラムは、コンピュータに実行させるプログラムであって、ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させ、前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定する。上記態様によると、本発明の一態様に係る制御方法と同様の効果が得られる。
【0039】
本発明の一態様に係るプログラムは、前記ロボットの動作を制御する制御装置のシステムプログラム上で動作するアプリケーションプログラムであってもよい。
【0040】
上記態様によると、アプリケーションプログラムは、例えば、システムプログラムに一部として組み込まれる、又は、システムプログラムにインストールされることで、機能可能になる。
【0041】
本発明の一態様に係るプログラムにおいて、前記アプリケーションプログラムは、インストールされて前記システムプログラムに搭載されることで動作可能になってもよい。
【0042】
上記態様によると、アプリケーションプログラムは、様々なシステムプログラムにインストールされ得るように構成されることができ、汎用性を有することができる。
【0043】
本発明の一態様に係るプログラムにおいて、前記戻り目標点の候補として複数の前記動作目標点を検出した場合、最も早くに到達済みの前記動作目標点を前記戻り目標点に決定してもよい。
【0044】
本発明の一態様に係るプログラムにおいて、記録された前記動作目標点と前記現在位置との距離である目標点距離を検出し、前記目標点距離が第1閾値以内である場合、前記現在位置は、前記目標点距離が前記第1閾値以内である前記動作目標点に位置するとみなしてもよい。
【0045】
本発明の一態様に係るプログラムにおいて、前記現在位置と前記動作経路との距離である離隔距離を検出し、前記離隔距離が第2閾値以内である場合、前記戻り目標点の検出を実行し、前記離隔距離が前記第2閾値超である場合、前記戻り目標点の検出を中止してもよい。
【0046】
本発明の一態様に係るプログラムにおいて、前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記動作経路に沿った距離であってもよい。
【0047】
本発明の一態様に係るプログラムにおいて、2つの前記動作目標点間の距離が第3閾値以下である場合、前記2つの動作目標点の位置が同じであるとみなしてもよい。
【0048】
本発明の一態様に係るプログラムにおいて、前記動作目標点の情報は、前記動作目標点の位置、直前の前記動作目標点から前記動作目標点までの経路である区間動作経路、前記エンドエフェクタの状態、及び、前記ロボットの位置の情報を含んでもよい。
【0049】
本発明の一態様に係るプログラムにおいて、前記動作目標点の位置は、前記動作目標点の3次元位置と、前記動作目標点での基準軸の姿勢とを含んでもよい。
【0050】
本発明の一態様に係るプログラムにおいて、前記現在位置又は前記戻り目標点と前記動作目標点との距離は、前記現在位置又は前記戻り目標点の3次元位置と前記動作目標点の3次元位置との間の距離と、前記現在位置又は前記戻り目標点での前記基準軸の姿勢と前記動作目標点での前記基準軸の姿勢との間の距離とを含んでもよい。
【0051】
本発明の一態様に係るプログラムにおいて、前記戻り経路における前記第k戻り目標点から前記第(k+1)戻り目標点への区間戻り経路では、前記第(k+1)戻り目標点の位置を前記エンドエフェクタの目標の位置とし、前記第k戻り目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、前記第k戻り目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、前記第(k+1)戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置としてもよい。
【0052】
本発明の一態様に係るプログラムにおいて、前記戻り経路における前記現在位置から前記第1戻り目標点への区間戻り経路では、前記第1戻り目標点の位置を前記エンドエフェクタの目標の位置とし、前記現在位置での移動先の前記動作目標点である移動先動作目標点の情報に含まれる前記区間動作経路の逆向きの経路を前記エンドエフェクタの目標の動作経路とし、前記移動先動作目標点の情報に含まれる前記エンドエフェクタの状態を前記エンドエフェクタの目標の状態とし、前記第1戻り目標点の情報に含まれる前記ロボットの位置を前記ロボットの目標の位置としてもよい。
【0053】
本発明の一態様に係るプログラムにおいて、前記動作目標点は、前記ロボットへの動作の教示過程において前記ロボットに教示された動作の目標点であってもよい。
【0054】
(実施の形態)
以下において、本発明の実施の形態を、図面を参照しつつ説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、添付の図面における各図は、模式的な図であり、必ずしも厳密に図示されたものでない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。また、本明細書及び特許請求の範囲では、「装置」とは、1つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
【0055】
[ロボットシステムの構成]
実施の形態に係るロボットシステム1の構成を説明する。図1は、実施の形態に係るロボットシステム1の一例を示す概略図である。図1に示すように、実施の形態に係るロボットシステム1は、ロボット10と、制御装置20と、撮像装置30と、入力装置40と、提示装置50とを備える。ロボットシステム1は、教示された動作手順に従ってロボット10に自動運転させ所定の作業を実行させることができる。ロボットシステム1は、入力装置40を介して入力される操作情報に従ってロボット10に手動運転させ作業を実行させることができる。さらに、ロボットシステム1は、例えば、入力装置40を介してロボット10を動作の原点位置に戻す指令である原点復帰指令が入力されると、原点位置に戻すようにロボット10に自動で動作させることができる。
【0056】
本実施の形態では、ロボット10は産業用ロボットであるが、これに限定されない。ロボット10は、処理対象物Wに対して作用を加えるエンドエフェクタ11と、当該作用を実行するようにエンドエフェクタ11を動かすロボットアーム12と、ロボット10の位置を変えるようにロボット10を移動させる搬送装置13とを備える。
【0057】
ロボットアーム12は、その先端のエンドエフェクタ11の位置及び姿勢を変更することができる構成を有すれば、特に限定されないが、本実施の形態では、垂直多関節型ロボットアームである。なお、ロボットアーム12は、例えば、水平多関節型、極座標型、円筒座標型、直角座標型、又はその他の型式のロボットアームとして構成されてもよい。
【0058】
ロボットアーム12は、その基部から先端に向かって順に配置されたリンク12a~12fと、リンク12a~12fを順次接続する関節JT1~JT6と、関節JT1~JT6それぞれを回転駆動するアーム駆動装置M1~M6とを備える。アーム駆動装置M1~M6の動作は制御装置20によって制御される。アーム駆動装置M1~M6はそれぞれ、電力を動力源とし、これらを駆動する電気モータとしてサーボモータSMa(図5参照)を有するが、これに限定されない。なお、ロボットアーム12の関節の数量は、6つに限定されず、7つ以上であってもよく、1つ以上5つ以下であってもよい。
【0059】
リンク12aは搬送装置13に取り付けられる。リンク12fの先端部は、メカニカルインタフェースを構成し、エンドエフェクタ11と接続される。関節JT1は、搬送装置13とリンク12aの基端部とを、搬送装置13を支持する床面に対して垂直である鉛直方向の軸周りに回転可能に連結する。関節JT2は、リンク12aの先端部とリンク12bの基端部とを、当該床面に平行である水平方向の軸周りに回転可能に連結する。関節JT3は、リンク12bの先端部とリンク12cの基端部とを、水平方向の軸周りに回転可能に連結する。関節JT4は、リンク12cの先端部とリンク12dの基端部とを、リンク12cの長手方向の軸周りに回転可能に連結する。関節JT5は、リンク12dの先端部とリンク12eの基端部とを、リンク12dの長手方向と直交する方向の軸周りに回転可能に連結する。関節JT6は、リンク12eの先端部とリンク12fの基端部とを、リンク12eに対する捻れ回転可能に連結する。
【0060】
エンドエフェクタ11はロボットアーム12の先端部に着脱可能に取り付けられている。エンドエフェクタ11は、把持、吸着、吊り上げ、又は掬い上げ等の処理対象物Wに対応する様々な作用を、処理対象物Wに加えることができるように構成される。図1の例では、エンドエフェクタ11は、処理対象物Wを把持し被処理対象物Tの孔にねじ込む動作を行うことができるように構成され、ロボット10は処理対象物Wを被処理対象物Tに組み付ける作業を行う。エンドエフェクタ11は、エンドエフェクタ11を駆動するエンドエフェクタ駆動装置11a(図5参照)を備える。エンドエフェクタ駆動装置11aの動作は制御装置20によって制御される。エンドエフェクタ駆動装置11aは、電力を動力源とし、これを駆動する電気モータとしてサーボモータSMb(図5参照)を有するが、これに限定されない。なお、ロボット10の作業は上記組み付けに限定されず、いかなる作業であってもよい。ロボット10の作業の例は、仕分け、組立、塗装、溶接、接合、チッピング、研磨、シーリング、半導体製造、薬剤調合及び手術などの医療行為等である。
【0061】
搬送装置13は、床面等の上でロボット10を移動させることが可能であり、ロボットアーム12が載せられ且つこれを支持する基台13aと、基台13aの走行手段としてのクローラ(「キャタピラ(登録商標)」とも呼ばれる)13bと、クローラ13bを駆動する搬送駆動装置13c(図5参照)とを備える。走行手段は、クローラ13bに限定されず、車輪等の他の走行手段であってもよい。搬送駆動装置13cは、電力を動力源とし、電気モータとしてサーボモータSMc(図5参照)を有するが、これに限定されない。搬送装置13は、AGV(無人搬送車:Automated Guided Vehicle)等であってもよい。
【0062】
撮像装置30は、ロボット10を撮像し、具体的には、ロボット10の処理対象物Wの処理状況を撮像する。撮像装置30の例は、デジタルカメラ及びデジタルビデオカメラ等である。例えば、撮像装置30は、ロボット10から離れた位置に配置されるが、ロボット10に配置されてもよい。撮像装置30は、撮像した画像の信号を提示装置50に出力するが、制御装置20に出力してもよい。ロボットシステム1を管理するユーザは、提示装置50を介してロボット10による処理対象物Wの処理状態を確認することができる。なお、撮像装置30の動作は、制御装置20によって制御されてもよい。
【0063】
入力装置40は、ロボットシステム1のユーザによる指令及び情報等の入力を受け付け、当該指令及び情報等を制御装置20に出力する。入力装置40は、制御装置20と有線通信又は無線通信を介して接続される。有線通信及び無線通信の形式はいかなる形式であってもよい。例えば、入力装置40は、ロボット10を原点復帰させる指令の入力を受け付け、当該指令を制御装置20に出力する。入力装置40は、ロボット10に所定の作業の動作手順を教示するためのティーチングペンダント等の教示装置を含んでもよい。
【0064】
提示装置50は、制御装置20及び撮像装置30等から受け取る様々な画像及び音声等を、ロボットシステム1のユーザに提示する。提示装置50の例は、液晶ディスプレイ(Liquid Crystal Display)及び有機又は無機ELディスプレイ(Electro-Luminescence Display)等であるが、これらに限定されない。提示装置50は、音声を発するスピーカを備えてもよい。
【0065】
制御装置20は、ロボットシステム1の全体を制御する。例えば、制御装置20は、コンピュータ装置を含む。ロボット10には下記の4つの座標系が設定される。制御装置20は、4つの座標系に基づき、ロボット10の各部の位置、姿勢及び動作状態等を制御する。
【0066】
第1の座標系は、ロボット10が配置される空間に設定される座標系であり、ワールド座標系と称する。例えば、図2に示すように、ワールド座標系では、Xw軸、Yw軸及びZw軸が定義される。Xw軸及びYw軸は、ロボット10が配置される床面に沿って延び且つ互いに直交する。Zw軸は、Xw軸及びYw軸に垂直に、つまり床面に垂直に延び、床面から上方に向かう方向はZw軸正方向であり、その反対方向はZw軸負方向である。なお、図2は、図1のロボット10の斜視図である。
【0067】
第2の座標系は、ロボットアーム12が据え付けられる搬送装置13の基台13aを基準とする座標系であり、ベース座標系と称する。例えば、図2に示すように、ベース座標系では、Xb軸、Yb軸及びZb軸が定義される。例えば、Xb軸及びYb軸は、基台13aの表面13aaに沿って延び且つ互いに直交する。Zb軸は、Xb軸及びYb軸に垂直に、つまり表面13aaに垂直に延びる。例えば、ベース座標系の原点は、関節JT1の回転中心軸S1と表面13aaとの交点S1aである。表面13aaから上方に向かう方向はZb軸正方向であり、その反対方向はZb軸負方向である。
【0068】
第3の座標系は、ロボットアーム12のリンク12fの先端部におけるエンドエフェクタ11との接続面12faを基準とする座標系であり、ハンド座標系と称する。例えば、図3に示すように、ハンド座標系では、Xh軸、Yh軸及びZh軸が定義される。例えば、Xh軸及びYh軸は、接続面12faに沿って延び且つ互いに直交する。Zh軸は、Xh軸及びYh軸に垂直に、つまり接続面12faに垂直に延びる。例えば、ハンド座標系の原点は、関節JT6の回転中心軸S6と接続面12faとの交点S6aであり、Zh軸は回転中心軸S6と平行である。リンク12fからエンドエフェクタ11に向かう方向はZh軸正方向であり、その反対方向はZh軸負方向である。Xh軸、Yh軸及びZh軸は、軸S6の向き及び軸S6周りのリンク12fの回転に対応して、それぞれの向きを変える。なお、図3は、図2のロボットアーム12の先端部の側面図である。
【0069】
第4の座標系は、エンドエフェクタ11の先端部11b等の特定の点を基準とする座標系であり、ツール座標系と称する。例えば、図4に示すように、ツール座標系では、Xt軸、Yt軸及びZt軸が定義される。例えば、Zt軸は、先端部11bが延びる方向の1つに沿った軸である。Xt軸及びYt軸は、互いに直交し且つZtと直交し、例えば、接続面12faと平行である。例えば、ツール座標系の原点は、先端部11bである。先端部11bから離れる方向はZt軸正方向であり、その反対方向はZt軸負方向である。Xt軸、Yt軸及びZt軸は、先端部11bの向きに対応して、それぞれの向きを変える。なお、図4は、図2のエンドエフェクタ11の側面図である。
【0070】
例えば、制御装置20は、ワールド座標系での搬送装置13の交点S1aの座標及び軸S1の方向ベクトルに基づき、搬送装置13の位置及び姿勢を制御する。制御装置20は、ベース座標系でのロボットアーム12のリンク12fの交点S6aの座標及び軸S6の方向ベクトルに基づき、リンク12fの接続面12faの位置及び姿勢を制御する。制御装置20は、ハンド座標系のXh軸、Yh軸及びZh軸とツール座標系のXt軸、Yt軸及びZt軸との関係に基づき、エンドエフェクタ11の先端部11bの位置及び姿勢を制御する。
【0071】
[制御装置のハードウェア構成]
制御装置20のハードウェア構成を説明する。図5は、実施の形態に係る制御装置20のハードウェア構成の一例を示すブロック図である。図5に示すように、制御装置20は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、メモリ204と、入出力I/F(インタフェース:Interface)205~207と、アーム駆動回路208と、エンドエフェクタ駆動回路209と、搬送駆動回路210とを構成要素として含む。上記構成要素はそれぞれ、バス、有線通信又は無線通信を介して接続されている。なお、上記構成要素の全てが必須ではない。
【0072】
例えば、CPU201はプロセッサであり、制御装置20の動作の全体を制御する。ROM202は不揮発性半導体メモリ等で構成され、CPU201に動作を制御させるためのプログラム及びデータ等を格納する。RAM203は揮発性半導体メモリ等で構成され、CPU201で実行するプログラム及び処理途中又は処理済みのデータ等を一時的に格納する。メモリ204は、揮発性メモリ及び不揮発性メモリなどの半導体メモリ、ハードディスク(HDD:Hard Disc Drive)及びSSD(Solid State Drive)等の記憶装置で構成され、種々の情報を記憶する。メモリ204は、制御装置20の外部の装置であってもよい。
【0073】
例えば、CPU201が動作するためのプログラムは、ROM202又はメモリ204に予め保持されている。CPU201は、ROM202又はメモリ204からプログラムをRAM203に読み出して展開する。CPU201は、RAM203に展開されたプログラム中のコード化された各命令を実行する。
【0074】
制御装置20の各機能は、CPU201、ROM202及びRAM203等からなるコンピュータシステムにより実現されてもよく、電子回路又は集積回路等の専用のハードウェア回路により実現されてもよく、上記コンピュータシステム及びハードウェア回路の組み合わせにより実現されてもよい。
【0075】
このような制御装置20は、例えば、マイクロコントローラ、MPU(Micro Processing Unit)、LSI(大規模集積回路:Large Scale Integration)、システムLSI、PLC(Programmable Logic Controller)、論理回路等で構成されてもよい。制御装置20の複数の機能は、個別に1チップ化されることで実現されてもよく、一部又は全てを含むように1チップ化されることで実現されてもよい。また、回路はそれぞれ、汎用的な回路でもよく、専用の回路でもよい。LSIとして、LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続及び/又は設定を再構成可能なリコンフィギュラブルプロセッサ、又は、特定用途向けに複数の機能の回路が1つにまとめられたASIC(Application Specific Integrated Circuit)等が利用されてもよい。
【0076】
第1入出力I/F205は、外部装置60と接続され、外部装置60に対して情報、データ及び指令等を入出力する。第1入出力I/F205は、信号を変換する回路等を含んでもよい。例えば、第1入出力I/F205は、外部装置60から、プログラムファイルの入力を受け付ける。プログラムファイルの例は、ロボットを原点復帰させるアプリケーションプログラムのプログラムファイルである。外部装置60の例は、記録メディアに対する各種データの読み出し又は書き込みを制御する記録メディアドライブ、記憶装置、パーソナルコンピュータなどのコンピュータ装置、情報端末、スマートフォン、スマートウォッチ及びタブレットなどのスマートデバイス等である。記録メディアの例は、フラッシュメモリ、メモリカード、並びに、DVD-R、DVD-RW、BD(Blu-ray(登録商標))-R及びBD-REなどの記録ディスク等である。なお、外部装置60は、制御装置20に組み込まれていてもよい。
【0077】
第1入出力I/F205は、ネットワークI/Fを構成し、データ通信可能な通信網を介して外部装置60と接続されてもよい。通信網の例は、イントラネット、有線若しくは無線LAN(Local Area Network)、WAN(Wide Area Network)、モバイル通信網、電話回線通信網、又は、その他の有線若しくは無線通信を用いる通信網であってもよい。この場合、外部装置60は、サーバ装置、クラウドサーバ等であってもよい。プログラムファイルは、通信網及び第1入出力I/F205を介して、メモリ204等にダウンロードされてもよい。
【0078】
第2入出力I/F206は、入力装置40と接続され、入力装置40に対して情報、データ及び指令等を入出力する。第2入出力I/F206は、信号を変換する回路等を含んでもよい。第3入出力I/F207は、提示装置50と接続され、提示装置50に対して、画面データ、音声データ、情報及び指令等を入出力する。第3入出力I/F207は、提示装置50に表示させる画面を生成可能なGPU(Graphics Processing Unit)、提示装置50に出力させる音声を生成可能なDSP(Digital Signal Processor)、及び、信号を変換する回路等を含んでもよい。
【0079】
アーム駆動回路208は、CPU201の指令に従って、ロボット10のアーム駆動装置M1~MA6のサーボモータSMaに電力を供給し各サーボモータSMaの駆動を制御する。エンドエフェクタ駆動回路209は、CPU201の指令に従って、エンドエフェクタ駆動装置11aのサーボモータSMbに電力を供給しサーボモータSMbの駆動を制御する。搬送駆動回路210は、CPU201の指令に従って、搬送装置13の搬送駆動装置13cのサーボモータSMcに電力を供給しサーボモータSMcの駆動を制御する。
【0080】
[制御装置の機能的構成]
制御装置20の機能的構成を説明する。図6は、実施の形態に係る制御装置20の機能的構成の一例を示すブロック図である。図6に示すように、制御装置20は、手動指令生成部20aと、自動指令生成部20bと、目標点記録部20cと、動作制御部20dと、記憶部20eと、原点復帰起動部21と、目標点取得部22と、戻り目標点決定部23と、経路演算部24とを機能的構成要素として含む。動作制御部20dは、駆動制御部20daと搬送制御部20dbとを含む。手動指令生成部20a、自動指令生成部20b、目標点記録部20c及び動作制御部20dは、制御装置20を動作させるシステムソフトウェア26上で機能する。原点復帰起動部21、目標点取得部22、戻り目標点決定部23及び経路演算部24は、システムソフトウェア26上で動作する原点復帰アプリケーションソフトウェア(以下、「原点復帰アプリケーション」とも称する)25上で機能する。原点復帰アプリケーション25はロボット10に原点復帰動作をさせるためのソフトウェアである。上記機能的構成要素の全てが必須ではない。
【0081】
記憶部20eを除く機能的構成要素の機能は、CPU201等によって実現され、記憶部20eの機能は、メモリ204、ROM202及び/又はRAM203によって実現される。
【0082】
記憶部20eは、種々の情報を記憶し、記憶している情報の読み出しを可能にする。例えば、記憶部20eは、制御装置20を動作させるシステムソフトウェア26のシステムプログラム20eaを記憶する。
【0083】
さらに、記憶部20eは、ロボット10に所定の作業を行わせるための教示により記憶された教示情報20ebを記憶する。ロボット10の教示方式としては、例えば、教示者がロボット10を直接触って動かすことによるダイレクト教示、ティーチングペンダントを用いた遠隔操縦による教示、プログラミングによる教示、マスタースレーブによる教示等があるが、いかなる教示方式であってもよい。
【0084】
教示情報20ebは、動作目標点の情報を含む。動作目標点は、教示される点であり、作業を行うためのロボット10の動作中に、エンドエフェクタ11のハンド座標系の原点S6a等のロボット10の所定の点が通過する点である。1つの所定の作業に対して、複数の動作目標点が設定される。複数の動作目標点には、ロボット10の通過順序に従った順序が付けられている。複数の動作目標点は、作業を行うためにロボット10の所定の点が辿る動作経路を構成する。
【0085】
例えば、教示情報20ebは、図7及び図8に示すような複数の動作目標点で構成される動作経路を含む。図7及び図8は、実施の形態に係るロボット10の教示情報20ebに従った動作経路の一例を示す図である。
【0086】
例えば、図7に示される動作経路OR1は、開始位置である原点Oから、それぞれの位置が異なる第1動作目標点OTP1~第5動作目標点OTP5を順次通り、原点Oに戻る経路である。原点Oは、所定の作業を実行するための動作経路の全てに対する開始位置であってもよく、所定の作業を実行中に入力装置40からの指令等により動作経路の途中で指定された位置であってもよい。
【0087】
図8に示される動作経路OR2は、原点Oから、第1動作目標点OTP1~第9動作目標点OTP9を順次通り、原点Oに戻る経路である。しかしながら、第1動作目標点OTP1及び第3動作目標点OTP3は、同じ第1目標点TP1に位置する。第4動作目標点OTP4及び第6動作目標点OTP6は、同じ第2目標点TP2に位置する。第7動作目標点OTP7及び第9動作目標点OTP9は、同じ第3目標点TP3に位置する。なお、第1動作目標点OTP1及び第3動作目標点OTP3の間、第4動作目標点OTP4及び第6動作目標点OTP6の間、並びに、第7動作目標点OTP7及び第9動作目標点OTP9の間のそれぞれにおいて、後述する動作目標点の位置以外の情報は異なっていてもよい。
【0088】
動作目標点の情報は、動作目標点の位置、直前の動作目標点から動作目標点までの経路である区間動作経路、動作目標点でのエンドエフェクタ11の状態、及び、動作目標点でのロボットの位置等の情報を含み得る。動作目標点の位置は、動作目標点の3次元位置と、当該動作目標点での基準軸の姿勢とを含んでもよい。3次元位置は3次元空間内での位置である。
【0089】
動作目標点の3次元位置は、ワールド座標系での動作目標点の3次元位置であってもよい。例えば、動作目標点は、エンドエフェクタ11の目標点であり、これに限定されないが、本実施の形態では、ロボットアーム12のリンク12fの接続面12fa上の点S6aの目標点である。基準軸は、ロボット10のハンド座標系のZh軸、つまり、ロボットアーム12の関節JT6の回転中心軸S6であってもよい。Zh軸の姿勢、つまり、軸S6の姿勢は、基準軸の姿勢の一例である。
【0090】
動作目標点の3次元位置及び姿勢は、ワールド座標系を基準としたワールド座標系のXw軸、Yw軸及びZw軸とハンド座標系のXh軸、Yh軸及びZh軸との関係に基づく位置及びオイラー角を用いて示される。このような動作目標点の3次元位置及び姿勢は、ワールド座標系において、Xw軸要素「xw」、Yw軸要素「yw」及びZw軸要素「zw」、並びに、オイラー角要素「Ow」、「Aw」及び「Tw」を含む。
【0091】
区間動作経路の情報は、動作目標点の1つ前の順序の動作目標点(以下、「直前動作目標点」とも称する)から当該動作目標点までの経路の情報であり、動作目標点と直前動作目標点との間を補間する補間情報である。このような補間情報は、区間動作経路の形状、サイズ及び方向、並びに、区間動作経路でのロボットアーム12の関節JT1~JT6の駆動方向及び駆動量等を含む。経路の形状の例は、直線形状、並びに、弧及びスプライン曲線などの曲線形状等である。経路のサイズは曲線形状の曲率等である。経路の方向は、曲線形状の曲がり方向等である。区間動作経路の情報は「補間モード」とも称される。
【0092】
エンドエフェクタの状態の情報は、エンドエフェクタ11の特定の部位の位置及び姿勢を含む。これに限定されないが、本実施の形態では、上記特定の部位は、エンドエフェクタ11の先端部11bである。先端部11bの位置及び姿勢は、ロボットアーム12のリンク12fの接続面12faに対する位置及び姿勢であってもよい。先端部11bの位置及び姿勢は、ハンド座標系を基準として、ハンド座標系のXh軸、Yh軸及びZh軸とツール座標系のXt軸、Yt軸及びZt軸との関係に基づく位置及びオイラー角を用いて示される。このような先端部11bの位置及び姿勢は、ハンド座標系において、Xh軸要素「xht」、Yh軸要素「yht」及びZh軸要素「zht」、並びに、オイラー角要素「Oht」、「Aht」及び「Tht」を含む。また、エンドエフェクタの状態の情報は、エンドエフェクタ駆動装置11aによって動作させられたエンドエフェクタ11の状態を含んでもよい。エンドエフェクタの状態の情報は、「ツール値」とも称される。
【0093】
ロボット10の位置の情報は、ワールド座標系でのロボット10の3次元位置を含んでもよい。これに限定されないが、本実施の形態では、ロボット10の3次元位置は、ロボット10の軸S1上の交点S1aの3次元位置である。ロボット10の位置の情報は、ワールド座標系でのロボット10の姿勢を含んでもよい。これに限定されないが、本実施の形態では、ロボット10の姿勢は、軸S1の姿勢である。ロボット10の位置の情報は、「ベース値」とも称される。
【0094】
さらに、記憶部20eは、記録目標点情報20ecを含む。記録目標点情報20ecは、目標点記録部20cによって記録された動作目標点の情報である。記録目標点情報20ecは、作業を実行中のロボット10のエンドエフェクタ11が動作目標点へ移動する毎に記録された移動先の動作目標点の情報である。例えば、記録目標点情報20ecは、教示情報20ebに従ってロボット10が動作する場合に目標点記録部20cによって記録された動作目標点の情報を含む。
【0095】
さらに、記憶部20eは原点復帰アプリケーションのアプリケーションプログラム20edを記憶する。本実施の形態では、アプリケーションプログラム20edは、パッケージ化された単体のプログラムであり、インストールされて制御装置20のシステムプログラム20ea上に搭載されることで動作可能になる。アプリケーションプログラム20edは、システムプログラム20ea上で動作する。つまり、原点復帰アプリケーション25は、制御装置20のシステムソフトウェア26上で動作する。アプリケーションプログラム20edは、外部装置60から記憶部20eに送られ記憶されてもよい。このようなアプリケーションプログラム20edは、様々なロボットの制御装置に適用可能であり、汎用性がある。なお、原点復帰のためのプログラムは、システムプログラム20eaに予め組み込まれていてもよい。
【0096】
手動指令生成部20aは、入力装置40から出力される操作情報に対応する動作をロボット10にさせるための手動動作指令を生成し、動作制御部20dに出力する。ロボット10を操作するために入力装置40に入力される情報は、エンドエフェクタ11の位置、姿勢、移動、移動速度及び力等のエンドエフェクタ11の動作及び作用力を指令する情報である。入力装置40は、入力された情報に対応するエンドエフェクタ11の動作及び作用力を示す情報を操作情報として手動指令生成部20aに出力する。
【0097】
ここで、動作指令は、エンドエフェクタ11が対象物に加える力、つまり作業環境に作用させる力を表す力指令と、エンドエフェクタ11の位置を表す位置指令とを含む。力指令は、力の大きさの指令を含み、さらに、力の方向の指令を含んでもよい。さらに、力指令は、力を発生する時刻の指令を含んでもよい。位置指令は、エンドエフェクタ11の位置の指令を含み、さらに、エンドエフェクタ11の姿勢の指令を含んでもよい。さらに、位置指令は、位置及び/又は姿勢を生じる時刻の指令を含んでもよい。
【0098】
また、動作指令は、エンドエフェクタ11のエンドエフェクタ駆動装置11aの駆動及び駆動停止の指令、並びに、搬送装置13の位置指令を含んでもよい。搬送装置13の位置指令は、3次元空間内の搬送装置13の位置及び姿勢のうちの少なくとも搬送装置13の位置を含む。
【0099】
自動指令生成部20bは、教示情報20ebに従ってロボット10に自動で所定の作業をさせるための自動動作指令を生成し、動作制御部20dに出力する。自動指令生成部20bは、入力装置40を介してロボット10に実行させる所定の作業の情報を取得し、当該所定の作業に対応する教示情報20ebを読み込み教示情報20ebに従った自動動作指令を生成する。例えば、自動指令生成部20bは、動作目標点の情報に基づき自動動作指令を生成する。自動動作指令は、動作経路に沿ってロボット10を自動で動作させるための指令であり、手動動作指令と同様に位置指令及び力指令等を含む。
【0100】
さらに、自動指令生成部20bは、ロボット10を原点復帰させるための戻り経路の情報を経路演算部24から受け取ると、当該戻り経路に沿ってロボット10を自動で原点に戻すように動作させるための自動戻り動作指令を生成し、動作制御部20dに出力する。自動戻り動作指令に従って動作するロボット10は実際に対象物に対して作業をしないため、自動戻り動作指令は力指令を含まなくてもよい。
【0101】
動作制御部20dは、手動動作指令、自動動作指令又は自動戻り動作指令に従って、ロボット10の動作を制御する。動作制御部20dは、各動作指令に従ってロボット10の各部を動作させるための指令を生成し、ロボット10に出力する。また、動作制御部20dは、ロボット10からロボット10の各部の動作状態の情報を取得し、当該情報をフィードバック情報として用いて上記指令を生成する。さらに、動作制御部20dは、ロボット10の各部の動作状態の情報からロボット10の各部の位置を検出し、検出結果を目標点記録部20cに出力してもよい。
【0102】
動作制御部20dの駆動制御部20daは、ロボットアーム12のアーム駆動装置M1~M6のサーボモータSMaとエンドエフェクタ11のエンドエフェクタ駆動装置11aのサーボモータSMbとを動作させるための指令を生成する。アーム駆動装置M1~M6及びエンドエフェクタ駆動装置11aはそれぞれ、サーボモータSMa及びSMbの回転子の回転量を検出するエンコーダ等の回転センサ(図示せず)と、サーボモータSMa及びSMbの駆動電流を検出する電流センサ(図示せず)とを備える。さらに、エンドエフェクタ11は、エンドエフェクタ11に作用する力の大きさ及び方向を検出する力センサ(図示せず)を備える。回転センサ、電流センサ及び力センサはそれぞれ、各サーボモータの回転量及び駆動電流値と力センサの検出値とをフィードバック情報として駆動制御部20daに出力する。駆動制御部20daは、各サーボモータの回転量及び駆動電流値並びに力センサの検出値を用いて、各サーボモータの回転開始、回転停止、回転速度及び回転トルクを制御する。
【0103】
さらに、駆動制御部20daは、アーム駆動装置M1~M6の全てのサーボモータSMaの回転量を統合することで、エンドエフェクタ11の3次元位置及び3次元姿勢を算出する。駆動制御部20daは、エンドエフェクタ11の3次元位置、3次元姿勢及び力センサの検出値が動作指令の位置指令及び力指令に対応するように、アーム駆動装置M1~M6及びエンドエフェクタ駆動装置11aのサーボモータSMa及びSMbを駆動させる指令を生成する。
【0104】
また、動作制御部20dの搬送制御部20dbは、搬送装置13の搬送駆動装置13cのサーボモータSMcを動作させるための指令を生成する。搬送駆動装置13cは、サーボモータSMcの回転子の回転量を検出する回転センサ(図示せず)と、サーボモータSMcの駆動電流を検出する電流センサ(図示せず)とを備える。搬送駆動装置13cは、サーボモータSMcの回転量及び駆動電流値をフィードバック情報として搬送制御部20dbに出力する。搬送制御部20dbは、サーボモータSMcの回転量及び駆動電流値を用いてサーボモータSMcを制御する。搬送制御部20dbは、ロボット10の位置が動作指令の位置指令に対応するように、サーボモータSMcを駆動させる指令を生成する。
【0105】
なお、搬送装置13は、GPS(Global Positioning System)受信機及びIMU(慣性計測装置:Inertial Measurement Unit)等の位置計測装置を備えてもよい。搬送制御部20dbは、GPS受信機の受信信号又はIMUによって計測された加速度及び角速度等を用いて、搬送装置13の位置及び姿勢を検出してもよい。また、搬送装置13は、例えば、床面に埋設された電線から微弱な誘導電流を検出する検出装置を備え、搬送制御部20dbは、この検出値に基づき搬送装置13の位置及び姿勢を検出してもよい。
【0106】
目標点記録部20cは、本実施の形態では、原点復帰アプリケーション25がシステムソフトウェア26にインストールされることで生成され機能するようになる機能的構成要素であるが、予めシステムソフトウェア26に組み込まれていてもよい。目標点記録部20cは、ロボット10が作業を実行中、エンドエフェクタ11が動作目標点へ移動する毎に、移動先の動作目標点の情報を記録目標点情報20ecとして記録し、記憶部20eに記憶させる。よって、原点復帰アプリケーション25のアプリケーションプログラム20edは、目標点記録部20cに上記動作目標点の情報を記録させる。動作目標点へ移動するとは、他の動作目標点から当該動作目標点に移ることである。この場合、2つの動作目標点の情報の少なくとも一部が互いに異なっていればよい。例えば、2つの動作目標点の間で、3次元位置が同一であってもよく、姿勢が同一であってもよく、3次元位置及び姿勢が同一であってもよい。
【0107】
また、エンドエフェクタ11が動作目標点へ移動する毎に、移動先の動作目標点の情報を記録することは、エンドエフェクタ11が移動先の動作目標点へ移動し始めた時点からエンドエフェクタ11が移動先の動作目標点に到達した時点までの間のいかなる時点で、移動先の動作目標点の情報を記録することであってもよい。よって、エンドエフェクタ11が未到達の動作目標点の情報が記録される場合が含まれてもよく、エンドエフェクタ11が到達済みの動作目標点の情報が記録される場合が含まれてもよい。本実施の形態では、目標点記録部20cは、エンドエフェクタ11が移動先の動作目標点へ移動し始めた時点で移動先の動作目標点の情報を記録する。
【0108】
本実施の形態では、目標点記録部20cは、入力装置40を介して動作目標点を記録することを指令する記録指令を受け取ると、動作目標点の情報の記録を開始する。このとき、目標点記録部20cは、記録の開始地点である記録原点を決定する。例えば、目標点記録部20cは、記録指令を受け取った時点でのエンドエフェクタ11の位置を記録原点に決定してもよく、当該位置の直前又は直後の動作目標点を記録原点に決定してもよい。目標点記録部20cは、記録原点の情報を記憶部20eに記憶させる。
【0109】
目標点記録部20cは、記録原点の決定後、エンドエフェクタ11が動作目標点へ移動する毎に移動先の動作目標点の情報を記憶部20eに記憶させる。目標点記録部20cは、動作目標点の情報に到達順序を示す情報を付加して記憶部20eに記憶させる。例えば、目標点記録部20cは、第m動作目標点(mは自然数)等の到達順序番号を動作目標点に付加してもよい。
【0110】
なお、目標点記録部20cは、ロボット10の動作中、動作制御部20dからロボット10の各部の位置の情報を取得してもよい。当該位置の情報は、エンドエフェクタ11の3次元位置及び姿勢の情報を含む。目標点記録部20cは、エンドエフェクタ11の3次元位置及び姿勢の情報に基づき、エンドエフェクタ11の動作目標点への移動を検出してもよい。又は、目標点記録部20cは、自動指令生成部20bからエンドエフェクタ11を動作目標点へ移動させる指令を取得し、当該指令に基づきエンドエフェクタ11の当該動作目標点への移動を検出してもよい。
【0111】
原点復帰起動部21は、入力装置40を介してロボット10に原点復帰させることを指令する原点復帰指令を受け取ると、記憶部20eのアプリケーションプログラム20edを読み込み、原点復帰アプリケーション25を起動する。原点復帰起動部21は、原点復帰指令を受け取った時点である復帰指令受取時点でロボット10が動作している場合、停止指令を自動指令生成部20bに出力しロボット10の動作を停止させてもよい。
【0112】
目標点取得部22は、原点復帰アプリケーション25の起動後、エンドエフェクタ11の現在位置を取得する。例えば、エンドエフェクタ11の現在位置は、復帰指令受取時点でのエンドエフェクタ11の位置であってもよく、原点復帰アプリケーション25の起動後の所定のタイミングでのエンドエフェクタ11の位置であってもよい。例えば、目標点取得部22は、動作制御部20dからロボット10の各部の位置の情報を取得し、当該情報に基づきエンドエフェクタ11の現在位置を取得してもよく、目標点記録部20cからエンドエフェクタ11の現在位置を取得してもよい。
【0113】
さらに、目標点取得部22は、記憶部20eの記録目標点情報20ecを探索し、記録原点の情報と、記録原点出発時点から復帰指令受取時点までに記録目標点情報20ecとして記憶された動作目標点の情報とを取得する。当該動作目標点の情報は、エンドエフェクタ11の現在位置よりも前にエンドエフェクタ11が到達済みの動作目標点の情報と、復帰指令受取時点でのエンドエフェクタ11の移動先の動作目標点である移動先動作目標点の情報とを含む。移動先動作目標点は、エンドエフェクタ11が現在位置から最初に到達すべき動作目標点である。
【0114】
戻り目標点決定部23は、ロボット10を原点復帰させるためにエンドエフェクタ11が通過する目標点である戻り目標点を決定する。戻り目標点決定部23は、エンドエフェクタを記録原点に戻すための戻り経路上の点として、戻り目標点を決定する。
【0115】
まず、戻り目標点決定部23は、エンドエフェクタ11の現在位置が動作目標点であるか否かを判定する。戻り目標点決定部23は、目標点取得部22によって取得された動作目標点のそれぞれと現在位置との距離である第1目標点距離を検出する。戻り目標点決定部23は、各動作目標点について、第1目標点距離が第1閾値以内である場合、現在位置が当該動作目標点であると決定し、エンドエフェクタ11の戻り経路の検出を決定する。戻り目標点決定部23は、第1目標点距離が第1閾値超である場合、現在位置が当該動作目標点ではないと決定する。
【0116】
なお、第1目標点距離は、現在位置と動作目標点との間の3次元位置の距離であってもよく、3次元位置の距離及び基準軸の姿勢の距離を含む距離であってもよい。第1閾値は、例えば、エンドエフェクタ11及びロボットアーム12の構成等に応じて予め設定され、記憶部20eに予め記憶されていてもよい。
【0117】
戻り目標点決定部23は、エンドエフェクタ11の現在位置がいずれの動作目標点でもない場合、現在位置がエンドエフェクタ11の動作経路上に位置するか否かを判定する。動作経路上に位置することは、動作経路上だけでなく動作経路の近傍に位置することを含んでもよい。例えば、戻り目標点決定部23は、現在位置と動作経路との距離である離隔距離を検出する。具体的には、戻り目標点決定部23は、現在位置と移動先動作目標点に至る区間動作経路との離隔距離を検出する。当該区間動作経路は、現在位置に対する移動先動作目標点の情報に含まれる区間動作経路である。
【0118】
戻り目標点決定部23は、離隔距離が第2閾値以内である場合、現在位置が動作経路上に位置すると判定し且つ戻り経路の検出を決定し、離隔距離が第2閾値超である場合、現在位置が動作経路上に位置しないと判定し且つ戻り経路の検出を中止する。例えば、離隔距離が第2閾値超である場合、検出された戻り経路上に支障物が存在する可能性があるため、戻り経路の検出が中止される。この場合、戻り目標点決定部23は、ロボットシステム1のユーザにエンドエフェクタ11の周囲の点検を促す報知を提示装置50等を介して行ってもよい。なお、離隔距離は、現在位置の3次元位置と動作経路の3次元位置との距離であってもよい。第2閾値は、例えば、ロボット10の作業環境等に応じて予め設定され、記憶部20eに予め記憶されていてもよい。
【0119】
戻り経路の検出を決定した場合、戻り目標点決定部23は、エンドエフェクタ11を現在位置から最初に戻らせる第1戻り目標点を決定する。戻り目標点決定部23は、現在位置よりも前にエンドエフェクタ11が到達済みの動作目標点の情報の中から、現在位置の直前に到達済みの動作目標点、又は、現在位置に最も近い距離の動作目標点を、第1戻り目標点として決定する。このとき、戻り目標点決定部23は、現在位置での移動先動作目標点の情報を取得する。例えば、戻り目標点決定部23は、移動先動作目標点として第(i+1)動作目標点(iは自然数)の情報を取得する。
【0120】
戻り目標点決定部23は、現在位置の直前に到達済みの動作目標点を第1戻り目標点に決定する場合、第(i+1)動作目標点の直前に到達済みの第i動作目標点を第1戻り目標点に決定する。
【0121】
戻り目標点決定部23は、現在位置に最も近い距離の動作目標点を第1戻り目標点に決定する場合、第1動作目標点~第i動作目標点のうちの現在位置に最も近い距離の動作目標点を第1戻り目標点に決定する。本実施の形態では、現在位置と第1~第i動作目標点との距離は、3次元位置の距離と姿勢の距離とを含む。上述したように、動作目標点及びエンドエフェクタ11の位置は、ワールド座標系で表されるXw軸要素「xw」、Yw軸要素「yw」及びZw軸要素「zw」、並びに、オイラー角要素「Ow」、「Aw」及び「Tw」を含む。3次元位置の距離は、Xw軸要素「xw」、Yw軸要素「yw」及びZw軸要素「zw」を用いて表される距離であり、姿勢の距離は、オイラー角要素「Ow」、「Aw」及び「Tw」を用いて表される距離である。なお、例えば、現在位置と第1~第i動作目標点との距離は3次元位置の距離のみを含んでもよい。
【0122】
戻り目標点決定部23は、2つの動作目標点間の距離が第3閾値以下である場合、当該2つの動作目標点の位置が同じであるとみなす。2つの動作目標点間の距離は、当該2つの動作目標点間の3次元位置の距離であってもよく、3次元位置の距離及び基準軸の姿勢の距離を含む距離であってもよい。第3閾値は、例えば、エンドエフェクタ11及びロボットアーム12の構成等に応じて予め設定され、記憶部20eに予め記憶されていてもよい。第3閾値は、第1閾値と同じであってもよい。また、位置が同じである動作目標点の情報が記憶部20eに予め記憶され、戻り目標点決定部23は記憶部20eから当該情報を取得してもよい。なお、戻り目標点決定部23は、2つの動作目標点間の距離が第3閾値以下であっても、当該2つの動作目標点の位置が同じであるとみなさないように構成されてもよい。
【0123】
また、本実施の形態では、現在位置と第1~第i動作目標点それぞれとの距離は、動作経路に沿って現在位置と第1~第i動作目標点のそれぞれとを結ぶ距離であるが、現在位置と第1~第i動作目標点のそれぞれとを直接的に結ぶ経路の距離であってもよい。例えば、動作経路に沿った現在位置と第i動作目標点との距離は、現在位置と第i動作目標点との間の区間動作経路の全てを通る経路の距離であってもよく、区間動作経路の一部が省略された経路の距離であってもよい。例えば、本実施の形態のように、位置が同じである動作目標点が含まれる場合、これらの動作目標点間の区間動作経路が距離の検出対象から除外されてもよい。例えば、図8において、動作目標点OTP7及びOTP8の間にある現在位置と第4動作目標点OTP4との距離では、動作目標点OTP4~OTP6の区間動作経路の距離が除外されてもよい。
【0124】
戻り目標点決定部23が第1戻り目標点として、現在位置の直前に到達済みの動作目標点と現在位置に最も近い距離の動作目標点とのいずれを選択するかの選択規則は、予め設定されていてもよい。選択規則は、特に限定されないが、例えば、動作経路全体に対して設定されてもよく、区間動作経路に対して個別に設定されてもよく、区間動作経路上でのエンドエフェクタ11の位置に対応して設定されてもよく、移動先動作目標点に対応して設定されてもよく、動作目標点毎に設定されてもよい。
【0125】
戻り目標点決定部23は、第1戻り目標点の候補として複数の動作目標点を検出した場合、最も早くに到達済みの動作目標点を第1戻り目標点に決定する。例えば、戻り目標点決定部23は、検出された複数の動作目標点のうち最も小さい到達順序番号の動作目標点を第1戻り目標点に決定する。
【0126】
次いで、戻り目標点決定部23は、エンドエフェクタ11を第k戻り目標点(kは1以上の自然数)から戻らせる次の戻り目標点である第(k+1)戻り目標点を決定する。第k戻り目標点及び第(k+1)戻り目標点は動作目標点である。戻り目標点決定部23は、第k戻り目標点よりも前にエンドエフェクタ11が到達済みの動作目標点の情報の中から、第k戻り目標点の直前に到達済みの動作目標点、又は、第k戻り目標点に最も近い距離の動作目標点を、第(k+1)戻り目標点として決定する。このとき、戻り目標点決定部23は、第k戻り目標点に対応する第(j+1)動作目標点(jはiよりも小さい自然数)の情報を取得する。
【0127】
戻り目標点決定部23は、第k戻り目標点である第(j+1)動作目標点の直前に到達済みの動作目標点を第(k+1)戻り目標点に決定する場合、第(j+1)動作目標点の直前に到達済みの第j動作目標点を第(k+1)戻り目標点に決定する。
【0128】
戻り目標点決定部23は、第k戻り目標点に対応する第(j+1)動作目標点に最も近い距離の動作目標点を第(k+1)戻り目標点に決定する場合、第1動作目標点~第j動作目標点のうちの第(j+1)動作目標点に最も近い距離の動作目標点を第(k+1)戻り目標点に決定する。本実施の形態では、第(j+1)動作目標点と第1~第j動作目標点との距離である第2目標点距離は、3次元位置の距離と姿勢の距離とを含むが、3次元位置の距離のみを含んでもよい。また、動作目標点それぞれに対応して、第2目標点距離が3次元位置の距離と姿勢の距離とのいずれを含むかが予め設定されていてもよい。
【0129】
また、本実施の形態では、第2目標点距離は、動作経路を通って第(j+1)動作目標点と第1~第j動作目標点のそれぞれとを結ぶ経路の距離であるが、第(j+1)動作目標点と第1~第j動作目標点のそれぞれとを直接的に結ぶ経路の距離であってもよい。動作経路に沿った第2目標点距離は、第1戻り目標点の場合と同様に、2つの動作目標点間の区間動作経路の一部が除外された経路の距離となり得るが、区間動作経路の全てを通る経路の距離であってもよい。戻り目標点決定部23は、2つの動作目標点間の距離が第3閾値以下である場合、当該2つの動作目標点の位置が同じであるとみなす。
【0130】
戻り目標点決定部23が第(k+1)戻り目標点として、第k戻り目標点の直前に到達済みの動作目標点と第k戻り目標点に最も近い距離の動作目標点とのいずれを選択するかの選択規則は、第1戻り目標点の場合と同様に、予め設定されていてもよい。
【0131】
また、戻り目標点決定部23は、第(k+1)戻り目標点の候補として複数の動作目標点を検出した場合、最も早くに到達済みの動作目標点を第(k+1)戻り目標点に決定する。
【0132】
戻り目標点決定部23は、第(k+1)戻り目標点が記録原点に到達するまで、第k戻り目標点から第(k+1)戻り目標点を検出する処理を繰り返す。これにより、エンドエフェクタ11を記録原点に戻すためにエンドエフェクタ11が通るべき全ての戻り目標点、例えば、第1戻り目標点~第(n+1)戻り目標点(nは1以上の自然数)が検出される。
【0133】
経路演算部24は、戻り目標点決定部23によって検出された全ての戻り目標点の情報を用いて、戻り経路を演算する。経路演算部24は、エンドエフェクタ11を現在位置から第1戻り目標点~第(n+1)戻り目標点を順次経由して記録原点に戻すための情報を演算する。
【0134】
例えば、経路演算部24は、エンドエフェクタ11を第k戻り目標点から第(k+1)戻り目標点に移動させるための情報を演算する。この場合、経路演算部24は、第(k+1)戻り目標点の位置をエンドエフェクタ11の目標の位置とする。本実施の形態では、第(k+1)戻り目標点の位置は、3次元位置及び姿勢を含む。
【0135】
さらに、経路演算部24は、第k戻り目標点に対応する第(j+1)動作目標点の情報に含まれる区間動作経路の逆向きの経路を、第(k+1)戻り目標点に至るエンドエフェクタ11の目標の動作経路とする。上記区間動作経路は、第j動作目標点から第(j+1)動作目標点に至る区間動作経路である。経路演算部24は、第(j+1)動作目標点の補間モードを逆向きに進む補間モードを、第k戻り目標点から第(k+1)戻り目標点に至る補間モードに決定する。
【0136】
さらに、経路演算部24は、第k戻り目標点に対応する動作目標点の情報に含まれるエンドエフェクタ11の状態を、第(k+1)戻り目標点でのエンドエフェクタ11の目標の状態とする。経路演算部24は、第k戻り目標点に対応する動作目標点のツール値を、第(k+1)戻り目標点でのエンドエフェクタ11の目標のツール値に決定する。
【0137】
さらに、経路演算部24は、第(k+1)戻り目標点に対応する動作目標点の情報に含まれるロボット10の位置をロボット10の目標の位置とする。経路演算部24は、第(k+1)戻り目標点に対応する動作目標点のベース値を、第(k+1)戻り目標点でのロボット10の目標のベース値に決定する。
【0138】
経路演算部24は、第(k+1)戻り目標点が記録原点に到達するまで、エンドエフェクタ11を第k戻り目標点から第(k+1)戻り目標点に移動させるための情報の演算処理を繰り返す。
【0139】
なお、経路演算部24は、エンドエフェクタ11を現在位置から第1戻り目標点に移動させるための情報も上記と同様に演算する。この場合、経路演算部24は、第1戻り目標点の位置をエンドエフェクタ11の目標の位置とする。経路演算部24は、復帰指令受取時点でのエンドエフェクタ11の移動先動作目標点の情報に含まれる区間動作経路の逆向きの経路を、第1戻り目標点に至るエンドエフェクタ11の目標の動作経路とする。つまり、経路演算部24は、移動先動作目標点の補間モードを逆向きに進む補間モードを、現在位置から第1戻り目標点に至る補間モードに決定する。
【0140】
さらに、経路演算部24は、復帰指令受取時点での移動先動作目標点の情報に含まれるエンドエフェクタ11の状態を、第1戻り目標点でのエンドエフェクタ11の目標の状態とする。つまり、経路演算部24は、移動先動作目標点のツール値を、第1戻り目標点での目標のツール値に決定する。さらに、経路演算部24は、第1戻り目標点に対応する動作目標点の情報に含まれるロボット10の位置をロボット10の目標の位置とし、つまり、第1戻り目標点に対応する動作目標点のベース値を、第1戻り目標点でのロボット10の目標のベース値に決定する。
【0141】
このように、経路演算部24は、エンドエフェクタ11を現在位置から第1戻り目標点~第(n+1)戻り目標点を順次経由して記録原点に戻すための情報である戻り経路の情報を演算する。
【0142】
[ロボットシステムの動作]
実施の形態に係るロボットシステム1の動作を図8を例示しつつ説明する。図9A図9Cは、実施の形態に係るロボットシステム1の動作の一例を示すフローチャートである。図9A図9Cに示すように、まず、ステップS101において、制御装置20のシステムソフトウェア26は、ユーザによる入力装置40への入力を介して、教示済みの所定の作業を実行する指令である作業実行指令を受け取る。
【0143】
次いで、ステップS102において、システムソフトウェア26は、記憶部20eに記憶された教示情報20ebを探索し当該所定の作業の教示情報を読み込み、ロボット10に、当該教示情報に従った作業、つまり教示作業を実行させる。ロボット10は、エンドエフェクタ11を動作目標点に順次移動させつつ作業を行う。
【0144】
ステップS103において、システムソフトウェア26は、ユーザによる入力装置40への入力を介して記録指令を受け取る。記録指令は、エンドエフェクタ11が動作目標点へ移動する毎に、移動先の動作目標点を記録することを指令する。次いで、ステップS104において、システムソフトウェア26は、記録の開始地点である記録原点を決定する。さらに、ステップS105において、システムソフトウェア26は、記録原点以降の移動先の動作目標点の情報を記憶部20eに記録する。
【0145】
ステップS106において、システムソフトウェア26は、ユーザによる入力装置40への入力を介して原点復帰指令を受け取る。例えば、支障物等と接触することによりロボット10が停止する、又は、ロボット10の位置が大きく変化する等のロボット10の動作に異常が生じた場合などに、ユーザが原点復帰指令を入力装置40に入力する。
【0146】
次いで、ステップS107において、システムソフトウェア26は、原点復帰アプリケーション25を起動する。このとき、システムソフトウェア26は、動作中であれば、ロボット10を停止させてもよい。さらに、ステップS108において、原点復帰アプリケーション25はエンドエフェクタ11の現在位置を取得する。図8の例では、エンドエフェクタ11は、第7動作目標点OTP7と第8動作目標点OTP8との間に位置する。
【0147】
さらに、ステップS109において、原点復帰アプリケーション25は、記憶部20eの記録目標点情報20ecを探索し、記録原点の情報と、記録原点出発時点から復帰指令受取時点までに記録された動作目標点の情報とを取得する。図8の例では、原点復帰アプリケーション25は、第1動作目標点OTP1~第8動作目標点OTP8の情報を取得する。
【0148】
次いで、ステップS110において、原点復帰アプリケーション25は、取得された動作目標点それぞれとエンドエフェクタ11の現在位置との第1目標点距離を検出し、第1目標点距離が第1閾値以下である動作目標点が存在するか否かを判定する。原点復帰アプリケーション25は、存在する場合(ステップS110でYes)にステップS111に進み、存在しない場合(ステップS110でNo)にステップS115に進む。
【0149】
ステップS111において、原点復帰アプリケーション25は、エンドエフェクタ11の現在位置が動作目標点であると決定し、戻り経路の検出実行を決定する。
【0150】
次いで、ステップS112において、原点復帰アプリケーション25は、エンドエフェクタ11の現在位置の動作目標点である現在位置動作目標点に設定されている戻り目標点が、直前に到達済みの動作目標点であるか否かを判定する。原点復帰アプリケーション25は、直前に到達済みの動作目標点である場合(ステップS112でYes)にステップS113に進み、直前に到達済みの動作目標点でない場合(ステップS112でNo)にステップS114に進む。
【0151】
ステップS113において、原点復帰アプリケーション25は、現在位置動作目標点の直前に到達済みの動作目標点の情報を検出し、当該目標点をエンドエフェクタ11の第1戻り目標点に決定し、ステップS121に進む。
【0152】
ステップS114において、原点復帰アプリケーション25は、現在位置動作目標点よりも前に到達済みの動作目標点の情報の中から、現在位置動作目標点に最も近い距離の動作目標点の情報を検出し第1戻り目標点に決定する。なお、複数の動作目標点が検出された場合、原点復帰アプリケーション25は、複数の動作目標点の中から、エンドエフェクタ11が最も早くに到達した動作目標点を第1戻り目標点に決定する。つまり、原点復帰アプリケーション25は、複数の動作目標点の中から、最も小さい到達順序番号の動作目標点を第1戻り目標点に決定し、ステップS121に進む。
【0153】
また、ステップS115において、原点復帰アプリケーション25は、エンドエフェクタ11の現在位置とエンドエフェクタ11の動作経路との離隔距離が第2閾値以内である否かを判定する。原点復帰アプリケーション25は、現在位置と移動先動作目標点に至る区間動作経路との離隔距離を判定する。図8の例では、エンドエフェクタ11の現在位置と、第7動作目標点OTP7と第8動作目標点OTP8との間の区間動作経路との離隔距離が判定される。
【0154】
第2閾値以内である場合(ステップS115でYes)、原点復帰アプリケーション2520は、戻り経路の検出実行を決定し、ステップS118に進む(ステップS116)。第2閾値超である場合(ステップS115でNo)、原点復帰アプリケーション25は、戻り経路の検出の中止を決定し、エンドエフェクタ11の周囲の点検を促す報知等を提示装置50を介してユーザに提示する(ステップS117)。図8の例では、離隔距離は第2閾値以内である。
【0155】
次いで、ステップS118において、原点復帰アプリケーション25は、現在位置の移動先動作目標点に設定されている戻り目標点が、直前に到達済みの動作目標点であるか否かを判定する。原点復帰アプリケーション25は、直前に到達済みの動作目標点である場合(ステップS118でYes)にステップS119に進み、直前に到達済みの動作目標点でない場合(ステップS118でNo)にステップS120に進む。
【0156】
ステップS119において、原点復帰アプリケーション25は、現在位置の直前に到達済みの動作目標点の情報を検出し、当該動作目標点を第1戻り目標点に決定し、ステップS121に進む。
【0157】
ステップS120において、原点復帰アプリケーション25は、現在位置よりも前にエンドエフェクタ11が到達済みの動作目標点の情報の中から、現在位置に最も近い距離の動作目標点の情報を検出し第1戻り目標点に決定する。なお、複数の動作目標点が検出された場合、原点復帰アプリケーション25は、複数の動作目標点の中から、エンドエフェクタ11が最も早くに到達した動作目標点を第1戻り目標点に決定し、ステップS121に進む。図8の例では、原点復帰アプリケーション25は、現在位置に最も近い距離の第7動作目標点OTP7を第1戻り目標点に決定する。
【0158】
次いで、ステップS121において、原点復帰アプリケーション25は、第k戻り目標点(kは1以上の自然数)に対応する動作目標点に設定されている戻り目標点が、直前に到達済みの動作目標点であるか否かを判定する。原点復帰アプリケーション25は、直前に到達済みの動作目標点である場合(ステップS121でYes)にステップS122に進み、直前に到達済みの動作目標点でない場合(ステップS121でNo)にステップS123に進む。
【0159】
ステップS122において、原点復帰アプリケーション25は、第k戻り目標点の直前に到達済みの動作目標点の情報を検出し、当該目標点を第(k+1)戻り目標点に決定し、ステップS124に進む。
【0160】
ステップS123において、原点復帰アプリケーション25は、第k戻り目標点よりも前に到達済みの動作目標点の情報の中から、第k戻り目標点に最も近い距離の動作目標点の情報を検出し第(k+1)戻り目標点に決定する。なお、複数の動作目標点が検出された場合、原点復帰アプリケーション25は、複数の動作目標点の中から、エンドエフェクタ11が最も早くに到達した動作目標点を第(k+1)戻り目標点に決定し、ステップS124に進む。図8の例では、原点復帰アプリケーション25は、例えば、第1戻り目標点である第7動作目標点OTP7に最も近い距離の第4動作目標点OTP4及び第6動作目標点OTP6のうち、第4動作目標点OTP4を第2戻り目標点に決定する。
【0161】
ステップS124において、原点復帰アプリケーション25は、第(k+1)戻り目標点が記録原点に到達しているか否かを判定する。記録原点に到達するとは、第(k+1)戻り目標点が記録原点と一致する場合、第(k+1)戻り目標点と第k戻り目標点との間の区間戻り経路が記録原点を通過する場合、及び、第(k+1)戻り目標点が記録原点よりも前にエンドエフェクタ11が通過した動作目標点と一致する場合等を含む。原点復帰アプリケーション25は、記録原点に到達済みの場合(ステップS124でYes)にステップS125に進み、記録原点に未到達の場合(ステップS124でNo)に次の戻り目標点を検出するためにステップS121に戻る。
【0162】
ステップS125において、原点復帰アプリケーション25は、全ての戻り目標点を経由してエンドエフェクタ11を現在位置から記録原点に戻すための情報である戻り経路の情報を演算する。
【0163】
次いで、ステップS126において、システムソフトウェア26は、戻り経路の情報に従ってロボット10を制御することにより、ロボット10に原点復帰させる。
【0164】
上述したように、制御装置20は、原点復帰アプリケーション25によってステップS121~S124の処理を繰り返しつつステップS101~S126の処理を実行することによって、ロボット10を自動で原点復帰させる。
【0165】
なお、原点復帰アプリケーション25は、ステップS110の処理を含まず、エンドエフェクタ11の現在位置が動作目標点であるか否かの判定を実行しないように構成されてもよい。この場合、原点復帰アプリケーション25は、第1目標点距離の検出及び判定を実行せずに、ステップS109の次にステップS115の処理を実行するように構成されてもよい。
【0166】
(その他の実施の形態)
以上、本発明の実施の形態の例について説明したが、本発明は、上記実施の形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。例えば、各種変形を実施の形態に施したもの、及び、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【0167】
例えば、実施の形態に係る制御装置20は、全ての戻り目標点及び全ての区間戻り経路を検出し戻り経路全体を決定した後に、ロボット10を動作させてエンドエフェクタ11を原点復帰させていたが、これに限定されない。例えば、制御装置20は、戻り目標点を検出する毎に、当該戻り目標点に至る区間戻り経路に沿ってエンドエフェクタ11を移動させるようにロボット10を制御してもよい。
【0168】
また、本発明は、制御方法であってもよい。例えば、本発明の一態様に係る制御方法は、エンドエフェクタを動作経路上の複数の動作目標点に順次移動させる動作を行うロボットの制御方法であって、前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録し、前記動作経路の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定し、前記戻り経路に沿って前記エンドエフェクタを移動させる。このような制御方法は、CPU、LSIなどの回路、ICカード又は単体のモジュール等によって、実現されてもよい。
【0169】
また、本発明は、プログラムであってもよく、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。例えば、本発明の一態様に係るプログラムは、コンピュータに実行させるプログラムであって、ロボットがエンドエフェクタを動作経路上の複数の動作目標点に順次移動させる過程で前記エンドエフェクタが前記動作目標点へ移動する毎に、移動先の前記動作目標点の情報を記録させ、前記動作目標点の原点へ前記エンドエフェクタを戻す原点復帰指令を受け付けると、前記エンドエフェクタの現在位置を取得し、前記現在位置よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記現在位置の直前に到達済みの前記動作目標点、又は、前記現在位置に最も近い距離の前記動作目標点である、第1戻り目標点の情報を、前記エンドエフェクタを前記原点に戻すための戻り経路上の点の情報として検出し、第k戻り目標点よりも前に前記エンドエフェクタが到達済みの前記動作目標点の情報の中から、前記第k戻り目標点の直前に到達済みの前記動作目標点、又は、前記第k戻り目標点に最も近い距離の前記動作目標点である、第(k+1)戻り目標点の情報を前記戻り経路上の点の情報として検出し、ここで、kは1~nの自然数であり、nは1以上の自然数であり、前記第(k+1)戻り目標点の情報の検出を繰り返すことで、第2戻り目標点~第(n+1)戻り目標点の情報を検出し、前記第1戻り目標点~前記第(n+1)戻り目標点をこの順で通って前記原点に戻る前記戻り経路を決定する。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0170】
また、上記で用いた序数、数量等の数字は、全て本発明の技術を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。また、構成要素間の接続関係は、本発明の技術を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
【0171】
また、機能ブロック図におけるブロックの分割は一例であり、複数のブロックを一つのブロックとして実現する、一つのブロックを複数に分割する、及び/又は、一部の機能を他のブロックに移してもよい。また、類似する機能を有する複数のブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【符号の説明】
【0172】
1 ロボットシステム
10 ロボット
11 エンドエフェクタ
12 ロボットアーム
20 制御装置
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C