JP2013208671A - ロボット制御方法、ロボット制御装置、及びロボット制御システム - Google Patents

ロボット制御方法、ロボット制御装置、及びロボット制御システム Download PDF

Info

Publication number
JP2013208671A
JP2013208671A JP2012079980A JP2012079980A JP2013208671A JP 2013208671 A JP2013208671 A JP 2013208671A JP 2012079980 A JP2012079980 A JP 2012079980A JP 2012079980 A JP2012079980 A JP 2012079980A JP 2013208671 A JP2013208671 A JP 2013208671A
Authority
JP
Japan
Prior art keywords
posture
link position
hand
link
freedom
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012079980A
Other languages
English (en)
Inventor
Hiromitsu Ota
浩充 太田
Yasuharu Mukai
康晴 向井
Kazuya Numazaki
和也 沼崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JTEKT Corp
Original Assignee
JTEKT Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JTEKT Corp filed Critical JTEKT Corp
Priority to JP2012079980A priority Critical patent/JP2013208671A/ja
Publication of JP2013208671A publication Critical patent/JP2013208671A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)

Abstract

【課題】
冗長自由度を利用して、エンドエフェクタにおける目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できる。
【解決手段】
マニピュレータの手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階(S204)と、リンク位置姿勢の手先の誤差拡大率を演算する段階(S206)とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率を複数取得し、該複数の誤差拡大率の中から最小の誤差拡大率を選択する。最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように各関節軸のサーボモータに位置指令として付与する。
【選択図】図4

Description

本発明は、ロボット制御方法、ロボット制御装置及びロボット制御システム、詳しくは、冗長自由度を有するロボットの制御方法、ロボット制御装置及びロボット制御システムに関する。
従来、マニピュレータを制御するロボット制御装置では、各関節軸での回転角の制御誤差がマニピュレータの先端のエンドエフェクタでは拡大されて、位置決め精度、及び軌跡精度が劣化する。例えば、ある点で位置決めした状態で、関節軸に±1パルスのサーボ変動があると、マニピュレータの作動によりマニピュレータの先端に設けられたエンドエフェクタで拡大される場合がある。
このような位置決め精度を高精度に行うための技術として特許文献1が公知である。特許文献1では、マニピュレータ先端の位置をカメラで撮像して、フィードバックすることにより、目標位置との誤差が軽減されて、位置決め精度が向上する。
特開平5−301185号公報
ところが、特許文献1では、カメラ等の撮像装置が必要となるとともに、リアルタイムでの制御に時間がかかる問題がある。
本発明の目的は、冗長自由度を利用して、エンドエフェクタにおける目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できるロボット制御方法、ロボット制御装置及びロボット制御システムを提供することにある。
上記問題点を解決するために、請求項1の発明は、作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御方法において、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階と、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率を複数取得し、該複数の誤差拡大率の中から最小の誤差拡大率を選択し、前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与することを特徴とするロボット制御方法を要旨としている。
請求項2の発明は、請求項1において、前記リンク位置姿勢を算出する際、前記手先の目標位置姿勢を固定したと仮定して、前記冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されており、前記複数のリンク位置姿勢を取得する際は、前記姿勢パラメータを所定値分変化する毎に、前記手先の目標位置姿勢と該所定値分変化した姿勢パラメータに基づいてリンク位置姿勢を算出することを特徴とする。
請求項3の発明は、請求項1または請求項2において、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階を第2段階としたとき、第1段階と第2段階を1つの組み合わせとし、この組み合わせの処理を複数回行うことを特徴とする。
請求項4の発明は、請求項1または請求項2において、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階を第2段階としたとき、第1段階を複数回処理し、その後、算出されたリンク位置姿勢毎に第2段階を複数回行うことを特徴とする。
請求項5の発明は、作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御方法において、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階と、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率を複数取得する段階と、該複数の誤差拡大率の中から最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度を記憶部に格納する段階と、作業プログラムに従って前記マニピュレータの手先の目標位置姿勢が与えられたとき、前記記憶部から前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与することを特徴とするロボット制御方法を要旨としている。
請求項6の発明は、作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御装置において、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を複数算出するリンク位置姿勢算出部と、前記リンク位置姿勢毎の前記手先の誤差拡大率を演算する誤差拡大率演算部と、該複数の誤差拡大率の中から最小の誤差拡大率を選択する選択部と、前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与する位置指令付与部を備えることを特徴とするロボット制御装置を要旨としている。
請求項7の発明は、請求項6において、前記リンク位置姿勢算出部は、前記リンク位置姿勢を算出する際、前記手先の目標位置姿勢を固定したと仮定して、前記冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータを定義して、前記複数のリンク位置姿勢を取得する際は、前記姿勢パラメータを所定値分変化する毎に、前記手先の目標位置姿勢と該所定値分変化した姿勢パラメータに基づいてリンク位置姿勢を算出することを特徴とする。
請求項8の発明は、作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御システムにおいて、前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を複数算出するリンク位置姿勢算出部と、前記リンク位置姿勢毎の前記手先の誤差拡大率を演算する誤差拡大率演算部と、該複数の誤差拡大率の中から最小の誤差拡大率を選択する選択部と、を備えたシミュレーション装置と、前記選択部により選択された前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度を格納する記憶部と、作業プログラムに従って前記マニピュレータの手先の目標位置姿勢が与えられたとき、前記記憶部から前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与する位置指令付与部を備えることを特徴とするロボット制御システムを要旨としている。
請求項1乃至請求項5の発明によれば、冗長自由度を利用して、エンドエフェクタ(すなわち、マニピュレータの手先)における目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できるロボット制御方法を提供できる。
また、請求項2の発明によれば、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されていることにより、リンク位置姿勢の変更は、所定値の増減だけでできる。
また、請求項3の発明によれば、マニピュレータの手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、リンク位置姿勢の手先の誤差拡大率を演算する段階を第2段階としたとき、第1段階と第2段階を1つの組み合わせとし、この組み合わせの処理を複数回行うことにより、請求項1または請求項2の効果を容易に実現できる。
また、請求項4の発明によれば、マニピュレータの手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、リンク位置姿勢の手先の誤差拡大率を演算する段階を第2段階としたとき、第1段階を複数回処理し、その後、算出されたリンク位置姿勢毎に第2段階を複数回行うことにより、請求項1または請求項2の効果を容易に実現できる。
請求項5の発明によれば、予め記憶部に、最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度が格納されているため、作業プログラムに従ってマニピュレータの手先の目標位置姿勢が与えられたときは、コンピュータ(CPU)の演算負荷を軽減でき、高速な演算処理ができる高コストのCPUが不要となり、コストを低減できる。
請求項6乃至請求項8の発明によれば、冗長自由度を利用して、エンドエフェクタ(すなわち、マニピュレータの手先)における目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できるロボット制御装置を提供できる。
また、請求項7の発明によれば、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されていることにより、リンク位置姿勢の変更は、所定値の増減だけでできる。
また、請求項8の発明によれば、予め記憶部に、最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度が格納されているため、作業プログラムに従ってマニピュレータの手先の目標位置姿勢が与えられたときは、コンピュータ(CPU)の演算負荷を軽減でき、高速な演算処理ができる高コストのCPUが不要となり、コストを低減できる。
第1実施形態の冗長性を有するマニピュレータのスケルトン図。 一実施形態のロボット制御装置の概略構成図。 ロボット制御装置の制御フローチャート。 ロボット制御装置の制御フローチャート。 姿勢パラメータの説明図。 第2実施形態のロボット制御装置の制御フローチャート。 他の実施形態のロボット制御システムの概略図。
(第1実施形態)
以下、本発明を具体化した第1実施形態の作業自由度に対して冗長自由度を有するロボット制御装置及びロボット制御方法を図1〜図5を参照して説明する。
まず、本実施形態の作業自由度に対して冗長自由度を有するマニピュレータについて説明する。
図1に示すように、マニピュレータ10は、8個のリンク11〜18が7個の関節21〜27により直列に連結されて形成されている。多関節ロボットであるマニピュレータ10は、7個の関節21〜27においてリンク12〜18が旋回することのできる7自由度(自由度n=7)を有するロボットであり、その作業空間の次元数(次元数m)は6であって、1(=n−m)の冗長性を有する。すなわち、本実施形態のマニピュレータ10は、作業自由度6に対して、1つの冗長自由度を有する。
第1リンク11は一端が床面FLに固定され、他端が第1関節21の一側に接続されている。第1関節21の他側には、第2リンク12の一端が接続され、第2リンク12の他端には第2関節22の一側が接続されている。以下同様に、第3リンク13、第4リンク14、第5リンク15、第6リンク16、第7リンク17及び第8リンク18が、それぞれ第3関節23、第4関節24、第5関節25、第6関節26及び第7関節27を介して順に連結されている。
第1関節21の他側は一側に対して、矢印31に示すように、図1において上下方向に延びる軸を中心に回転可能とされており、これにより、第2リンク12は隣接する第1リンク11に対して、第1関節21の回転軸(J1軸)を中心に矢印31方向に旋回可能である。
また、第2関節22の他側は一側に対して、矢印32に示すように、図1において紙面に垂直な方向に延びる軸(J2軸)を中心に回転可能とされている。これにより、第3リンク13は隣接する第2リンク12に対して、第2関節22の回転軸を中心に矢印32方向に回転可能である。
以下、第3関節23、第4関節24、第5関節25、第6関節26及び第7関節27についてもそれぞれ、回転可能とされており、第4リンク14、第5リンク15、第6リンク16、第7リンク17及び第8リンク18も、それぞれ関節23〜27の回転軸(J3軸〜J7軸)を中心に、矢印33〜37方向に旋回可能である。尚、本願の全体にわたって、第1関節21〜27を介して連結されているリンク11〜18同士を、互いに隣接するリンク11〜18という。また、J1軸〜J7軸は、関節軸に相当する。
図1に示すように、第1関節21には第1サーボモータ41が取り付けられており、電力が供給されることにより、第2リンク12を図示しない減速機を介して第1リンク11に対して旋回させる。
また、第2関節22には第2サーボモータ42が取り付けられており、電力が供給されることにより、第3リンク13を図示しない減速機を介して第2リンク12に対して旋回させる。以下、同様に、第3関節23、第4関節24、第5関節25、第6関節26及び第7関節27にはそれぞれサーボモータ43〜47が取り付けられており、電力が供給されることにより、各々リンク14〜18を図示しない減速機を介して旋回させる。
なお、各モータは、各関節内に設けられるが、図1では、説明の便宜上、関節とは分離して図示している。また、本実施形態ではアクチュエータとしてサーボモータである回転型アクチュエータのACモータが使用されているが、直動アクチュエータでもよく、限定されるものではない。
第8リンク18の先端には、ツール49が取り付けられている。ツール49は第8リンク18とともに、第7関節27の回転軸(J7軸)を中心に図1に示すように矢印37方向に旋回可能とされている。ツール49は、例えば、ワーク等を把持可能なハンドである。なお、ツール49の種類は、本発明とは関係しないため、限定されるものではない。
上述したようにマニピュレータ10は、第1サーボモータ41〜第7サーボモータ47を駆動して第2リンク12〜第8リンク18を回転させることにより、第2リンク12〜第8リンク18の回転角度が累積して先端部にあるツール49に働くため、ツール49の先端の位置および姿勢を、その作業内容に応じた目標位置および目標姿勢に一致させることが可能である。
次に、図2を参照して、前記マニピュレータ10を制御するロボット制御装置としてのコントローラーRCを中心とした多関節ロボットの電気的な構成を説明する。
コントローラーRCは、コンピュータ90と、コンピュータ90に電気的に接続されたPWMジェネレータ51〜57と、PWMジェネレータ51〜57に電気的に接続されたサーボアンプ61〜67を有する。各サーボアンプ61〜67はそれぞれ第1サーボモータ41〜第7サーボモータ47に電気的に接続されている。
コンピュータ90は、位置指令をPWMジェネレータ51〜57に出力し、PWMジェネレータ51〜57は、当該制御令指令に基づいてPWM信号をサーボアンプ61〜67に出力する。サーボアンプ61〜67は、その出力に応じてサーボモータ41〜47を作動させることにより、各リンク12〜18を回転させる。
前記サーボモータ41〜47にはロータリエンコーダ71〜77が内蔵されており、インターフェイス80を介してコンピュータ90と接続されている。ロータリエンコーダ71〜77は、各々のサーボモータ41〜47の回転角度を検出することにより、すなわち、リンク12〜18のそれぞれが隣接するリンク11〜17に対する回転角度(関節角度)を検出して、その検出信号をコントローラーRCに送信する。ロータリエンコーダ71〜77は、回転角度検出器に相当する。
なお、回転角度検出器としては、ロータリエンコーダに限定するものではなく、レゾルバ、或いは、ポテンショメータであってもよい。
なお、第1サーボモータ41〜第7サーボモータ47に対してロータリエンコーダ71〜77を設ける代わりに、リンク11〜18または第1関節21〜第7関節27に、リンク11〜18の回転角度(関節角度)を直接に検出可能なセンサを取り付けてもよい。
前記コンピュータ90は、CPU91、ROM92、RAM93、及びハードディスク等の不揮発性の記憶部94、及びインターフェイス95等を備え、バス96を介して電気的に接続されている。
記憶部94には、各種データ、ロボットに各種作業を行わせるための作業プログラム、各種パラメータ等が記憶されている。すなわち、本実施形態のロボットは、ティーチングプレイバック方式で作動するロボットであり、前記作業プログラムが実行されることにより、前記マニピュレータ10が動作する。ROM92は、システム全体のシステムプログラムが記憶されている。RAM93は、CPU91の作業用のメモリであって、各種演算等が実行されるときに一時的にデータが格納される。
CPU91は、リンク位置姿勢算出部、誤差拡大率演算部、選択部及び位置指令付与部に相当する。
コントローラーRCには入力装置82が前記インターフェイス95を介して接続されている。入力装置82は、図示しないモニター画面及び各種入力キー等を有する操作盤であり、ユーザーが各種のデータを入力操作可能とされている。入力装置82は、多関節ロボットの電源スイッチが設けられるとともに、コンピュータ90に対して、マニピュレータ10の先端部にあるツール49の先端(エンドエフェクタ、以下、手先という)の最終目標位置および最終目標姿勢、ツール49の先端の補間点における位置および姿勢の入力、並びに、冗長性を利用したマニピュレータ10の姿勢変更のためのジョグ操作等による入力が可能となっている。
(第1実施形態の作用)
次に、本実施形態による多関節ロボットのコントローラーRCの作用を説明する。図3及び図4は、コントローラーRCのCPU91が実行する作業プログラムに書き込まれている教示点(最終目標位置、並びにツール49の先端の補間点における位置を含む)に手先を位置させるときの制御フローチャートである。前記ロータリエンコーダ71〜77は下記各ステップが実行される制御周期よりも、十分に短い検出周期で回転角度(すなわち、検出関節角度)を検出している。
(ステップ10)
まず、ステップ10(以下、ステップをSという)では、CPU91は、記憶部94の作業プログラムに書き込まれている教示点(手先位置)、手先姿勢及び速度データをRAM93の所定領域にセットする。なお、手先位置及び手先姿勢を合わせて手先位置姿勢という。このS10でセットされた手先位置姿勢は、手先の目標位置姿勢となる。
(S20)
次に、CPU91は、S20で、手先をS10でセットした教示点(手先位置)において、誤差拡大率が最小の姿勢(すなわち、リンク位置姿勢)決定を行う。このS20の処理の詳細を図4のフローチャートを参照して説明する。
(S202)
S202では、CPU91は、姿勢パラメータΦを初期化する、本実施形態ではΦ=0にして初期化するが、初期値は0に限定するものではない。姿勢パラメータΦについて説明する。
姿勢パラメータΦは、冗長自由度を有する前記マニピュレータ10が、手先位置を固定した場合、すなわち、手先位置姿勢を拘束した場合において、その冗長自由度により許容されるリンク位置姿勢を示すものである。具体的には、図5に示すようにマニピュレータ10の第4関節24は、第2関節22(以下、第1基準点Wという)を中心とし、第3リンク13〜第4リンク14のリンク長の合計を半径とした球A1と、第6関節26(以下、第2基準点Kという)を中心とし、第5リンク15〜第6リンク16のリンク長の合計を半径とする球A2とが形成する交差円E上の移動が可能である。従って、本実施形態では、この交差円E上に第4関節24が位置するようにして、リンク位置姿勢が変わる。
前記交差円Eの中心を通る中心軸Oは、図5に示すように、第1基準点W(第2関節22中心)と第2基準点K(第6関節26中心)を通過する軸である。第4関節24はこの交差円E上に位置するため、姿勢パラメータΦは、交差円E上のリンク位置姿勢を示すパラメータとして表すことができる。そこで、交差円E上の適宜の位置Rから、変更された位置までの角度を、ここでは、姿勢パラメータΦとして定義されている。本実施形態では位置Rは、第4関節24の現在位置とする。
(S204)
S204では、CPU91は、前記手先位置姿勢から関節角度を求めるために逆運動学演算を行う。
ここで、第1関節21〜第7関節27の関節角度θ1,θ2,θ3,…,θ7とし、手先座標(x,y,z)及び手先姿勢(a,b,c)とすると、ベクトルθ及び手先位置姿勢Xは下記のように表される。
各関節角度θ1,θ2,θ3,…,θ7は、式(2)に示すように表すことができ、これらの式は、逆変換式である。本ステップでは、式(2)により、手先位置姿勢Xと姿勢パラメータΦにより、各関節角度θ1,θ2,θ3,…,θ7を算出する。
この各関節角度θ1,θ2,θ3,…,θ7が当該姿勢パラメータΦにおけるリンク位置姿勢となる。
(S206)
S206では、CPU91は、姿勢パラメータΦにおけるx,y,z,a,b,cのそれぞれの方向における、エンドエフェクタ変動/アクチュエータ変動、すなわち、各方向の誤差拡大率Σξを、式(3)〜式(8)により算出する。
なお、後述するS214において、誤差拡大率の最小を選択する場合、特定の方向のみの誤差拡大率、例えば、x,y,z,a,b,cのいずれか1つの方向のみの誤差拡大率の最小を選択する場合は、その方向に関する誤差拡大率Σξを、式(3)〜式(8)のいずれか1つの式を用いて算出すればよい。
また、後述するS214において、x,y,z,a,b,cのうち、2個〜5個の方向を組み合わせた場合、例えば、x及びy方向、x及びz方向、y及びz方向の2つの方向、或いはいずれか3つの方向、或いは4つの方向、或いは5つの方向における誤差拡大率の総合的な誤差拡大率の場合には、それらの方向に関連した式(3)〜式(8)を使用して当該方向の誤差拡大率を算出すればよい。
(S208)
S208では、CPU91は、前記姿勢パラメータΦと、S206で算出した、誤差拡大率Σξを、記憶部94に格納する。
(S210)
S210では、CPU91は姿勢パラメータΦに対して所定値を加算して更新する。すなわち、仮想的に姿勢パラメータΦを増加させてリンク位置姿勢を変えたものとするのである。この所定値は、例えば1°であるが、この値に限定されるものではない。
(S212)
S212では、CPU91は、姿勢パラメータΦが、予め設定された上限値Φmax以下であれば、S204に戻り、姿勢パラメータΦが予め設定された上限値Φmを超えた場合には、「YES」と判定し、S214に移行する。この上限値Φmは、予め試験等により設定されたものである。
(S214)
S212からS214に移行した場合、CPU91は、S208において記憶部94に格納した誤差拡大率Σξの中から、最小のものを選択する。すなわち、姿勢パラメータΦを順次更新した上で、各姿勢パラメータ毎の各方向(或いは特定方向)における誤差拡大率Σξが取得されているため、この中から、CPU91は最小の誤差拡大率Σξを選択するのである。
ここで、特定方向のみの誤差拡大率Σξの最小値を選択する場合は、その方向のみであるので、容易に選択できる。一方、複数の方向の誤差拡大率が格納されている場合、例えば、x及びy方向、x及びz方向、或いは、y及びz方向のように2つの方向の誤差拡大率Σξが記憶部94に格納されている場合は、CPU91は、両方向の誤差拡大率が平均的に最小になるものを選択する。さらに、3つ以上の方向の誤差拡大率が記憶部94に格納されている場合には、CPU91は、それらの方向の誤差拡大率Σξが平均的に最小になるものを選択する。このようにして誤差拡大率Σξが最小となるリンク位置姿勢が選択され、この結果を利用して、CPU91は、誤差拡大率Σξが最小となるリンク位置姿勢、すなわち姿勢パラメータΦを導出する。
次に、図3のフローチャートに戻って説明する。
(S30)
S30では、CPU91は、前記誤差拡大率Σξが最小となる姿勢パラメータΦの各関節軸の関節角度となるように今回の制御周期分の位置指令(制御指令)としてPWMジェネレータ51〜57にそれぞれ出力する。PWMジェネレータ51〜57は、その位置指令に基づくPWM信号をサーボアンプ61〜67に出力する。サーボアンプ61〜67は、その出力に応じて各関節軸の第1サーボモータ41〜第7サーボモータ47を作動させることにより、各リンク12〜18を回転させる。なお、速度データの使用は、CPU91は、速度フィードバック制御を行う際に使用しているが、本発明とは関係しないため、説明を省略する。
(S40)
CPU91は、S40において、各ロータリエンコーダ71〜77からの検出信号に基づいて、最終目標位置、及び最終目標姿勢(すなわち、最終の目標位置姿勢)に手先が到達したか否かを判定し、達していないと判定した場合はS10に戻り、反対に作業プログラムの最終の目標位置姿勢に達していると判定した場合は、このフローチャートを終了する。なお、S10に戻った場合、作業プログラムに記述されている次の手先位置姿勢、速度データをセットする。
本実施形態では、下記の特徴を有する。
(1) 本実施形態のロボット制御方法は、マニピュレータ10の手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階(S204)と、
リンク位置姿勢の手先の誤差拡大率を演算する段階(S206)とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率Σξを複数取得し、該複数の誤差拡大率の中から最小の誤差拡大率を選択する。そして、最小の誤差拡大率となるリンク位置姿勢における各関節軸(J1軸〜J7軸)の関節角度となるように各関節軸(J1軸〜J7軸)のサーボモータ41〜47(アクチュエータ)に位置指令として付与する。この結果、本実施形態によれば、冗長自由度を利用して、エンドエフェクタ(すなわち、マニピュレータの手先)における目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できる。
(2)本実施形態の制御方法は、リンク位置姿勢を算出する際、手先の目標位置姿勢を固定したと仮定して、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータΦが定義されている。そして、複数のリンク位置姿勢を取得する際は、姿勢パラメータΦを所定値分変化する毎に、手先の目標位置姿勢と該所定値分変化した姿勢パラメータに基づいてリンク位置姿勢を算出する。この結果、本実施形態によれば、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されていることにより、リンク位置姿勢の変更は、所定値の増減だけでできる。
(3)本実施形態の制御方法は、マニピュレータ10の手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階(S204)を第1段階とし、リンク位置姿勢の前記手先の誤差拡大率を演算する段階(S206)を第2段階としたとき、S212で姿勢パラメータΦが、上限値Φmax以下の場合は、S204とS206を1つの組み合わせとし、この組み合わせの処理を複数回行うことになる。この結果、上記(1)、及び(2)の効果を容易に実現できる。
(4) 本実施形態のロボット制御装置のCPU91は、マニピュレータ10の手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を複数算出するリンク位置姿勢算出部として機能する。また、CPU91は、リンク位置姿勢毎の手先の誤差拡大率を演算する誤差拡大率演算部として機能するとともに、前記複数の誤差拡大率の中から最小の誤差拡大率を選択する選択部として機能する。さらに、CPU91は、最小の誤差拡大率となるリンク位置姿勢における各関節軸(J1軸〜J7軸)の関節角度となるように各関節軸(J1軸〜J7軸)のサーボモータ41〜47(アクチュエータ)に位置指令として付与する位置指令付与部として機能する。この結果、本実施形態のロボット制御装置RCによれば、冗長自由度を利用して、エンドエフェクタ(すなわち、マニピュレータの手先)における目標位置姿勢との誤差の拡大率が最小となるように関節軸を駆動するアクチュエータを制御でき、このために特別なセンサを要することなく、位置決め精度及び軌跡精度を向上できるロボット制御装置を提供できる。
(5) 本実施形態のロボット制御装置は、CPU91はリンク位置姿勢算出部として、リンク位置姿勢を算出する際、手先の目標位置姿勢を固定したと仮定して、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータΦを定義して、複数のリンク位置姿勢を取得する際は、姿勢パラメータΦを所定値分変化する毎に、手先の目標位置姿勢と該所定値分変化した姿勢パラメータΦに基づいてリンク位置姿勢を算出する。この結果、本実施形態によれば、冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されていることにより、リンク位置姿勢の変更は、所定値の増減だけでできる。
(第2実施形態)
次に、第2実施形態のロボット制御方法について説明する。なお、第2実施形態のコントローラーRCのハード構成は、第1実施形態と同一であるため、説明を省略する。第2実施形態では、第1実施形態の図3のS20の処理が図6に示すように異なっている。すなわち、S204の次にS208Aの処理を行うことと、S212で「YES」と判定したときに、S213の処理を行った後、S214の処理を行うところが異なっている。具体的に、説明する。
(S208A)
すなわち、S208Aでは、CPU91は、S204で算出した各関節角度θ1,θ2,θ3,…,θ7と、姿勢パラメータΦを関連付けて記憶部94に格納する。
(S213)
S213では、CPU91は、記憶部94に格納した姿勢パラメータΦを順次読み出して、第1実施形態のS206と同様に、CPU91は、姿勢パラメータΦにおけるx,y,z,a,b,cのそれぞれの方向における、エンドエフェクタ変動/アクチュエータ変動、すなわち、各方向の誤差拡大率Σξを、式(3)〜式(8)により算出する。
なお、後述するS214において、誤差拡大率の最小を選択する場合、特定の方向のみの誤差拡大率、例えば、x,y,z,a,b,cのいずれか1つの方向のみの誤差拡大率の最小を選択する場合は、その方向に関する誤差拡大率Σξを、式(3)〜式(8)のいずれか1つの式を用いて算出すればよい。
また、後述するS214において、x,y,z,a,b,cのうち、2個〜5個の方向を組み合わせた場合、例えば、x及びy方向、x及びz方向、y及びz方向の2つの方向、或いはいずれか3つの方向、或いは4つの方向、或いは5つの方向における誤差拡大率の総合的な誤差拡大率の場合には、それらの方向に関連した式(3)〜式(8)を使用して当該方向の誤差拡大率を算出すればよい。なお、以下では、
このようにして、各姿勢パラメータΦに関する、各方向(或いは特定の方向)の誤差拡大率を算出した後、S214に移行する。
このように、第2実施形態では、S212において、「NO」と判定される毎に、S204が複数回実行される。また、S212において、「YES」と判定されると、S213で、各姿勢パラメータの誤差拡大率が複数回実行されることになる。
本実施形態では、第1実施形態の(4)、及び(5)の効果の他に下記の特徴を有する。
(1) 本実施形態のロボット制御方法は、マニピュレータ10の手先の目標位置姿勢に基づいて、冗長自由度が許容するリンク位置姿勢を算出する段階(S204)を第1段階とし、リンク位置姿勢の前記手先の誤差拡大率を演算する段階(S213)を第2段階としたとき、第1段階を複数回処理し、その後、算出されたリンク位置姿勢毎に第2段階を複数回行うことにより、第1実施形態の(1)と同様の効果を容易に実現できる。
なお、本発明の実施形態は前記実施形態に限定されるものではなく、下記のように変更しても良い。
・ 前記各実施形態では、作業プログラムの実行時に、S20の処理、すなわち、誤差拡大率の最小のリンク位置姿勢決定をリアルタイムに行うようにしている。この制御方法に代えて、ロボット制御システムとして具体化してもよい。
具体的には、図7に示すように、ティーチングプレイバック方式で作成された作業プログラムを、コントローラーRCと通信が可能に接続されたコンピュータ100(例えばコントローラーRCの上位のコンピュータ)がシミュレーション装置としてシミュレーションで作業プログラムを実行する。そして、該コンピュータ100が、該作業プログラムでの教示点での手先位置姿勢を手先の目標位置姿勢とし、それぞれの教示点毎に、複数の誤差拡大率を算出して該複数の誤差拡大率の中から最小となる誤差拡大率を選択する。この選択方法は、第1実施形態、または第2実施形態のS20での求め方と同様に行えばよい。
そして、教示点毎のこの最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度を、その教示点が記述されている作業プログラムのステップと関連付けてファイル化して、該コンピュータ100が図示しない記憶部に記憶する。この後、コンピュータ100は、前記作業プログラムの教示点と関連付けされたファイルを、コントローラーRCに出力して記憶部94に記憶する。
コントローラーRCは、前記作業プログラムが実行されるときに、教示点での手先位置姿勢等をセットした場合に、該教示点(ステップ)と関連付けされたファイルを記憶部94から読み出すようにする。例えば、第1実施形態の図3のフローチャートにおいて、S20の代わりに、このファイルを読込するステップに変えればよい。
このようにしても、前記実施形態と同様の効果を実現することができる。
また、このロボット制御システムによれば、予め記憶部94に、最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度が格納されているため、作業プログラムに従ってマニピュレータ10の手先の目標位置姿勢が与えられたときは、コンピュータ(CPU)の演算負荷を軽減でき、高速な演算処理ができる高コストのCPUが不要となり、コストを低減できる。
・ なお、作業プログラム上の教示点を結ぶ全ての軌道上について行う必要はなく、特定の軌道上のみ、第1、第2実施形態並びに上記システムにおいて、位置決め精度及び軌跡精度が必要なところのみを限定的に行うようにしてもよい。
この場合、例えば、特定の軌道上の教示点の手先位置姿勢の場合は、その旨を記すデータが当該作業プログラムのステップに記述されており、この記述されている場合に、図3に示すフローチャートにおいて、S10からS20に移行し、そうでない場合には、S10からS30にジャンプするようにする。
このようにすれば特定の軌道領域のみ、位置決め精度、及び軌跡精度を良くすることができる。このようにするとCPU91の演算負荷を軽減できる。
・ また、姿勢パラメータΦの大きな変動を抑制するために、ある姿勢の範囲で決定するようにしてもよい。例えば、初期位置は、上限値Φmax以下の中で姿勢パラメータΦの全範囲で最小の誤差拡大率であるものを探索するようにし、次からは、例えば、1つ前の位置での姿勢パラメータΦ±ΔΦの範囲内で、最小の誤差拡大率であるものを探索するようにする等、制限を加えるようにしてもよい。
・ 前記実施形態では、アクチュエータをサーボモータとしてのACモータを使用したが、DCモータでもよく、ステッピングモータ等を使用してもよい。
・ 前記実施形態では、1つの冗長自由度をもつようにしたが、1つの冗長自由度に限定するものではなく、2つ以上の冗長自由度をもつロボット制御装置及び制御方法にも適用できる。
RC…コントローラー(制御装置)、
10…マニピュレータ、11〜18…リンク、
41〜47…サーボモータ(アクチュエータ)、
91…CPU(リンク位置姿勢算出部、誤差拡大率演算部、選択部及び位置指令付与部)。

Claims (8)

  1. 作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御方法において、
    前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階と、
    前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率を複数取得し、
    該複数の誤差拡大率の中から最小の誤差拡大率を選択し、
    前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与することを特徴とするロボット制御方法。
  2. 前記リンク位置姿勢を算出する際、前記手先の目標位置姿勢を固定したと仮定して、前記冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータが定義されており、
    前記複数のリンク位置姿勢を取得する際は、前記姿勢パラメータを所定値分変化する毎に、前記手先の目標位置姿勢と該所定値分変化した姿勢パラメータに基づいてリンク位置姿勢を算出することを特徴とする請求項1に記載のロボット制御方法。
  3. 前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階を第2段階としたとき、
    第1段階と第2段階を1つの組み合わせとし、この組み合わせの処理を複数回行うことを特徴とする請求項1または請求項2に記載のロボット制御方法。
  4. 前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階を第1段階とし、前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階を第2段階としたとき、
    第1段階を複数回処理し、その後、算出されたリンク位置姿勢毎に第2段階を複数回行うことを特徴とする請求項1または請求項2に記載のロボット制御方法。
  5. 作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御方法において、
    前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を算出する段階と、
    前記リンク位置姿勢の前記手先の誤差拡大率を演算する段階とを組み合わせて、複数のリンク位置姿勢を取得するとともに、リンク位置姿勢毎の誤差拡大率を複数取得する段階と、
    該複数の誤差拡大率の中から最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度を記憶部に格納する段階と、
    作業プログラムに従って前記マニピュレータの手先の目標位置姿勢が与えられたとき、前記記憶部から前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与することを特徴とするロボット制御方法。
  6. 作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御装置において、
    前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を複数算出するリンク位置姿勢算出部と、
    前記リンク位置姿勢毎の前記手先の誤差拡大率を演算する誤差拡大率演算部と、
    該複数の誤差拡大率の中から最小の誤差拡大率を選択する選択部と、
    前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与する位置指令付与部を備えることを特徴とするロボット制御装置。
  7. 前記リンク位置姿勢算出部は、前記リンク位置姿勢を算出する際、前記手先の目標位置姿勢を固定したと仮定して、前記冗長自由度により許容されたリンク位置姿勢を示す姿勢パラメータを定義して、前記複数のリンク位置姿勢を取得する際は、前記姿勢パラメータを所定値分変化する毎に、前記手先の目標位置姿勢と該所定値分変化した姿勢パラメータに基づいてリンク位置姿勢を算出することを特徴とする請求項6に記載のロボット制御装置。
  8. 作業自由度に対して冗長自由度を備えるように複数のリンクが各関節軸にて連結されたマニピュレータを、前記関節軸毎に設けられたアクチュエータに位置指令を付与することにより制御するロボットの制御システムにおいて、
    前記マニピュレータの手先の目標位置姿勢に基づいて、前記冗長自由度が許容するリンク位置姿勢を複数算出するリンク位置姿勢算出部と、
    前記リンク位置姿勢毎の前記手先の誤差拡大率を演算する誤差拡大率演算部と、
    該複数の誤差拡大率の中から最小の誤差拡大率を選択する選択部と、
    を備えたシミュレーション装置と、
    前記選択部により選択された前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度を格納する記憶部と、
    作業プログラムに従って前記マニピュレータの手先の目標位置姿勢が与えられたとき、前記記憶部から前記最小の誤差拡大率となるリンク位置姿勢における各関節軸の関節角度となるように前記各関節軸のアクチュエータに前記位置指令として付与する位置指令付与部を備えることを特徴とするロボット制御システム。
JP2012079980A 2012-03-30 2012-03-30 ロボット制御方法、ロボット制御装置、及びロボット制御システム Pending JP2013208671A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012079980A JP2013208671A (ja) 2012-03-30 2012-03-30 ロボット制御方法、ロボット制御装置、及びロボット制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012079980A JP2013208671A (ja) 2012-03-30 2012-03-30 ロボット制御方法、ロボット制御装置、及びロボット制御システム

Publications (1)

Publication Number Publication Date
JP2013208671A true JP2013208671A (ja) 2013-10-10

Family

ID=49527055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012079980A Pending JP2013208671A (ja) 2012-03-30 2012-03-30 ロボット制御方法、ロボット制御装置、及びロボット制御システム

Country Status (1)

Country Link
JP (1) JP2013208671A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116922384A (zh) * 2023-07-21 2023-10-24 北京纳通医用机器人科技有限公司 机械臂控制方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116922384A (zh) * 2023-07-21 2023-10-24 北京纳通医用机器人科技有限公司 机械臂控制方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
JP5895628B2 (ja) ロボットの制御方法及びロボット制御装置、並びにロボット制御システム
US9149931B2 (en) Robot system, robot control device and method for controlling robot
EP2699392B1 (en) An industrial robot having a kinematically redundant arm and a method for controlling the robot
US20140031982A1 (en) Robotic system and robot control device
JP4693643B2 (ja) ロボットの教示支援装置及びそのためのプログラム
JP5458769B2 (ja) ロボットの制御装置
KR20130066689A (ko) 7축 다관절 로봇의 제어 장치 및 교시 방법
JP2016055404A (ja) 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体
JP6514273B2 (ja) 速度を表示するロボットシステム
KR101787865B1 (ko) 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치
JP2013223895A (ja) ロボット制御方法及びロボット制御装置
WO2020149020A1 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
JP2013208671A (ja) ロボット制御方法、ロボット制御装置、及びロボット制御システム
JP2013215839A (ja) 冗長自由度を持つロボットの制御方法及びロボット制御装置、並びにロボット制御システム
JP4970492B2 (ja) 多関節ロボット
JP2019093487A (ja) ロボットの制御装置及びロボットの逆変換処理方法
JP2013226619A (ja) ロボット制御方法及びロボット制御装置
JP2013220501A (ja) ロボット制御方法及びロボット制御装置
JP2014124733A (ja) ロボット制御装置及びロボットの制御方法
JP4647919B2 (ja) 制御方法および制御装置
JP2013223896A (ja) ロボット制御方法及びロボット制御装置
JP2010036293A (ja) 多関節ロボット
JP2004148448A (ja) 位置決め演算方法および位置決め演算装置ならびに多関節マニピュレータ
JP2013215818A (ja) 冗長自由度を持つロボットの制御方法及びロボット制御装置、並びにロボット制御システム
JP2014140913A (ja) ロボット制御装置、ロボット制御システム、及びロボットの制御方法