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

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

▶ ローレルバンクマシン株式会社の特許一覧 ▶ ローレル機械株式会社の特許一覧 ▶ ローレル精機株式会社の特許一覧

特開2025-5106ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム
<>
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図1
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図2
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図3
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図4
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図5
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図6
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図7
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図8
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図9
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図10
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図11
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図12
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図13
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図14
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図15
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図16
  • 特開-ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025005106
(43)【公開日】2025-01-16
(54)【発明の名称】ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステム
(51)【国際特許分類】
   B25J 9/06 20060101AFI20250108BHJP
【FI】
B25J9/06 B
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023105130
(22)【出願日】2023-06-27
(71)【出願人】
【識別番号】000116079
【氏名又は名称】ローレルバンクマシン株式会社
(71)【出願人】
【識別番号】500267170
【氏名又は名称】ローレル機械株式会社
(71)【出願人】
【識別番号】500265501
【氏名又は名称】ローレル精機株式会社
(74)【代理人】
【識別番号】110003177
【氏名又は名称】弁理士法人旺知国際特許事務所
(72)【発明者】
【氏名】繁田 知秀
(72)【発明者】
【氏名】中西 秀行
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707BS14
3C707LV15
3C707MT02
3C707MT04
(57)【要約】
【課題】ロボットの制御が複雑になることを抑制する。
【解決手段】複数の関節機構JEを有するロボット10に所定の動作を実行させるロボット制御方法では、複数の関節機構JEは、リンクLK1を回転させる関節機構JEr2とリンクLK2をリンクLK1に対して回転させる関節機構JEr3と先端部TP1をリンクLK2に対して回転させる関節機構JEr4と関節機構JEr3をリンクLK1に対して相対的に移動させる関節機構JEp1とリンクLK2を関節機構JEr3に対して相対的に移動させる関節機構JEp2とを含み、所定の動作は、物品に対して加工を行う場合の所定の位置まで先端部TP1を移動させる第1動作と、先端部TP1が所定の位置に移動した後に実行され、物品に対して加工を行う第2動作とを含み、第2動作で、複数の関節機構JEのうちの関節機構JEr2、JEr3及びJEr4が駆動しないように、複数の関節機構JEを制御する。
【選択図】図6
【特許請求の範囲】
【請求項1】
基部、先端部、第1リンク、第2リンク及び複数の関節を備えた多関節ロボットに所定の動作を実行させるロボット制御方法であって、
前記複数の関節は、
前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、
前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、
前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、
前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、
前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、
を含み、
前記所定の動作は、
物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、
前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、
を含み、
前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する、
ことを特徴とするロボット制御方法。
【請求項2】
前記基部は、
前記底面に垂直な方向とのなす角度が所定角度以下の軸を第4回転軸として、前記基部の少なくとも一部分を回転させる第4回転関節を有し、
前記先端部は、
前記第2リンクに接続される第1部分と、
前記第1部分に接続される第2部分と、
前記第1部分と前記第2部分とを接続し、前記第4回転軸とのなす角度が前記所定角度より大きい軸を第5回転軸として、前記第2部分を前記第1部分に対して回転させる第5回転関節と、
前記第5回転軸とのなす角度が前記所定角度より大きい軸を第6回転軸として、前記先端部のうちエンドエフェクタが取り付けられる部分を回転させる第6回転関節と、
を有し、
前記複数の関節は、
前記第4回転関節、前記第5回転関節及び前記第6回転関節をさらに含む、
ことを特徴とする請求項1に記載のロボット制御方法。
【請求項3】
前記第2動作において、前記複数の関節のうちの前記第1直動関節及び前記第2直動関節のみが駆動するように、前記複数の関節を制御する、
ことを特徴とする請求項1に記載のロボット制御方法。
【請求項4】
基部、先端部、第1リンク、第2リンク及び複数の関節を備えた多関節ロボットに所定の動作を教示するロボット教示方法であって、
前記複数の関節は、
前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、
前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、
前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、
前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、
前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、
を含み、
前記所定の動作は、
物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、
前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、
を含み、
前記複数の関節のうちの少なくとも1個の関節が駆動対象の関節として対応付けられた複数の駆動モードの中から、前記第1回転関節、前記第2回転関節及び前記第3回転関節が前記駆動対象の関節として対応付けられていない特定の駆動モードを選択し、前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように前記複数の関節を制御することにより、前記第2動作を教示する、
ことを特徴とするロボット教示方法。
【請求項5】
前記特定の駆動モードは、前記複数の関節のうち、前記第1直動関節及び前記第2直動関節のみが、前記駆動対象の関節として対応付けられている、
ことを特徴とする請求項4に記載のロボット教示方法。
【請求項6】
前記第1動作及び前記第2動作の教示において、前記複数の駆動モードの中から選択された駆動モードに基づいて特定される前記駆動対象の関節の変位量を計算する逆運動学計算を含む算出処理を実行することにより、前記多関節ロボットを目的の状態にする前記複数の関節の各々の状態に関する関節値を算出し、
前記複数の関節の中に、前記駆動対象の関節以外の関節である固定対象の関節が存在する場合、前記算出処理において算出される前記固定対象の関節の前記関節値を実質的に変位させない固定処理を実行する、
ことを特徴とする請求項4に記載のロボット教示方法。
【請求項7】
前記算出処理において、ヤコビ行列を用いて前記逆運動学計算を実行し、
前記固定処理において、前記ヤコビ行列の複数の要素のうち、前記固定対象の関節に係る要素の値を実質的に0に設定することにより、前記固定対象の関節の前記関節値を変位させない、
ことを特徴とする請求項6に記載のロボット教示方法。
【請求項8】
基部、先端部、第1リンク、第2リンク及び複数の関節を有する多関節ロボットと、前記多関節ロボットの動作を制御する制御装置とを備えたロボットシステムにより、物品を加工する加工方法であって、
前記複数の関節は、
前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、
前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、
前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、
前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、
前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、
を含み、
前記制御装置は、
前記物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含む所定の動作を前記多関節ロボットに実行させ、
前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する、
ことを特徴とする加工方法。
【請求項9】
前記制御装置は、
前記第2動作において、前記複数の関節のうちの前記第1直動関節及び前記第2直動関節のみが駆動するように前記複数の関節を制御することにより、前記先端部を特定方向に沿って往復移動させる往復動作を繰り返す繰り返し加工を実行する、
ことを特徴とする請求項8に記載の加工方法。
【請求項10】
前記基部は、
前記底面に垂直な方向とのなす角度が所定角度以下の軸を第4回転軸として、前記基部の少なくとも一部分を回転させる第4回転関節を有し、
前記先端部は、
前記第2リンクに接続される第1部分と、
前記第1部分に接続される第2部分と、
前記第1部分と前記第2部分とを接続し、前記第4回転軸とのなす角度が前記所定角度より大きい軸を第5回転軸として、前記第2部分を前記第1部分に対して回転させる第5回転関節と、
前記第5回転軸とのなす角度が前記所定角度より大きい軸を第6回転軸として、前記先端部のうちエンドエフェクタが取り付けられる部分を回転させる第6回転関節と、
を有し、
前記複数の関節は、
前記第4回転関節、前記第5回転関節及び前記第6回転関節をさらに含み、
前記制御装置は、
前記第2動作において、前記複数の関節のうち、前記第1直動関節及び前記第2直動関節の一方と前記第6回転関節のみが駆動するように前記複数の関節を制御することにより、前記物品に対する加工として、前記物品に対するねじ締めを実行する、
ことを特徴とする請求項8に記載の加工方法。
【請求項11】
基部、先端部、第1リンク、第2リンク及び複数の関節を有する多関節ロボットと、
前記多関節ロボットの動作を制御する制御装置と、
を備え、
前記複数の関節は、
前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、
前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、
前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、
前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、
前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、
を含み、
前記制御装置は、
物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含む所定の動作を前記多関節ロボットに実行させ、
前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する、
ことを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御方法、ロボット教示方法、加工方法、及び、ロボットシステムに関する。
【背景技術】
【0002】
人と同様の動作を行うロボットとして、多関節ロボットが知られている(例えば、特許文献1参照)。多関節ロボットは、物品の搬送及び組立のみではなく、物品の溶接、研削、研磨及びレーザ加工等の様々な用途に用いられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開昭61-136782号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、物品の一般的な加工作業は、ロボット先端部の直線的な動作、もしくは平面的な動作により実現されることも多い。例えば、加工工具を保持したロボットを動作させることで物品の研削及び研磨を行う場合、1方向の単純な直線的な動作の繰り返しが多く、加工高さや位置を変更しながら行う場合でも2方向の動作があれば十分なケースが多い。また、平板外周部の溶接や、平板の外周部への接着剤の塗布などの場合、ロボット先端部の加工動作は、平板の外周に沿って動作することが必要となる。従って、ロボット先端部は交差する2方向に動作することが必要となる。しかしながら、従来の多関節ロボットでは、所定の軸に沿う方向、又は、所定の軸と交差する他の軸に沿う方向への直線的な移動を行う場合でも、3つ以上の複数の関節によりロボット先端部の位置を移動させる必要がある。このため、従来の多関節ロボットでは、単純な加工を行う場合においても、ロボットの制御が複雑になるため、加工精度の高精度化及び加工速度の高速化の障害となっていた。
【課題を解決するための手段】
【0005】
本発明の好適な態様に係る多関節ロボットの制御方法は、基部、先端部、第1リンク、第2リンク及び複数の関節を備えた多関節ロボットに所定の動作を実行させるロボット制御方法であって、前記複数の関節は、前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、を含み、前記所定の動作は、物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含み、前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する。
【0006】
本発明の好適な態様に係る多関節ロボットの教示方法は、基部、先端部、第1リンク、第2リンク及び複数の関節を備えた多関節ロボットに所定の動作を教示するロボット教示方法であって、前記複数の関節は、前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、を含み、前記所定の動作は、物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含み、前記複数の関節のうちの少なくとも1個の関節が駆動対象の関節として対応付けられた複数の駆動モードの中から、前記第1回転関節、前記第2回転関節及び前記第3回転関節が前記駆動対象の関節として対応付けられていない特定の駆動モードを選択し、前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように前記複数の関節を制御することにより、前記第2動作を教示する。
【0007】
本発明の好適な態様に係る加工方法は、基部、先端部、第1リンク、第2リンク及び複数の関節を有する多関節ロボットと、前記多関節ロボットの動作を制御する制御装置とを備えたロボットシステムにより、物品を加工する加工方法であって、前記複数の関節は、前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、を含み、前記制御装置は、前記物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含む所定の動作を前記多関節ロボットに実行させ、前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する。
【0008】
本発明の好適な態様に係るロボットシステムは、基部、先端部、第1リンク、第2リンク及び複数の関節を有する多関節ロボットと、前記多関節ロボットの動作を制御する制御装置と、を備え、前記複数の関節は、前記基部と前記第1リンクとを接続し、前記基部の底面に垂直な方向とのなす角度が所定の角度より大きい軸を第1回転軸として前記第1リンクを回転させる第1回転関節と、前記第1リンクと前記第2リンクとを接続し、前記第1リンクが延在する第1方向とのなす角度が前記所定の角度より大きい軸を第2回転軸として前記第2リンクを前記第1リンクに対して回転させる第2回転関節と、前記第2リンクと前記先端部とを接続し、前記第2リンクが延在する第2方向とのなす角度が前記所定の角度より大きい軸を第3回転軸として、前記先端部を前記第2リンクに対して回転させる第3回転関節と、前記第1方向に沿って、前記第2回転関節を前記第1リンクに対して相対的に移動させる第1直動関節と、前記第2方向に沿って、前記第2リンクを前記第2回転関節に対して相対的に移動させる第2直動関節と、を含み、前記制御装置は、物品に対して加工を行う場合の基準位置まで前記先端部を移動させる第1動作と、前記先端部が前記基準位置に移動した後に実行され、前記物品に対して加工を行う第2動作と、を含む所定の動作を前記多関節ロボットに実行させ、前記第2動作において、前記複数の関節のうちの前記第1回転関節、前記第2回転関節及び前記第3回転関節が駆動しないように、前記複数の関節を制御する。
【発明の効果】
【0009】
本発明によれば、ロボットの制御が複雑になることを抑制することができる。
【図面の簡単な説明】
【0010】
図1】実施形態に係るロボットシステムの概要を説明するための説明図である。
図2】関節機構の一例を説明するための説明図である。
図3図1に示したロボットコントローラのハードウェア構成の一例を示す図である。
図4】ロボットの駆動モードの一例を説明するための説明図である。
図5】操作画面の一例を説明するための説明図である。
図6図1に示したロボットコントローラの動作の一例を示すフローチャートである。
図7図6に示した関節値更新処理の一例を示すフローチャートである。
図8】ロボットシステムの動作の一例を説明するための説明図である。
図9図8に示したロボットシステムの動作の続きの動作を説明するための説明図である。
図10】6軸多関節のロボットの動作の一例を説明するための説明図である。
図11図10に示したロボットの動作の続きの動作を説明するための説明図である。
図12】ロボットシステムの動作の別の例を説明するための説明図である。
図13図12に示したロボットシステムの動作の続きの動作を説明するための説明図である。
図14】6軸多関節のロボットの動作の別の例を説明するための説明図である。
図15図14に示したロボットの動作の続きの動作を説明するための説明図である。
図16】第1変形例に係る先端部の一例を説明するための説明図である。
図17】旋回の一例を説明するための説明図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を参照して説明する。なお、各図において、各部の寸法及び縮尺は、実際のものと適宜に異ならせてある。また、以下に述べる実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。
【0012】
[1.実施形態]
先ず、図1を参照しながら、実施形態に係るロボットシステム1の概要の一例について説明する。
【0013】
図1は、実施形態に係るロボットシステム1の概要を説明するための説明図である。
【0014】
なお、以下では、説明の便宜上、ロボット10のベース座標系として、現実空間に固定された基準座標系Σ0を導入する。例えば、基準座標系Σ0は、後述するロボット10の底面BDPbtの中心に原点を有し、互いに直交するX軸、Y軸、及び、Z軸を有する3軸の直交座標系である。
【0015】
ロボットシステム1は、例えば、ロボット10と、ロボット10に着脱可能に取り付けられるエンドエフェクタ20と、ロボット10及びエンドエフェクタ20の動作を制御するロボットコントローラ30とを有する。ロボット10は、「多関節ロボット」の一例であり、ロボットコントローラ30は、「制御装置」の一例である。
【0016】
ロボット10及びロボットコントローラ30は、例えば、有線を用いた接続により、互いに通信可能に接続されている。なお、ロボット10とロボットコントローラ30との接続は、無線を用いた接続であってもよいし、有線及び無線の両方を用いた接続であってもよい。また、ロボットコントローラ30は、ロボット10に取り付けられたエンドエフェクタ20と通信可能である。ロボットコントローラ30としては、他の装置と通信可能な任意の情報処理装置を採用することができる。なお、ロボットコントローラ30の構成は、後述する図3において説明される。
【0017】
ロボット10は、例えば、農場、工場及び倉庫等での作業に用いられる多関節ロボットである。本実施形態では、ロボット10が物品の加工に用い場合を想定する。
【0018】
例えば、ロボット10は、回転関節に対応する6個の関節機構JEr(JEr1、JEr2、JEr3、JEr4、JEr5及びJEr6)を有する6軸多関節ロボットに、直動関節に対応する2個の関節機構JEp(JEp1及びJEp2)を追加した8軸多関節ロボットである。例えば、ロボット10は、6個の関節機構JErと、2個の関節機構JEpと、ボディ部BDPと、2つのリンクLK(LK1及びLK2)と、先端部TP1とを有する。なお、図1に示す例では、関節機構JEr1は、ボディ部BDPに含まれ、関節機構JEr5及びJEr6は、先端部TP1に含まれる。また、関節機構JEp1は、リンクLK1に設けられ、関節機構JEp2は、リンクLK2に設けられる。以下では、関節機構JEr及びJEpは、特に区別せずに、関節機構JEとも称される。例えば、ロボット10は、複数の関節機構JEを駆動する複数のモータMO(図2参照)をさらに有する。図1では、図を見やすくするために、複数の関節機構JEを駆動する複数のモータMO、複数のモータMOの各々に設けられる減速機及びエンコーダ等の記載を省略している。なお、複数の関節機構JEは、「複数の関節」の一例である。
【0019】
ボディ部BDPは、「基部」の一例である。また、リンクLK1は、「第1リンク」の一例であり、リンクLK2は、「第2リンク」の一例である。従って、リンクLK1及びLK2は、複数のリンクLKに該当する。例えば、リンクLK1及びLK2は、ボディ部BDPと先端部TP1とを接続する。
【0020】
ここで、例えば、部材の接続は、2つの部材が直接的に接続される場合と、2つの部材が間接的に接続される場合との両方を含む。2つの部材が直接的に接続されるとは、2つの部材が互いに接触する状態、及び、2つの部材が互いに接触する状態と同視できる状態を含む。2つの部材が互いに接触する状態と同視できる状態とは、例えば、2つの部材の一方が他方に接着剤等により固定される状態である。また、2つの部材が間接的に接続されるとは、2つの部材の間に他の部材が配置されることを意味する。
【0021】
関節機構JEr1は、「第4回転関節」の一例であり、関節機構JEr2は、「第1回転関節」の一例である。関節機構JEr3は、「第2回転関節」の一例であり、関節機構JEr4は、「第3回転関節」の一例である。また、関節機構JEr5は、「第5回転関節」の一例であり、関節機構JEr6は、「第6回転関節」の一例である。また、関節機構JEp1は、「第1直動関節」の一例であり、関節機構JEp2は、「第2直動関節」の一例である。
【0022】
ボディ部BDPは、例えば、床等の所定の場所に固定される土台部BDPbaと、関節機構JEr2に接続される関節機構JEr1とを含む。関節機構JEr1は、ボディ部BDPの底面BDPbtに垂直な軸Ax1を回転軸として、ボディ部BDPの一部分を回転させる。例えば、関節機構JEr1は、関節機構JEr1のうち、関節機構JEr2と接続される部分を含む外壁を、軸Ax1を回転軸として土台部BDPbaに対して回転させる。すなわち、関節機構JEr1は、軸Ax1を回転軸として、関節機構JEr2をボディ部BDPに対して回転させる。なお、軸Ax1は、「第4回転軸」の一例である。
【0023】
ここで、「垂直」は、厳密な垂直だけではなく、実質的な垂直(例えば、誤差範囲内の垂直)も含む。同様に、後述する「平行」は、厳密な平行だけではなく、実質的な平行(例えば、誤差範囲内の平行)も含む。図1の回転方向Dr1は、ボディ部BDPの一部分が軸Ax1を回転軸として回転する場合のボディ部BDPの一部分の回転方向を示す。
【0024】
関節機構JEr2は、ボディ部BDPとリンクLK1とを接続し、ボディ部BDPの底面BDPbtに平行な軸Ax2を回転軸としてリンクLK1をボディ部BDPに対して回転させる。図1の回転方向Dr2は、リンクLK1が軸Ax2を回転軸として回転する場合のリンクLK1の回転方向を示す。なお、軸Ax2は、「第1回転軸」の一例である。
【0025】
リンクLK1は、例えば、中空であり、長尺に形成される。また、リンクLK1は、リンクLK1が延在する方向De1に延在する開口Hlk1を有する。方向De1は、「第1方向」の一例である。
【0026】
開口Hlk1は、例えば、リンクLK1のうち、リンクLK2に対向する部分を含む面に形成される。リンクLK1の内部には、関節機構JEr3の一部及び関節機構JEp1が設けられる。例えば、関節機構JEr3の一部は、リンクLK1の内部に位置し、関節機構JEr3の他の部分は、開口Hlk1からリンクLK1の外部に出ている。なお、関節機構JEr3のうち、リンクLK1の外部に出ている部分、又は、リンクLK1の外部に出ている部分の一部は、後述するリンクLK2の開口Hlk2を通り、リンクLK2の内部に位置する。
【0027】
なお、リンクLK1は、関節機構JEr1により、軸Ax1を回転軸としてボディ部BDPに対して回転し、関節機構JEr2により、軸Ax2を回転軸としてボディ部BDPに対して回転する。
【0028】
関節機構JEr3は、リンクLK1とリンクLK2とを接続し、リンクLK1が延在する方向De1に垂直な軸Ax3を回転軸としてリンクLK2をリンクLK1に対して回転させる。図1の回転方向Dr3は、リンクLK2が軸Ax3を回転軸として回転する場合のリンクLK2の回転方向を示す。なお、軸Ax3は、「第2回転軸」の一例である。
【0029】
関節機構JEp1は、方向De1に沿って、関節機構JEr3をリンクLK1に対して相対的に移動させる。関節機構JEr3が方向De1に沿って移動することにより、リンクLK2は、方向De1に沿って、リンクLK1に対して相対的に移動する。なお、図1に示す例では、関節機構JEp1が関節機構JEr3を方向De1に沿って移動させる場合、リンクLK1の開口Hlk1の部分が、関節機構JEr3の移動可能な移動領域ARmv1に該当する。
【0030】
リンクLK2は、例えば、中空であり、長尺に形成される。また、リンクLK2は、リンクLK2が延在する方向De2に延在する開口Hlk2を有する。方向De2は、「第2方向」の一例である。
【0031】
開口Hlk2は、例えば、リンクLK2のうち、リンクLK1に対向する部分を含む面に形成される。リンクLK2の内部には、関節機構JEr3の一部及び関節機構JEp2が設けられる。例えば、関節機構JEr3の一部は、リンクLK2の内部に位置し、関節機構JEr3の他の部分は、開口Hlk2からリンクLK2の外部に出ている。
【0032】
関節機構JEp2は、リンクLK2が延在する方向De2に沿って、リンクLK2を関節機構JEr3に対して相対的に移動させる。これにより、リンクLK2は、方向De2に沿って、関節機構JEr3に対して相対的に移動する。すなわち、リンクLK2は、方向De2に沿って、リンクLK1に対して相対的に移動する。
【0033】
このように、リンクLK2は、関節機構JEp1により、方向De1に沿って、リンクLK1に対して相対的に移動し、関節機構JEp2により、方向De2に沿って、リンクLK1に対して相対的に移動する。
【0034】
ここで、リンクLK2が関節機構JEr3に対して相対的に移動することは、関節機構JEr3がリンクLK2に対して相対的に移動することとも換言できる。従って、関節機構JEp2は、方向De2に沿って関節機構JEr3をリンクLK2に対して相対的に移動させる関節機構JEとも捉えられる。図1に示す例では、関節機構JEp2が関節機構JEr3を方向De2に沿って移動させる場合、リンクLK2の開口Hlk2の部分が、関節機構JEr3の移動可能な移動領域ARmv2に該当する。
【0035】
関節機構JEr4は、リンクLK2と先端部TP1とを接続し、方向De2に垂直な軸Ax4を回転軸として、先端部TP1をリンクLK2に対して回転させる。図1の回転方向Dr4は、先端部TP1が軸Ax4を回転軸として回転する場合の先端部TP1の回転方向を示す。なお、軸Ax4は、「第3回転軸」の一例である。
【0036】
先端部TP1には、例えば、物品を把持するエンドエフェクタ20が取り付けられる。例えば、先端部TP1の端面TP1sfにエンドエフェクタ20が取り付けられる。先端部TP1は、リンクLK2に接続される第1部分TP11と、第1部分TP11に接続される第2部分TP12と、関節機構JEr5と、関節機構JEr6とを含む。第1部分TP11は、例えば、関節機構JEr4を介してリンクLK2に接続される。従って、第1部分TP11は、軸Ax4を回転軸としてリンクLK2に対して回転する。
【0037】
関節機構JEr5は、第1部分TP11と第2部分TP12とを接続し、軸Ax4に垂直な軸Ax5を回転軸として、第2部分TP12を第1部分TP11に対して回転させる。図1の回転方向Dr5は、第2部分TP12が軸Ax5を回転軸として回転する場合の第2部分TP12の回転方向を示す。なお、軸Ax5は、「第5回転軸」の一例である。
【0038】
関節機構JEr6は、軸Ax5に垂直な軸Ax6を回転軸として、先端部TP1の少なくとも一部分を回転させる。図1に示す例では、関節機構JEr6は、軸Ax6を回転軸として、先端部TP1の端面TP1sfを回転させる。すなわち、関節機構JEr6は、軸Ax6を回転軸として、先端部TP1のうち、エンドエフェクタ20が取り付けられる部分(端面TP1sf)を回転させる。図1の回転方向Dr6は、端面TP1sfが軸Ax6を回転軸として回転する場合の端面TP1sfの回転方向を示す。なお、軸Ax6は、「第6回転軸」の一例である。
【0039】
図1に示す例では、関節機構JEr6の表面が端面TP1sfに該当する。なお、関節機構JEr6が第2部分TP12に含まれる構成等では、第2部分TP12の端面が端面TP1sfであってもよい。
【0040】
また、エンドエフェクタ20により行われる作業は、物品の把持に限定されない。エンドエフェクタ20としては、ロボット10の作業目的に応じて適切な部品(例えば、ロボットハンド及びロボットフィンガー等)を適用することができる。すなわち、各種作業に適したエンドエフェクタ20が先端部TP1に取り付けられる。
【0041】
ここで、本実施形態では、特定の方向とのなす角度が所定の角度より大きい軸を回転軸とした回転を、特定の方向とのなす角度が所定の角度以下の軸を回転軸とした回転と区別して、「旋回」と称する場合がある。所定の角度は、例えば、45°であってもよい。なお、所定の角度は、45°に限定されない。
【0042】
例えば、軸Ax1及びAx2の各々を回転軸とする回転では、ボディ部BDPの底面BDPbtに垂直な方向Dv1が特定の方向に該当する。この場合、軸Ax1は、ボディ部BDPの底面BDPbtに垂直な方向Dv1とのなす角度が所定の角度以下の軸に該当し、軸Ax2は、方向Dv1とのなす角度が所定の角度より大きい軸に該当する。従って、軸Ax2を回転軸とするリンクLK1の回転は、旋回に該当する。なお、本実施形態では、ボディ部BDPが底面BDPbtに垂直な方向Dv1に沿って延在しているため、ボディ部BDPが延在する方向Debを特定の方向としてもよい。
【0043】
また、軸Ax3を回転軸とする回転では、リンクLK1が延在する方向De1が特定の方向に該当し、軸Ax4を回転軸とする回転では、リンクLK2が延在する方向De2が特定の方向に該当する。この場合、軸Ax3は、リンクLK1が延在する方向De1とのなす角度が所定の角度より大きい軸に該当し、軸Ax4は、リンクLK2が延在する方向De2とのなす角度が所定の角度より大きい軸に該当する。従って、軸Ax3を回転軸とするリンクLK2の回転、及び、軸Ax4を回転軸とする第1部分TP11の回転は、旋回に該当する。
【0044】
また、軸Ax5を回転軸とする回転では、方向De11が特定の方向に該当し、軸Ax6を回転軸とする回転では、方向De12が特定の方向に該当する。方向De11は、第1部分TP11の端部のうち、関節機構JEr5が接続される所定の端部の反対側の端部から所定の端部に向かう方向である。なお、方向De11は、第1部分TP11が延在する方向と捉えられてもよい。また、方向De12は、第2部分TP12の端部のうち、関節機構JEr6が接続される所定の端部(端面TP1sfを含む端部)の反対側の端部から所定の端部に向かう方向である。なお、方向De12は、第2部分TP12が延在する方向と捉えられてもよい。
【0045】
方向De11が特定の方向である場合、軸Ax5は、方向De11とのなす角度が所定の角度以下の軸に該当する。また、方向De12が特定の方向である場合、軸Ax6は、方向De12とのなす角度が所定の角度以下の軸に該当する。なお、本実施形態では、方向De11が軸Ax4に垂直な方向であり、方向De12が軸Ax5に垂直な方向である場合を想定する。この場合、方向De11とのなす角度が所定の角度以下の軸Ax5は、軸Ax4とのなす角度が所定の角度より大きい軸に該当し、方向De12とのなす角度が所定の角度以下の軸Ax6は、軸Ax5とのなす角度が所定の角度より大きい軸に該当する。
【0046】
このように、本実施形態では、ロボット10の複数の部分(ボディ部BDP、リンクLK1、リンクLK2及び先端部TP1等)の各々が軸Ax1、Ax2、Ax3、Ax4、Ax5及びAx6の各々を回転軸として回転可能である。これにより、本実施形態では、ロボット10は、人と同様の動作を実行できる。
【0047】
例えば、関節機構JEr2と関節機構JEr3との間のリンクLK1が上腕に相当し、関節機構JEr3と関節機構JEr4との間のリンクLK2が前腕に相当する。そして、ロボット10は、関節機構JEr1により、人の腰のねじりを模した動作を行うことができ、関節機構JEr2により、肩の旋回を模した動作を行うことができる。また、ロボット10は、関節機構JEr3により、肘の旋回を模した動作を行うことができ、関節機構JEr4により、手首の旋回を模した動作を行うことができる。また、ロボット10は、関節機構JEr5により、手首のねじりを模した動作を行うことができ、関節機構JEr6により、指先のねじりを模した動作を行うことができる。
【0048】
さらに、本実施形態では、リンクLK1内に設けられた関節機構JEp1により、リンクLK1が延在する方向De1に沿って、リンクLK2をリンクLK1に対して相対的に移動させることができる。また、本実施形態では、リンクLK2内に設けられた関節機構JEp2により、リンクLK2が延在する方向De2に沿って、リンクLK2をリンクLK1に対して相対的に移動させることができる。従って、本実施形態では、関節機構JEp1及びJEp2により、ロボット10の先端部TP1をボディ部BDPの周辺に容易に移動させることができる。また、本実施形態では、関節機構JEp1及びJEp2により、先端部TP1(より詳細には、端面TP1sf)が到達可能な領域を広くすることができるため、ロボット10に取り付けられるエンドエフェクタ20が到達可能な領域を広くすることができる。
【0049】
なお、ロボットシステム1の構成は、図1に示す例に限定されない。例えば、ロボットコントローラ30は、ロボット10に内蔵されてもよい。また、図1では、ロボット10が床等の所定の場所に固定される場合を想定したが、ロボット10は、所定の場所に固定されずに、ロボット10自体が移動可能であってもよい。また、ボディ部BDPの土台部BDPbaは、床等の所定の場所に関節機構JEr1を介して固定されてもよい。この場合、ボディ部BDPは、関節機構JEr1を含まずに定義されてもよい。土台部BDPbaが所定の場所に関節機構JEr1を介して固定される構成では、関節機構JEr1は、軸Ax1を回転軸として、土台部BDPbaを回転させてもよい。また、土台部BDPbaが所定の場所に関節機構JEr1を介して固定される構成では、土台部BDPbaが関節機構JEr2と接続されてもよい。
【0050】
次に、図2を参照しながら、関節機構JEp1及びJEp2の一例について説明する。
【0051】
図2は、関節機構JEの一例を説明するための説明図である。図2では、関節機構JEp1及びJEp2と関節機構JEr3とを中心に説明する。本実施形態では、関節機構JEr3を駆動するモータMOr3が関節機構JEr3と一体的に移動する場合を想定する。例えば、モータMOr3は、関節機構JEr3に固定されてもよい。先ず、関節機構JEp1について説明する。
【0052】
関節機構JEp1、及び、関節機構JEp1を駆動するモータMOp1は、リンクLK1の内部に配置される。例えば、モータMOp1は、リンクLK1の2つの端部LK1ed(LK1ed1及びLK1ed2)のうち、ボディ部BDPに近い端部LK1ed1において、リンクLK1の内部に取り付けられている。なお、端部LK1ed2は、リンクLK1の2つの端部LK1edのうち、ボディ部BDPから遠い端部LK1edである。
【0053】
関節機構JEp1は、例えば、方向De1に沿って延在するねじ部JEp11と、ナットJEp12と、接続部JEp13と、レールJEp14とを含む。
【0054】
ねじ部JEp11の一端は、モータMOp1に取り付けられる。例えば、ねじ部JEp11は、ねじ部JEp11の中心軸(方向De1に沿う中心軸)がモータMOp1の回転軸と一致するようにモータMOp1に取り付けられ、ナットJEp12に挿通される。そして、ねじ部JEp11は、モータMOp1の回転に伴い、方向De1に沿う中心軸を回転軸として回転する。
【0055】
接続部JEp13は、例えば、方向De1に沿って移動可能にレールJEp14に接続されるスライダー部JEp13aと、ナットJEp12及びモータMOr3を支持する支持部JEp13bとを含む。例えば、ナットJEp12は、ねじ部JEp11と一緒に回転しないように、支持部JEp13bに固定されている。また、モータMOr3は、モータMOr3自体が回転しないように、支持部JEp13bに固定されている。
【0056】
なお、スライダー部JEp13aと支持部JEp13bとは、厳密に区別されなくてもよい。例えば、スライダー部JEp13aにモータMOr3が固定されてもよい。また、ナットJEp12は、支持部JEp13bを介さずにモータMOr3に固定されてもよい。すなわち、ナットJEp12は、関節機構JEr3に対するナットJEp12の相対的な位置が変化しないように、接続部JEp13等に接続されていればよい。このように、ナットJEp12は、接続部JEp13等を介して関節機構JEr3に接続される。
【0057】
レールJEp14は、方向De1に沿って延在し、互いに平行に配置された2つの棒状部材JEp14a及びJEp14bを含む。棒状部材JEp14a及びJEp14bとスライダー部JEp13aとの各々の形状は、棒状部材JEp14a及びJEp14bがスライダー部JEp13aを移動可能に支持できれば、特に限定されない。すなわち、レールJEp14の形状は、接続部JEp13を移動可能に支持できれば、特に限定されない。レールJEp14は、例えば、軸Ax2に沿う方向において、開口Hlk1とねじ部JEp11との間に配置され、リンクLK1の内部に取り付けられている。なお、レールJEp14は、関節機構JEr3の一部が開口Hlk1から出ている状態で、関節機構JEr3が方向De1に沿って移動可能であれば、軸Ax2に沿う方向において、開口Hlk1とねじ部JEp11との間に配置されなくてもよい。
【0058】
ナットJEp12は、ねじ部JEp11と一緒に回転しないように接続部JEp13に固定されているため、ねじ部JEp11の回転に伴い、方向De1に沿って、ねじ部JEp11に対して相対的に移動する。ナットJEp12は、上述したように、関節機構JEr3に対する相対的な位置が変化しないように、接続部JEp13等に固定されている。すなわち、関節機構JEr3は、ナットJEp12と一緒に、方向De1に沿って移動する。例えば、関節機構JEr3は、ナットJEp12の移動に伴い、リンクLK1に対して相対的に移動する。このように、関節機構JEp1は、関節機構JEr3を移動可能に支持する。関節機構JEr3の移動領域ARmv1(移動範囲)は、リンクLK1の端部LK1ed2よりも端部LK1ed1に近い領域から、端部LK1ed1よりも端部LK1ed2に近い領域まで移動可能であることが好ましい。これにより、リンクLK1の実質的な長さ(制御上の長さ)を、リンクLK1の半分以下の長さから半分以上の長さとすることが可能となる。リンクLK1の実質的な長さは、例えば、端部LK1ed1(例えば、リンクLK1と軸Ax2との交点)から関節機構JEr3(より正確には、軸Ax3)までの方向De1に沿う長さである。
【0059】
ここで、ナットJEp12の移動方向、すなわち、関節機構JEr3の移動方向は、モータMOp1の回転方向を切り替えることにより、方向De1と方向De1の反対方向との間で切り替わる。例えば、モータMOp1の回転が第1の回転方向の回転である場合、ナットJEp12は、方向De1に移動し、モータMOp1の回転が第1の回転方向の回転に対して逆回転となる第2の回転方向の回転である場合、ナットJEp12は、方向De1の反対方向に移動する。次に、関節機構JEp2について説明する。
【0060】
関節機構JEp2、及び、関節機構JEp2を駆動するモータMOp2は、リンクLK2の内部に配置される。例えば、モータMOp2は、リンクLK2の2つの端部LK2ed(LK2ed1及びLK2ed2)のうち、先端部TP1から遠い端部LK2ed1において、リンクLK2の内部に取り付けられている。なお、端部LK2ed2は、リンクLK2の2つの端部LK2edのうち、先端部TP1に近い端部LK2edである。
【0061】
関節機構JEp2は、例えば、方向De2に沿って延在するねじ部JEp21と、ナットJEp22と、接続部JEp23と、レールJEp24とを含む。
【0062】
ねじ部JEp21の一端は、モータMOp2に取り付けられる。例えば、ねじ部JEp21は、ねじ部JEp21の中心軸(方向De2に沿う中心軸)がモータMOp2の回転軸と一致するようにモータMOp2に取り付けられ、ナットJEp22に挿通される。そして、ねじ部JEp21は、モータMOp2の回転に伴い、方向De2に沿う中心軸を回転軸として回転する。
【0063】
接続部JEp23は、例えば、レールJEp24に対して方向De2に沿って相対的に移動可能に接続されるスライダー部JEp23aと、ナットJEp22及び関節機構JEr3を支持する支持部JEp23bとを含む。例えば、ナットJEp22は、ねじ部JEp21と一緒に回転しないように、支持部JEp23bに固定されている。また、支持部JEp23bは、モータMOr3の回転に伴い、軸Ax3(図2には図示せず)を回転軸として回転するように、関節機構JEr3に接続されている。すなわち、関節機構JEr3は、モータMOr3の回転に伴い、軸Ax3を回転軸として支持部JEp23bを回転させる。
【0064】
なお、スライダー部JEp23aと支持部JEp23bとは、厳密に区別されなくてもよい。例えば、スライダー部JEp23aに関節機構JEr3が接続されてもよい。また、ナットJEp22は、スライダー部JEp23aに固定されてもよい。すなわち、ナットJEp22は、関節機構JEr3に対する相対的な位置が変化しないように、接続部JEp23等に接続されていればよい。このように、ナットJEp22は、接続部JEp23等を介して関節機構JEr3に接続される。
【0065】
レールJEp24は、方向De2に沿って延在し、互いに平行に配置された2つの棒状部材JEp24a及びJEp24bを含む。棒状部材JEp24a及びJEp24bとスライダー部JEp23aとの各々の形状は、棒状部材JEp24a及びJEp24bがスライダー部JEp23aを移動可能に支持できれば、特に限定されない。すなわち、レールJEp24の形状は、接続部JEp23を移動可能に支持できれば、特に限定されない。レールJEp24は、例えば、軸Ax2に沿う方向において、開口Hlk2とねじ部JEp21との間に配置され、リンクLK2の内部に取り付けられている。なお、レールJEp24は、関節機構JEr3の一部が開口Hlk2から出ている状態で、関節機構JEr3が方向De2に沿って移動可能であれば、軸Ax2に沿う方向において、開口Hlk2とねじ部JEp21との間に配置されなくてもよい。
【0066】
ナットJEp22は、ねじ部JEp21と一緒に回転しないように接続部JEp23に固定されているため、ねじ部JEp21の回転に伴い、方向De2に沿って、ねじ部JEp21に対して相対的に移動する。ナットJEp22は、上述したように、関節機構JEr3に対する相対的な位置が変化しないように、接続部JEp23等に固定されている。また、関節機構JEr3は、ねじ部JEp11が回転していない場合、すなわち、モータMOp1が回転していない場合、関節機構JEp1により、リンクLK1に対する関節機構JEr3の相対的な位置が変化しないように支持される。このため、リンクLK2は、ナットJEp22がねじ部JEp21に対して相対的に移動することにより、方向De2に沿って、関節機構JEr3に対して相対的に移動する。このように、関節機構JEp2は、リンクLK2を移動可能に支持する。関節機構JEr3の移動領域ARmv2(移動範囲)は、リンクLK2の端部LK2ed2よりも端部LK2ed1に近い領域から、端部LK2ed1よりも端部LK2ed2に近い領域まで移動可能であることが好ましい。これにより、リンクLK2の実質的な長さ(制御上の長さ)を、リンクLK2の半分以下の長さから半分以上の長さとすることが可能となる。リンクLK2の実質的な長さは、例えば、関節機構JEr3(より正確には、軸Ax3)から端部LK2ed2(例えば、リンクLK2と軸Ax4との交点)までの方向De2に沿う長さである。
【0067】
なお、関節機構JEr3は、ねじ部JEp21が回転していない場合、すなわち、モータMOp2が回転していない場合、関節機構JEp2により、リンクLK2に対する相対的な位置が変化しないように支持される。関節機構JEr3は、リンクLK1との相対的な位置にかかわらず、リンクLK1に対してリンクLK2を旋回可能である。また、関節機構JEr3は、リンクLK2との相対的な位置にかかわらず、リンクLK1に対してリンクLK2を旋回可能である。
【0068】
ここで、ねじ部JEp21に対するナットJEp22の移動方向、すなわち、リンクLK2の移動方向は、モータMOp2の回転方向を切り替えることにより、方向De2と方向De2の反対方向との間で切り替わる。例えば、モータMOp2の回転が第1の回転方向の回転である場合、リンクLK2は、方向De2の反対方向に移動し、モータMOp2の回転が第1の回転方向の回転に対して逆回転となる第2の回転方向の回転である場合、リンクLK2は、方向De2に移動する。
【0069】
なお、関節機構JEpの構成は、図2に示す例に限定されない。例えば、関節機構JEp1の要素として、ねじ部JEp11とナットJEp12との間に複数のボールが存在するボールねじが採用されてもよい。同様に、関節機構JEp2の要素として、ねじ部JEp21とナットJEp22との間に複数のボールが存在するボールねじが採用されてもよい。
【0070】
また、例えば、モータMOr3の一部がリンクLK1の内部に位置し、モータMOr3の他の部分が開口Hlk1からリンクLK1の外部に位置し、関節機構JEr3の全体がリンクLK2の内部に位置してもよい。また、例えば、関節機構JEr3は、モータMOr3を収納する収納部を有してもよい。すなわち、モータMOr3は、関節機構JEr3内に設けられてもよい。あるいは、モータMOr3は、関節機構JEr3の一要素として捉えられてもよい。同様に、モータMOp1は、関節機構JEp1の一要素として捉えられてもよいし、モータMOp2は、関節機構JEp2の一要素として捉えられてもよい。
【0071】
次に、関節機構JEr1、JEr2、JEr4、JEr5及びJEr6について、簡単に説明する。
【0072】
関節機構JEr1は、例えば、回転部JEr11と、回転部JEr11を収納する筐体JEr12とを有する。回転部JEr11は、関節機構JEr1を駆動するモータMOr1の回転に伴い、軸Ax1を回転軸として回転する。例えば、回転部JEr11は、軸Ax1を回転軸として土台部BDPbaに対して回転可能に、モータMOr1に取り付けられている。また、筐体JEr12は、回転部JEr11と一緒に、軸Ax1を回転軸として土台部BDPbaに対して回転する。例えば、筐体JEr12は、軸Ax1を回転軸として土台部BDPbaに対して回転可能に、土台部BDPbaに接続される。さらに、筐体JEr12は、関節機構JEr2に接続される。これにより、関節機構JEr2は、回転部JEr11の回転に伴い、軸Ax1を回転軸として土台部BDPbaに対して回転する。
【0073】
なお、モータMOr1は、関節機構JEr1の一要素として捉えられてもよい。また、筐体JEr12が土台部BDPbaに固定され、関節機構JEr2が、軸Ax1を回転軸として筐体JEr12に対して回転可能に、回転部JEr11に取り付けられてもよい。この場合、筐体JEr12は、土台部BDPbaの一要素として捉えられてもよい。
【0074】
関節機構JEr2は、例えば、回転部JEr21と、関節機構JEr2を駆動するモータMOr2を収納する筐体JEr22とを有する。回転部JEr21は、モータMOr2の回転に伴い、軸Ax2を回転軸として回転する。例えば、回転部JEr21は、軸Ax2を回転軸として筐体JEr22に対して回転可能に、モータMOr2に取り付けられている。さらに、回転部JEr21は、リンクLK1に接続される。また、リンクLK1は、筐体JEr22に対して回転可能に筐体JEr22に接続される。これにより、リンクLK1は、回転部JEr21の回転に伴い、軸Ax2を回転軸として筐体JEr22に対して回転する。また、筐体JEr22の内部には、モータMOr2が取り付けられている。
【0075】
なお、モータMOr2は、関節機構JEr2の一要素として捉えられてもよい。また、図2に示す例では、回転部JEr21の一部がリンクLK1の内部に位置し、回転部JEr21の他の部分が筐体JEr22の内部に位置しているが、回転部JEr21の全体がリンクLK1の内部又は筐体JEr22の内部に位置してもよい。
【0076】
関節機構JEr4は、例えば、回転部JEr41と、回転部JEr41を収納する筐体JEr42とを有する。回転部JEr41は、関節機構JEr4を駆動するモータMOr4の回転に伴い、軸Ax4を回転軸として回転する。例えば、回転部JEr41は、軸Ax4を回転軸としてリンクLK2に対して回転可能に、モータMOr4に取り付けられている。なお、モータMOr4は、リンクLK2の内部に取り付けられている。
【0077】
また、筐体JEr42は、回転部JEr41と一緒に、軸Ax4を回転軸としてリンクLK2に対して回転する。例えば、筐体JEr42は、軸Ax4を回転軸としてリンクLK2に対して回転可能に、リンクLK2に接続される。さらに、筐体JEr42は、第1部分TP11に接続される。これにより、第1部分TP11は、回転部JEr41の回転に伴い、筐体JEr42と一緒に、軸Ax4を回転軸として回転する。
【0078】
なお、モータMOr4は、関節機構JEr4の一要素として捉えられてもよい。また、図2に示す例では、回転部JEr41の全体が筐体JEr42の内部に位置しているが、回転部JEr41の全体がリンクLK2の内部に位置してもよい。あるいは、回転部JEr41の一部が筐体JEr42の内部に位置し、回転部JEr41の他の部分がリンクLK2の内部に位置してもよい。
【0079】
関節機構JEr5は、例えば、回転部JEr51と、回転部JEr51の一部を収納する筐体JEr52とを有する。回転部JEr51は、関節機構JEr5を駆動するモータMOr5の回転に伴い、軸Ax5を回転軸として回転する。例えば、回転部JEr51は、軸Ax5を回転軸として第1部分TP11に対して回転可能に、モータMOr5に取り付けられている。なお、モータMOr5は、関節機構JEr4の筐体JEr42の内部に取り付けられている。
【0080】
また、筐体JEr52は、回転部JEr51と一緒に、軸Ax5を回転軸として第1部分TP11に対して回転する。例えば、筐体JEr52は、軸Ax5を回転軸として第1部分TP11に対して回転可能に、第1部分TP11に接続される。さらに、筐体JEr52は、第2部分TP12に接続される。これにより、第2部分TP12は、回転部JEr51の回転に伴い、筐体JEr52と一緒に、軸Ax5を回転軸として回転する。
【0081】
なお、モータMOr5は、関節機構JEr5の一要素として捉えられてもよい。また、図2に示す例では、回転部JEr51の一部が筐体JEr52の内部に位置し、回転部JEr51の他の部分が第1部分TP11の内部に位置しているが、回転部JEr51の全体が筐体JEr52の内部又は第1部分TP11の内部に位置してもよい。
【0082】
関節機構JEr6は、例えば、回転部JEr61と、回転部JEr61の一部を収納する筐体JEr62とを有する。回転部JEr61は、関節機構JEr6を駆動するモータMOr6の回転に伴い、軸Ax6を回転軸として回転する。例えば、回転部JEr61は、軸Ax6を回転軸として第2部分TP12に対して回転可能に、モータMOr6に取り付けられている。また、筐体JEr62は、回転部JEr61と一緒に、軸Ax6を回転軸として第2部分TP12に対して回転する。例えば、筐体JEr62は、軸Ax6を回転軸として第2部分TP12に対して回転可能に、第2部分TP12に接続される。また、筐体JEr62は、端面TP1sfを含む。例えば、端面TP1sfは、回転部JEr61の回転に伴い、軸Ax6を回転軸として第2部分TP12に対して回転する。
【0083】
なお、モータMOr6は、関節機構JEr6の一要素として捉えられてもよい。また、筐体JEr62が第2部分TP12に固定され、エンドエフェクタ20が、筐体JEr62に対して回転可能に、回転部JEr61の表面に取り付けられてもよい。この場合、回転部JEr61の表面が端面TP1sfに該当する。また、筐体JEr62が第2部分TP12に固定される場合、筐体JEr62は、第2部分TP12の一要素として捉えられてもよい。
【0084】
また、複数の関節機構JErは、図2に示す例に限定されない。例えば、複数の関節機構JErの各々は、既知の多関節ロボットの各関節に対応する機構と同様の構成であってもよい。
【0085】
また、図2に示すロボット10の状態(姿勢)は、方向De1及びDe2が軸Ax1に平行な起立状態の1つであり、本実施形態におけるロボット10の特徴を表す状態の1つである。以下では、図2に示すロボット10の状態を、第1状態と称する場合がある。
【0086】
例えば、第1状態は、方向De1及びDe2が軸Ax1に平行であり、かつ、リンクLK2の端部LK2ed1が、リンクLK1の端部LK1ed2よりも端部LK1ed1の近くに位置する状態である。第1状態では、好ましくは、関節機構JEr3は、移動領域ARmv1の両端部を除く中間領域ARmd1に位置し、かつ、移動領域ARmv2の両端部を除く中間領域ARmd2に位置する。例えば、ロボット10を図2に示す第1状態で待機させた場合、リンクLK1に対する関節機構JEr3の位置の最大移動量は、移動領域ARmv1の方向De1に沿う長さの約半分である。また、リンクLK2に対する関節機構JEr3の位置の最大移動量は、移動領域ARmv2の方向De2に沿う長さの約半分である。従って、本実施形態では、ロボット10を図2に示す第1状態で待機させることにより、ロボット10の状態を第1状態から他の状態に遷移させる状態遷移に要する時間が長くなることを抑制することができる。
【0087】
また、本実施形態では、リンクLK1及びLK2の状態を第1状態にすることにより、ロボット10の状態をコンパクトにすることができ、ロボット10の持ち運びを容易にすることができる。このため、本実施形態では、ロボット10を工場に設置する場合の設置作業、又は、工場における機器変更等によるロボット10の設置の変更作業等を容易にすることができる。
【0088】
また、図2に示す第1状態等の起立状態では、上述したように、リンクLK1及びLK2が軸Ax1に沿って延在するように、リンクLK1及びLK2の姿勢が維持される。この場合、リンクLK1及びLK2の姿勢が、リンクLK1及びLK2の一方又は両方が軸Ax1と交差する方向に沿って延在するような姿勢である場合に比べて、軸Ax1を回転軸としてロボット10を回転させる場合の慣性力を、小さくすることができる。
【0089】
従って、本実施形態では、リンクLK1及びLK2の状態を起立状態にすることにより、ロボットアーム(リンクLK1及びLK2)の物理的長さ及び重量に起因する慣性力を小さくすることができる。これにより、本実施形態では、ロボット10を精密に制御することができる。例えば、本実施形態では、ロボット10の動作を停止した際の振動(制振性)による影響を小さくすることができる。従って、本実施形態では、ロボット10が所定の作業を行う場合のロボット10のトータルの動作時間の短縮、及び、動作精度の向上等を実現することができる。
【0090】
なお、軸Ax1を回転軸としてロボット10を回転させる場合の慣性力を小さくするリンクLK1及びLK2の状態は、リンクLK1及びLK2が軸Ax1に沿って延在するような姿勢(起立状態)であれば、図2に示す第1状態に限定されない。例えば、図2に示す第1状態とは異なる起立状態は、方向De1及びDe2が軸Ax1に平行であり、リンクLK2の端部LK2ed1が、リンクLK1の端部LK1ed1よりも端部LK1ed2の近くに位置する状態であってもよい。この場合、リンクLK1及びLK2が軸Ax1に沿って延在し、かつ、先端部TP1がリンクLK1から遠ざかるように、リンクLK2が位置する。すなわち、本実施形態では、ロボット10の状態を起立状態にすることにより、軸Ax1を回転軸としてロボット10を回転させる場合の慣性力を小さくすることができる。但し、ロボット10は、先端部TP1がリンクLK1に近い状態の方が、先端部TP1がリンクLK1から遠い状態よりも、安定する。
【0091】
次に、図3を参照しながら、ロボットコントローラ30のハードウェア構成について説明する。
【0092】
図3は、図1に示したロボットコントローラ30のハードウェア構成の一例を示す図である。
【0093】
ロボットコントローラ30は、ロボットコントローラ30の各部を制御する処理装置32と、各種情報を記憶するメモリ35と、通信装置36と、作業者等による操作を受け付ける操作装置37と、表示装置38と、ドライバ回路39とを有する。なお、ロボットコントローラ30は、単体の装置として実現されるほか、互いに別体で構成された複数の装置でも実現される。例えば、操作装置37及び表示装置38の一方又は両方は、処理装置32とは別体の装置であってもよい。
【0094】
メモリ35は、例えば、処理装置32の作業領域として機能するRAM(Random Access Memory)等の揮発性メモリと、制御プログラムPGr等の各種情報を記憶するEEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性メモリとの、一方又は両方を含む。なお、メモリ35は、ロボットコントローラ30に着脱可能であってもよい。具体的には、メモリ35は、ロボットコントローラ30に着脱されるメモリカード等の記憶媒体であってもよい。また、メモリ35は、例えば、ロボットコントローラ30とネットワーク等を介して通信可能に接続された記憶装置(例えば、オンラインストレージ)であってもよい。
【0095】
図2に示すメモリ35は、制御プログラムPGrを記憶している。本実施形態では、制御プログラムPGrは、例えば、ロボットコントローラ30がロボット10の動作を制御するためのアプリケーションプログラムを含む。但し、制御プログラムPGrは、例えば、処理装置32がロボットコントローラ30の各部を制御するためのオペレーティングロボットシステムプログラムを含んでもよい。
【0096】
処理装置32は、ロボットコントローラ30の全体を制御するプロセッサであり、例えば、1又は複数のCPU(Central Processing Unit)を含んで構成される。処理装置32は、例えば、メモリ35に記憶された制御プログラムPGrを実行し、制御プログラムPGrに従って動作することで、後述する動作制御部33及び表示制御部34として機能する。なお、制御プログラムPGrは、ネットワーク等を介して他の装置から送信されてもよい。
【0097】
また、例えば、処理装置32が複数のCPUを含んで構成される場合、処理装置32の機能の一部又は全部は、これら複数のCPUが制御プログラムPGr等のプログラムに従って協働して動作することで実現されてもよい。また、処理装置32は、1又は複数のCPUに加え、又は、1又は複数のCPUのうち一部又は全部に代えて、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、又は、FPGA(Field Programmable Gate Array)等のハードウェアを含んで構成されるものであってもよい。この場合、処理装置32の機能の一部又は全部は、DSP等のハードウェアにより実現されてもよい。
【0098】
動作制御部33は、例えば、ロボット10の位置及び姿勢が目標の位置及び姿勢になるまで、各関節機構JEの状態(関節の状態)に関する関節値を算出する処理を繰り返す。関節機構JEの状態は、関節の運動の状態であってもよい。具体的には、関節機構JEの状態は、例えば、関節機構JEの位置(関節の位置)、及び、関節機構JErによる回転の回転角度(関節の方向)等であってもよい。この場合、関節値は、例えば、関節機構JEの位置(関節の位置)、及び、関節機構JErによる回転の回転角度(関節の方向)等を示す。以下では、関節機構JEの状態(関節の状態)に関する関節値は、単に、関節機構JE(関節)の関節値とも称される。
【0099】
また、動作制御部33は、各関節機構JEの関節値等に基づいて、ロボット10を、後述するドライバ回路39を介して駆動する。また、表示制御部34は、例えば、後述する図5に示す操作画面OPS等の各種画像を表示装置38に表示させる。
【0100】
通信装置36は、ロボットコントローラ30の外部に存在する外部装置と通信を行うためのハードウェアである。例えば、通信装置36は、近距離無線通信によって外部装置と通信する機能を有する。なお、通信装置36は、移動体通信網又はネットワークを介して外部装置と通信する機能をさらに有してもよい。
【0101】
操作装置37は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、スイッチ、ボタン及びセンサ等)である。例えば、操作装置37は、作業者の操作を受け付け、操作に応じた操作情報を処理装置32に出力する。なお、例えば、表示装置38の表示面に対する接触を検出するタッチパネルが、操作装置37として採用されてもよい。
【0102】
表示装置38は、外部への出力を実施するディスプレイ等の出力デバイスである。表示装置38は、例えば、処理装置32(より詳細には、表示制御部34)による制御のもとで、画像を表示する。なお、操作装置37及び表示装置38は、一体となった構成(例えば、タッチパネル)であってもよい。
【0103】
ドライバ回路39は、処理装置32(より詳細には、動作制御部33)による制御のもとで、ロボット10を駆動するための信号をロボット10に出力するハードウェアである。例えば、ドライバ回路39は、各関節機構JEの関節値等に基づく信号を、モータMOr1、MOr2、MOr3、MOr4、MOr5、MOr6、MOp1及びMOp2等を駆動する信号として、ロボット10に出力する。
【0104】
このように、ロボットコントローラ30は、複数のモータMO(MOr1、MOr2、MOr3、MOr4、MOr5、MOr6、MOp1及びMOp2)を制御することにより、複数の関節機構JEを制御する。これにより、ロボット10の動作が制御される。
【0105】
本実施形態では、例えば、ロボットコントローラ30が、レンズの研磨及びねじ締め等の所定の動作をロボット10に実行させる場合を想定する。なお、所定の動作は、レンズの研磨及びねじ締めに限定されない。また、本実施形態では、所定の動作が、物品に対して加工を行う場合の基準位置まで先端部TP1を移動させる第1動作と、先端部TP1が基準位置に移動した後に実行され、物品に対して加工を行う第2動作と、を含む場合を想定する。例えば、ロボットコントローラ30は、第2動作において、複数の関節機構JEのうちの関節機構JEr2、JEr3及びJEr4が駆動しないように、複数の関節機構JEを制御する。
【0106】
以下では、複数の関節機構JEのうち、駆動しないように制御される関節機構JEを、固定対象の関節機構JEと称する場合がある。また、以下では、複数の関節機構JEのうち、固定対象の関節機構JE以外の関節機構JEを、駆動対象の関節機構JEと称する場合がある。本実施形態では、複数の関節機構JEのうちの少なくとも1個の関節機構JEが駆動対象の関節機構JEとして対応付けられた複数の駆動モードの中から、一の駆動モードが選択されることにより、駆動対象の関節機構JEが選択される場合を想定する。駆動モードについては、後述する図4において説明される。
【0107】
なお、ロボットコントローラ30の構成は、図3に示す例に限定されない。例えば、通信装置36は、ロボットコントローラ30から省かれてもよい。
【0108】
次に、ロボット10の動作を制御する場合に使用される各関節機構JEの関節値の算出方法(動作制御部33による関節値の算出方法)の概要について説明する。ロボット10の動作の制御には、例えば、関節の変位(例えば、回転及び直動等)からロボット10の位置及び姿勢を求める順運動学、及び、ロボット10の位置及び姿勢から関節の変位を求める逆運動学等が用いられる。例えば、ロボット10の手先(例えば、エンドエフェクタ20の先端)の速度(以下、手先速度とも称する)と関節速度との関係は、式(1)で表される。例えば、式(1)は、順運動学の計算に用いられる。
【0109】
【数1】
【0110】
なお、手先速度r(・)は、式(2)で表される。また、m個(mは2以上の自然数)の関節を有する多関節ロボットでは、関節速度θ(・)は、式(3)で表され、ヤコビ行列Jは、式(4)で表される。
【0111】
【数2】
【0112】
【数3】
【0113】
【数4】
【0114】
ヤコビ行列Jは、例えば、6行m列の行列で表され、第i列の要素が第i関節に係る要素Jに該当する。第i関節に係る要素Jは、第i関節が回転関節の場合、式(5)で表され、第i関節が直動関節の場合、式(6)で表される。なお、式(6)の0は、例えば、ベクトル値が0であることを示す。
【0115】
【数5】
【0116】
なお、図1には図示していないが、各関節の所定の位置を原点とする3軸の直交座標系が各関節(各関節機構JE)に対応付けられ、関節の状態を表現する場合に用いられる。例えば、第i関節が回転関節の場合、関節機構JErの回転軸がZ軸に対応し、第i関節が直動関節の場合、関節機構JEpの移動方向に沿う軸、又は、リンクLKの伸縮方向に沿う軸がZ軸に対応する。
【0117】
また、本実施形態では、回転関節及び直動関節の順にボディ部BDPから数えてi番目の関節機構JEが第i関節に該当する場合を想定する。例えば、関節機構JEr1が第1関節に該当し、関節機構JEr2が第2関節に該当する。関節機構JEr3が第3関節に該当し、関節機構JEr4が第4関節に該当する。関節機構JEr5が第5関節に該当し、関節機構JEr6が第6関節に該当する。そして、関節機構JEp1が第7関節に該当し、関節機構JEp2が第8関節に該当する。なお、番号の付け方は、上述の例に限定されない。
【0118】
また、ロボット10の手先速度と関節速度との関係は、ヤコビ行列Jの擬似逆行列Jを用いて、式(7)で表される。例えば、式(7)は、逆運動学の計算に用いられる。
【0119】
【数6】
【0120】
例えば、ロボットコントローラ30は、目標の手先速度r(・)に対する各関節機構JEの関節速度θ(・)を、式(7)を用いて計算し、計算結果に基づいて各関節機構JEを動作させる。具体的には、例えば、ロボットコントローラ30は、式(7)を用いて算出した各関節機構JEの関節速度θ(・)に基づいて、各関節機構JEの関節値を算出する。そして、ロボットコントローラ30は、各関節機構JEの関節値に基づいて、各関節機構JEを動作させる。例えば、ロボットコントローラ30は、各関節機構JEの状態が各関節機構JEの関節値に基づく状態になるように、各関節機構JEを動作させる。
【0121】
これにより、本実施形態では、例えば、ロボット10をジョグ動作させることができる。なお、ジョグ動作は、例えば、ロボット10の関節及び手先等を少しずつ動かして、ロボット10の位置及び姿勢を目標の位置及び姿勢に到達させる動作である。関節速度θ(・)、及び、関節速度θ(・)に基づいて算出される関節機構JEの状態等を示す情報は、関節値に対応する。関節機構JEの関節速度θ(・)の計算は、逆運動学計算の例である。また、ヤコビ行列Jから擬似逆行列Jが算出されるため、式(7)を用いて、関節機構JEの関節速度θ(・)を計算することは、ヤコビ行列を用いて逆運動学計算を実行することに該当する。
【0122】
ここで、ジョグ動作が行われる場合、複数の関節機構JEの全てについて、関節速度θ(・)が計算される。このため、工夫をせずにヤコビ行列Jが用いられる制御方法では、関節機構JEの数が多い場合、ロボット10の位置及び姿勢を目標の位置及び姿勢にする各関節の関節速度θ(・)等が算出されるまでの計算時間が増加する。この場合、逆運動学計算の解(ロボットの位置及び姿勢を目標の位置及び姿勢にする各関節の関節速度θ(・)等)が、所望の時間内に算出されないおそれがある。
【0123】
なお、本実施形態では、動作させる関節(関節機構JE)の数が関節の全数よりも少ない駆動モードを含む複数の駆動モードの中から、ロボット10の駆動モードを選択することができる。例えば、特定の第i関節を動作させない駆動モードでは、ヤコビ行列Jの複数の要素のうち、特定の第i関節に係る要素Jのベクトル値を0に固定する。第i関節に係る要素Jのベクトル値を0にした場合のヤコビ行列Jは、式(8)となる。この場合、上述の式(7)から得られる関節速度θ(・)は、式(9)で表される関節速度ベクトルとなる。
【0124】
【数7】
【0125】
式(9)に示されるように、第i関節の関節速度θ(・)は、0となる。このように、本実施形態では、ヤコビ行列Jの複数の要素のうち、第i関節に係る要素Jのベクトル値を0に固定することより、第i関節の関節値は変位することがないため、m個の関節のうちの第i関節を固定関節と見なすことができる。すなわち、本実施形態では、ヤコビ行列Jの第i関節に係る要素Jのベクトル値を0に固定することより、第i関節以外の(m-1)個の関節について、関節速度θ(・)を計算することができる。このように、本実施形態では、動作させる関節の数が関節の全数よりも少ない駆動モードを選択して、ロボット10を動作させることができる。なお、本実施形態ではベクトル値を0に固定しているが、第i関節の関節値が、ロボット制御に影響せず実質的に変位しないのであれば、必ずしも0である必要はなく、微小な値(実質的に0)であっても構わない。ここで、「実質的に0」とは、0のほか、0と見なせる微小な値も包含する。また、「実質的に変位しない」とは、厳密に変位しない場合のほか、変位していないと見なせる場合(例えば、ロボット制御に影響しない程度の微小な変化)も包含する。
【0126】
また、上述の例では、動作させない固定関節が1個の第i関節である場合を想定したが、動作させない固定関節の数は、1個に限定されない。すなわち、複数の駆動モードは、後述する図4に示すように、動作させない固定関節(固定対象の関節機構JE)の数が2個以上である駆動モードを含んでもよい。本実施形態では、複数の駆動モードの中から、ロボット10の駆動モードを適切に選択することにより、逆運動学計算の解が所望の時間内に算出されないことを抑制することができる。
【0127】
次に、図4を参照しながら、ロボット10の駆動モードの概要について説明する。
【0128】
図4は、ロボット10の駆動モードの一例を説明するための説明図である。本実施形態では、複数の駆動モードとして、第1駆動モード、第2駆動モード、第3駆動モード、及び、第4駆動モードがロボット10に設定される場合を想定する。なお、複数の駆動モードがロボット10に設定されるとは、例えば、複数の駆動モードの各々に対応する動作をロボット10が実行可能であることを意味する。
【0129】
複数の駆動モードの各々には、複数の関節機構JEのうちの少なくとも1個の関節機構JEが駆動対象の関節機構JEとして対応付けられている。複数の関節機構JEのうち、駆動対象の関節機構JE以外の関節機構JE(すなわち、固定対象の関節機構JE)は、各関節機構JEの関節値を算出する処理において、関節値を実質的に変位させない関節機構JEである。例えば、ロボットコントローラ30は、各駆動モードにおいて、複数の関節機構JEのうち、固定対象の関節機構JEを固定した状態で、駆動対象の関節機構JEを駆動することにより、ロボット10の動作を制御する。なお、駆動対象の関節機構JEは、「駆動対象の関節」の一例であり、固定対象の関節機構JEは、「固定対象の関節」の一例である。
【0130】
第1駆動モードでは、複数の関節機構JEのうち、関節機構JEr1、JEr2、JEr3、JEr4、JEr5及びJEr6が駆動対象の関節機構JEであり、関節機構JEp1及びJEp2が固定対象の関節機構JEである。すなわち、第1駆動モードでは、ロボット10は、所謂、垂直6軸多関節ロボットとして動作する。以下では、第1駆動モードを、垂直6軸多関節モードと称する場合がある。
【0131】
第2駆動モードでは、複数の関節機構JEのうち、関節機構JEp1及びJEp2が駆動対象の関節機構JEであり、関節機構JEr1、JEr2、JEr3、JEr4、JEr5及びJEr6が固定対象の関節機構JEである。すなわち、第2駆動モードでは、ロボット10は、所謂、直交ロボットとして動作する。以下では、第2駆動モードを、直交モードと称する場合がある。
【0132】
第3駆動モードでは、複数の関節機構JEのうち、関節機構JEr6及びJEp2が駆動対象の関節機構JEであり、関節機構JEr1、JEr2、JEr3、JEr4、JEr5及びJEp1が固定対象の関節機構JEである。すなわち、第3駆動モードでは、ロボット10は、関節機構JEp2による直線的な動作と関節機構JEr6によりエンドエフェクタ20を回転させる動作とを組み合わせた動作を実行可能である。従って、第3駆動モードは、例えば、ねじを回すドライバを用いた作業に適している。以下では、第3駆動モードを、ドライバモードと称する場合がある。なお、第2駆動モード及び第3駆動モードは、「特定の駆動モード」の一例である。
【0133】
第4駆動モードでは、複数の関節機構JEの全てが駆動対象の関節機構JEである。すなわち、第4駆動モードでは、複数の関節機構JEの中に、固定対象の関節機構JEは存在しない。以下では、第4駆動モードを、標準モードと称する場合がある。
【0134】
以下では、複数の駆動モードが図4に示す第1駆動モード、第2駆動モード、第3駆動モード及び第4駆動モードである場合を想定する。但し、複数の駆動モードは、図4に示す例に限定されない。例えば、ドライバモードを必要としない生産ラインにロボット10が用いられる場合、複数の駆動モードは、第3駆動モードを含まなくてもよい。
【0135】
また、複数の駆動モードは、第1駆動モード、第2駆動モード及び第3駆動モードの一部又は全部に代えて、又は、第1駆動モード、第2駆動モード、第3駆動モード及び第4駆動モードに加えて、1又は複数の他の駆動モードを含んでもよい。他の駆動モードは、例えば、所謂、水平多関節ロボット(スカラロボット)として動作する駆動モード(以下、スカラモードとも称する)であってもよい。スカラモードでは、複数の関節機構JEのうち、関節機構JEr1、JEp1及びJEp2が駆動対象の関節機構JEであり、関節機構JEr2、JEr3、JEr4、JEr5及びJEr6が固定対象の関節機構JEである。また、他の駆動モードは、直交モードにおける駆動対象の関節機構JE(JEp1及びJEp2)に加えて、関節機構JEr2及びJEr3が駆動対象の関節機構JEとして対応付けられた駆動モードであってもよい。
【0136】
次に、図5を参照しながら、表示装置38に表示される操作画面OPSの概要について説明する。
【0137】
図5は、操作画面OPSの一例を説明するための説明図である。
【0138】
例えば、ロボットコントローラ30の表示制御部34は、複数の駆動モードから一の駆動モードを選択するための選択画面として、操作画面OPSを表示装置38に表示させる。具体的には、例えば、表示制御部34は、操作画面OPSを表示装置38に表示させるための表示情報を、表示装置38に出力する。これにより、操作画面OPSが表示装置38に表示される。表示制御部34による表示情報の生成は、例えば、操作画面OPSを表示するための操作がロボットコントローラ30に対して実行されたことを契機に実行されてもよいし、ロボットコントローラ30が起動されたことを契機に実行されてもよい。
【0139】
操作画面OPSは、複数の表示ウィンドウWD(WDm、WDj、WDpc及びWDpa)を含む。表示ウィンドウWDmには、例えば、ロボット10の現在の状態を示す動画像として、カメラ等の撮像装置により撮影されたロボット10の動画像が表示される。複数の表示ウィンドウWDjには、複数の関節機構JE(JEr1、JEr2、JEr3、JEr4、JEr5、JEr6、JEp1及びJEp2)の現在の関節値がそれぞれ表示される。
【0140】
また、表示ウィンドウWDp(WDpc及びWDpa)には、ロボット10の現在の手先の位置及び姿勢を示す情報が表示される。例えば、ロボット10の手先の位置(例えば、先端部TP1のうち、エンドエフェクタ20が取り付けられる端面TP1sfの中心)の座標が、表示ウィンドウWDpcに表示される。また、例えば、ロボット10の手先の姿勢を示す情報が、表示ウィンドウWDpaに表示される。ロボット10の手先の姿勢を示す情報は、例えば、3個の角度の組で表されるオイラー角であってもよいし、ロール角、ピッチ角及びヨー角の3個の角度であってもよい。
【0141】
さらに、操作画面OPSには、GUI(Graphical User Interface)用の複数のボタンBT(BTpc、BTpa、BTs及びBTd)等が表示される。複数のボタンBTは、例えば、ロボット10に動作を教示する場合、及び、ロボット10の教示以外の実動作においてロボット10の動作を制御する場合等に用いられる。
【0142】
ボタンBTp(BTpc及びBTpa)は、例えば、ロボット10の手先の位置及び姿勢の目標値を設定するための情報の入力を受け付けるGUIである。例えば、ロボット10の手先の目標の位置は、X軸、Y軸及びZ軸にそれぞれ対応する3個のボタンBTpcを用いて設定され、ロボット10の手先の目標の姿勢は、ロボット10の手先の姿勢を示す3個の角度にそれぞれ対応する3個のボタンBTpaを用いて設定される。
【0143】
より具体的には、ロボット10の手先のX軸の位置は、X軸に対応するボタンBTpcを用いて設定される。例えば、X軸に対応する「+」及び「-」のボタンBTpcのうち、「+」のボタンBTpcが押下された場合、X軸に対応する表示ウィンドウWDpcに表示されている値が増加する。なお、X軸に対応する「+」及び「-」のボタンBTpcのうち、「-」のボタンBTpcが押下された場合、X軸に対応する表示ウィンドウWDpcに表示されている値が減少する。また、ロボット10の手先の姿勢を示す3個の角度のうちの一の角度に対応する「+」及び「-」のボタンBTpaのうち、「+」のボタンBTpaが押下された場合、当該角度に対応する表示ウィンドウWDpaに表示されている値が増加する。なお、当該角度に対応する「+」及び「-」のボタンBTpaのうち、「-」のボタンBTpaが押下された場合、当該角度に対応する表示ウィンドウWDpaに表示されている値が減少する。
【0144】
このように、作業者は、ボタンBTp(BTpc及びBTpa)を押下することにより、ロボット10の手先の目標の位置及び姿勢を設定することができる。
【0145】
ボタンBTs(BTs1、BTs2、BTs3及びBTs4)は、ロボット10の駆動モードを選択するための情報の入力を受け付けるGUIである。例えば、ボタンBTs1が押下された場合、ロボット10の駆動モードとして、第1駆動モードが選択され、ボタンBTs2が押下された場合、ロボット10の駆動モードとして、第2駆動モードが選択される。また、例えば、ボタンBTs3が押下された場合、ロボット10の駆動モードとして、第3駆動モードが選択され、ボタンBTs4が押下された場合、ロボット10の駆動モードとして、第4駆動モードが選択される。
【0146】
このように、作業者は、ボタンBTs(BTs1、BTs2、BTs3及びBTs4)を押下することにより、ロボット10の駆動モードを選択することができる。
【0147】
ボタンBTdは、例えば、作業者により入力された目標の位置及び姿勢、及び、作業者により選択された駆動モード等を、ロボット10の教示等に用いられる最終的な情報として確定するためのGUIである。例えば、ボタンBTdが押下された場合、表示ウィンドウWDpに表示されている値に基づく位置及び姿勢が目標の位置及び姿勢として確定し、作業者により最後に押下されたボタンBTsに対応する駆動モードがロボット10の駆動モードとして確定する。なお、操作画面OPSは、ロボット10の教示を開始するためのGUI、及び、ロボット10の教示を終了するためのGUIを含んでもよい。
【0148】
さらに、操作画面OPSには、例えば、ロボット10の状態が特定状態であるか否か等を作業者に認識させる警告灯として機能する複数の警告画像WLjが表示される。特定状態は、例えば、所定の関節機構JEの関節値が、当該関節機構JEの可動に関する制約を満たす限界値の近傍の値(例えば、限界値に所定の余裕を持たせた値)となった状態である。以下では、関節機構JEの関節値が当該関節機構JEの可動に関する制約を満たす限界値である場合の関節機構JEの状態は、限界状態とも称される。また、所定の余裕は、例えば、関節機構JEの状態が限界状態に到達する前に、関節機構JEの状態が限界状態に近づいたことをロボットコントローラ30に認識させるために設定されたマージンである。
【0149】
ここで、関節機構JEの可動に関する制約は、例えば、関節機構JEの移動範囲(関節機構JEp1による関節機構JEr3の移動範囲、及び、関節機構JEp2による関節機構JEr3の移動範囲等)であってもよい。例えば、関節機構JEp1により、関節機構JEr3がリンクLK1に対して相対的に移動する場合、関節機構JEr3の移動範囲は、移動領域ARmv1に制限される。従って、関節機構JEr3が移動領域ARmv1の端部に位置する場合、関節機構JEp1の関節値は限界値であり、関節機構JEp1の状態は限界状態である。
【0150】
あるいは、関節機構JEの可動に関する制約は、特異点を回避するための制約であってもよいし、特異点を回避するための制約及び関節機構JEの移動範囲の両方を含んでもよい。特異点は、例えば、ロボット10の姿勢が、ロボット10を制御できなくなる姿勢になることである。
【0151】
図5に示す例では、操作画面OPSは、複数の関節機構JEと1対1に対応する複数の警告画像WLjを含む。例えば、ロボット10の状態が、特異点を回避するための制約に基づく特定状態である場合、特異点に関連する関節機構JEに対応する警告画像WLjが、赤色に表示される。このように、特定状態である関節機構JEに対応する警告画像WLjは、特定の色(例えば、赤色)に表示され、特定状態でない関節機構JEに対応する警告画像WLjは、特定の色以外の色に表示される。なお、警告画像WLjは、青色、黄色及び赤色等のように3色以上の色を用いて、関節機構JEの状態を作業者に認識させてもよい。例えば、特定状態でない関節機構JEに対応する警告画像WLjは、青色又は黄色に表示されてもよい。この場合、黄色の警告画像WLjは、例えば、当該警告画像WLjに対応する関節機構JEの状態が、警告画像WLjが青色の場合に比べて、特定状態に近いことを意味する。
【0152】
このように、操作画面OPSは、例えば、ロボット10に動作を教示する場合、及び、ロボット10の教示以外の実動作においてロボット10の動作を制御する場合等に用いられるGUIとして機能する複数のボタンBTを含む。さらに、操作画面OPSは、ロボット10の動作をモニタリングするための複数の表示ウィンドウWD及び複数の警告画像WLjを含む。
【0153】
なお、操作画面OPSの例は、図5に示す例に限定されない。例えば、表示ウィンドウWDm及び複数の表示ウィンドウWDjの一方又は両方は、操作画面OPSに表示されなくてもよい。また、例えば、表示制御部34は、複数の操作画面を選択的に表示装置38に表示させてもよい。この場合、複数の表示ウィンドウWD(WDm、WDj、WDpc及びWDpa)の一部は、操作画面OPSとは別の操作画面に表示されてもよい。
【0154】
また、例えば、警告画像WLjは、色が変化する代わりに、又は、色の変化に加えて、関節機構JEの状態に応じた点滅パターンにより、関節機構JEの状態を作業者に認識させてもよい。また、例えば、複数の警告画像WLjの代わりに、複数の表示ウィンドウWDjの色又は点滅パターン等を用いて、ロボット10の状態が特定状態であるか否か等を作業者に認識させてもよい。あるいは、複数の警告画像WLjの代わりに、又は、複数の警告画像WLjに加えて、警告音により、ロボット10の状態が特定状態であるか否か等を作業者に認識させてもよい。
【0155】
また、操作画面OPSに含まれる警告画像WLjの数は、図5に示す例に限定されない。例えば、特異点に関連する関節機構JEを作業者に特に通知しない場合、操作画面OPSは、6個の関節機構JErに対応する6個の警告画像WLjの代わりに、ロボット10の姿勢が特異点に近づいていることを作業者に警告する1個の警告画像WLjを含んでもよい。あるいは、6個の警告画像WLjが用いられる代わりに、操作画面OPS全体の色を変化させること、又は、操作画面OPS全体を点滅させること等により、ロボット10の姿勢が特異点に近づいていることを作業者に警告してもよい。
【0156】
次に、図6及び図7を参照しながら、ロボットコントローラ30の動作の概要について説明する。
【0157】
図6は、図1に示したロボットコントローラ30の動作の一例を示すフローチャートである。図6に示す動作では、ロボット10の手先の位置及び姿勢を目標の位置PP及び姿勢PSにするための各関節機構JEの関節値(例えば、関節機構JEの位置、及び、関節機構JErによる回転の回転角度等を示す情報)を算出する処理が行われる。例えば、図6に示す動作は、動作制御部33として機能する処理装置32により、実行される。すなわち、図6に示す動作(ステップS100からステップS780までの一連の処理)では、処理装置32は、動作制御部33として機能する。
【0158】
なお、図6に示す動作では、複数の目標の位置PP及び姿勢PSがn個(nは1以上の自然数)である場合を想定する。例えば、ロボット10の初期状態から最終的な目標状態までのロボット10の軌道として、n個の目標の位置PP及び姿勢PSが定義される。以下では、n個の目標の位置PP及び姿勢PSをn個の目標状態と称する場合がある。また、図6に示す動作では、変数k(kは1以上n以下の自然数)の初期値が1である場合を想定する。また、以下では、k番目の目標の位置PP及び姿勢PSを位置PPk及び姿勢PSkとそれぞれ称する場合がある。例えば、位置PP1及び姿勢PS1は、1番目の目標の位置PP及び姿勢PSであり、位置PPn及び姿勢PSnは、n番目の目標(最終的な目標)の位置PP及び姿勢PSである。ロボットコントローラ30は、例えば、変数kを1からnまで順に変化させることにより、ロボット10の手先の目標の位置PPk及び姿勢PSkを順に更新する。
【0159】
図6では、ロボット10の初期状態から最終的な目標状態までのロボット10の軌道を教示するために、n個の目標の位置PP及び姿勢PSが順に設定される場合のロボットコントローラ30の動作を中心に説明する。
【0160】
先ず、ステップS100において、動作制御部33は、ロボット10の駆動モードを選択する。例えば、動作制御部33は、図5に示した操作画面OPSを介して入力された情報に基づいて、ロボット10の駆動モードを選択する。具体的には、例えば、動作制御部33は、複数のボタンBTsのうち、ボタンBTdが押下される前に押下されたボタンBTsに対応する駆動モードを、ロボット10の駆動モードとして選択する。なお、ボタンBTdが押下される前に2以上のボタンBTsが押下された場合、当該2以上のボタンBTsのうち、最後に押下されたボタンBTsに対応する駆動モードが、ロボット10の駆動モードとして選択される。また、例えば、図6に示す動作が開始され、複数のボタンBTsのいずれも押下されずに、ボタンBTdが押下された場合、初期設定の駆動モード(例えば、標準モード)が、ロボット10の駆動モードとして選択される。
【0161】
次に、ステップS120において、動作制御部33は、ロボット10の手先のk番目の目標の位置PPk及び姿勢PSkを設定する。例えば、動作制御部33は、操作画面OPSを介して入力された情報に基づいて、ロボット10の駆動モードを選択する。具体的には、例えば、動作制御部33は、ボタンBTdが押下された場合に表示ウィンドウWDp(WDpc及びWDpa)に表示されている値を、ロボット10の手先のk番目の目標の位置PPk及び姿勢PSkとして設定する。動作制御部33は、ステップS120の処理を実行した後、処理をステップS200に進める。
【0162】
ステップS200において、動作制御部33は、ロボット10の手先の位置及び姿勢と目標の位置PPk及び姿勢PSkとの差分を算出する。例えば、動作制御部33は、各関節機構JEの現在の関節値に基づいて、ロボット10の手先の位置及び姿勢を算出する。そして、動作制御部33は、各関節機構JEの現在の関節値に基づいて算出されたロボット10の手先の位置及び姿勢とロボット10の手先の目標の位置PPk及び姿勢PSkとの差分を算出する。
【0163】
次に、ステップS300において、動作制御部33は、ロボット10の手先の位置及び姿勢と目標の位置PPk及び姿勢PSkとの差分が許容値以下であるか否かを判定する。許容値は、例えば、ロボット10の手先の位置及び姿勢と目標の位置PP及び姿勢PSとの差分が許容値以下であれば、ロボット10の手先の位置及び姿勢が目標の位置PP及び姿勢PSと一致していると見なせる値に設定される。
【0164】
ステップS300における判定の結果が肯定の場合、動作制御部33は、処理をステップS700に進める。一方、ステップS300における判定の結果が否定の場合、動作制御部33は、処理をステップS400に進める。
【0165】
ステップS400において、動作制御部33は、各関節機構JEの関節値を更新する関節値更新処理を実行する。例えば、関節値更新処理では、動作制御部33は、複数の関節機構JEのうち、駆動モードに基づいて特定される駆動対象の関節機構JEの変位量を計算する逆運動学計算を含む算出処理を実行することにより、複数の関節機構JEの関節値を算出する。なお、関節値更新処理の詳細については、後述する図7において説明される。動作制御部33は、ステップS400の関節値更新処理を実行した後、処理をステップS500に進める。
【0166】
ステップS500において、動作制御部33は、ループカウントをインクリメントする。なお、ループカウントは、図6に示す動作が実行される前に、0に初期化されている。
【0167】
次に、ステップS520において、動作制御部33は、ループカウントが上限値以下か否かを判定する。上限値は、ステップS200からステップS520までの一連の処理の繰り返し回数の上限値であり、ステップS200からステップS520までの一連の処理が収束しない場合に図6に示す動作を終了させるために設定される。
【0168】
ステップS520における判定の結果が否定の場合、動作制御部33は、ステップS600において、ロボット10の動作をエラーとして停止する。この場合、図6に示す動作により算出された各関節機構JEの関節値(ステップS400の関節値更新処理において更新された各関節機構JEの最新の関節値)は、ロボット10の手先の位置及び姿勢を目標の位置PP及び姿勢PSにする関節値になるとは限らない。このため、動作制御部33は、ロボット10の手先の位置及び姿勢を目標の位置PP及び姿勢PSにするための各関節機構JEの関節値を算出する処理が収束しなかったことを示すエラー情報を作業者等に通知してもよい。例えば、動作制御部33は、エラー情報を表示装置38に表示させてもよい。
【0169】
一方、ステップS520における判定の結果が肯定の場合、動作制御部33は、処理をステップS200に戻す。このように、ステップS200からステップS520までの一連の処理は、ロボット10の手先の位置及び姿勢を目標の位置PP及び姿勢PSにするための各関節機構JEの関節値が算出されるまで、又は、ループカウントが上限値を超えるまで、繰り返される。
【0170】
また、上述したように、ステップS300における判定の結果が肯定の場合、ステップS700の処理が実行される。この場合、ステップS200においてロボット10の手先の位置及び姿勢の算出に用いられた各関節機構JEの関節値(最新の関節値)が、ロボット10の手先の位置及び姿勢を目標の位置PP及び姿勢PSにするための各関節機構JEの関節値として算出される。なお、ステップS200からステップS520までの一連の処理が2回以上繰り返されている場合、今回のステップS200の処理に用いられた最新の関節値は、前回のステップS400の関節値更新処理において更新された関節値である。
【0171】
ステップS700において、動作制御部33は、各関節機構JEを、ステップS400の関節値更新処理により更新された各関節機構JEの関節値に従って制御する。これにより、ロボット10の手先の位置及び姿勢は、目標の位置PPk及び姿勢PSkに変化する。なお、ロボット10に動作を教示する場合、動作制御部33は、ステップS700において、ステップS400の関節値更新処理により更新された各関節機構JEの関節値を目標の位置PPk及び姿勢PSkの関節値としてメモリ35に記憶する。例えば、ロボット10に動作を教示する場合、動作制御部33は、関節値更新処理において算出された複数の関節機構JEの関節値を示す関節状態情報を生成し、生成した関節状態情報をメモリ35に記憶する。
【0172】
ここで、例えば、ロボット10の初期状態における手先の位置及び姿勢と目標の位置PP1及び姿勢PS1との差分が許容値以下である場合、ステップS400の関節値更新処理が1回も実行されずに、ステップS300における判定の結果が肯定となる。この場合、上述の「ステップS400の関節値更新処理により更新された各関節機構JEの関節値」は、「ロボット10の初期状態における各関節機構JEの関節値」に読み替えられる。例えば、ステップS400の関節値更新処理が1回も実行されずにステップS300における判定の結果が肯定となる場合、動作制御部33は、ステップS700において、各関節機構JEの関節値をロボット10の初期状態における各関節機構JEの関節値に維持する。
【0173】
動作制御部33は、ステップS700の処理を実行した後、処理をステップS720に進める。
【0174】
ステップS720において、動作制御部33は、変数kがnより小さいか否かを判定する。ステップS720における判定の結果が否定の場合、すなわち、ロボット10の手先の位置及び姿勢が最終的な目標の位置PPn及び姿勢PSnに変化した場合、動作制御部33は、図6に示す動作を終了する。一方、ステップS720における判定の結果が肯定の場合、動作制御部33は、ステップS740においてループカウントを0にリセットした後、処理をステップS760に進める。
【0175】
ステップS760において、動作制御部33は、変数kをインクリメントする(k=k+1)。そして、動作制御部33は、処理をステップS780に進める。
【0176】
ステップS780において、動作制御部33は、駆動モードを変更するか否かを判定する。なお、処理装置32は、ステップS780において、表示制御部34として機能し、次の目標の位置PPk及び姿勢PSkを設定するための情報の入力を受け付ける旨のメッセージを、操作画面OPSに表示してもよい。そして、処理装置32は、動作制御部33として機能し、ボタンBTdが押下されたことを契機に、駆動モードを変更するか否かを判定してもよい。例えば、動作制御部33は、複数のボタンBTsのいずれも押下されずに、ボタンBTdが押下された場合、駆動モードを変更しないと判定し、ボタンBTdが押下される前に複数のボタンBTsのいずれかが押下された場合、駆動モードを変更すると判定する。なお、動作制御部33は、ボタンBTdが押下される前に複数のボタンBTsのいずれかが押下されても、押下されたボタンBTsに対応する駆動モードが現時点で選択中の駆動モードと同じ場合、駆動モードを変更しないと判定してもよい。
【0177】
ステップS780における判定の結果が肯定の場合、動作制御部33は、処理をステップS100に戻す。これにより、ステップS100において、ロボット10の手先の次の目標の位置PPk及び姿勢PSkに対応する駆動モードが選択され、ステップS120において、ロボット10の手先の次の目標の位置PPk及び姿勢PSkが設定される。一方、ステップS780における判定の結果が否定の場合、動作制御部33は、処理をステップS120に戻す。これにより、駆動モードが変更されずに、ステップS120において、ロボット10の手先の次の目標の位置PPk及び姿勢PSkが設定される。
【0178】
このように、図6に示す動作では、n個の目標状態(位置PP及び姿勢PS)の各々において、ロボット10の手先の位置及び姿勢と目標の位置PPk及び姿勢PSkとの差分が許容値以下になるまで、ステップS200からステップS520までの一連の処理が繰り返される。
【0179】
なお、ロボットコントローラ30の動作は、図6に示す例に限定されない。例えば、ステップS780の処理は、省かれてもよい。この場合、動作制御部33は、ステップS760の処理を実行した後、処理をステップS100に戻す。また、ステップS100の処理は、ステップS120の処理の後に実行されてもよいし、ステップS120の処理と並列に実行されてもよい。
【0180】
また、上述の説明では、n個の位置PP及び姿勢PSに関する情報等が図6に示す動作の実行中に入力される場合を想定したが、図6に示す動作は、例えば、n個の目標の位置PP及び姿勢PSがメモリ35に記憶された後に開始されてもよい。この場合、ロボット10の駆動モードは、例えば、n個の目標の位置PP及び姿勢PSに対応付けてメモリ35に記憶される。そして、ステップS100及びS120の一連の処理は、メモリ35に記憶された情報(駆動モード、位置PP及び姿勢PS)に基づいて実行される。また、この場合においても、ステップS780の処理は、省かれてもよい。
【0181】
次に、図7を参照しながら、ステップS400の関節値更新処理について説明する。
【0182】
図7は、図6に示した関節値更新処理の一例を示すフローチャートである。例えば、動作制御部33として機能する処理装置32は、図6に示したステップS400の関節値更新処理として、図7に示すステップS420からステップS490までの一連の処理を実行する。従って、ステップS420の処理は、図6に示したステップS300における判定の結果が否定の場合に実行される。また、ステップS490の処理が実行された後、図6に示したステップS500の処理が実行される。
【0183】
先ず、ステップS420において、動作制御部33は、各関節機構JEの現在の関節値に基づいて、ヤコビ行列Jを算出する。そして、動作制御部33は、処理をステップS440に進める。
【0184】
ステップS440において、動作制御部33は、複数の関節機構JEの中に、固定対象の関節機構JEが存在するか否かを判定する。例えば、動作制御部33は、ロボット10の駆動モードが第4駆動モードである場合、複数の関節機構JEの中に、固定対象の関節機構JEが存在しないと判定する。すなわち、動作制御部33は、ロボット10の駆動モードが第4駆動モード以外の駆動モードである場合、複数の関節機構JEの中に、固定対象の関節機構JEが存在すると判定する。
【0185】
ステップS440における判定の結果が肯定の場合、動作制御部33は、処理をステップS460に進める。一方、ステップS440における判定の結果が否定の場合、動作制御部33は、処理をステップS480に進める。
【0186】
ステップS460において、動作制御部33は、ヤコビ行列Jの複数の要素のうち、固定対象の関節機構JEに対応する要素の値を実質的に0に設定する。これにより、例えば、ヤコビ行列Jの固定対象の関節機構JEに対応する列の要素の値が実質的に0に設定される。そして、動作制御部33は、処理をステップS480に進める。
【0187】
ステップS480において、動作制御部33は、ヤコビ行列Jの擬似逆行列Jを用いて、各関節機構JEの変位量(例えば、各関節機構JEの関節速度θ(・))を算出する。なお、複数の関節機構JEの中に固定対象の関節機構JEが存在する場合、固定対象の関節機構JEの変位量は、ヤコビ行列Jの固定対象の関節機構JEに対応する列の要素の値が実質的に0に設定されているため、0又はほぼ0となる。なお、ほぼ0は、例えば、0と見なせる値である。動作制御部33は、ステップS480の処理を実行した後、処理をステップS490に進める。
【0188】
ステップS490において、動作制御部33は、各関節機構JEの変位量に基づいて、各関節機構JEの関節値を更新する。例えば、動作制御部33は、図6に示したステップS200においてロボット10の手先の位置及び姿勢の算出に用いられた各関節機構JEの関節値に各関節機構JEの変位量を加算することにより、各関節機構JEの関節値を更新する。なお、複数の関節機構JEの中に固定対象の関節機構JEが存在する場合、固定対象の関節機構JEの変位量が0又はほぼ0であるため、ステップS490の処理による更新後の固定対象の関節機構JEの関節値は、更新前の値と同じ又はほぼ同じ値となる。なお、更新前の値とほぼ同じ値は、例えば、更新前の値と同じと見なせる値である。従って、固定対象の関節機構JEでは、状態は変化せずに維持される。これにより、本実施形態では、複数の関節機構JEのうち、駆動モードに基づいて特定される駆動対象の関節機構JEのみを駆動することができる。
【0189】
ここで、例えば、ステップS480及びS490の一連の処理は、「算出処理」の例であり、ステップS440及びS460の一連の処理は、「固定処理」の例である。なお、「算出処理」は、ステップS480及びS490の一連の処理に加えて、ステップS420の処理を含んでもよい。あるいは、ステップS420からステップS490までの一連の処理が「算出処理」として捉えられてもよい。この場合、「算出処理」は、「固定処理」を含む。
【0190】
なお、関節値更新処理は、図7に示す例に限定されない。例えば、動作制御部33は、ステップS440において、複数の関節機構JEの中に、固定対象の関節機構JE、及び、図5において説明した特定状態の関節機構JEのいずれかが存在するか否かを判定してもよい。この場合、特定状態の関節機構JEも、固定対象の関節機構JEと同様に、ステップS460において、ヤコビ行列Jの複数の要素のうち、特定状態の関節機構JEに対応する要素の値は、実質的に0に設定される。この態様では、特定状態の関節機構JEも、固定対象の関節機構JEと同様に固定関節として扱われるため、関節機構JEの状態が関節機構JEの可動に関する制約を満たさない状態(例えば、可動範囲外の状態)になることを抑制することができる。
【0191】
また、動作が教示されたロボット10では、例えば、各関節機構JEは、教示された関節値(例えば、ステップS700においてメモリ35に記憶された関節状態情報により示される関節値)に従って動作する。但し、動作が教示されたロボット10においても、ロボット10の教示に用いられたn個の目標状態(位置PP及び姿勢PS)間を補完して動作する場合、ロボットコントローラ30は、図6及び図7に示した動作と同様の動作を実行する。この場合、ロボット10の駆動モードは、例えば、n個の目標の位置PP及び姿勢PSに対応付けてメモリ35に記憶される。
【0192】
次に、図8及び図9を参照しながら、レンズLNSを研磨する動作を所定の動作としてロボット10に教示する場合を例にして、ロボットシステム1の動作について説明する。
【0193】
図8は、ロボットシステム1の動作の一例を説明するための説明図である。図9は、図8に示したロボットシステム1の動作の続きの動作を説明するための説明図である。
【0194】
図8及び図9では、作業台WBに配置されたレンズLNSの表面をロボット10が研磨工具TLで加工する動作におけるロボット10の主要な状態を示している。なお、図8及び図9では、研磨工具TLがエンドエフェクタ20に把持される例が図示されているが、研磨工具TLが設けられたエンドエフェクタ20が、先端部TP1の端面TP1sfに取り付けられてもよい。
【0195】
図の上面図は、+Z方向から見たロボット10を模式的に示し、図の側面図は、方向Dax3から見たロボット10を模式的に示している。なお、+Z方向は、Z軸の矢印の指す方向であり、方向Dax3は、関節機構JEr3の回転軸である軸Ax3に沿う方向のうち、リンクLK1からリンクLK2に向かう方向である。
【0196】
以下では、+Z方向を上方と称し、+Z方向の反対方向を-Z方向又は下方と称する場合がある。また、以下では、+Z方向及び-Z方向を、特に区別することなく、Z軸方向又は上下方向と称する場合がある。また、以下では、X軸の矢印の指す方向は+X方向と称され、+X方向の反対方向は-X方向と称される。また、以下では、+X方向及び-X方向を、特に区別することなく、X軸方向と称する場合がある。
【0197】
図8(a)及び図8(b)に示す動作は、+Z方向から平面視において、エンドエフェクタ20をレンズLNSと重ならない待機位置からレンズLNSと重なる所定の位置まで移動させる動作であり、第1動作に該当する。例えば、上述の所定の位置は、ロボット10がレンズLNSを研磨する際のエンドエフェクタ20の開始位置である。先端部TP1に取り付けられたエンドエフェクタ20が開始位置に位置している場合の先端部TP1の位置は、基準位置に該当する。従って、先端部TP1に取り付けられたエンドエフェクタ20を開始位置まで移動させる動作は、先端部TP1を基準位置まで移動させる第1動作に該当する。
【0198】
図8に示す第1動作では、ロボット10が複雑な姿勢を取るため、複数の関節機構JEの全てが駆動対象の関節機構JEである標準モード(第4駆動モード)、又は、垂直6軸多関節モード(第1駆動モード)がロボット10の駆動モードとして適切である。
【0199】
図8では、標準モードが選択される場合を想定する。例えば、ロボット10の教示が開始されると、作業者は、エンドエフェクタ20が開始位置に位置する場合のロボット10の手先の位置及び姿勢に対応する目標の位置PP及び姿勢PSを設定するために、図5に示したボタンBTpを操作する。そして、作業者は、ボタンBTs4を押下した後、ボタンBTdを押下する。これにより、図6のステップS100において、標準モードが選択され、ステップS120において、目標の位置PP及び姿勢PSが設定される。また、標準モードが選択されているため、図7のステップS460の処理は実行されない。従って、ロボット10は、8個の関節機構JEの全てが駆動する8軸多関節ロボットとして動作する。
【0200】
なお、初期設定の駆動モードが標準モードである場合、図8に示す第1動作において、ロボット10の教示が開始された後、複数のボタンBTsのいずれも押下されずに、ボタンBTdが押下されてもよい。また、以下では、説明を簡単にするために、操作画面OPSを介して目標の位置PP及び姿勢PSを入力する動作の説明を省略する。
【0201】
作業者は、例えば、エンドエフェクタ20が待機位置から開始位置に移動し、ロボット10の姿勢が、方向De1が軸Ax1に平行で、方向De2が方向De1に垂直となる姿勢(以下、直交姿勢とも称する)に変化した場合、ボタンBTs2を押下する。そして、作業者は、ボタンBTs2を押下した後、ボタンBTdを押下する。これにより、図6のステップS780において、駆動モードを変更すると判定され、ステップS100において、直交モードが選択される。
【0202】
なお、処理装置32は、ステップS780において、表示制御部34として機能し、次の目標の位置PPk及び姿勢PSkを設定するための情報の入力を受け付ける旨のメッセージを、操作画面OPSに表示してもよい。そして、作業者は、当該メッセージが操作画面OPSに表示されたことを契機に、目標の位置PPk及び姿勢PSkを設定するための操作(例えば、ボタンBTpの押下)と、直交モードを選択するための操作(例えば、ボタンBTs2の押下)とを実行してもよい。
【0203】
また、ロボットコントローラ30は、直交モードが選択された場合、例えば、図6のステップS200の処理が実行される前に、ロボット10の姿勢が直交姿勢であるか否かを判定してもよい。そして、ロボットコントローラ30は、ロボット10の姿勢が直交姿勢でない場合、ロボット10の姿勢を直交姿勢に変化させてから、図6のステップS200の処理を実行してもよい。
【0204】
このように、ロボット10がレンズLNSを研磨する動作では、エンドエフェクタ20が待機位置から開始位置に移動した後に、駆動モードが標準モードから直交モードに切り替わる。直交モードが選択された場合、図7のステップS460において、ヤコビ行列Jの複数の要素のうち、6個の関節機構JEr(JEr1、JEr2、JEr3、JEr4、JEr5及びJEr6)のそれぞれに対応する要素の値が実質的に0に設定される。これにより、エンドエフェクタ20が待機位置から開始位置に移動した後では、ロボット10は、図9(c)及び図9(d)に示すように、8個の関節機構JEのうちの2個の関節機構JEp(JEp1及びJEp2)のみが駆動する直交ロボットとして動作する。
【0205】
図9(c)及び図9(d)に示す動作は、研磨工具TLをレンズLNSの表面に接触させた状態で、エンドエフェクタ20をX軸方向に沿って往復移動させる往復動作を繰り返す動作であり、第2動作に該当する。なお、図9に示す例では、方向De2がX軸に平行であるため、先端部TP1に取り付けられたエンドエフェクタ20がX軸方向に沿って往復移動することは、先端部TP1が方向De2に沿って往復移動することに該当する。この場合、方向De2は、「特定方向」の一例である。
【0206】
図9に示す第2動作は、上述したように、エンドエフェクタ20が待機位置から開始位置に移動した後に、8個の関節機構JEのうちの2個の関節機構JEp(JEp1及びJEp2)のみが駆動する直交ロボットとして動作するロボット10により実行される。
【0207】
例えば、エンドエフェクタ20をX軸方向に沿って往復移動させる往復動作は、リンクLK1に対してリンクLK2を方向De2に沿って相対的に移動させる関節機構JEp2をロボットコントローラ30が駆動することにより、実行される。また、ロボットコントローラ30は、リンクLK1に対してリンクLK2を方向De1に沿って相対的に移動させる関節機構JEp1を駆動することにより、エンドエフェクタ20を上下方向に移動させる。すなわち、ロボットコントローラ30は、関節機構JEp1及びJEp2を駆動することにより、研磨工具TLをレンズLNSの表面の形状に合わせて移動させる。
【0208】
このように、ロボットコントローラ30は、レンズLNSを研磨する動作のうち、ロボット10の手先の位置及び姿勢を所定の位置及び姿勢にする第1動作では、ロボット10を8軸又は6軸多関節ロボットとして動作させる。そして、ロボットコントローラ30は、レンズLNSを研磨する動作のうち、研磨工具TLをレンズLNSの表面に接触させた状態で往復移動させる第2動作では、ロボット10を直交ロボットとして動作させる。
【0209】
すなわち、レンズLNSを研磨する動作のうちの第2動作では、8個の関節機構JEのうち、駆動する関節機構JEは、直動関節に対応する2個の関節機構JEp(JEp1及びJEp2)のみである。このため、本実施形態では、8個の関節機構JE又は6個の関節機構JErを駆動して第2動作を実行する場合に比べて、ロボット10の制御を容易にすること、及び、エンドエフェクタ20を所望の位置に移動させる場合の位置精度を高くすることができる。
【0210】
また、本実施形態では、関節機構JEp2によるリンクLK2の移動方向、及び、関節機構JEp1によるリンクLK2の移動方向は、研磨工具TLの移動方向(X軸方向及び上下方向)と一致又は略一致する。このため、本実施形態では、8個の関節機構JE又は6個の関節機構JErを駆動して第2動作を実行する場合に比べて、レンズLNSを研磨する力(トルク)を大きくすることができる。
【0211】
また、本実施形態では、レンズLNSの研磨のように多くの繰り返し回数が必要な作業であっても、8個の関節機構JEのうちの関節機構JEp1及びJEp2のみの駆動で実行できるため、非常に小さな動作で実行することができる。
【0212】
次に、図10及び図11を参照しながら、本実施形態の比較例として、6軸多関節のロボット10ZがレンズLNSを研磨する動作について説明する。
【0213】
図10は、6軸多関節のロボット10Zの動作の一例を説明するための説明図である。図11は、図10に示したロボット10Zの動作の続きの動作を説明するための説明図である。
【0214】
図10及び図11では、作業台WBに配置されたレンズLNSの表面をロボット10Zが研磨工具TLで加工する動作におけるロボット10Zの主要な状態を示している。図の上面図は、+Z方向から見たロボット10Zを模式的に示し、図の側面図は、方向Dax3から見たロボット10Zを模式的に示している。また、以下では、ロボット10Zの動作がロボットコントローラ30により制御される場合を想定する。
【0215】
図10に示すロボット10Zは、垂直6軸多関節ロボットである。例えば、ロボット10Zは、図2に示したロボット10から関節機構JEp1及びJEp2が省かれ、関節機構JEr3がリンクLK1の端部LK1ed2及びリンクLK2の端部LK2ed1に固定されていることを除いて、ロボット10と同様である。
【0216】
図10(a)及び図10(b)に示す動作は、図8に示した動作と同様に、+Z方向から平面視において、エンドエフェクタ20をレンズLNSと重ならない待機位置からレンズLNSと重なる所定の位置まで移動させる動作であり、第1動作に該当する。従って、図10に示す第1動作においても、ロボット10Zは、複雑な姿勢を取る。
【0217】
ロボットコントローラ30は、例えば、ロボット10Zの手先の位置及び姿勢が目標の位置PP及び姿勢PSと一致するように、ロボット10Zの回転関節に対応する6個の関節機構JErのうちの複数の関節機構JErを制御する。これにより、ロボット10Zのエンドエフェクタ20は、待機位置から所定の位置(開始位置)まで移動する。そして、ロボットコントローラ30は、エンドエフェクタ20が待機位置から開始位置に移動した後、図11(c)及び図11(d)に示すように、研磨工具TLをレンズLNSの表面の形状に合わせて移動させる動作をロボット10Zに実行させる。
【0218】
図11(c)及び図11(d)に示す動作は、図9に示した動作と同様に、研磨工具TLをレンズLNSの表面に接触させた状態で、エンドエフェクタ20をX軸方向に沿って往復移動させる往復動作を繰り返す動作であり、第2動作に該当する。
【0219】
図11に示す第2動作をロボット10Zに実行させる場合、ロボットコントローラ30は、6個の関節機構JErのうち、少なくとも3個の関節機構JEr2、JEr3及びJEr4を駆動させる必要がある。このように、ロボット10Zが第2動作を実行する場合、直交ロボットとして動作するロボット10が第2動作を実行する場合に比べて、駆動する関節機構JEの数が増加する。このため、ロボット10Zに第2動作を実行させる場合のロボット10Zの制御が複雑になる。従って、ロボット先端部の位置の繰り返し精度を向上させる障害となっている。
【0220】
また、図11に示す例では、関節機構JEr2によるリンクLK1の動作、及び、関節機構JEr3によるリンクLK2の動作が旋回動作であるため、リンクLK1及びLK2の各々の移動方向と研磨工具TLの移動方向との差が、図9に示す例に比べて、大きい。このため、ロボット10Zが第2動作を実行する場合、直交ロボットとして動作するロボット10が第2動作を実行する場合に比べて、エンドエフェクタ20を所望の位置に移動させる場合の位置精度、及び、レンズLNSを研磨する力(トルク)が低下する。
【0221】
このように、本実施形態では、ロボット10に実行させる動作に合わせて、垂直6軸多関節モード(第1駆動モード)と直交モード(第2駆動モード)とを任意に切り替えることができる。これにより、本実施形態では、ロボット10の制御が複雑になること、繰り返し精度を向上させること、及び、レンズLNSを研磨する力(トルク)を高めることができる。
【0222】
次に、図12及び図13を参照しながら、部品ASに対するねじ締め(ねじSCを締める動作)を所定の動作としてロボット10に教示する場合を例にして、ロボットシステム1の動作について説明する。
【0223】
図12は、ロボットシステム1の動作の別の例を説明するための説明図である。図13は、図12に示したロボットシステム1の動作の続きの動作を説明するための説明図である。
【0224】
図12及び図13では、部品ASに挿通されるねじSCを締める動作におけるロボット10の主要な状態を示している。図の上面図は、+Z方向から見たロボット10を模式的に示し、図の側面図は、方向Dax3から見たロボット10を模式的に示している。なお、図12及び図13では、ねじSCを回す加工工具であるドライバが設けられたエンドエフェクタ20が、先端部TP1の端面TP1sfに取り付けられる例が図示されているが、ねじSCを回すドライバがエンドエフェクタ20に把持されてもよい。
【0225】
図12(a)及び図12(b)に示す動作は、ロボット10のエンドエフェクタ20(ドライバ)をドライバフォルダHLから所定の位置(ねじSCの上方)まで移動させる動作であり、第1動作に該当する。例えば、上述の所定の位置は、+Z方向から平面視において、エンドエフェクタ20の中心(ドライバの先端)とねじSCとが重なる位置であり、ロボット10がねじSCを締める動作を実行する際のエンドエフェクタ20の開始位置である。先端部TP1に取り付けられたエンドエフェクタ20が開始位置に位置している場合の先端部TP1の位置は、基準位置に該当する。
【0226】
図12に示す第1動作においても、ロボット10が複雑な姿勢を取るため、複数の関節機構JEの全てが駆動対象の関節機構JEである標準モード(第4駆動モード)、又は、垂直6軸多関節モード(第1駆動モード)がロボット10の駆動モードとして適切である。
【0227】
図12では、標準モードが選択される場合を想定する。例えば、ロボット10の教示が開始されると、作業者は、ボタンBTs4を押下した後、ボタンBTdを押下する。これにより、図6のステップS100において、標準モードが選択され、ステップS120において、目標の位置PP及び姿勢PSが設定される。また、標準モードが選択されているため、図7のステップS460の処理は実行されない。従って、ロボット10は、8個の関節機構JEの全てが駆動する8軸多関節ロボットとして動作する。なお、図12に示す第1動作においても、初期設定の駆動モードが標準モードである場合、ロボット10の教示が開始された後、複数のボタンBTsのいずれも押下されずに、ボタンBTdが押下されてもよい。
【0228】
ロボットコントローラ30は、例えば、ロボット10の手先の位置及び姿勢が目標の位置PP及び姿勢PSと一致するように、8個の関節機構JEのうちの複数の関節機構JEを制御する。例えば、目標の位置PP及び姿勢PSは、エンドエフェクタ20の位置が所定の位置(ねじSCの上方)で、部品ASに対するねじ締めによりねじSCが移動する方向と方向De2とが一致する場合に対応するロボット10の手先の位置及び姿勢である。以下では、ねじ締めによりねじSCが移動する方向と方向De2とが一致する場合のロボットの姿勢をドライバ姿勢と称する場合がある。
【0229】
作業者は、例えば、エンドエフェクタ20がドライバフォルダHLから所定の位置に移動し、ロボット10の姿勢がドライバ姿勢に変化した場合、ボタンBTs3を押下し、ボタンBTs3を押下した後、ボタンBTdを押下する。これにより、図6のステップS780において、駆動モードを変更すると判定され、ステップS100において、ドライバモード(第3駆動モード)が選択される。
【0230】
なお、処理装置32は、ステップS780において、表示制御部34として機能し、次の目標の位置PPk及び姿勢PSkを設定するための情報の入力を受け付ける旨のメッセージを、操作画面OPSに表示してもよい。そして、作業者は、当該メッセージが操作画面OPSに表示されたことを契機に、目標の位置PPk及び姿勢PSkを設定するための操作(例えば、ボタンBTpの押下)と、ドライバモードを選択するための操作(例えば、ボタンBTs3の押下)とを実行してもよい。
【0231】
また、ロボットコントローラ30は、ドライバモードが選択された場合、例えば、図6のステップS200の処理が実行される前に、ロボット10の姿勢がドライバ姿勢であるか否かを判定してもよい。そして、ロボットコントローラ30は、ロボット10の姿勢がドライバ姿勢でない場合、ロボット10の姿勢をドライバ姿勢に変化させてから、図6のステップS200の処理を実行してもよい。
【0232】
このように、ロボット10がねじ締めを実行する場合、エンドエフェクタ20がドライバフォルダHLから所定の位置に移動した後に、駆動モードが標準モードからドライバモードに切り替わる。ドライバモードが選択された場合、図7のステップS460において、ヤコビ行列Jの複数の要素のうち、6個の関節機構JE(JEr1、JEr2、JEr3、JEr4、JEr5及びJEp1)のそれぞれに対応する要素の値が実質的に0に設定される。これにより、エンドエフェクタ20が所定の位置に移動した後では、図13(c)及び図13(d)に示すように、ロボット10の8個の関節機構JEのうち、2個の関節機構JE(JEr6及びJEp2)のみが駆動する。
【0233】
図13(c)及び図13(d)に示す動作は、ねじSCを部品ASに挿通させる動作であり、第2動作に該当する。具体的には、図13(c)に示す動作は、エンドエフェクタ20の先端(ドライバの先端)がねじSCの後端の溝に接触するまで、エンドエフェクタ20を下方に移動させる動作である。また、図13(d)に示す動作は、ねじSCを回転させながら下方に移動させる動作である。
【0234】
例えば、ねじSCを下方に移動させる動作は、リンクLK1に対してリンクLK2を方向De2に沿って相対的に移動させる関節機構JEp2をロボットコントローラ30が駆動することにより、実行される。また、例えば、ねじSCを回転させる動作は、エンドエフェクタ20が取り付けられる端面TP1sfを回転させる関節機構JEr6をロボットコントローラ30が駆動することにより、実行される。すなわち、ロボットコントローラ30は、関節機構JEr6及びJEp2を駆動することにより、ねじSCを回転させながら下方に移動させる。これにより、部品ASに対するねじ締めが実行される。
【0235】
このように、ロボットコントローラ30は、部品ASに対するねじ締めのうち、ロボット10の手先の位置及び姿勢を所定の位置及び姿勢にする第1動作では、ロボット10を8軸又は6軸多関節ロボットとして動作させる。そして、ロボットコントローラ30は、部品ASに対するねじ締めのうち、ねじSCを部品ASに挿通させる第2動作では、ロボット10を、8個の関節機構JEのうちの2個の関節機構JE(JEr6及びJEp2)のみが駆動するドライバモードで動作させる。
【0236】
すなわち、部品ASに対するねじ締めのうちの第2動作では、8個の関節機構JEのうち、駆動する関節機構JEは、リンクLK2を方向De2に沿って移動させる関節機構JEp2、及び、エンドエフェクタ20を回転させる関節機構JEr6のみである。特に、エンドエフェクタ20の移動は、直動関節に対応する関節機構JEp2のみを駆動してリンクLK2を方向De2に沿って移動させることにより、実行される。このため、本実施形態では、8個の関節機構JE又は6個の関節機構JErを駆動して第2動作を実行する場合に比べて、ロボット10の制御を容易にすること、及び、エンドエフェクタ20を下方に移動させる場合の位置精度を高くすることができる。
【0237】
また、本実施形態では、関節機構JEp2によるリンクLK2の移動方向は、エンドエフェクタ20の移動方向(下方)と一致する。このため、本実施形態では、8個の関節機構JE又は6個の関節機構JErを駆動して第2動作を実行する場合に比べて、ロボット10の制御を容易にすること、及び、ねじSCを所望の位置に移動させる場合の位置精度を高くすることができる。また、本実施形態では、ねじSCを部品ASに挿通させる力(トルク)を大きくすることができる。
【0238】
なお、ねじ締めに適している駆動モードは、8個の関節機構JEのうちの2個の関節機構JEr6及びJEp2のみが駆動する第3駆動モードに限定されない。例えば、複数の駆動モードが、8個の関節機構JEのうちの2個の関節機構JEp1及びJEr6のみが駆動対象の関節機構JEとして対応付けられた駆動モードを含む場合、当該駆動モードが、ねじ締めに適した駆動モードとして選択されてもよい。具体的には、例えば、エンドエフェクタ20が所定の位置に移動し、かつ、ロボット10の姿勢が直交姿勢に変化した後、8個の関節機構JEのうちの2個の関節機構JEp1及びJEr6のみが駆動する駆動モードが、第2動作の駆動モードとして選択される。
【0239】
すなわち、8個の関節機構JEのうち、関節機構JEp1及びJEp2の少なくとも一方と関節機構JEr6とが駆動対象の関節機構JEとして対応付けられた駆動モードが、ねじ締めにおける第2動作の駆動モードとして選択されてもよい。
【0240】
また、例えば、ロボットの駆動モードとしてドライバモードが選択された場合、ロボットコントローラ30は、逆運動学計算を実行せずに、単純に、関節機構JEp2及びJEr6の各々を所定のタイミングで駆動するように制御してもよい。同様に、8個の関節機構JEのうちの2個の関節機構JEp1及びJEr6のみが駆動する駆動モードにおいても、逆運動学計算を実行せずに、単純に、関節機構JEp2及びJEr6の各々を所定のタイミングで駆動するように制御してもよい。
【0241】
すなわち、ロボットコントローラ30がロボット10を制御する場合の動作は、図6及び図7に示した動作に限定されない。例えば、上述の例の他に、直交モードにおいても、逆運動学計算を実行せずに、単純に、関節機構JEp1及びJEp2の各々を所定のタイミングで駆動するように制御してもよい。
【0242】
次に、図14及び図15を参照しながら、本実施形態の比較例として、6軸多関節のロボット10Zが部品ASに対するねじ締めを実行する場合について説明する。
【0243】
図14は、6軸多関節のロボット10Zの動作の別の例を説明するための説明図である。図15は、図14に示したロボット10Zの動作の続きの動作を説明するための説明図である。
【0244】
図14及び図15では、部品ASに対するねじ締めをロボット10Zが実行する場合におけるロボット10Zの主要な状態を示している。図の上面図は、+Z方向から見たロボット10Zを模式的に示し、図の側面図は、方向Dax3から見たロボット10Zを模式的に示している。
【0245】
図14(a)及び図14(b)に示す動作は、図12に示した動作と同様に、ロボット10のエンドエフェクタ20(ドライバ)をドライバフォルダHLから所定の位置(ねじSCの上方)まで移動させる動作であり、第1動作に該当する。従って、図14に示す第1動作においても、ロボット10Zは、複雑な姿勢を取る。
【0246】
ロボットコントローラ30は、例えば、ロボット10Zの手先の位置及び姿勢が目標の位置PP及び姿勢PSと一致するように、ロボット10Zの回転関節に対応する6個の関節機構JErのうちの複数の関節機構JErを制御する。これにより、ロボット10Zのエンドエフェクタ20は、ドライバフォルダHLから所定の位置(ねじSCの上方)まで移動する。そして、ロボットコントローラ30は、エンドエフェクタ20がドライバフォルダHLから所定の位置に移動した後、図15(c)に示すように、エンドエフェクタ20を下方に移動させる。
【0247】
図15(c)及び図15(d)に示す動作は、図13に示した動作と同様に、ねじSCを部品ASに挿通させる動作であり、第2動作に該当する。具体的には、図15(c)に示す動作は、エンドエフェクタ20の先端(ドライバの先端)がねじSCの後端の溝に接触するまで、エンドエフェクタ20を下方に移動させる動作である。また、図15(d)に示す動作は、ねじSCを回転させながら下方に移動させる動作である。
【0248】
例えば、ロボットコントローラ30は、6個の関節機構JErのうちの3個の関節機構JEr2、JEr3及びJEr4を駆動することにより、エンドエフェクタ20の先端がねじSCの後端の溝に接触するまで、エンドエフェクタ20を下方に移動させる。そして、ロボットコントローラ30は、関節機構JEr2、JEr3及びJEr4を駆動することによりエンドエフェクタ20を下方に移動させるとともに、関節機構JEr6を駆動することによりエンドエフェクタ20を回転させる。これにより、部品ASに対するねじ締めが実行される。
【0249】
このように、ロボット10Zが第2動作を実行する場合、ドライバモードで動作するロボット10が第2動作を実行する場合に比べて、駆動する関節機構JEの数が増加する。このため、ロボット10Zに第2動作を実行させる場合のロボット10Zの制御が複雑になる。
【0250】
また、図15に示す例では、関節機構JEr2によるリンクLK1の動作、及び、関節機構JEr3によるリンクLK2の動作が旋回動作であるため、リンクLK1及びLK2の各々の移動方向とエンドエフェクタ20の移動方向との差が、図13に示す例に比べて、大きい。このため、ロボット10Zが第2動作を実行する場合、ドライバモードで動作するロボット10が第2動作を実行する場合に比べて、エンドエフェクタ20を所望の位置に移動させる場合の位置精度、及び、ねじSCを部品ASに挿通させる力(トルク)が低下する。
【0251】
このように、本実施形態では、ロボット10に実行させる動作に合わせて、垂直6軸多関節モード(第1駆動モード)とドライバモード(第3駆動モード)とを任意に切り替えることができる。これにより、本実施形態では、ロボット10の制御が複雑になること、繰り返し精度を向上させること、及び、ねじSCを部品ASに挿通させる力(トルク)を高めることができる。
【0252】
なお、ロボット10に実行させる所定の動作は、レンズLNSを研磨する動作、及び、部品ASに対するねじ締めに限定されない。例えば、ロボット10に実行させる所定の動作は、物品の組立及び除去等であってもよいし、物品を保持した状態での上下動や水平面での繰り返し動作等であってもよい。例えば、直交モードが選択され、物品を保持した状態で上下動を繰り返す動作が実行される場合、方向De1が「特定方向」に該当する。
【0253】
図8から図15において説明したように、本実施形態では、複数の駆動モードの中から、ロボット10に実行させる動作に適した駆動モードが選択される。これにより、本実施形態では、ロボット10の制御が複雑になること、及び、物品を加工する力(トルク)が小さくなることを抑制することができる。
【0254】
また、本実施形態では、例えば、ロボット10に実行させる動作に適した駆動モードを選択することができるため、作業内容に適した生産ラインを構築するために、複数種のロボットを準備する必要がない。このため、本実施形態では、生産ラインを構築するためのコストが増加することを抑制することができる。
【0255】
以上、本実施形態では、ロボットシステム1は、ボディ部BDP、先端部TP1、リンクLK1、リンクLK2及び複数の関節機構JEを有するロボット10と、ロボット10の動作を制御するロボットコントローラ30と、を有する。複数の関節機構JEは、ボディ部BDPとリンクLK1とを接続し、ボディ部BDPの底面BDPbtに垂直な方向とのなす角度が所定の角度より大きい軸Ax2を第1回転軸としてリンクLK1を回転させる関節機構JEr2と、リンクLK1とリンクLK2とを接続し、リンクLK1が延在する方向De1とのなす角度が所定の角度より大きい軸Ax3を第2回転軸としてリンクLK2をリンクLK1に対して回転させる関節機構JEr3と、リンクLK2と先端部TP1とを接続し、リンクLK2が延在する方向De2とのなす角度が所定の角度より大きい軸Ax4を第3回転軸として、先端部TP1をリンクLK2に対して回転させる関節機構JEr4と、方向De1に沿って、関節機構JEr3をリンクLK1に対して相対的に移動させる関節機構JEp1と、方向De2に沿って、リンクLK2を関節機構JEr3に対して相対的に移動させる関節機構JEp2と、を含む。
【0256】
ロボット10に所定の動作を実行させるロボット制御方法では、所定の動作は、物品に対して加工を行う場合の所定の位置まで先端部TP1を移動させる第1動作と、先端部TP1が所定の位置に移動した後に実行され、物品に対して加工を行う第2動作と、を含み、第2動作において、複数の関節機構JEのうちの関節機構JEr2、関節機構JEr3及び関節機構JEr4が駆動しないように、複数の関節機構JEを制御する。例えば、ロボットコントローラ30(より詳細には、動作制御部33)は、所定の動作をロボット10に実行させ、第2動作において、複数の関節機構JEのうちの関節機構JEr2、関節機構JEr3及び関節機構JEr4が駆動しないように、複数の関節機構JEを制御する。
【0257】
このように、本実施形態では、第2動作を実行する場合、複数の関節機構JEのうちの関節機構JEr2、関節機構JEr3及び関節機構JEr4は、駆動対象の関節機構JEに含まれない。このため、本実施形態では、複数の関節機構JEの全てを駆動させて第2動作を実行する場合に比べて、第2動作において駆動させる関節機構JEの数を少なくすることができる。これにより、本実施形態では、ロボット10に実行させる動作に拘わらず、複数の関節機構JEの全てが駆動対象である場合に比べて、ロボット10の制御が複雑になることを抑制することができる。
【0258】
また、本実施形態では、ボディ部BDPは、底面BDPbtに垂直な方向とのなす角度が所定角度以下の軸Ax1を第4回転軸として、ボディ部BDPの少なくとも一部分を回転させる関節機構JEr1を有し、先端部TP1は、リンクLK2に接続される第1部分TP11と、第1部分TP11に接続される第2部分TP12と、第1部分TP11と第2部分TP12とを接続し、第4回転軸とのなす角度が所定角度より大きい軸Ax5を第5回転軸として、第2部分TP12を第1部分TP11に対して回転させる関節機構JEr5と、第5回転軸とのなす角度が所定角度より大きい軸Ax6を第6回転軸として、先端部TP1のうちエンドエフェクタ20が取り付けられる部分を回転させる関節機構JEr6と、を有し、複数の関節機構JEは、関節機構JEr1、関節機構JEr5及び関節機構JEr6をさらに含む。
【0259】
このように、本実施形態では、6個の回転関節に対応する6個の関節機構JErと2個の直動関節に対応する2個の関節機構JEpとを含むロボット10に所定の動作を実行させる場合においても、ロボット10の制御が複雑になることを抑制することができる。
【0260】
また、本実施形態では、第2動作において、複数の関節機構JEのうちの関節機構JEp1及び関節機構JEp2のみが駆動するように、複数の関節機構JEを制御する。この場合、第2動作において、直動関節に対応する2個の関節機構JEp1及びJEp2のみを駆動させればよいため、ロボット10の制御を容易にすること、及び、ロボット10の手先の位置等を移動させる場合の位置精度を高くすることができる。
【0261】
また、ロボット10に所定の動作を教示するロボット教示方法では、複数の関節機構JEのうちの少なくとも1個の関節機構JEが駆動対象の関節機構JEとして対応付けられた複数の駆動モードの中から、関節機構JEr2、関節機構JEr3及び関節機構JEr4が駆動対象の関節機構JEとして対応付けられていない特定の駆動モードを選択し、関節機構JEr2、関節機構JEr3及び関節機構JEr4が駆動しないように複数の関節機構JEを制御することにより、第2動作を教示する。
【0262】
このように、本実施形態では、ロボット10に第2動作を教示する場合、複数の駆動モードのうち、関節機構JEr2、JEr3及びJEr4が駆動対象の関節機構JEとして対応付けられていない特定の駆動モードが選択される。このため、本実施形態では、複数の関節機構JEの全てを駆動させて第2動作を教示する場合に比べて、第2動作において駆動させる関節機構JEの数を少なくすることができる。これにより、本実施形態では、ロボット10に実行させる動作に拘わらず、複数の関節機構JEの全てが駆動対象である場合に比べて、ロボット10の制御が複雑になることを抑制することができる。
【0263】
また、本実施形態では、特定の駆動モードは、複数の関節機構JEのうち、関節機構JEp1及び関節機構JEp2のみが、駆動対象の関節機構JEとして対応付けられている。この場合、第2動作において、直動関節に対応する2個の関節機構JEp1及びJEp2のみを駆動させればよいため、ロボット10の制御を容易にすること、及び、ロボット10の手先の位置等を移動させる場合の位置精度を高くすることができる。
【0264】
また、本実施形態では、第1動作及び第2動作の教示において、複数の駆動モードの中から選択された駆動モードに基づいて特定される駆動対象の関節機構JEの変位量を計算する逆運動学計算を含む算出処理を実行することにより、ロボット10を目的の状態にする複数の関節機構JEの各々の状態に関する関節値を算出し、複数の関節機構JEの中に、駆動対象の関節機構JE以外の関節機構JEである固定対象の関節機構JEが存在する場合、算出処理において算出される固定対象の関節機構JEの関節値を実質的に変位させない固定処理を実行する。
【0265】
このように、本実施形態では、ロボット10を目的の状態にする複数の関節機構JEの各々の状態に関する関節値を算出するために、複数の関節機構JEの中から駆動対象の関節機構JEとして選択された関節機構JEの変位量が計算される。例えば、複数の関節機構JEの中に、固定対象の関節機構JEが存在する場合、算出処理において算出される固定対象の関節機構JEの関節値を実質的に変位させない固定処理が実行される。すなわち、本実施形態では、複数の関節機構JEのうち、駆動対象の関節機構JE以外の関節機構JEを状態が変位しない固定対象の関節機構JEと見なして、固定対象の関節機構JEを変位させずに、駆動対象の関節機構JEを用いて逆運動学計算を実行する。この結果、本実施形態では、複数の関節機構JEのうち、駆動対象の関節機構JEのみを駆動して、ロボット10の動作を制御することができる。また、本実施形態では、複数の関節機構JEのうちの駆動対象の関節機構JEを用いて逆運動学計算が実行されるため、逆運動学計算にかかる負荷を低減することができる。この結果、本実施形態では、逆運動学計算の解が所望の時間内に算出されないことを抑制することができる。
【0266】
また、本実施形態では、算出処理において、ヤコビ行列Jを用いて逆運動学計算を実行し、固定処理において、ヤコビ行列Jの複数の要素のうち、固定対象の関節機構JEに係る要素の値を実質的に0に設定することにより、固定対象の関節機構JEの関節値を変位させない。このように、本実施形態では、ヤコビ行列Jの複数の要素のうちの固定対象の関節機構JEに係る要素の値を実質的に0に設定することにより、固定対象の関節機構JEの関節値を固定値に容易に設定することができる。すなわち、複数の関節機構JEの中に固定対象の関節機構JEが存在する場合でも、ヤコビ行列Jの行数及び列数を変更することなく、あるいは、ヤコビ行列Jを複数の行列に分割することなく、逆運動学計算を実行して各関節機構JEの関節値を算出することができる。
【0267】
ロボットシステム1により、物品を加工する加工方法では、ロボットコントローラ30は、物品に対して加工を行う場合の所定の位置まで先端部TP1を移動させる第1動作と、先端部TP1が所定の位置に移動した後に実行され、物品に対して加工を行う第2動作と、を含む所定の動作をロボット10に実行させ、第2動作において、複数の関節機構JEのうちの関節機構JEr2、関節機構JEr3及び関節機構JEr4が駆動しないように、複数の関節機構JEを制御する。
【0268】
このように、本実施形態では、第2動作を実行する場合、複数の関節機構JEのうちの関節機構JEr2、関節機構JEr3及び関節機構JEr4は、駆動対象の関節機構JEに含まれない。このため、本実施形態では、ロボット10の制御が複雑になることを抑制することができる。
【0269】
また、本実施形態では、ロボットコントローラ30は、第2動作において、複数の関節機構JEのうちの関節機構JEp1及び関節機構JEp2のみが駆動するように複数の関節機構JEを制御することにより、先端部TP1を特定方向(例えば、方向De1又はDe2)に沿って往復移動させる往復動作を繰り返す繰り返し加工を実行する。このように、本実施形態では、関節機構JEp1及びJEp2を駆動することにより、先端部TP1を特定方向に沿って往復移動させる往復動作を繰り返す繰り返し加工を実行する。このため、本実施形態では、レンズLNSを研磨する動作のように繰り返し動作が多い作業であっても、関節機構JEp1及びJEp2のみを駆動すればよいため、ロボット10の制御を容易にすることができる。
【0270】
また、本実施形態では、ロボットコントローラ30は、第2動作において、複数の関節機構JEのうち、関節機構JEp1及び関節機構JEp2の一方と関節機構JEr6のみが駆動するように複数の関節機構JEを制御することにより、物品に対する加工として、部品ASに対するねじ締めを実行する。このように、本実施形態では、関節機構JEp1及び関節機構JEp2の一方と関節機構JEr6とを駆動することにより、部品ASに対するねじ締めを実行する。例えば、エンドエフェクタ20の下方への移動は、関節機構JEp1及びJEp2の一方のみを駆動してリンクLK2を下方に移動させることにより、実行される。このため、本実施形態では、ロボット10の制御を容易にすること、エンドエフェクタ20を下方に移動させる場合の位置精度を高くすること、及び、ねじSCを部品ASに挿通させる力(トルク)を大きくすることができる。
【0271】
[2.変形例]
本発明は、以上に例示した実施形態に限定されない。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様を併合してもよい。
【0272】
[第1変形例]
上述した実施形態では、関節機構JEr4が、リンクLK2が延在する方向De2に垂直な軸Ax4を回転軸として、先端部TP1をリンクLK2に対して回転させる場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、関節機構JEr4は、リンクLK2が延在する方向De2とのなす角度が所定の角度以下の軸を回転軸として、先端部TP1をリンクLK2に対して回転させてもよい。
【0273】
図16は、第1変形例に係る先端部TP1Aの一例を説明するための説明図である。図1から図15において説明した要素と同様の要素については、同様の符号を付し、詳細な説明を省略する。
【0274】
例えば、本変形例に係るロボット10は、図1に示したリンクLK2、関節機構JEr4及び先端部TP1の代わりにリンクLK2A、関節機構JEr4A及び先端部TP1Aを有することを除いて、図1に示したロボット10と同様である。リンクLK2Aは、関節機構JEr4の代わりに関節機構JEr4Aが接続されることを除いて、リンクLK2と同様である。なお、リンクLK2Aは、「第2リンク」の他の例である。
【0275】
関節機構JEr4Aは、リンクLK2Aと先端部TP1Aとを接続し、方向De2に平行な軸Ax4Aを回転軸として、先端部TP1AをリンクLK2Aに対して回転させる。図16の回転方向Dr4は、軸Ax4Aを回転軸として回転する場合の先端部TP1Aの回転方向を示す。なお、軸Ax4Aは、リンクLK2Aが延在する方向De2とのなす角度が所定の角度以下の軸に該当する。
【0276】
先端部TP1Aにおいても、図1に示した先端部TP1と同様に、エンドエフェクタ20が端面TP1sfに取り付けられる。先端部TP1Aは、リンクLK2Aに接続される第1部分TP11Aと、第1部分TP11Aに接続される第2部分TP12Aと、関節機構JEr5Aと、関節機構JEr6とを含む。第1部分TP11Aは、例えば、関節機構JEr4Aを介してリンクLK2Aに接続される。従って、第1部分TP11Aは、軸Ax4Aを回転軸としてリンクLK2Aに対して回転する。
【0277】
関節機構JEr5Aは、第1部分TP11Aと第2部分TP12Aとを接続し、軸Ax4Aに垂直な軸Ax5を回転軸として、第2部分TP12Aを第1部分TP11Aに対して回転させる。図1の回転方向Dr5は、軸Ax5を回転軸として回転する場合の第2部分TP12Aの回転方向を示す。
【0278】
関節機構JEr6は、図1に示した関節機構JEr6と同様である。例えば、関節機構JEr6は、軸Ax5に垂直な軸Ax6を回転軸として、先端部TP1Aの少なくとも一部分(例えば、端面TP1sf)を回転させる。図16に示す例では、図1に示した関節機構JEr6と同様に、関節機構JEr6の表面が端面TP1sfに該当する。なお、関節機構JEr6が第2部分TP12Aに含まれる構成等では、第2部分TP12Aの端面が端面TP1sfであってもよい。
【0279】
以上、本変形例では、関節機構JEr4Aは、方向De2とのなす角度が所定の角度以下の軸Ax4Aを回転軸として、先端部TP1AをリンクLK2Aに対して回転させる。先端部TP1Aは、リンクLK2Aに接続される第1部分TP11と、第1部分TP11に接続される第2部分TP12と、関節機構JEr5と、関節機構JEr6とを含む。関節機構JEr5は、第1部分TP11と第2部分TP12とを接続し、軸Ax4Aとのなす角度が所定の角度より大きい軸Ax5を回転軸として、第2部分TP12を第1部分TP11に対して回転させる。関節機構JEr6は、軸Ax5とのなす角度が所定の角度より大きい軸Ax6を回転軸として、先端部TP1のうちエンドエフェクタ20が取り付けられる部分(例えば、端面TP1sf)を回転させる。
【0280】
本変形例においても、上述した実施形態と同様の効果を得ることができる。例えば、本変形例においても、先端部TP1が関節機構JEr5及びJEr6を含むため、関節機構JEr4、JEr5及びJEr6等によって、ボディ部BDPの周辺において様々な作業をロボット10に実行させることができる。
【0281】
[第2変形例]
上述した実施形態及び変形例では、関節機構JEr3を駆動するモータMOr3が関節機構JEr3と一体的に移動する場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、モータMOr3は、リンクLK1に対する関節機構JEr3の相対的な位置が変化しても関節機構JEr3を駆動可能に、リンクLK1の所定の場所に固定されてもよい。本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。
【0282】
[第3変形例]
上述した実施形態及び変形例では、垂直6軸多関節ロボットに2個の関節機構JEp1及びJEp2を追加した構成をロボット10として例示したが、本発明はこのような態様に限定されるものではない。例えば、ロボット10は、7軸以上の多関節ロボットに2個の関節機構JEp1及びJEp2を追加した構成であってもよい。具体的には、ボディ部BDPと関節機構JEr2との間に、リンクLK1及びLK2とは異なる1以上のリンクLKが配置されてもよい。あるいは、関節機構JEr4と先端部TP1との間に、リンクLK1及びLK2とは異なる1以上のリンクLKが配置されてもよい。すなわち、ロボット10は、ボディ部BDPと先端部TP1とを接続する3以上のリンクLKを有してもよい。この場合、ロボット10が有する3以上のリンクLKは、リンクLK1及びLK2を含む複数のリンクLKに該当する。
【0283】
あるいは、ロボット10は、4軸以上の多関節ロボットに2個の関節機構JEp1及びJEp2の一方又は両方を追加した構成であってもよい。
【0284】
以上、本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。
【0285】
[第4変形例]
上述した実施形態及び変形例では、駆動モードを選択することにより、駆動対象の関節機構JEが選択される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、複数の関節機構JEのうちの少なくとも1個の関節機構JEが駆動対象の関節機構JEとして対応付けられた複数の駆動モードをロボット10に設定せずに、複数の関節機構JEから駆動対象の関節機構JEが選択されてもよい。この場合、例えば、図5に示した操作画面OPSは、ボタンBTsの代わりに、複数の関節機構JEと1対1に対応する複数のボタンBTを含んでもよい。ロボットコントローラ30は、当該複数のボタンBTのうち、ボタンBTdが押下されるまでに、押下されたボタンBTに対応する関節機構JEを駆動対象の関節機構JEとして選択してもよい。
【0286】
以上、本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。また、本変形例では、選択する駆動モードをあらかじめ設定し記憶しておく必要がなく、選択可能な関節機構JEのバリエーションを大幅に増やすことができる。
【0287】
[3.応用例]
上述した実施形態及び変形例において説明したロボット10を含むロボットシステム1は、部品を組み付ける、又は、部品を取り除くことを含む物品の製造方法に用いられてもよい。
【0288】
[4.その他]
上述した実施形態において簡単に説明した「旋回」と他の回転との区別について、いくつかの例を挙げて説明する。
【0289】
図17は、旋回の一例を説明するための説明図である。図17では、長手方向を把握可能な2つのリンクLKi及びLKjの接続を例にして、旋回と他の回転との区別について説明する。図17の延在方向Deiは、リンクLKiが延在する方向を示し、延在方向Dejは、リンクLKjが延在する方向を示す。また、図17の関節機構JEriは、リンクLKiとリンクLKjとを接続し、軸Axiを回転軸として、リンクLKjをリンクLKiに対して回転させる。
【0290】
図17に示す例では、リンクLKiの延在方向Dei(特定の方向)と軸Axiとのなす角度βが所定の角度より大きい場合、当該軸Axiを回転軸とした回転は、「旋回」に該当する。すなわち、リンクLKiの延在方向Deiと軸Axiとのなす角度βが所定の角度以下の場合、当該軸Axiを回転軸とした回転は、旋回以外の回転(旋回と区別される他の回転)に該当する。図17に示す「回転」は、旋回以外の回転を示す。また、所定の角度は特に限定されないが、図17では、所定の角度が45°である場合を想定する。延在方向Deiと軸Axiとのなす角度βは、延在方向Deiに対する軸Axiの角度として把握される複数の角度(例えば、互いに交差する2つの直線では4つの角度、又は、平行な2つの直線では0°及び180°)のうち、0°以上90°以下の角度である。
【0291】
第1パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、90°であり、所定の角度(45°)よりも大きい。従って、第1パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回である。また、第1パターンでは、リンクLKjの延在方向Dejは、軸Axiに垂直である。なお、第1パターンでは、リンクLKjが軸Axiを回転軸として回転(旋回)した場合、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、変化する。
【0292】
第2パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、0°であり、所定の角度(45°)以下である。従って、第2パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回以外の回転である。また、第2パターンでは、リンクLKjの延在方向Dejは、リンクLKiの延在方向Dei及び軸Axiに平行である。すなわち、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、0°である。なお、第2パターンでは、リンクLKjが軸Axiを回転軸として回転しても、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、0°に維持され、常に一定である。
【0293】
第3パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、0°であり、所定の角度(45°)以下である。従って、第3パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回以外の回転である。また、第3パターンでは、リンクLKjの延在方向Dejは、リンクLKiの延在方向Dei及び軸Axiに垂直である。すなわち、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、90°である。なお、第3パターンでは、リンクLKjが軸Axiを回転軸として回転しても、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、90°に維持され、常に一定である。
【0294】
第4パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、10°であり、所定の角度(45°)以下である。従って、第4パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回以外の回転である。また、第4パターンでは、リンクLKjの延在方向Dejは、軸Axiに平行であり、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、10°である。なお、第4パターンでは、リンクLKjが軸Axiを回転軸として回転しても、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、10°に維持され、常に一定である。
【0295】
第5パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、70°であり、所定の角度(45°)よりも大きい。従って、第5パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回である。また、第5パターンでは、リンクLKjの延在方向Dejは、軸Axiに垂直である。なお、第5パターンでは、リンクLKjが軸Axiを回転軸として回転(旋回)した場合、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、変化する。
【0296】
第6パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、10°であり、所定の角度(45°)以下である。従って、第6パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回以外の回転である。また、第6パターンでは、リンクLKjの延在方向Dejは、軸Axiに垂直である。なお、第6パターンでは、リンクLKjが軸Axiを回転軸として回転した場合、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、変化する。
【0297】
第7パターンでは、リンクLKiの延在方向Deiと軸Axiとのなす角度βは、70°であり、所定の角度(45°)よりも大きい。従って、第7パターンでは、軸Axiを回転軸としたリンクLKjの回転は、旋回である。また、第7パターンでは、リンクLKjの延在方向Dejは、軸Axiに平行であり、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、70°である。なお、第7パターンでは、リンクLKjが軸Axiを回転軸として回転しても、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度は、70°に維持され、常に一定である。
【0298】
このように、上述した実施形態及び変形例では、リンクLKiに対するリンクLKjの回転のうち、リンクLKiの延在方向Deiとのなす角度が所定の角度より大きい軸Axiを回転軸とした回転が、旋回とも称される。但し、「旋回」の定義は、上述の例に限定されない。例えば、リンクLKiの延在方向Deiとのなす角度が所定の角度より大きい軸Axiを回転軸とした回転を旋回とする上述の定義を第1定義とした場合、第1定義の代わりに、下記の第2定義又は第3定義が採用されてもよい。
【0299】
第2定義では、リンクLKiに対するリンクLKjの回転により、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度が変化する場合、当該回転が旋回に該当する。従って、第2定義では、リンクLKiの延在方向Deiに対するリンクLKjの延在方向Dejの角度が、回転しても常に一定の場合、当該回転は、旋回以外の回転に該当する。例えば、第2定義では、図17に示した第1パターン、第5パターン及び第6パターンは、旋回に該当し、第2パターン、第3パターン、第4パターン及び第7パターンは、旋回以外の回転に該当する。
【0300】
第3定義では、回転するリンクLKjの延在方向DejとリンクLKjの回転軸(軸Axi)とのなす角度が所定の角度より大きい場合、当該回転が旋回に該当する。従って、第3定義では、リンクLKjの延在方向DejとリンクLKjの回転軸(軸Axi)とのなす角度が所定の角度以下の場合、当該回転は、旋回以外の回転に該当する。例えば、第3定義では、図17に示した第1パターン、第3パターン、第5パターン及び第6パターンは、旋回に該当し、第2パターン、第4パターン及び第7パターンは、旋回以外の回転に該当する。
【0301】
また、上述の第1定義、第2定義及び第3定義とは別に、互いに隣接する2個の関節機構JErのそれぞれの回転軸の関係に着目して、2個の関節機構JErによる2つの回転の相対関係を定義してもよい。具体的には、2つの回転軸のなす角度が所定の角度以下である場合(典型的には、平行の場合)、2つの回転を同種の回転とし、2つの回転軸のなす角度が所定の角度よりも大きい場合(典型的には、直交する場合)、2つの回転を異種の回転としてもよい。なお、同種の回転とは、2つの回転とも旋回、又は、2つの回転とも旋回以外の回転であり、異種の回転とは、2つの回転の一方が旋回で他方が旋回以外の回転である。2つの回転の相対関係の定義が用いられる場合、相対関係の起点となる回転は、例えば、上述の第1定義、第2定義及び第3定義のいずれかに基づいて決められてもよい。図17に示した第1パターンは、第1定義、第2定義及び第3定義のいずれにおいても、旋回に該当し、第2パターンは、第1定義、第2定義及び第3定義のいずれにおいても、旋回以外の回転に該当する。従って、第1パターン又は第2パターンを、相対関係の起点となる回転とすることが好ましい。
【0302】
また、上述の第1定義、第2定義及び第3定義の2以上の定義を組み合わせた定義が用いられてもよい。この場合、例えば、組み合わせる2以上の定義の全てで旋回に該当する回転のみを旋回としてもよいし、組み合わせる2以上の定義の少なくとも1つで旋回に該当する回転を旋回としてもよい。
【符号の説明】
【0303】
1…ロボットシステム、10…ロボット、20…エンドエフェクタ、30…ロボットコントローラ、32…処理装置、33…動作制御部、34…表示制御部、35…メモリ、36…通信装置、37…操作装置、38…表示装置、39…ドライバ回路、Ax1、Ax2、Ax3、Ax4、Ax4A、Ax5、Ax6、Axi…軸、BDP…ボディ部、BDPbt…底面、BDPba…土台部、AS…部品、JEr1、JEr2、JEr3、JEr4、JEr4A、JEr5、JEr6、JEri、JEp1、JEp2…関節機構、JEp11、JEp21…ねじ部、JEp12、JEp22…ナット、JEp13、JEp23…接続部、JEp13a、JEp23a…スライダー部、JEp13b、JEp23b…支持部、JEp14、JEp24…レール、JEp14a、JEp14b、JEp24a、JEp24b…棒状部材、JEr11、JEr21、JEr41、JEr51、JEr61…回転部、JEr12、JEr22、JEr42、JEr52、JEr62…筐体、LK1、LK2、LK2A、LKi、LKj…リンク、LNS…レンズ、MOr1、MOr2、MOr3、MOr4、MOr5、MOr6、MOp1、MOp2…モータ、SC…ねじ、TL…研磨工具、WB…作業台。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17