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

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

▶ キヤノン株式会社の特許一覧

特許7604550ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体
<>
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図1
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図2
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図3
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図4
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図5
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図6
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図7
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図8
  • 特許-ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】ロボット、物品の製造方法、制御方法、制御プログラム、記録媒体
(51)【国際特許分類】
   B25J 19/02 20060101AFI20241216BHJP
   B25J 17/00 20060101ALI20241216BHJP
【FI】
B25J19/02
B25J17/00 E
【請求項の数】 18
(21)【出願番号】P 2023064308
(22)【出願日】2023-04-11
(62)【分割の表示】P 2021029453の分割
【原出願日】2015-10-27
(65)【公開番号】P2023080195
(43)【公開日】2023-06-08
【審査請求日】2023-05-10
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】永田 透
(72)【発明者】
【氏名】小河原 隆行
(72)【発明者】
【氏名】尾形 勝
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2001-038673(JP,A)
【文献】特開平05-252779(JP,A)
【文献】特開2021-098268(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
第1リンクを変位させる第1関節と、
前記第1関節が駆動する第1駆動方向において発生する負荷を取得する第1センサと、
制御部と、を備えたロボットであって、
前記制御部が、
前記第1リンクに関する静的な情報と、前記第1リンクに関する動的な情報と、に基づき、前記第1センサで取得され荷に影響を与える、前記第1駆動方向以外の方向において発生する負荷を計算し、
前記第1駆動方向以外の方向において発生する負荷に基づき、前記第1センサによって取得された負荷を補正する、
ことを特徴とするロボット。
【請求項2】
請求項1に記載のロボットにおいて、
前記第1リンクに関する静的な情報は、前記第1リンクの形状に関する情報を含む
ことを特徴とするロボット。
【請求項3】
請求項1または2に記載のロボットにおいて、
前記第1リンクに関する静的な情報は、前記第1リンクの慣性、前記第1リンクの弾性、前記第1リンクの姿勢、を含む
ことを特徴とするロボット。
【請求項4】
請求項1から3のいずれか1項に記載のロボットにおいて、
前記第1リンクに関する動的な情報は、前記第1リンクの速度、前記第1リンクの加速度、を含む
ことを特徴とするロボット。
【請求項5】
請求項1から4のいずれか1項に記載のロボットにおいて、
前記第1駆動方向以外の方向において発生する負荷は、モーメント成分または並進力成分を含む、
ことを特徴とするロボット。
【請求項6】
請求項1から5のいずれか1項に記載のロボットにおいて、
前記制御部は、
前記第1センサで取得された負荷を補正することで、前記第1センサで取得された負荷の精度を向上させる、
ことを特徴とするロボット。
【請求項7】
請求項1から6のいずれか1項に記載のロボットにおいて、
前記制御部は、
前記第1センサの感度行列と、前記第1駆動方向以外の方向において発生する負荷に基づき、前記第1センサによって取得された負荷に含まれる誤差を取得する、
ことを特徴とするロボット。
【請求項8】
請求項7に記載のロボットにおいて、
前記制御部は、
前記第1センサによって取得された負荷から、前記誤差を差し引くことで、前記第1センサによって取得された負荷を補正する、
ことを特徴とするロボット。
【請求項9】
請求項1から8のいずれか1項に記載のロボットにおいて、
前記第1リンクに接続され、前記第1関節により前記第1リンクを変位させることで、前記第1リンクと共に変位する第2関節と、
前記第2関節が駆動する第2駆動方向において発生する荷を取得する第2センサと、を備え、
前記制御部は、
前記第2センサで取得された負荷に基づき、前記第1駆動方向以外の方向において発生する負荷によって前記第1駆動方向に発生する負荷を取得する、
ことを特徴とするロボット。
【請求項10】
請求項9に記載のロボットにおいて、
前記第1センサで取得される負荷は、前記第1関節の回転により発生するトルクであり、
前記第2センサで取得される負荷は、前記第2関節の回転により発生するトルクである、
ことを特徴とするロボット。
【請求項11】
請求項9または10に記載のロボットにおいて、
前記制御部は、
前記第1駆動方向以外の方向において発生する負荷によって前記第1駆動方向に発生する負荷を、前記第2センサによって取得された負荷と前記第1リンクに関する静的な情報と、前記第1リンクに関する動的な情報と、に基づき取得する、
ことを特徴とするロボット。
【請求項12】
請求項9から11のいずれか1項に記載のロボットにおいて、
前記第2関節は第2リンクが接続されており、前記ロボットの手先として機能するエンドエフェクタを、前記第2リンクを介して変位させる、
ことを特徴とするロボット。
【請求項13】
請求項12に記載のロボットにおいて、
前記制御部は、
前記ロボットの手先側の関節から順に補正されるよう、前記第2センサによって取得された負荷前記第2リンクに関する静的な情報と、前記第2リンクに関する動的な情報と、に基づき補正し、
次に、前記第1駆動方向以外の方向において発生する負荷に基づき第1センサによって取得された負荷の補正を実行する、
ことを特徴とするロボット。
【請求項14】
請求項9から13のいずれか1項に記載のロボットにおいて、
前記第1センサまたは前記第2センサは、ひずみゲージ方式、静電容量方式、磁気方式、光学エンコーダ方式の少なくとも1つを用いて前記第1駆動方向または前記第2駆動方向の負荷を検出する、
ことを特徴とするロボット。
【請求項15】
請求項1から14のいずれか1項に記載のロボットを用いて物品の製造を行うことを特徴とする物品の製造方法。
【請求項16】
第1リンクを変位させる第1関節と、
前記第1関節が駆動する第1駆動方向において発生する負荷を取得する第1センサと、
制御部と、を備えたロボットの制御方法であって、
前記制御部が、
前記第1リンクに関する静的な情報と、前記第1リンクに関する動的な情報と、に基づき、前記第1センサで取得された負荷に影響を与える、前記第1駆動方向以外の方向において発生する荷を計算し、
前記第1駆動方向以外の方向において発生する負荷に基づき、前記第1センサによって取得された負荷に関する情報を補正する、
ことを特徴とする制御方法。
【請求項17】
請求項16に記載の制御方法をコンピュータによって実行させる制御プログラム。
【請求項18】
請求項17に記載の制御プログラムを格納した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連結するリンクに作用する力を測定する力センサを備えたロボットアームの関節構造、ロボット装置の測定方法、およびロボット装置の制御方法に関する。
【背景技術】
【0002】
近年、様々な工業製品の生産ラインで、多関節ロボットが利用されるようになってきた。しかしながら、多関節ロボットでは実現が困難な工程も数多く存在する。例えば、自動車部品などを組み立てる生産ラインにおいて、特に数百グラムから数キログラムの荷重が部品に加わるような工程には、多関節ロボットが広く用いられている。これに対して、柔軟物、軽量物、あるいは低強度部材などから成るワークの組付けなど、部品に与える荷重が数グラム程度であることを要求されるような工程や、精密嵌合を行う工程を多関節ロボットで実現するには種々の困難がある。
【0003】
このように多関節ロボットで実現が困難な工程では、今のところ、多関節ロボットの代りにその工程に特有の専用装置や専用治具が用られている。しかし、このような専用装置や専用治具は、特定の工程、あるいは取り扱うワークのために専用に設計、製造されるものであり、実際にこの種の装置や治具が用意され、例えば生産ラインが稼働するまでに、多大な時間とコストがかかる問題がある。
【0004】
そこで、専用装置や専用治具を用いることなく、汎用的な多関節ロボットを用いて、上述のような柔軟物、軽量物、あるいは低強度部材などから成るデリケートなワークを取り扱う工程を実現することが望まれている。
【0005】
上述のような柔軟物、軽量物、あるいは低強度部材といったワークを取り扱う場合、例えば、ワークの破損や変形を防ぐため、これらのワークには大きな力を作用させることができない。そこで、もしこの種のワークを多関節ロボットで操作する場合には、高精度に関節やリンクを介してワークに作用する力を制御する必要がある。
【0006】
例えば、従来から多関節ロボットの先端に搭載するハンドやグリッパのようなエンドエフェクタとともに力覚センサを配置する構成が知られている。この力覚センサの出力値をエンドエフェクタの駆動制御にフィードバックすることにより、ワークに作用する力を制御することができる。また、手先のエンドエフェクタのみならず、例えば、多関節ロボットのアームを構成する各リンクに作用する力を測定して、多関節ロボットの駆動制御にフィードバックすることが考えられる。特に、ロボットアームのリンクに作用する力のうち、多関節ロボットの高精度な駆動制御のために測定する必要がある力は、駆動軸周りに作用するトルクである。
【0007】
このようなアームのリンクに作用するトルクを検出する手段としては、ロボットアームの関節にトルクセンサを搭載する構成が提案されている(例えば下記の特許文献1)。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2011-72186号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
多関節ロボットアームの関節には、当該アームの動作に応じて、リンク自身に作用する重力、慣性力、コリオリ力や、隣接するリンクからの力が作用する。例えば、この関節に作用する力は、その関節の駆動軸をz軸としたときの直交座標系において、3方向の座標軸方向並進力、3方向の座標軸周りの回転力の合計で6方向の力、の各成分を含む。そして、この6方向の力のうち、関節の駆動軸周りを除く5方向に作用する力を、以下では他軸力という。
【0010】
一方、多関節ロボットアームの駆動制御では、例えばリンクに作用する関節の駆動軸周りの力を検出し、それを当該関節の駆動にフィードバックさせる。このため、関節に搭載された力センサは連結しているリンクに作用する関節の駆動軸周りに作用している力を正確に検出できるのが望ましい。
【0011】
しかしながら、力センサに上記のような他軸力が作用すると、力センサは駆動軸周りの力を正確に検出できなくなる。例えば、変形部を備え、変形部に生じた変形量を検出することで力を求める方式の力センサに他軸力が作用すると、力センサは他軸力の影響で関節の駆動軸周りに対しても変形する。
【0012】
以下、この力センサが受ける他軸力の影響は「他軸干渉」という。即ち、力センサに他軸力が働き、力センサに何らかの変形が生じると、この変形は当該関節の駆動軸周りの力を検出する力センサの検出誤差として現れる。即ち、このように、特定の関節の駆動軸に設けられた力センサに他軸力に起因して生じる測定誤差を他軸干渉という。このような他軸干渉が発生している場合、当該の関節の駆動軸周りの力を力センサで正確に検出できなくなる。
【0013】
そこで、関節の駆動軸周りの力を正確に検出するためには、例えば何らかの方法により他軸干渉で生じたセンサ検出値の誤差を補正する必要がある。このためには、例えば力センサに作用する他軸力を検出し、力センサの検出値を補正することが考えられる。
【0014】
しかしながら、特許文献1に記載されるような従来の関節構造では、力センサとリンクの間に軸受が配置されており、他軸力の値を検出するのはそれほど容易ではない。
【0015】
多関節ロボットアームの関節において、特許文献1の従来構成のように軸受のような機械要素が介在する場合、他軸力の値を検出するのが困難になるのは、以下に示すような理由による。
【0016】
例えば、この種の関節構造では、関節の運動を所望の1方向のみ運動可能とし、他方向の運動を拘束する拘束手段(拘束部)として、クロスローラベアリングのような軸受が用いられる。このような構造により、他軸力の伝達経路が複雑なものとなる場合がある。
【0017】
例えば、関節構造によっては、2つのリンクを接続する関節軸以外にも、関節駆動力が伝達される経路が存在する場合がある。例えば、特許文献1に示されるような構造では、駆動側のリンクに作用する他軸力は、関節の拘束手段としての軸受と力センサの双方を介して伝達される。このような構成では、力センサに伝わる他軸力の値を正確に捉えるのは難しい。
【0018】
特に、力センサには、リンクの駆動力が、関節の拘束部である軸受の摩擦力分だけ損失されて伝わる。このため、力センサに作用する他軸力を正確に把握するためには、関節に配置された軸受の摩擦力の把握が必要である。しかしながら、関節の軸受の摩擦力は、軸受に作用する力や関節の駆動速度、軸受の個体差などの様々な要因に対して非線形な特性を示すため、正確に軸受の摩擦力を把握することは困難である。
【0019】
本発明の課題は、以上の諸問題に鑑み、ロボットアームの関節に作用する他軸力を正確に検出でき、他軸干渉で生じた力センサの検出誤差を補正し、当該の関節が連結しているリンクに作用する力を正確に検出できるようにすることにある。
【課題を解決するための手段】
【0020】
本発明の一つの態様は、第1リンクを変位させる第1関節と、前記第1関節が駆動する第1駆動方向において発生する負荷を取得する第1センサと、制御部と、を備えたロボットであって、前記制御部が、前記第1リンクに関する静的な情報と、前記第1リンクに関する動的な情報と、に基づき、前記第1センサで取得され荷に影響を与える、前記第1駆動方向以外の方向において発生する負荷を計算し、前記第1駆動方向以外の方向において発生する負荷に基づき、前記第1センサによって取得された負荷を補正する、ことを特徴とするロボットである。
【発明の効果】
【0021】
本発明によれば、力センサに加わる他軸力の伝達経路を単純化することができる。このため、力センサに加わる他軸力の値を高精度に把握できるようになり、これにより他軸干渉で生じたセンサ検出値の誤差を高精度に修正できるようになるので、センサ検出値を高精度に補正できる。補正されたセンサ検出値を多関節ロボットの駆動制御に使用することで、高精度な駆動制御が可能となり、従来では多関節ロボットで実現が困難だった工程が、多関節ロボットで実現できるようになる。
【0022】
具体的には、補正されたセンサ検出値を多関節ロボットの駆動制御に使用することで、多関節ロボット先端に搭載するエンドエフェクタが部品に与える力を高精度に制御できる。これにより、柔軟物や低強度部材の組付け工程のような、部品に与える荷重が数グラム程度であることを要求されるような工程の自動化を多関節ロボットにより実現できるようになる。
【図面の簡単な説明】
【0023】
図1】本発明の実施例に係るロボットシステムの構成を示した説明図である。
図2図1のロボットアームの関節の構造を模式的に示した説明図である。
図3図1のロボットシステムの制御系の構成を示したブロック図である。
図4図3の制御系における関節の駆動力に係る測定および駆動制御の流れを示したフローチャート図である。
図5図3の制御系における関節の駆動力に係る異なる測定および駆動制御の流れを示したフローチャート図である。
図6】ロボットアームの関節に働く他軸力を示した説明図である。
図7図1のロボットアームの異なる関節の構造を模式的に示した説明図である。
図8図2ないし図7の関節と同等な構成を有する直動式関節を示した説明図である。
図9図1のロボットアームの手先部分の関節の配置とその各部に働く力を示した説明図である。
【発明を実施するための形態】
【0024】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【0025】
以下に示す実施例では、関節の駆動軸周りに作用している力を求める機能を有するセンサを、力センサと称する。
<実施例1>
(多関節ロボットシステムの基本構成)
図1は本実施例を適用可能な多関節ロボットシステムの基本構成を示している。図1のロボットシステムは、例えば多関節ロボットアームとして構成されたロボットアーム1と、ロボットアーム1を制御するロボット制御装置2を含む。
【0026】
ロボットアーム1は、垂直6軸構成の多関節ロボットアームである。ロボットアーム1は、ベース110上に、第1~第6の関節121~126を介して連結された、第1~第6のリンク111~116を有する。このロボットアーム1のベース110と第1のリンク111とは、Z軸方向の回転軸の周りで回転する関節121で接続されている。また、ロボットアーム1の第1のリンク111と第2のリンク112とは、Y軸方向の回転軸の周りで回転する関節122で接続されている。また、ロボットアーム1の第2のリンク112と第3のリンク113とは、Y軸方向の回転軸の周りで回転する関節123で接続されている。また、ロボットアーム1の第3のリンク113と第4のリンク114とは、X軸方向の回転軸の周りで回転する関節124で接続されている。また、ロボットアーム1の第4のリンク114と第5のリンク115とは、Y軸方向の回転軸の周りで回転する関節125で接続されている。また、ロボットアーム1の第5のリンク115と第6のリンク116とは、X軸方向の回転軸の周りで回転する関節126で接続されている。
【0027】
ロボットアーム1の第6のリンク116の先には、生産ラインにおいて部品の組み立て作業や移動作業を行うための電動ハンドやエアハンドなどのエンドエフェクタ117が接続されている。
【0028】
ロボットアーム1の動作は、ロボット制御装置2によって制御される。例えば、ロボット制御装置2は、予めプログラムされたロボット制御プログラムに応じてロボットアーム1の各関節の姿勢を制御することにより、ロボットアーム1の姿勢、ないしはエンドエフェクタ117付近に設定された基準部位の位置姿勢を制御する。また、これに同期してロボット制御装置2は、エンドエフェクタ117の動作、例えばハンドの開閉などの動作を制御することにより、ロボットアーム1でワークを操作することができる。
【0029】
図1では、ロボットアーム1の全体に係る3次元座標軸を左下欄に示してある。そして、図1のロボットアーム1は、第1の関節121は、隣接するリンクをZ軸方向の回転軸で回転させ、第2の関節122、第3の関節123、第5の関節125は、隣接するリンクをY軸方向の回転軸で回転させるような姿勢で図示されている。また、第4の関節124、第6の関節126は、隣接するリンクをX軸方向の回転軸で回転させるよう構成されている。ただし、上記の各関節の回転軸と座標軸の関係は、図1に示すロボットアーム1の姿勢において適用されるものである。従って、例えばロボットアーム1がロボット制御装置2により図1とは別の姿勢に制御された場合には別の座標系の適用が必要になる場合がある。
【0030】
(多関節ロボットの関節の基本構造)
図2は、図1のロボットアーム1における関節の基本構造例を模式的に示している。
【0031】
以下、図2を参照して、図1のロボットアーム1の構成をより一般的に示すべく、第1~第6の関節121~126のうち、任意の関節を第nの関節と記載する場合がある。また、より簡便な表記として、この「n番目(の関節、ないしリンクについても同様)」を示すために、図中の参照符号に「n」の添字を前置した表記も用いる。また、「n番目」からアームの手先側に隣りあう関節を「n+1」、ベース側に隣りあう関節を「n-1」のように表記する場合がある。図1のアーム構成では、nはロボットアーム1の関節(ないしリンク)の番号に該当し、1から6までの数字を取り得る。また、煩雑さを避けるため、図中では文字nの表記は省略する場合がある。
【0032】
図2は、第1および第2のリンク(210、220)を相対変位可能に連結する関節を構成するロボットアームの関節構造を示している。図2のロボットアームの関節構造は、第1および第2のリンク(210、220)に作用する力を測定する力センサを備える。
【0033】
図2において、第nの関節は、第n-1のリンク210、第nのリンク220を連結する。この第nの関節は、第nの関節を駆動する駆動手段n230と、この第nの関節の動きを規制する拘束部n240と、を備える。また、この第nの関節は、第nの関節で連結されるリンクに働く力を検出する力センサ250を備える。
【0034】
第n-1のリンク210および第nのリンク220は、この関節によって相対変位可能に連結され、駆動手段230で発生された駆動力により姿勢制御される。
【0035】
関節の駆動力を発生する駆動手段230は、それぞれ第1駆動部、および第2駆動部として固定部231、および被駆動部232を備えている。図2では、駆動手段230の内部構成の詳細図示は省略されているが、この種のロボット関節の駆動手段は、例えば電動モータと減速機により構成される。電動モータの出力軸の回転が減速機に入力され、電動モータの出力軸の回転が所定の減速比だけ減速されて被駆動部232に伝達される。駆動手段230の減速機には、例えば波動歯車機構などが用いられる。
【0036】
拘束部240は、第1および第2のリンクの相対変位方向を、関節の駆動方向には運動可能に、かつ他方向には運動不可能に拘束する機能を有する。即ち、拘束部240は、関節の運動を第の関節の駆動軸200周りのみ運動可能とし、かつ他方向には運動不可能に拘束する。拘束部240は、例えばクロスローラベアリング241とクロスローラベアリング241の内輪242に固定される接続部材244で構成することができる。クロスローラベアリング241の内輪242と外輪243は、駆動軸200周りに回転可能な位置に配置される。拘束部240を構成するクロスローラベアリング241の内輪242と外輪243は、拘束部240の第1支持部および第2支持部に相当する。
【0037】
力センサ250は、例えば、自身に加わる関節の駆動軸200周りの力を検出するトルクセンサなどから構成される。その場合、力センサ250は、例えば内輪部251、外輪部252と、これらを結合するバネ部253で構成される。このような構成では、力センサ250に駆動軸200周りの力が作用したとき、バネ部253が変形するため、力センサ250はバネ部253の変形量を介してリンクに作用する関節の駆動力を測定できる。
【0038】
例えば、力センサ250の変形量を力に換算する感度行列(n330:後述)をあらかじめテーブルメモリなどの形式で用意しておき、測定した変形量を力の測定量に換算することができる。力センサ250の変形量を測定する力センサの変位検出方式には、ひずみゲージ方式、静電容量方式、磁気方式、光学エンコーダ方式などがある。例えば光学エンコーダ方式の場合には、光学ロータリーエンコーダのスケールと光センサ(不図示)を、それぞれ接続部材244と外輪部252に対向して配置する構成が考えられる。
【0039】
さて、図2のn番目の関節において、力学的な結合(連結)関係は以下のように構成されている。
【0040】
(ア)図2の駆動手段230の固定部231(第1駆動部)は第n-1のリンク210(仮に第1のリンクとする)に固定され、被駆動部232(第2駆動部)は接続部材244に固定される。この接続部材244は、力センサ250の内輪、拘束部240の内輪242(第2支持部)、および第nのリンク220(仮に第2のリンクとする)の間を固定的に結合する。
【0041】
(イ)クロスローラベアリング241(拘束部)の外輪243(第1支持部)は第n-1のリンク210(第1のリンク)に固定される。
【0042】
(ウ)また、接続部材244は力センサ250の内輪部251に固定される。
【0043】
(エ)力センサ250の外輪部252(第2支持部)は第nのリンク220(第2のリンク)に固定される。
【0044】
なお、図2に記載した関節と等価な構造として、図7に示すような関節構造も考えられる。図7では、図2と対応する配置(結合、ないし連結)関係を有する部材に同一符号を付してある。
【0045】
図7の関節構造では、異なる位置に力センサ250を配置されているが、関節構造の各部の結合(連結)関係は図2の関節と同等である。ただし、図7では、上記の(ア)~(エ)に示した結合(連結)関係における第1および第2のリンクにそれぞれ対応するよう、リンク210、220の図示が入れ換えられている。同様に、図7では駆動手段230の固定部231(第1駆動部)と被駆動部232(第2駆動部)の位置関係も図2とは逆になっている。
【0046】
さらに、図7ではクロスローラベアリング241(拘束部)の外輪243は上記(ア)~(エ)における拘束部の第2支持部に対応し、内輪242は上記(ア)~(エ)における拘束部の第1支持部に対応することになる。また、上記(ア)~(エ)における接続部材244は、図7では駆動手段230を覆う例えば円筒状のハウジングの部分に相当する。力センサ250の内輪部251は、この接続部材244に固定され、力センサ250の外輪部251はリンク220(第2のリンク)に固定されている。
【0047】
図7のような関節構造は、図2のものと同様、上記の(ア)~(エ)に示した結合(連結)関係を満たす。このため、図7の構造であっても、後述の関節駆動力測定や関節駆動制御が同様に可能であり、同様の作用効果(後述)を期待できる。
【0048】
また、図2では、相対的にリンクが回転変位する構造を示しているが、リンクを直線的に相対変位させる直動式関節では、図8のような構造が考えられる。図8でも、図2(ないし図7)と対応する配置関係を有する部材に同一の参照符号を付してある。図8と、図2における参照符号の対応関係は、上記図7の場合と同等であるから重複して記述しないが、この図8の関節構造は、直動関節ではあるものの、各部材の結合(連結)関係は、上記(ア)~(エ)に示した図2図7)と等価である。
【0049】
図7図8のように、上記(ア)~(エ)のような結合(連結)関係を満たす構成は種々考えられ、以上に例示したような本実施例の関節構造は当業者において種々の設計変更が可能であるのはいうまでもない。
【0050】
(ロボットアームの制御)
図2のように構成されたロボットアーム1の複数の関節は、ロボット制御装置2によって制御される。ロボット制御装置2が、第nの関節(第1~第6の関節121~126)の角度をそれぞれ制御することにより、ロボットアーム1に所望の姿勢を取らせることができる。
【0051】
その際、ロボット制御装置2は、例えばエンドエフェクタ117を介して操作されるワーク(不図示)に対して加えられる力を制御することができる。例えば、ロボット制御装置2が、ロボットアーム1の各関節(n)にそれぞれ配置された力センサの測定値を入力し、各関節の駆動手段230にフィードバックすることができる。これにより、例えばワークに対して印加される力を所望の大きさに制御する、あるいはワークに対して所定以上の大きな力が加わらないよう制御する、といったフィードバック制御が可能となる。
【0052】
図3に、ロボット制御装置2のロボットアーム1の第nの関節に係る制御系の構成を機能ブロック図として示す。この制御系の機能ブロックにおいて、要部は、演算部320と記憶装置300により構成されている。
【0053】
このうち、演算部320は、コンピュータ、例えば汎用マイクロプロセッサなどから成るCPUにより構成できる。記憶装置300に用いられる記憶デバイスとしては、ROM、RAMのような半導体メモリや、HDDやSSDのような固定(外部)記憶装置が挙げられる。また、記憶装置300に用いられる記憶デバイスには、各種フラッシュメモリや光(磁気)ディスクのような書き換え可能な記録メディアを用いる構成が考えられる。記憶装置300はこれらの記憶デバイスを任意に組合せて構成することができる。
【0054】
記憶装置300を構成する上記の記憶デバイスは演算部320(コンピュータ)が読み取り可能な記録媒体を構成する。例えば、記憶装置300には、ロボットアーム1の制御装置を構成する演算部320(コンピュータ)が実行する後述の制御手順を記述したプログラム301を格納しておくことができる。
【0055】
また、記憶装置300には、ロボットアーム1にワークを操作させ、例えば特定の工業製品を組み立て、製造するために必要な情報を、例えばロボット制御プログラムの形式で格納しておくことができる。このロボット制御プログラムは、例えば、ロボットアーム1の手先の基準部位の位置姿勢を定義した、いわゆる教示点リストのような形式や、任意のロボットプログラム言語の形式で記述される。特に図2の第nの関節について言えば、このロボット制御プログラムには、当該関節の駆動手段230の動作が記憶されることになる。
【0056】
また、記憶装置300には、後述の力センサ250に関する感度行列330をテーブルメモリのような形式で格納しておくことができる。感度行列330は、例えば、記憶装置300を構成するHDDにファイル形式で格納しておくことができ、後述のプログラムの実行時ないしはシステム初期化時などにRAMの特定領域にロードされる。このようにして、演算部320が当該関節の力センサ250に関する感度行列330を参照することができる。
【0057】
さらに、図3において、動作指令器310は、例えばロボットアーム1の近傍に配置された制御用のPC端末や、いわゆるティーチングペンダント(TP)のような制御端末から構成される。作業者(ユーザ)は、例えばロボットアーム1の状態を確認しながら、リアルタイムで動作指令器310を操作することにより、ロボットアーム1に任意の動作を行わせることができる。また、上記のロボット制御プログラムをトレース実行させ、ロボットアーム1の動作を確認する、あるいはロボット制御プログラムの一部を修正することもできる。
【0058】
また、図3において、当該関節の駆動手段230の駆動制御(例えば後述の関節の駆動力制御)は、詳細不図示のドライバ回路(例えばサーボ制御回路)を介して演算部320により行われる。これにより、ロボットアーム1が、特定の作業に必要な姿勢に制御される。この時、演算部320は、図2のように配置された力センサ250から、システムクロックなどに同期して刻々と当該関節の駆動力に係る測定値を取得することができる。
【0059】
図3において、その他の「~部」、「~器」のような名称で示された機能ブロックは、図中ではあたかもハードウェアブロックのように図示されているが、実際には例えば演算部320(CPU)がプログラム301を実行することにより実現される。ただし、これらの「~部」、「~器」のような名称で示された機能ブロック(330、340、350、321、322、323など)を、実際にハードウェアブロックとして実現することも可能であり、本実施例はそのような実装を妨げるものではない。
【0060】
以下、図3の各機能ブロックの動作の概略を説明する。
【0061】
制御装置たる演算部320は、例えば、動作指令器310からの動作指令に基づき、あるいは記憶装置300に格納された教示データやロボット制御プログラムに基づき、駆動手段230の動作指令を生成し、駆動手段230の動作を制御する。
【0062】
その際、演算部320は、第nの関節の関節駆動力を決定するために、第nの関節の力センサ250の検出値を用いたフィードバック制御を行う。力センサ250は、駆動手段230の動作を入力として、この第nの関節により駆動されるアーム手先側の第nのリンクに作用する、駆動軸200周りの力の検出値を出力する。
【0063】
その場合、他軸力計算部321(他軸力計算工程)がこの第nの関節に作用している他軸力を計算する。他軸力計算部321の入力の1つは第nの関節に関して計算部340により計算される(この関節により駆動される)第nのリンクに作用する動的な力である。また、他軸力計算部321の入力の他の1つは(既に計算済みの)第n+1の関節の力センサn+1350の検出値である。この他軸力計算部321の演算過程は、この関節の力センサ250に作用する、この関節の駆動方向を除く方向の他軸力を計算する他軸力計算工程に相当する。
【0064】
さらに、他軸干渉計算部322(他軸干渉計算工程)によって、上記の他軸力計算部321(他軸力計算工程)で計算された関節の駆動方向を除く方向の他軸力と、この関節の力センサ250の感度行列330を用いて、他軸干渉を計算する。ここで、他軸干渉とは、前述の通り、この関節の力センサ250の検出値に含まれているこの関節の駆動方向を除く方向の他軸力に起因して生じる誤差分である。
【0065】
この感度行列330には、例えば、当該の力センサ250に対して、少なくとも関節の駆動軸に直交する2つの3次元座標軸廻りに加えられた力(トルク)と、力センサ250の出力値の関係を含むものとする。なお、感度行列330は、当該の力センサ250が、検出を目的とするこの関節の駆動軸廻りに加えられた力(トルク)と、力センサ250の出力値の関係を含んでいてもよい。
【0066】
このように感度行列330を構成することにより、例えば、他軸干渉計算部322は、他軸力計算部321で求めた他軸力と、感度行列330を用いて、力センサ250の出力値に表われる他軸力の誤差、他軸干渉の大きさを計算できる。感度行列330は、例えば、テーブルメモリなどの形式で記憶装置300に配置しておくことができる。
【0067】
さらに、補正器323(補正工程)は、力センサ250の検出値から、他軸干渉計算部322が計算した前記の誤差である他軸干渉を差し引くことにより、この第nの関節に配置された力センサ250の検出値を補正する。
【0068】
制御器324は、補正器323(補正工程)で補正された(他軸干渉を除いた)この第nの関節の駆動力の現在値を用いて、駆動手段230の駆動力を制御することができる。
【0069】
上述の通り、関節の駆動軸200周りには、図6に示されるような他軸力が働く。図6において、10が力センサ250によって検出される駆動軸200廻りに働く力である。この力センサ250によって検出される力(10)は、他軸力40を含んでいる。他軸力40は、モーメント成分(20)、並進力成分(30)を含んでおり、上記の通り本実施例では、力センサ250の検出値(10)から他軸力40の影響を除去する制御を行う。
【0070】
以上に示した図3の機能ブロックの情報処理を、入出力関係に重点を置いて整理すると次のようになる。
【0071】
演算部320は、他軸力計算部321と、他軸干渉計算部322と、補正器323と、制御器324とを備えている。他軸力計算部321は、第nのリンクに作用する動的な力の計算部340により計算される第nのリンクに作用する動的な力の計算値と、第n+1の関節の力センサn+1350の検出値とを入力とし、第nの関節の力センサ250に作用する他軸力を出力する。
【0072】
他軸干渉計算部322は、他軸力計算部321で出力される力センサ250に作用する他軸力と、力センサ250の感度行列330とを入力として、他軸干渉で生じた力センサ250の検出値の誤差を出力する。
【0073】
補正器323は、他軸干渉計算部322から出力される力センサ250の検出値の誤差と、力センサ250の検出値とを入力として、力センサ250の検出値が補正された値を出力する。
【0074】
制御器324は、動作指令器310から出力される駆動手段230の動作指令と、補正器323から出力される力センサ250の検出値が補正された値とを入力として、駆動手段230の動作指令を出力する。
【0075】
上記の説明において、n、n+1のような添字で表現した通り、図3に示した制御構成では、第nの関節の関節駆動力を処理する場合、第n+1の関節の関節駆動力が処理済みになっている必要がある。このため、多関節構成のロボットアーム1の手先側の関節から順に上記の各工程を実行することになる。このような関節駆動力の測定処理は、図4のフローチャートのような形式で表現できる。
【0076】
以下に、図4のフローチャートを参照して、図3の演算部320の他軸力計算部321、他軸干渉計算部322、補正器323、および制御器324の処理の詳細について説明する。
【0077】
図4のフローチャートは、第1~第6関節に関して、それぞれの関節の力センサ250で検出した力から他軸干渉を補正し、各関節の駆動手段230にフィードバックさせる制御手順を示している。図4の制御は、例えば、ロボットアーム1によってワークなどを取り扱う作業中にリアルタイムで実行する場合に実行できるよう構成したものである。
【0078】
このため、図4の制御では、関節制御の最大時間(時刻S~E)を定めておき(S400)、この最大時間内に関節制御が終了しなかった場合(S403)は図4の関節制御を中止するようにしてある。ただし、この1セットの関節制御の所要時間に関する制限は、本実施例において必須のものではない。しかしながら、ロボットアーム1の全関節で1セットの関節制御の時間を制限することにより、例えば演算部320を構成するCPUの計算資源を有効利用でき、本来の位置姿勢制御などが停滞したり誤動作したりする可能性を低減できる。
【0079】
ステップS400では、最初の処理対象の関節番号(n)および全関節の制御を1セットとして、1ないし数セットの制御を行う所要時間tの変数を初期値S(開始時刻)に初期化する。このうち、関節番号(n)のインデックスは、演算手段を構成するCPUの内部レジスタやRAM上のスタックや特定アドレス上に割り当てられる変数領域を用いて実装できる。また、全関節で1セットの所要時間tは、不図示のRTC(リアルタイムクロック)などを用いて計時することができる。
【0080】
本実施例の場合、ステップS400では、ロボットアーム1の関節とリンクの番号を示すnに6を代入しており、最初に図1における第6の関節126について制御が行われる。その後、nの値を5、4、3…と減じ(S402)ながら、図4に示した全体のループが実行され、手先側からベース側に近い関節に関する制御が順に実行される。
【0081】
図4では、他軸力計算処理(ステップS410)は、図3の他軸力計算部321の処理に相当する。この他軸力計算処理(S410)では、第nの関節が駆動する第nのリンクに作用する力のつり合い式(下記の式(1))を解いて第nの関節の力センサ250に作用する力を計算する。
【0082】
【数1】
【0083】
ここで、上記式(1)において、左辺の第1項が第nの関節の力センサ250に作用する力、右辺の第1項が第nのリンクに作用する動的な力である。また、右辺の第2項は、この第nの関節にロボットアーム1の手先側において隣接する第n+1の関節の力センサn+1350に作用する力である(ステップS405)。図4の処理において、右辺の第2項の第n+1の関節の力センサn+1350に作用する力は、後述の再定義処理(S460)を経て既に計算済みとなっている。
【0084】
他軸力計算処理(S410)では、上式(1)を左辺の第1項について解き、力センサ250に作用する各方向の力を求めることにより、力センサ250に作用する他軸力を求めることができる。
【0085】
なお、n=6の場合、ロボットアーム1には第7の関節が存在しないため、式(1)の右辺の第2項は、ゼロであり、n=5以下においては、力センサn+1350に作用する力を使用する。
【0086】
例えば、図9は、図1のロボット装置のロボットアーム1の手先部分、即ち2つの関節125(J5)、126(J6)によって連結されたリンクを示している。これら関節125(J5)、126(J6)に働く力Fj5、Fj6は次式(2)のように示される。
【0087】
【数2】
【0088】
この式(2)は、式(1)において、特にn=5である特別な場合である。左辺の第1項が関節125(J5)の力センサ250に作用する力で、図9に示した同関節の3軸廻りの力Mxj5、Myj5、Mzj5から成る。また、右辺の第2項が126(J6)の力センサn+1350に作用する力で、図9に示した同関節の3軸廻りの力Mzj5、Myj5、Mxj5から成る。これらの力は、図9のような関節軸の位置関係に相当する行列中の位置に置かれている。
【0089】
また、式(1)、(2)の右辺の第1項、第nのリンクに作用する動的な力は、図4の動的な力の計算処理(ステップS420)により計算される。この動的な力の計算処理(S420)は、図3の計算部340に相当し、第nのリンクに関する静的な情報と動的な情報を用いて、当該のリンクに作用する動的な力を計算する。動的な力の計算処理(ステップS420)の演算に用いられる静的な情報は、当該のリンクの形状、慣性、弾性や、姿勢に関する情報を含み、動的な情報は、リンクの速度、加速度に関する情報を含む。当然ながら、これらのうち、当該のリンクの形状、慣性、弾性などの静的な条件は、ロボットアーム1の設計情報から既知であって、予め記憶装置300に格納しておくことができる。また、図4の処理は、特定のロボットアーム1の位置ないし姿勢制御中に実行されるものであるから、演算部320(CPU)は、実行中のロボット制御プログラムから現時点における関節の姿勢、リンクの速度、加速度などの動的な条件を特定することができる。
【0090】
なお、本実施例においては、他軸力計算処理(S410)では、特に第n+1の関節に作用している力に関しては、後述のステップS460、S470で再定義および座標変換された既に補正済みの力センサn+1350の検出値を用いている(S405)。ただし、後述の実施例2で示すように、他軸力計算処理(S410)では、第nのリンクに作用する動的な力の計算部340により計算される、第nのリンクに作用する動的な力の計算値のみを用いるようにしてもよい。この場合には、現時点におけるロボットアームの姿勢、リンクの速度、加速度などの動的な条件に基づき、当該の第nの関節に働く他軸力が計算される。
【0091】
ここで動的な力の計算処理(S420)により計算される関節nに働く力は、例えば次式(3)のように整理して示すことができる。
【0092】
【数3】
【0093】
上式(3)において、右辺の第1項は、同関節が支持するリンクの長さ、質量などにより定まる加速度比例項、右辺の第2項は同関節を回転駆動する速度などにより定まる速度比例項である。また、右辺の第3項は同関節が支持するリンクの弾性などにより定まる位置比例項である。
【0094】
上記の他軸力計算処理(S410)に続き、他軸干渉計算処理(ステップS430)では、上記のように計算した他軸力によって生じる力センサ250の検出値の誤差分、即ち他軸干渉を計算する。この他軸干渉計算処理(ステップS430)は、図3の他軸干渉計算部322の処理に相当する。
【0095】
この他軸干渉計算処理(ステップS430)では、他軸力計算処理(S410)で算出した力センサ250に作用する他軸力と、力センサ250の感度行列330とを掛け合わせることで、他軸干渉で生じたセンサ検出値の誤差を求める。感度行列330は、上述の通り例えば記憶装置300に配置され、力センサ250に作用する他軸力と、他軸干渉で生じるセンサ検出値の誤差との関係を格納している。
【0096】
続いて、検出値補正処理(ステップS440)では、他軸干渉計算処理(ステップS430)で求めた他軸干渉値を用いて力センサ250の検出値を補正する。この検出値補正処理(ステップS440)は、図3の補正器323の処理に相当する。この検出値補正処理(S440)では、他軸干渉計算処理430で求めた力センサ250に生じるセンサ検出値の誤差を力センサ250の検出値から差し引くことにより、力センサ250の検出値を補正する。
【0097】
次に、動作指令決定処理(ステップS450)において、補正後の力センサ250の検出値に基づき、この第nの関節の駆動手段230の駆動制御を行う。この動作指令決定処理(ステップS450)は、図3の制御器324の処理に相当し、例えば、次のような駆動力制御を行う。例えば、動作指令決定処理(ステップS450)において、動作指令器310から出力される動作指令に応じて、駆動手段230が第nのリンクに与える駆動軸200周りの力(目標値)を計算する。また、この目標値と、検出値補正処理(ステップS440)で求めた補正後の力センサ250の検出値(実際値)の偏差を計算する。そして例えば、動作指令に基づく第nのリンクに与える駆動軸n200周りの力の目標値と、実際値の偏差を低減するように、駆動手段230の動作指令を決定する。
【0098】
図4の制御ループは最後に2つの分岐ステップ、S401と、S403を有する。まず、ステップS401では、nの値が1になっているか否かを判定する。n=1、即ち、第6の関節から開始した処理を、順次、第1の関節まで実行した場合には、ステップS403に移行し、そうでない場合には、ステップS460に移行し、次のn-1番目の関節の処理に進む。ステップS401からS403に進む場合は、第6~第1までの関節の制御が1セット終了したタイミングである。ステップS403では、S400で初期化した所要時間tの変数が、予め定めた終了時間E(時刻)以上となっているか否かを判定する。このステップS403が肯定された場合には、所定の最大処理時間(S~E)を超えているため、図4の測定および関節の駆動力制御に係る処理を終了する。
【0099】
一方、ステップS403が否定された場合は、次の第6~第1の関節の1セットの制御を実行する時間的余裕がある、との認識と等価で、この場合はステップS404を経由してステップS400に復帰する。ここでステップS404は、所要時間tの変数をインクリメントする。図中のステップS404では、「t+1」のような簡略表記を採用しているが、ステップS404ではRTCなどにより計時した実時間を加算する処理を行ってもよい。あるいは、予め計算しておいた第6~第1関節の制御の1セットに要する所要時間を加算する処理を行ってもよい。また、これらのインクリメントの単位は、必ずしもms、μsのような時間単位である必要はなく、別の単位を適宜採用してよい。その場合、終了時間Eの定義は、ステップS404におけるインクリメントの単位に整合するよう定めておくのはいうまでもない。
【0100】
一方、ステップS401が否定された場合には、第1の関節までの1セットの処理が終了していないため、ステップS460、S470、S402、S405を経由して上記のステップS410に復帰する。
【0101】
まず、ステップS460の力センサnに加わる力の再定義処理では、他軸力計算処理(S410)において式(1)を解いて得られた力センサ250に作用する力の計算値を検出値補正処理(S440)で補正された力センサ250の検出値に置き換える。この置き換え処理は、当然ながら力センサ250の検出する関節駆動軸廻りの成分のみ行う。
【0102】
ステップS470の座標変換処理では、力センサ250に作用する力の計算値を、第nの関節の基準座標軸による表現から、次のベース110側で隣接する第n-1の関節の基準座標軸による表現に変換する座標変換処理を行う。この座標系変換では、力センサに加わる力の再定義処理(S460)で修正した力センサ250に作用する力(ベクタないし行列で表現される)の座標表現を変換する。この時、演算部320は、動作指令器310による指示、あるいはロボット制御プログラムから、例えば第nの関節と、次の処理対象である第n+1の関節の関節軸の位置ないし姿勢を計算できる。ここでは、第nの関節の関節軸を(例えば)Z軸に取った座標系から第n+1の関節の関節軸を(例えば)Z軸に取った座標系へ変換する、といった座標系変換を行えばよい。
【0103】
ステップS402では、ベース側で隣接する次の関節を指すよう、関節のインデックスであるnを1だけデクリメント(n=n-1)する。これにより、今終了した第nの関節が、次の関節の処理時には第n+1の関節として参照されるようになる。
【0104】
即ち、ステップS405では、式(1)の右辺の第2項、第nの関節に手先側において隣接する第n+1の関節の力センサn+1350に作用する力として、直前のS460、S470、S402で座標変換、再定義された力が用いられることになる。
【0105】
その後、次の第nの関節について、ステップS410以降の処理が繰り返される。図4の測定および関節の駆動力制御に関する処理は、第6~第1関節までの処理を1セットの処理単位として実行される。また、図4の測定および関節の駆動力制御に関する処理は、最大時間(E)まで1ないし数セット実行される。
【0106】
(実施例1の効果)
図1および図2のようにロボットアーム1の関節を構成することにより、ロボットアームの関節に接続される2つのリンクにおいて、2つのリンク間を伝達する力の経路が力センサを通過する経路の1経路のみとなる。このため、第nのリンク220に作用する他軸力を第nの関節の力センサ250が直接受けるようになり、第nのリンク220に作用する他軸力が力センサ250に伝わるまでの伝達経路を単純化できる。従来の関節構成では、関節を伝達する力がクロスローラベアリングやオイルシールなどの機械要素を介して伝達するため、関節に接続される2つのリンク間を伝達する力の経路は力センサを通過する経路以外にも存在していた。これに対して本実施例では、関節が連結する2つのリンク間を伝達する経路は力センサを通過する経路のみである。このため、力センサ250に作用する他軸力の値の把握が容易になる。これにより、他軸力計算部321をロボット制御装置2に設けることで、力センサ250に生じる他軸力を高精度に求めることができ、下記の測定制御もより正確に実施することができる。
【0107】
さらに、本実施例では、他軸干渉計算部322をロボット制御装置2に設けている。これにより、他軸干渉で生じた力センサ250の検出値の誤差を高精度に修正できる。これにより、駆動軸周りの力を正確に測定でき、測定した駆動軸周りの力をロボットアーム1の駆動制御に用いることにより、正確かつ確実にロボットアーム1の駆動力を制御することができる。従って、ロボットアーム1の先端のエンドエフェクタ117が部品(ワーク)に与える力を高精度に制御することができるようになる。このため、柔軟物や低強度部材の組付け工程のような、部品に与える荷重が数グラム程度であることを要求されるような工程でも、適切な関節駆動力の制御が可能となる。これにより、従来、困難であった柔軟物や低強度部材の組付け工程を自動化をロボット装置により実現する可能性が高まる。
【0108】
なお、図4の制御では、ロボットアーム1を構成する全関節の処理を1セットとして、それを1ないし数セット実行する処理が最大処理時間(S~E)を超えないよう制御している。このため、例えば演算部320を構成するCPUの計算資源を有効利用でき、本来の位置姿勢制御などが停滞したり誤動作したりする可能性を低減できる。
【0109】
<実施例2>
本実施例2では、図4に示した関節の駆動力測定およびそれに基づく制御の変形例を示す。ロボットシステムおよびその制御系のハードウェア構成は、上記実施例1と同じで良い。
【0110】
図5は、図4に示した関節の駆動力測定およびそれに基づく制御の変形例を示したフローチャート図である。図5では、図4と同等のステップには同一のステップ番号を用いており、以下ではその詳細については重複した説明を省略するものとする。なお、図5では、図3の機能ブロックとの関係は図4の場合と同等であるから、その図示も省略されている。
【0111】
図5の制御で、図4と異なるのは、ロボットアーム1の第nの関節の駆動制御では、他軸力計算処理(図5のS410)において、第n+1の関節の力センサn+1350の検出値を使用していない点にある。図5の他軸力計算処理(S410)では、動的な力の計算部(340:図3)により計算される、第nのリンクに作用する動的な力の計算値のみを使用して第nの関節の力センサ250に作用する他軸力を計算する。本実施例では、他軸力計算処理(図5のS410)では、第n+1の関節に働く力も含めて、その時点におけるロボットアームの姿勢、リンクの速度、加速度などの動的な条件に基づき、当該の第nの関節に働く他軸力が計算される。
【0112】
このため、図5の制御では、次の関節の処理に移行する経路では、座標変換処理(S470)と関節を指すインデックスであるnのデクリメント(S402)のみが行われ、再定義処理(図4のS460)は行わない。なお、図5の座標変換処理(S470)では、少なくとも、演算で扱う力の表現に用いる座標系を、ロボットアーム1の現在の姿勢を第nの関節を基準とした座標系から第n-1の関節を基準とした座標系に変更する処理を行えばよい。
【0113】
また、図5の制御では、図4のステップS400における処理時間tの初期化、S403の所要時間判定および、S404の処理時間tの歩進は省略されている。これは、例えば上記の再定義処理(図4のS460)の省略などにより処理の高速化が期待できるためであるが、図4の制御と同様に全関節を1セットとした処理の最大時間を制限する処理を行うようにしてもよい。
【0114】
(実施例2の効果)
本実施例2の制御によれば、基本的には上記実施例1と同等の効果を期待できる。即ち、他軸力計算部321(図3)設けることにより、力センサ250の検出軸廻りに働いている他軸力を高精度に求めることができる。そして、予め用意した感度行列330を用いて他軸力に起因する力センサ250の検出誤差(他軸干渉)を高精度に修正できる。このため、ロボットアーム1の先端のエンドエフェクタ117などを介してワークに作用する力を高精度に制御することができるようになる。これにより、柔軟物や低強度部材の組付け工程のような、部品に与える荷重が数グラム程度であることを要求されるような工程の自動化を多関節ロボットアームにより実現できる可能性が高まる。
【0115】
また、本実施例2によれば、処理済みの関節の力センサ250の検出値の再定義処理(図4のS460)を省略し、第nのリンクに作用する動的な力の計算値のみを使用して、第nの関節の力センサ250に作用する他軸力を計算するようにしている。このため、例えば演算部320を構成するCPUの計算資源を有効利用でき、本来の位置姿勢制御などが停滞したり誤動作したりする可能性を低減することができる。
【0116】
(変形例など)
上記の説明では、ロボットアーム1の構成として垂直6軸多関節の構成を例示した。しかしながら、本発明は関節数や関節構成によって限定されるものではない。例えば、ロボットアームの関節数は2以上であれば上述と同等の測定および関節制御を実施でき、その関節のいずれかにおいて、図1図2に示した関節構成を実施できる。また、ロボットアームが水平多関節構成やパラレルリンク構成を取る場合でも、上述の関節構成や上述と同等の測定および関節制御を実施でき、同様の効果を期待できる。
【0117】
また、以上ではロボットアーム1の関節として主に回転関節を示したが、図8に示したような直動関節においても上述と同等の測定および関節制御を実施でき、同様の効果を期待できる。また、ロボットアーム1の関節の駆動手段230としては、電動モータと減速機を例示したが、液圧駆動のアクチュエータなどにより駆動手段が構成される場合でも上述と同等の測定および関節制御を実施でき、同様の効果を期待できる。また、拘束部240をクロスローラベアリング241を用いて構成したが、その変形例として各種転がり軸受や、直動駆動する軸受を用いて拘束部を構成しても、上述と同等の測定および関節制御を実施でき、同様の効果を期待できる。
【0118】
図3図5に示したロボット制御装置2による制御は、例えばCPU(中央演算処理装置)によって実行することができる。従って、上述した機能を実現するプログラムを記録した記録媒体をロボット制御装置2に供給し、ロボット制御装置2を構成するコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施例の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【0119】
また、本発明を実現するプログラムを記録したコンピュータ読み取り可能な記録媒体としては、例えばHDDのような記憶装置300を例示した。しかしながら、本発明を実現するプログラムを記録したコンピュータ読み取り可能な記録媒体としては、記憶(記録)メディアが固定式であるか着脱式であるかを問わず、任意の記録媒体を用いることができる。本発明を実現するプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。この種の記録媒体としては、ROM(EEPROMやフラッシュメモリなどを含む)や、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカードなどを用いることができる。また、本実施例におけるプログラムを、ネットワークを介してダウンロードしてRAM上に展開する、あるいはEEPROMなどに書き込むなどして、コンピュータにより実行するようにしてもよい。
【0120】
また、コンピュータが読み出したプログラムコードを実行することにより、本実施例の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【0121】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって本実施例の機能が実現される場合も含まれる。本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、本発明の制御は、1以上の機能を実現するハードウェア回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0122】
1…ロボットアーム、2…ロボット制御装置、210…第n-1のリンク、220…第nのリンク、230…第nの関節の駆動手段、240…第nの関節の拘束部、250…第nの関節の力センサ。
図1
図2
図3
図4
図5
図6
図7
図8
図9