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

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

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

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