(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】ロボットおよびロボット制御プログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240723BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2020102529
(22)【出願日】2020-06-12
【審査請求日】2023-04-20
【新規性喪失の例外の表示】特許法第30条第2項適用 一般社団法人日本ロボット学会,第37回日本ロボット学会学術講演会予稿集,RSJ2019AC3E3-07,2019年9月3日発行 一般社団法人日本ロボット学会,日本ロボット学会誌 Vol.37 No.8,第726~734頁,2019年10月15日発行 公益社団法人計測自動制御学会,第25回ロボティクスシンポジア予稿集,第282~285頁,2020年3月15日発行
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成31年度、国立研究開発法人新エネルギー・産業技術総合開発機構「次世代人工知能・ロボットの中核となるインテグレート技術開発/人工知能技術の社会実装に向けた研究開発・実証/機械学習による生産支援ロボットの現場導入期間削減と多能化」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】305027401
【氏名又は名称】東京都公立大学法人
(74)【代理人】
【識別番号】100137752
【氏名又は名称】亀井 岳行
(72)【発明者】
【氏名】武居 直行
(72)【発明者】
【氏名】関口 叡範
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2012-196716(JP,A)
【文献】特開2013-066965(JP,A)
【文献】特表2015-529163(JP,A)
【文献】関口叡範・武居直行,「拡張角軸ベクトルによる関節変位の可動域を考慮した逆運動学の数値解法」,第37回日本ロボット学会学術講演会,2019年
【文献】関口叡範・武居直行,「仮想バネの弾性エネルギー最小化に基づいた特異姿勢・非可解な問題に対して安定な逆運動学の数値解法」,日本ロボット学会誌,一般社団法人日本ロボット学会,2018年,第36巻,第9号,p.645-653
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
複数のアーム部と、2つのアーム部どうしの連結部位に配置され且つ一方のアーム部に対して他方のアーム部を変位させることが可能な関節部と、を有するアーム部材と、
前記関節部の変位量を逆運動学の数値解法で演算してアーム部材の自由端を第1の目標に移動させる制御を行う制御部であって、数値解法で演算を行う場合に、前記アーム部材の自由端と前記第1の目標とを結ぶ仮想的な第1のバネと、前記アーム部材の自由端と基端との間の第2の部位と予め定められた第2の目標とを結ぶ仮想的な第2のバネと、を設定して、前記第1のバネおよび前記第2のバネ
の弾性エネルギーが減少するように前記変位量を繰り返し演算すると共に、前記繰り返し演算中に前記自由端が前記第1の目標に
それ以上近づかなくなった場合、または、前記繰り返し演算中に前記第1のバネの弾性エネルギーの減少が停止した場合に
前記第1のバネのバネ定数は変更せず且つ前記第2のバネのバネ定数を下げて次回の演算を行うことで、前記自由端が前記第1の目標に達する前記変位量を演算して、前記変位量の演算結果に基づいて前記関節部の変位量を制御する前記制御部と、
を備えたことを特徴とするロボット。
【請求項2】
前記関節部を7つ以上有する前記アーム部材、
を備えたことを特徴とする請求項1に記載のロボット。
【請求項3】
前記第1のバネの長さに関する演算として、弾性エネルギーを演算する
ことを特徴とする請求項1または2に記載のロボット。
【請求項4】
前記自由端と前記第1の目標との直線距離に対応する第1のテンションバネと、前記自由端の前記第1の目標に対する方向に対応する第1のトーションバネと、を有する前記第1のバネと、
前記第2の部位と前記第2の目標との直線距離に対応する第2のテンションバネと、前記第2の部位の前記第2の目標に対する方向に対応する第2のトーションバネと、を有する前記第2のバネと、
を備えたことを特徴とする請求項1ないし3のいずれかに記載のロボット。
【請求項5】
複数のアーム部と、2つのアーム部どうしの連結部位に配置され且つ一方のアーム部に対して他方のアーム部を変位させることが可能な関節部と、を有するアーム部材を有するロボットを制御するロボット制御プログラムであって、
コンピュータを、
前記アーム部材の自由端と第1の目標とを結ぶ仮想的な第1のバネと、前記アーム部材の自由端と基端との間の第2の部位と予め定められた第2の目標とを結ぶ仮想的な第2のバネと、を設定して、前記第1のバネおよび前記第2のバネ
の弾性エネルギーが減少するように前記
関節部の変位量を繰り返し演算すると共に、前記繰り返し演算中に前記自由端が前記第1の目標に
それ以上近づかなくなった場合、または、前記繰り返し演算中に前記第1のバネの弾性エネルギーの減少が停止した場合に
前記第1のバネのバネ定数は変更せず且つ前記第2のバネのバネ定数を下げて次回の演算を行うことで、前記自由端が前記第1の目標に達する前記変位量を逆運動学の数値解法で演算する変位量演算手段、
前記変位量演算手段での前記アーム部材の自由端が前記第1の目標に達する演算結果に基づいて前記関節部の変位量を制御する変位制御手段、
として機能させることを特徴とするロボット制御プラグラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アーム部と関節部とを有するロボットおよび当該ロボットを制御するロボット制御プログラムに関し、特に、ロボットの自由端を目標に移動させる制御を行う際に逆運動学の数値解法を使用するロボットおよびロボット制御プログラムに関する。
【背景技術】
【0002】
産業用ロボットアームのような多関節ロボットを制御するために必要となる要素技術の1つに逆運動学の計算がある。ロボットの自由端部(ロボットのハンド部)を目標に到達させる場合に、各関節の角度、向き(原因)から自由端部の位置(結果)を演算することが順運動学であり、自由端部の位置(結果)から各関節の角度、向き(原因)を演算(逆算)することが逆運動学である。
逆運動学において結果を得る方法として、方程式等を使用して解析的に解く解析的解法と、数値を当てはめていって近似的に解く数値解法とが知られている。解析的解法は、多関節ロボットの構造が特別な条件を満たしている場合に限定されるが、条件を満たせば問題なく逆運動学を計算することができる。数値解法はロボットの構造によらず使用できる利点がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5586015号公報(「0002」-「0003」、「0030」-「0035」、
図1)
【非特許文献】
【0004】
【文献】T. Sugihara: "Robust Solution of Prioritized Inverse Kinematics Based on Hestenes-Powell Multiplier Method", IEEE/RSJ International Conference on Intelligent Robots and Systems,pp.510-515, 2014
【発明の概要】
【発明が解決しようとする課題】
【0005】
(従来技術の問題点)
数値的解法でロボットアームの自由端部(ハンド部)を目標に到達させる関節の変位量を演算する場合、自由端部と第1の目標とを結ぶ長さが前回の演算よりも短くなる変位量を演算することを繰り返して、最終的には前記長さがゼロになるように繰り返し計算していくことが行われている。
ここで、ロボットアームを現実の現場で運用する場合には、ロボットアームの周囲に壁等障害物が存在することがある。したがって、多関節のロボットアームを自由に変位させると、障害物に接触する恐れがある。このような状況に対応するために、ロボットアームの姿勢をある程度制限する目的で、自由端部を目標に近づける繰り返し演算を行う際に、ロボットアームの中間部分が第2の目標に近づくように合わせて計算することも行われている。
【0006】
しかしながら、ロボットアームの構成や、第1の目標と第2の目標の位置関係、自由端部と中間部分との関係等によっては、自由端部を目標に近づけようとしても、中間部分を第2の目標に近づけようとすることが、第1の目標に自由端部を近づけることを妨げる場合がある。よって、繰り返し計算を何回やっても自由端部が第1の目標にある一定の距離から近づくことができず、自由端部が第1の目標に到達する変位量を演算できなくなる問題があった。
これを解消するために、非特許文献1には、ラグランジュ乗数を使用して第1の目標の優先度を第2の目標の優先度よりも高くして演算する方法が記載されている。
しかしながら、非特許文献1に記載の手法では、数値解法の繰り返し計算を行う際に、ラグランジュ乗数の収束が遅く、計算の終了までに時間がかかる(繰り返し回数が多くなる)問題があった。
【0007】
本発明は、ラグランジュ乗数を使用してロボットアームの逆運動学の数値解法を行う従来の構成に比べて、計算時間を短縮することを技術的課題とする。
【課題を解決するための手段】
【0008】
前記技術的課題を解決するために、請求項1に記載の発明のロボットは、
複数のアーム部と、2つのアーム部どうしの連結部位に配置され且つ一方のアーム部に対して他方のアーム部を変位させることが可能な関節部と、を有するアーム部材と、
前記関節部の変位量を逆運動学の数値解法で演算してアーム部材の自由端を第1の目標に移動させる制御を行う制御部であって、数値解法で演算を行う場合に、前記アーム部材の自由端と前記第1の目標とを結ぶ仮想的な第1のバネと、前記アーム部材の自由端と基端との間の第2の部位と予め定められた第2の目標とを結ぶ仮想的な第2のバネと、を設定して、前記第1のバネおよび前記第2のバネの弾性エネルギーが減少するように前記変位量を繰り返し演算すると共に、前記繰り返し演算中に前記自由端が前記第1の目標にそれ以上近づかなくなった場合、または、前記繰り返し演算中に前記第1のバネの弾性エネルギーの減少が停止した場合に前記第1のバネのバネ定数は変更せず且つ前記第2のバネのバネ定数を下げて次回の演算を行うことで、前記自由端が前記第1の目標に達する前記変位量を演算して、前記変位量の演算結果に基づいて前記関節部の変位量を制御する前記制御部と、
を備えたことを特徴とする。
【0009】
請求項2に記載の発明は、請求項1に記載のロボットにおいて、
前記関節部を7つ以上有する前記アーム部材、
を備えたことを特徴とする。
【0010】
請求項3に記載の発明は、請求項1または2に記載のロボットにおいて、
前記第1のバネの長さに関する演算として、弾性エネルギーを演算する
ことを特徴とする。
【0011】
請求項4に記載の発明は、請求項1ないし3のいずれかに記載のロボットにおいて、
前記自由端と前記第1の目標との直線距離に対応する第1のテンションバネと、前記自由端の前記第1の目標に対する方向に対応する第1のトーションバネと、を有する前記第1のバネと、
前記第2の部位と前記第2の目標との直線距離に対応する第2のテンションバネと、前記第2の部位の前記第2の目標に対する方向に対応する第2のトーションバネと、を有する前記第2のバネと、
を備えたことを特徴とする。
【0012】
前記技術的課題を解決するために、請求項5に記載の発明のロボット制御プラグラムは、
複数のアーム部と、2つのアーム部どうしの連結部位に配置され且つ一方のアーム部に対して他方のアーム部を変位させることが可能な関節部と、を有するアーム部材を有するロボットを制御するロボット制御プログラムであって、
コンピュータを、
前記アーム部材の自由端と第1の目標とを結ぶ仮想的な第1のバネと、前記アーム部材の自由端と基端との間の第2の部位と予め定められた第2の目標とを結ぶ仮想的な第2のバネと、を設定して、前記第1のバネおよび前記第2のバネの弾性エネルギーが減少するように前記関節部の変位量を繰り返し演算すると共に、前記繰り返し演算中に前記自由端が前記第1の目標にそれ以上近づかなくなった場合、または、前記繰り返し演算中に前記第1のバネの弾性エネルギーの減少が停止した場合に前記第1のバネのバネ定数は変更せず且つ前記第2のバネのバネ定数を下げて次回の演算を行うことで、前記自由端が前記第1の目標に達する前記変位量を逆運動学の数値解法で演算する変位量演算手段、
前記変位量演算手段での前記アーム部材の自由端が前記第1の目標に達する演算結果に基づいて前記関節部の変位量を制御する変位制御手段、
として機能させることを特徴とする。
【発明の効果】
【0013】
請求項1,5に記載の発明によれば、ラグランジュ乗数を使用してロボットアームの逆運動学の数値解法を行う従来の構成に比べて、計算時間を短縮することができる。また、演算に必要なパラメータの調整にかかる手間を削減することができる。
請求項2に記載の発明によれば、解析的解法で変位量の解を得ることが困難な関節部が7つ以上のアーム部材を有する構成でも、変位量の解を得ることができる。
請求項3に記載の発明によれば、計算上の数値がマイナスになる可能性のあるパラメータを使用する場合に比べて、計算を簡便に行うことができる。
請求項4に記載の発明によれば、テンションバネとトーションバネを使用して、第1の目標の位置と姿勢の両方を満足する変位量を導出できる。
【図面の簡単な説明】
【0014】
【
図1】
図1は本発明の実施例1のロボットの概略説明図である。
【
図2】
図2は実施例1の数値解法におけるロボットアームの各部の変位や目標との関係の説明図である。
【
図3】
図3はアーム部材の逆運動学における数値解法での仮想的なバネの説明図である。
【
図4】
図4は[数17]~[数19]の反復計算をブロック線図に表したものである。
【
図5】
図5は手先効果器を第1の目標に近づけていく繰り返し計算(反復計算)を行う際のk回目とk+1回目の関係の説明図である。
【
図6】
図6はシミュレーション実験で使用するアーム部材の説明図である。
【
図7】
図7は第2の目標の位置を変えながら行うシミュレーション実験の説明図であり、
図7Aは実験例1の説明図、
図7Bは実験例2の説明図、
図7Cは実験例3の説明図、
図7Dは実験例4の説明図である。
【
図10】
図10は実施例と比較例における収束に必要な計算時間をまとめた図表である。
【
図11】
図11は特異姿勢に対するロバスト性の検証の結果の説明図であり、
図11Aは繰り返し回数k=0、ζ
k=1の場合(初期状態)の説明図、
図11Bは繰り返し回数k=5、ζ
k=0.75の状態の説明図、
図11Cは繰り返し回数k=13、ζ
k=0.25の状態の説明図、
図11Dは繰り返し回数k=17、ζ
k=0の状態の説明図である。
【発明を実施するための形態】
【0015】
次に図面を参照しながら、本発明の実施の形態の具体例(以下、実施例と記載する)を説明するが、本発明は以下の実施例に限定されるものではない。
なお、以下の図面を使用した説明において、理解の容易のために説明に必要な部材以外の図示は適宜省略されている。
【実施例1】
【0016】
図1は本発明の実施例1のロボットの概略説明図である。
図1において、本発明のロボットの一例としての実施例1のロボットアームシステムSは、アーム部材1を有する。アーム部材1は、複数のアーム部2と、アーム部2どうしを連結する関節部3とを有する。実施例1のアーム部材1は、台座部4に一端が支持された第1のアーム部2aを有する。第1のアーム部2aの他端には、第1の関節部3aが支持されている。以下同様に、第2のアーム部2b、第2の関節部3b、…、第9の関節部3i、第10のアーム部2jが連結されている。第10のアーム部2jの他端(先端)には対象物を把持、解放可能なロボットハンド部2kが形成されている。
したがって、実施例1のアーム部材1では、全体としては、第1のアーム部2aの一端部が基端部となり、第10のアーム部2jの他端部が自由端部となる。
【0017】
なお、実施例1では、9個の関節部3a~3iと、10個のアーム部2a~2jを有する構成を例示したがこれに限定されない。また、実施例1では、関節タイプを回転関節のみの構成例であるが、直動関節を含んだロボットアームでもよい。以降では、「変位量」の一例として、単に回転関節の「回転量」と表記する場合もあるが、直動関節の並進移動の「移動量」を意味する場合もあり、適宜読み替え可能である。
アーム部2や関節部3の数は、アーム部材1の用途や設計、仕様等に応じて任意の数に増減可能である。特に、逆運動学においては、X軸、Y軸、Z軸の直交座標系において、関節部3の位置x,y,zと、X軸、Y軸、Z軸周りの回転角θx,θy,θzの6つの変数に対して、関節部3の数が6つ以下であれば、関節部毎に成立する方程式の数の方が変数より少なく、特定の条件を満たせば解析的に解くことが可能な場合もある。一方で、関節部3の数が7以上になると解析的に解くことは基本的には困難であり、数値的な解法が原則的に使用されることとなるため、関節部3の数が7以上である場合に、本願発明は好適に利用可能である。
【0018】
前記関節部3(3a~3i)は、回転軸を中心として一方のアーム部2a~2iに対して他方のアーム部2b~2jを回転(変位)可能に構成されている。各関節部3には、図示しないモータが内蔵されており、モータの回転駆動、回転停止を制御することで回転量を制御可能に構成されている。各関節部3のモータは、実施例1では、図示しない無線通信チップで制御信号を受信して駆動する構成としているが、これに限定されない。通信ケーブル等の有線で制御信号を送受信可能な構成としてモータを制御することも可能である。なお、無線通信や有線通信の方式は、従来公知の任意の通信方式とすることが可能であり、携帯電話回線やBluetooth(登録商標)、無線LAN等、任意の無線通信方式を採用したり、USB(Universal Serial Bus)等のシリアル方式やパラレル方式等任意の有線通信方式を採用することが可能である。
【0019】
前記アーム部材1は、情報処理装置の一例としてのコンピュータ装置11で制御される。実施例1では、アーム部材1はコンピュータ装置11との間で無線通信が可能に構成されている。コンピュータ装置11は、コンピュータ本体12と、表示部の一例としてのディスプレイ13と、入力部の一例としてのキーボード14およびマウス15と、を有する。なお、実施例1では、コンピュータ装置11としてデスクトップ型のコンピュータ装置を例示したがこれに限定されず、ラップトップ型(ノート型)のコンピュータ装置を使用することも可能である。また、コンピュータ装置11として、パーソナルコンピュータ装置に限定されず、サーバー型やマイクロコンピュータ型、チップ型等の任意の形態とすることも可能である。
【0020】
実施例1のコンピュータ本体12は、外部との信号の入出力および入出力信号レベルの調節等を行うI/O(入出力インターフェース)、必要な起動処理を行うためのプログラムおよびデータ等が記憶されたROM(リードオンリーメモリ)、必要なデータ及びプログラムを一時的に記憶するためのRAM(ランダムアクセスメモリ)、ROM等に記憶された起動プログラムに応じた処理を行うCPU(中央演算処理装置)ならびにクロック発振器等を有するコンピュータ装置により構成されており、前記ROM及びRAM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
コンピュータ本体12には、基本動作を制御する基本ソフト、いわゆる、オペレーティングシステムや、アプリケーションプログラムの一例としてのロボット制御プログラム、その他の図示しないソフトウェアが記憶されている。
【0021】
実施例1のロボット制御プログラムは、以下の機能(手段、機能モジュール)C1,C2を有する。
回転量演算手段C1は、アーム部材1の自由端を目標に移動させるための各関節部3の回転量を逆運動学の数値解法で演算する。なお、逆運動学の数値解法は、従来公知であり、例えば、「関口叡範,武居直行: "仮想バネの弾性エネルギー最小化に基づいた特異姿勢・非可解な問題に対して安定な逆運動学の数値解法", 日本ロボット学会誌, vol.36, no.9, pp.645-653, 2018」や「T. Sugihara: "Solvability-unconcerned Inverse Kinematics by Levenberg-Marquardt Method",IEEE Transaction on Robotics, vol.27, no.5,pp.984-991, 2011」に記載されている。よって、以下では、理解の容易のために、まずは公知の逆運動学の数値解法について概略を説明し、その後で、本発明の特徴部分である優先度を変更する演算の説明をする。なお、本発明の回転量演算手段C1は、従来公知の逆運動学の数値解法に、本発明者が見出した優先度の変更を適用した演算を行う。
【0022】
図2は実施例1の数値解法におけるロボットアームの各部の変位や目標との関係の説明図である。
◎逆運動学の数値解法の説明
多関節ロボット(アーム部材1)の自由度をnとし、各関節変位を以下の[数1]のように定める。
【数1】
なお、「R
n」は「n次元列ベクトルの全体」である。
また、手先効果器(ロボットハンド部2k)の位置、姿勢をそれぞれp
1(q) ∈ R
3,R
1(q) ∈ SO (3) とし、手先効果器2kに与える目標(第1の目標)T1の位置、姿勢をそれぞれ
dp
1∈ R
3,
dR
1 ∈SO(3) とする。なお、「SO(3)」は「行列式が1となる3次の直交行列全体の集合」である。
このとき、手先効果器と目標との差を示す誤差ベクトルe
1(q) を次の[数2]のように定める。
【数2】
ここで、φ(*) は回転行列を角軸ベクトルに変換する関数である。
【0023】
〇角軸ベクトルの変換関数についての説明
任意の回転行列R = [r
ij ] ∈ SO(3) に対し、ベクトルs を次の[数3]のように定める。
【数3】
このとき、角軸ベクトルφ(R) は、次の[数4]のように表すことが可能である。
【数4】
なお、[数4]における||s||=0かつtrR=-1の場合については、本願の新規性喪失の例外の適用の証明書における提出文献2「関口叡範,武居直行: "特異点における角軸ベクトルの計算法と拡張角軸ベクトルの提案", 日本ロボット学会誌, vol.37, no.8, pp.726-734, 2019」の式(39)の導出過程やTable2に詳細に記載されており、説明の簡素化のため本願明細書においてはこれ以上の詳細な説明は省略する。
【0024】
手先効果器の速度は、次の[数5]のように表される。
【数5】
ここで、J
1(q)∈R
6×nはヤコビ行列であり、ω
1(q)は手先効果器の角速度ベクトルである。
図2のアーム部材1において、自由端(ロボットハンド部2k)と基端(第1のアーム部2aの台座部4側の端)との間の第2の部位2mの位置、姿勢をp
2(q) ∈ R
3,R
2(q) ∈ SO (3) とする。また、第2の部位2mの目標(第2の目標)T2の位置、姿勢をそれぞれ
dp
2∈ R
3,
dR
2 ∈SO(3) とする。なお、第2の部位2mや第2の目標T2は、アーム部材1の周辺に壁等の障害物が存在する等の状況でアーム部材1の挙動を制限する必要がある場合に、ユーザーが指定可能である。
上記のように第2の部位2mや第2の目標T2の位置、姿勢を定めた場合に、第2の部位2mに関する誤差ベクトルe
2(q)を、次の[数6]のように定める。
【数6】
【0025】
また、第2の部位2mの位置p
2(q)の速度は、[数5]と同様に、以下の[数7]のように表される。
【数7】
ここで, ω
2(q)は位置p
2(q)の角速度ベクトルであり、J
2(q)∈R
6×nはヤコビ行列である。なお、第2の部位2mの位置p
2(q)より手先効果器2k側にある関節は[数7]の左辺(位置の時間微分及び角速度)に影響を与えないため、J
2(q)の右側の成分は零行列となる。例えば、第2の部位2mが第6のアーム部2fに設定された場合、第6の関節部3f~第9の関節部3iは、[数7]の左辺には影響を与えないため、ヤコビ行列J
2(q)の第6~第9に関する成分はゼロになる。
なお、第2の部位と第2の目標以外にも、第3の部位と第3の目標、第4の部位と第4の目標、…のように、部位と目標の数が3つ以上にする場合は、同様の方法で誤差ベクトルとヤコビ行列を定めていけばよい。
【0026】
図3はアーム部材の逆運動学における数値解法での仮想的なバネの説明図である。
〇仮想的なバネと緩衝(ダンピング)効果
図3において、誤差ベクトルe
1(q)に対し、仮想直進バネ(第1のテンションバネの一例)51と仮想回転バネ(第1のトーションバネの一例)52を設定(仮定)する。第1の直進バネ51のバネ定数をK
1f∈R、第1の回転バネ52のバネ定数をK
1m∈Rとし、バネ定数行列を次の[数8]のように定める。
【数8】
ここで、I
3は3×3の単位行列である。
【0027】
同様に、誤差ベクトルe
2(q)に対し、仮想直進バネ(第2のテンションバネの一例)53と仮想回転バネ(第2のトーションバネの一例)54を設定(仮定)する。第2の直進バネ53のバネ定数をK
2f∈R、第2の回転バネ54のバネ定数をK
2m∈Rとし、バネ定数行列を次の[数9]のように定める。
【数9】
【0028】
手先効果器2kに取り付けられている仮想バネK
1(第1の直進バネ51および第1のトーションバネ52)のみを考慮した場合、仮想バネK
1によって各関節に生じる仮想トルクτ
1は、次の[数10]のようになる。
【数10】
同様に、仮想バネK
2(第2の直進バネ53および第2のトーションバネ54)のみを考慮した場合、仮想バネK
2によって各関節に生じる仮想トルクτ
2は、次の[数11]のようになる。
【数11】
【0029】
したがって、各関節に生じる合計の仮想トルクτ(q)は次の[数12]のように表される。
【数12】
ここで、[数12]におけるJ(q)、Ke(q)は、それぞれ、次の[数13]~[数15]となる。
【数13】
【数14】
【数15】
なお、目標の数が3つ以上の場合は、[数13]の右辺にJ
3(q) 、J
4(q) 、…、が追加されたり、[数14]の右辺の対角部分にK
3,K
4、…が追加されたり、[数15]の右辺にe
3(q) 、e
4(q) 、…、が追加されていくこととなる。
【0030】
[数12]の仮想トルクτ(q)に対し、関節ベースでのダンピング効果により、各関節に速度が発生すると見なした場合,各関節の速度は、関節ダンピング係数行列D(q)∈R
n×nを用いて次の[数16]のように表される。
【数16】
なお、[数16]におけるD(q)は後述する。
【0031】
次に、反復計算により、逆運動学の数値解を求めることを検討する。反復回数k回目における各関節変位をq
kとし、以降では、e(q
k),τ(q
k),D(q
k),J(q
k)をそれぞれe
k,τ
k,D
k,J
kと略記する。
仮想バネ(第1のバネ51+52、第2のバネ53+54)と関節ダンピング効果により、各関節に速度が生じたとき、その速度によって各関節変位が1ステップ当たりに変化する量をΔq
k∈R
nとする。このとき、Δq
kは次の[数17]のように表される。
【数17】
【0032】
各関節変位q
kにΔq
k を加えたものを次のステップの各関節変位とすれば、関節変位の更新則は次の[数18]ように表される。
【数18】
また、q
k+1は次の[数19]のように書くこともできる。
【数19】
なお、[数19]においてq
0は初期関節変位である。
【0033】
図4は[数17]~[数19]の反復計算をブロック線図に表したものである。ただし、アーム部材1の各部位に与える目標からなる集合
dχと、各部位の位置、姿勢からなる集合χ
kをそれぞれ次の[数20]、[数21]のように定めた。
【数20】
【数21】
【0034】
次に、仮想バネ51+52,53+54の弾性エネルギー最小化に基づくことで関節ダンピング係数行列D
k([数16]におけるD(q)の繰り返し計算k回目の値)が満たすべき十分条件を導出する。さらに、その条件を満たすようなD
kの具体的な定め方を示す。仮想バネの弾性エネルギーV
kは次の[数22]のように表される。
【数22】
[数22]において、バネ定数行列Kは半正定値行列であるため、V
k≧0となる。
【0035】
図5は手先効果器を第1の目標に近づけていく繰り返し計算(反復計算)を行う際のk回目とk+1回目の関係の説明図である。
図5のように、ベクトルJ
1(q
k)Δq
kは、反復計算1回当たりにおける手先効果器2kの変化量に近似できるため、次の[数23]が得られる。
【数23】
誤差ベクトルe
2(q
k)においても同様のことが言えるため、[数24]の近似式が得られる。
【数24】
[数23]、[数24]より、[数25]が得られる。
【数25】
【0036】
[数22]および[数25]から、V
k+1は、以下の[数26]のように変形できる。
【数26】
よって、[数26]から、以下の[数27]が得られる。
【数27】
【0037】
[数27]より、J
T
kKe
k≠0かつ関節変位がある何らかの値に収束していない(Δq
k≠0)とき、仮想バネ(51+52,53+54)の弾性エネルギーV
kが減少する(V
k+1-V
k<0となる)ことの十分条件としては、次の二つが考えられる。
(1)行列(D
k-(1/2)J
T
kKJ
k )が正定値行列(positive definite matrix)であること。
(2)行列D
kが正則行列(regular matrix)であること。
上記二つの条件を同時に満たすようなD
kは無数に存在するが、その選定例として、以下の[数28]がある。
【数28】
ここで、I
n∈R
n×nは単位行列であり、δ∈Rは、V
k≒0のときにD
kの非正則化を防ぐための微小な正の定数である。
【0038】
[数28]のようにD
kを定めると、運動学モデルの変化や特異姿勢に対してロバストな逆運動学の数値解法を構築できることが知られている。上記のD
kと[数18]、[数19]から以下の[数29]に示す関節変位の更新則が得られる。
【数29】
【0039】
行列Dkは正定値対称行列となるため、逆行列を計算する際はCholesky分解を用いることで計算量を低減することができる。以下にq0からq1を求めるまでの手順(1)~(7)を示す。
(1)初期関節変位q0取得し、目標T1,T2の位置、姿勢dχを定める。
(2)順運動学を計算し、各部位の位置、姿勢χ0とヤコビ行列J0を求める。
(3)誤差ベクトルe0を計算する。
(4)仮想トルクτ0=J0
TKeoと評価関数Vo=(1/2)eo
TKe0を計算する。
(5)関節ダンピング係数行列D0を計算する。
(6)関節変位の変化量Δq0=D0
-1τ0を計算する。
(7)q1=q0+Δq0を計算する。
【0040】
上記の手順(1)~(7)を繰り返し計算することで,逆運動学の数値解が得られる。すなわち、繰り返し1回目の手順(7)で得られたq1を、繰り返し2回目の手順(1)の初期関節変位として手順(1)~(7)を繰り返していく。
しかし、この方法ではそれぞれの目標T1,T2に優先度が与えられていない。次に、本願発明の特徴部分の説明の前に、従来の優先度を与える手法について説明する。なお、従来手法は、非特許文献1:「T. Sugihara: "Robust Solution of Prioritized Inverse Kinematics Based on Hestenes-Powell Multiplier Method", IEEE/RSJ International Conference on Intelligent Robots and Systems,pp.510-515, 2014」に詳細に記載されているため、以下は本願発明に関連する部分を中心に説明する。
【0041】
従来手法では、[数15]の誤差ベクトルを次の[数30]のように修正したものである。
【数30】
【数31】
ここで、[数30]、[数31]におけるλ
k∈R
6はラグランジュ乗数である。
【0042】
[数31]より、ラグランジュ乗数λkには第1の目標T1との誤差e(qk)が毎回累積されることがわかる。λkを更新する際には、e1(qk)の第4成分から第6成分は角軸ベクトル(姿勢角)であるため、ベクトル同士の加算を単純に求めることができないことに注意しなければならない。具体的には、e1(qk)およびλkの第4成分から第6成分をそれぞれ単位クオータニオンまたは回転行列に変換してから姿勢誤差同士の加算を求めた後、再度角軸ベクトルに変換する必要がある。λkが追加されたことで、第1の目標T1が高優先度となり、第2の目標T2が低優先度となる。
しかしながら、従来方法は、ラグランジュ乗数λkの収束が遅く計算時間を要すること、および、λkの更新に姿勢角の加算を含み実装コストの点で不利であることが課題である。具体的には、「角軸ベクトルを一旦単位クオータニオンまたは回転行列に変換してから姿勢誤差同士の加算を求めた後、再度角軸ベクトルに変換する」プログラムを作成する必要があって、手間がかかり、実装コストの点で不利である。
【0043】
これに対して、実施例1では、[数14]におけるバネ定数行列を次の[数32]のように修正したものである。
【数32】
【数33】
ここで、ζ
0=1であり、ζ
k=0かつV
k≧0.99V
k-1となったときは反復計算を終了する。条件V
k≧0.99V
k-1」が真であることは仮想バネの弾性エネルギーVkの減少が停止したこと、すなわち、バネの伸び(=手先効果器2kと第1の目標T1との距離)がそれ以上短くならなくなったことを意味する。なお、係数0.99は数値誤差の影響を考慮して設定したものであり、要求される精度等の仕様や設計等に応じて任意に変更可能である。
【0044】
[数32]において、V
k<0.99V
k-1の状況、すなわち、計算が繰り返される度に手先効果器2kが第1の目標T1に近づいている状況では、ζ
k+1=ζ
k=…=ζ
0=1であり、[数32]は[数14]と同様になる。一方で、V
k≧0.99V
k-1の状況、すなわち、繰り返し計算中に手先効果器2kが第1の目標T1にそれ以上近づかなくなった状況では、ζ
k+1=ζ
k-(1/4)・ζ
0<1となる。このとき、ζ
k+1(すなわち繰り返し計算における次回のζ
k)はバネ定数行列K
2の影響を徐々に弱める効果を有する。つまり、計算上で、第2のバネ53+54のバネ定数が下がることに相当し、相対的に第1のバネ51+52の方が第2のバネ53+54に対して優位になることに相当する。言い換えると、第2の部位2mを第2の目標T2に近づける第2のバネ53+54が弱くなって、手先効果器2kを第1の目標T1に近づける第1のバネ51+52が相対的に強くなり、手先効果器2kが第1の目標T1に近づきやすくなる。この結果、第1の目標T1が高優先度となり、第2の目標T2が低優先度となる。
なお、優先度を逆にする場合は、[数32]を次の[数34]のように変更すればよい。
【数34】
【0045】
実施例1の回転量演算手段(変位量演算手段の一例)C1では、[数32]のバネ定数行列を使用して、前述の手順(1)~(7)の演算を、手先効果器2kが第1の目標T1に到達するまで、すなわち、誤差ベクトルがゼロ(実際には所定の閾値以下)になるまで、繰り返して、関節部3の変位量qを導出し、演算結果として出力する。
回転量制御手段(変位制御手段の一例)C2は、回転量演算手段C1で演算された回転量に基づいて、各関節部3の回転量を制御して、ロボットハンド部2kを目標まで移動させるように制御する。
【0046】
(実施例1の作用)
前記構成を備えた実施例1のロボットアームシステムSでは、従来の誤差ベクトルにラグランジュ乗数を導入する優先度付きの数値解法に比べて、バネ定数K2に係数ζkをかけるだけの簡単な計算で第2の目標T2の優先度を下げることが可能である。したがって、計算負荷を抑制することが可能であり、実装コストの点でも有利である。
なお、実施例1では、第2の目標T2を導入しない従来の構成に比べても、アーム部材1の姿勢を第2の目標T2を導入することで制限しつつ、手先効果器2k(自由端)が第1の目標T1に到達する変位量qを導出することが可能である。
【0047】
なお、[数33]において、Vk≧0.99Vk-1の場合に、(1/4)ζ0ずつζkが小さくなっていく場合を例示したがこれに限定されない。ζkを小さくする割合が1/4、すなわち、25%に限定されず、20%や30%等、設計や仕様等に応じて任意に変更可能である。ζkを小さくする割合は第2のバネ(53+54)の優先度を低下させる割合に相当するため、この数値を調整することで、優先度を低下させる割合をユーザーが任意に調整可能である。例えば、優先度を低下させる割合を大きくすれば速やかに0に収束するため、全体の計算時間を短縮しやすく、優先度を低下させる割合を小さくすれば細かく計算することになって変位量qの誤差が少なくなる。よって、ユーザーが時間を優先するのか精度を優先するのかに応じて優先度を低下させる割合を調整可能である。
【0048】
また、ζ0=1の場合を例示したがこれに限定されない。ζ0=1は、初期状態では、第1のバネ(51+52)と第2のバネ(53+54)の優先度が同一であることに相当するが、初期状態において、第1のバネ(51+52)を優先したければ、0≦ζ0<1に設定することが可能であるし、第2のバネ(53+54)を優先したければ、ζ0>1に設定可能である。
特に、実施例1では、解析的解法で解を得ることが困難な関節部3の数が7以上のアーム部材1においても数値解法で解を得ることが可能であり、設計の自由度が向上している。
【0049】
さらに、実施例1では、評価関数としてバネの弾性エネルギーVkを使用している。手先効果器2kと第1の目標T1との距離や弾性力を使用すると、計算上、ベクトルの向きが逆向きになると、距離や弾性力がマイナスの値を取る可能性があり、マイナスの値の場合の取り扱いについて絶対値を取る等の処理が必要になる場合がある。すなわち、マイナスかどうかの判別やマイナスの場合の追加の処理が必要になる場合がある。これに対して、弾性エネルギーVkは値がマイナスにならないため、そのような処理が必要なく、処理を容易にすることが可能である。なお、処理速度に余裕がある等の場合は、評価関数として弾性エネルギーではなく、距離や弾性力等を使用することも可能である。
【0050】
また、実施例1では、各バネ51+52,53+54として、直進バネ(テンションバネ)と回転バネ(トーションバネ)とを組み合わせたものを例示したが、これに限定されない。手先効果器2kの位置だけを制御して、向き(方向、姿勢)を制御する必要がない場合は、直進バネのみとすることも可能である。すなわち、直進バネは、位置に対応する変化量を導出するためのものであり、回転バネは向き(方向、姿勢)を制限するためのものと言える。
他にも、各バネの成分もx,y,zの3軸方向を設定する場合を例示したが、これに限定されず、各バネの成分を指定可能である。例えば、直進バネ51,53をx,y軸方向成分のみとし、回転バネ52,54をθx,θyのみとして、z軸上をz軸回りに回転することを許容するといったことも可能である。
【0051】
(シミュレーション実験)
図6はシミュレーション実験で使用するアーム部材の説明図である。
次に、実施例1の有効性をシミュレーション実験で確認した。なお、本シミュレーション実験では、前述のラグランジュ乗数を導入する従来手法を比較例として対比する形で行った。
〇計算時間とロバスト性の検証
本シミュレーション実験では、
図6に示すように、逆運動学を解析的に解くことが困難である9自由度(関節部が9つ)の多関節ロボット(アーム部材1)を使用した。それぞれのリンク(アーム部2)の長さは200mmであり、アーム部材1の全長はL=2000mmである。手先効果器2kと第1の目標T1との誤差ベクトルをe
1(q
k)とし、6番のリンク(アーム部)の中央と第2の目標T2との誤差ベクトルをe
2(q
k)とする。第1の目標T1を高優先度とし、第2の目標T2を低優先度とした。バネ定数行列の成分とδは、ロボットの全長Lを用いて次の[数35]~[数37]のように定めた。
【数35】
【数36】
【数37】
【0052】
図7は第2の目標の位置を変えながら行うシミュレーション実験の説明図であり、
図7Aは実験例1の説明図、
図7Bは実験例2の説明図、
図7Cは実験例3の説明図、
図7Dは実験例4の説明図である。
なお、[数35]、[数36]、[数37]は、バネ定数行列とδの物理次元および本願発明者らの試行錯誤に基づいて決定した。ただし、本シミュレーション実験では誤差ベクトルe
2(q
k)に対しては第2の仮想回転バネ54を取り付けないためK
2m=0とした。本シミュレーション実験では、
図7に示す4種類の試験を行う。
図7において、アーム部材1の初期姿勢はいずれも真っ直ぐ上方向に伸び切った姿勢(特異姿勢)である。各目標T1,T2の位置・姿勢はそれぞれ次の[数38]、[数39]のように定めた。
【数38】
【数39】
【0053】
また、シミュレーション実験の繰り返し計算の終了条件には、以下の[数40]の関数を用いた。
【数40】
なお、本シミュレーション実験では、V
1k<0.1となったときに繰り返し計算を終了するものとする。実施例1の手法を用いる場合は、繰り返し計算の終了条件に「ζ
k=0かつV
k≧0.99V
k-1」を用いることができるが、ここでは、ラグランジュ乗数を使用する従来手法と実験条件を等しくするために終了条件をV
1k<0.1としている。なお、「ζ
k=0かつV
k≧0.99V
k-1」も「V
1k<0.1」も手先効果器2kが第1の目標T1に到達した場合に成立するものであるため、終了条件としては実質的には同様のものである。
【0054】
図8は、
図7の各実験条件に対する本シミュレーション実験(実験例)の実験結果の説明図であり、
図8Aは
図7Aの実験結果の図、
図8Bは
図7Bの実験結果の図、
図8Cは
図7Cの実験結果の図、
図8Dは
図7Dの実験結果の図である。
図9は、
図7の各実験条件に対する従来手法(比較例)の実験結果の説明図であり、
図9Aは
図7Aの実験結果の図、
図9Bは
図7Bの実験結果の図、
図9Cは
図7Cの実験結果の図、
図9Dは
図7Dの実験結果の図である。
実施例1の手法と従来の手法(比較例)を用いて、
図7の逆運動学を解いたときの結果を
図8、
図9にそれぞれ示す。ただし、ここでの実験では従来法の[数31]に対して、α∈Rを次の[数41]のように追加した。
【数41】
【0055】
なお、従来の手法が記載された前述の論文ではα=1となっているが、ここでの実験ではαを他の値に変更した方が従来法での計算時間の点で高い性能を発揮したため、αを追加した。なお、
図9に示した結果はα=0.4のときのものであるが,α=0.2,0.3,…,0.7の6つの場合のいずれにおいても最終的に得られる結果は同じものとなった。
【0056】
図8と
図9を比較すると、Test1(
図8A、
図9A)、Test3(
図8C、
図9C)、Test4(
図8D、
図9D)の3つにおいては同じ結果となった。また、Test2(
図8B、
図9B)においては関節の屈曲方向が異なっているが、この相違は偶発的に生じたものであり、有意差ではない。よって、得られる逆運動学解については、実験例(実施例1)と比較例(従来手法)に差は見られない。
【0057】
図10は実施例と比較例における収束に必要な計算時間をまとめた図表である。
しかし、収束に必要となる計算時間(反復回数)とロバスト性においては差が見られる。収束に要した反復回数を
図10に示す。従来法(比較例)では、ラグランジュ乗数λ
kの影響により手先効果器2kが第1の目標T1の周辺を振動しながら徐々に収束するという特性がある。αが大きいほどこの振動は大きくなり、逆にαを小さくすると振動も小さくなる。αが適正値よりも大きい場合、振動の影響により収束が遅くなり多くの反復回数が必要となる。逆に、αが適正値よりも小さい場合は、振動による収束の遅延は起こらないが、V
1kの減少率が低下し、閾値(0.1)以下になるまでに多くの反復回数が必要となる。
図10の平均値において、従来法(比較例)の反復回数が最も少なかったのはα=0.4のときであるが、α=0.4の従来法(比較例)よりも本発明の手法(実験例)の方が高速に収束している。よって、実施例1の手法は従来の手法よりも高速に収束していることが確認された。
【0058】
また、α>0.9として従来法(比較例)を用いた場合には、計算結果が発散するという事例が観測されている。すなわち、従来法(比較例)では計算に成功するか否かが設計定数αに依存することになる。その一方で、実施例1の手法は必要な反復回数や計算に成功するか否かが特定の設計定数に大きく依存しないという点で従来法(比較例)よりもロバストであると言える。
なお、本実験では、反復計算の途中で関節変位が可動域の限界に達することはなかった。もし反復計算の途中でi番目の関節が可動域の限界に達した場合は、ヤコビ行列のi列目を零ベクトルに置き換えることで収束性能の低下を回避することができる。
【0059】
〇特異姿勢に対するロバスト性の検証
次に、実施例1の手法の特異姿勢に対するロバスト性の検証(シミュレーション実験)を行った。第1の目標T1と第2の目標T2を次の[数42]、[数43]ように定めた。
【数42】
【数43】
【0060】
図11は特異姿勢に対するロバスト性の検証の結果の説明図であり、
図11Aは繰り返し回数k=0、ζ
k=1の場合(初期状態)の説明図、
図11Bは繰り返し回数k=5、ζ
k=0.75の状態の説明図、
図11Cは繰り返し回数k=13、ζ
k=0.25の状態の説明図、
図11Dは繰り返し回数k=17、ζ
k=0の状態の説明図である。
高優先度である第1の目標T1との誤差が最小化されたとき、アーム部材1は特異姿勢となる。実施例1の手法を用いて逆運動学を解いたときの結果を
図11に示す。ダンピング係数行列D
kに含まれるδI
nは,行列D
kの悪条件化を緩和するため、特異姿勢においても計算破綻は起こらず、V
1kを最小化するような各関節変位(逆運動学解)が得られることが確認された。
【0061】
(変更例)
以上、本発明の実施例を詳述したが、本発明は、前記実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。本発明の変更例(H01)~(H03)を下記に例示する。
(H01)前記実施例において、関節部3の数やアームの長さや数、形状等は例示した形態に限定されない。したがって、アーム部材の用途や設計、仕様等に応じて、数や長さ、形状等、任意に変更可能である。
(H02)前記実施例や実験例において、例示した具体的な数値は例示したものに限定されず、設計や仕様等に応じて任意に変更可能である。
(H03)前記実施例において、関節部3の種類は回転関節のみで構成されていたが、その形態に限定されない。すなわち、直動関節を含む場合も適用可能である。
【符号の説明】
【0062】
1…アーム部材、
2…アーム部、
2k…自由端、
2m…第2の部位、
3…関節部、
11…コンピュータ、
51…第1のテンションバネ、
51+52…第1のバネ、
52…第1のトーションバネ、
53…第2のテンションバネ、
53+54…第2のバネ、
54…第2のトーションバネ、
C…制御部、
C1…変位量演算手段、
C2…変位量制御手段、
K2…第2のバネのバネ定数、
S…ロボット、
T1…第1の目標、
T2…第2の目標、
Vk…弾性エネルギー。