JP2020075329A - シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 - Google Patents

シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2020075329A
JP2020075329A JP2018210727A JP2018210727A JP2020075329A JP 2020075329 A JP2020075329 A JP 2020075329A JP 2018210727 A JP2018210727 A JP 2018210727A JP 2018210727 A JP2018210727 A JP 2018210727A JP 2020075329 A JP2020075329 A JP 2020075329A
Authority
JP
Japan
Prior art keywords
robot
force
joint
contact
jacobian
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
JP2018210727A
Other languages
English (en)
Inventor
裕宣 佐々木
Hironobu Sasaki
裕宣 佐々木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018210727A priority Critical patent/JP2020075329A/ja
Publication of JP2020075329A publication Critical patent/JP2020075329A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】部品の変形を考慮した接触力と拘束力を用いたロボットの動作シミュレーション装置を提供する。【解決手段】ロボットシステム100におけるシミュレーションシステム550のコンピュータにより、拘束を有するロボット200の動作のシミュレーションを行うのに用いる接触力及び拘束力を計算する。この計算方法は、まず、接触・拘束空間と関節空間との関係を示すヤコビアンを求める。このヤコビアンを用いてロボット200の運動方程式を接触・拘束空間に変換する。更に変換した運動方程式を物体の単位力あたりの変形変化を示す行列Wを用いて線形化する。これにより得られる連立方程式を解くことで、接触力及び拘束力を同時に求める。【選択図】図1

Description

本発明は、変形する物体に対して拘束を有するロボットを用いて所定の動作を行う際のロボットのシミュレーションの技術に関する。
近年、ロボット開発において、ロボットの動作を詳細にシミュレーションするために、様々な技術開発が行われている。拘束力の導入もその一つであり、パラレルリンクを用いたロボットのシミュレーションにおいて高速な演算が可能となっている。ここで、拘束力とは、ある物体に対して他の物体の動作を拘束する力をいう。拘束力の一例として、ギヤとギヤとが速度伝達比Z:Zで伝達する力が挙げられる。
一方、ロボットは、ワークの搬送や組み立てなどの生産ラインにも適用されている。例えば、ギヤを駆動源としたエンドエフェクタで組立部品を保持し、被組立部品と組付けて物品を製造する。
このようなロボットの動作をシミュレーションする技術として、特許文献1には、拘束を有するロボットの動作をシミュレートする際の接触力と拘束力の計算方法が開示されている。
特開2018−030210号公報
しかしながら、上述したようなロボットを用いた物品の製造工程において、組立部品の剛性が低いとエンドエフェクタの保持力により組立部品が変形することがある。特許文献1に記載の計算方法では、ワーク(組立部品および被組立部品)の変形が考慮されておらず、部品の変形を伴う動作をシミュレーションすることはできなかった。
上記課題を解決するためのシミュレーション装置は、関節を有するロボットが物体を保持する動作をシミュレーションするのに用いる、前記ロボットと変形した前記物体の接触力及び前記ロボットの関節における拘束力を求める演算部を備えたシミュレーション装置であって、
前記演算部は、
前記ロボットの関節の拘束点を基準とする第1の座標空間における拘束力fと、前記ロボットの関節空間における拘束力τとの関係を示す第1ヤコビアンJを算出し、
前記ロボットの関節の接触点を基準とする第2の座標空間における接触力fと、前記ロボットの関節空間における接触力τとの関係を示す第2ヤコビアンJを算出し、
前記第1ヤコビアンJと第2ヤコビアンJを合わせた第3ヤコビアンJを算出し、
前記関節空間における、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力および遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとした、前記関節空間における前記ロボットの運動方程式
Figure 2020075329
を前記第3ヤコビアンJを用いて、前記第1の座標空間および前記第2の座標空間における加速度x(・・)、質量行列Λ、コリオリ力/遠心力項をμ、重力項p、発生力をfactとした、第2の運動方程式
Figure 2020075329
を求める変換処理をし、
所定の時間をΔt、前記物体の単位力あたりの変形変化を示す行列W、前記接触点の相対距離を示すδfreeを用いて、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
Figure 2020075329
を求める線形化処理をし、
前記線形化処理した運動方程式に基づく連立方程式を作成し、
前記連立方程式を解くことにより、前記拘束力fと、変形した物体の接触力を考慮した接触力fとを算出することを特徴とする。
本発明によれば、部品の変形を考慮した接触力を計算し、その接触力と拘束力とを用いてロボットの動作シミュレーションを行うことができる。そのため、ワークが変形するような動作においても正確にロボットの動作をシミュレーションすることができる。
実施形態に係るロボットシステムを示す概略図である。 ロボットアームの複数の関節のうちの1つの関節を示す部分断面図である。 実施形態に係る制御システムを示すブロック図である。 実施形態に係るシミュレーション方法を示すフローチャートである。 接触力及び拘束力の計算方法を示すフローチャートである。 実施例1におけるロボットの概略図である。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、実施形態に係るロボットシステムを示す説明図である。図1に示すように、ロボットシステム100は、ロボット200と、制御システム600と、を備えている。
ロボット200は、垂直多関節のロボットアーム201と、ロボットアーム201の先端に取り付けられたエンドエフェクタとしてのロボットハンド202と、を備えている。
ロボットアーム201の基端は、台座150に固定された固定端である。ロボットアーム201の先端は、自由端である。ロボットアーム201は、可動範囲の中であれば任意の3次元位置で任意の3方向の姿勢に、手先(ロボットアーム201の先端)を向けることができる。
ロボットアーム201は、複数の関節、例えば6つ関節J〜Jを有している。ロボットアーム201は、各関節J〜Jをそれぞれ回転駆動する複数(6つ)の駆動機構を有している。
ロボットアーム201は、複数のリンク210〜210を有し、複数のリンク210〜210が関節J〜Jで回転可能に連結されている。ここで、基端側から先端側に向かって、リンク210〜210が順に直列に連結されている。
図2は、ロボットアームの複数の関節のうちの1つの関節を示す部分断面図である。以下、関節Jを例に代表して説明し、他の関節J,J〜Jについては、同様の構成であるため、説明を省略する。
関節Jを駆動する駆動機構230は、駆動源である電動モータ(以下、モータ)231と、モータ231の出力を減速する減速機233と、を有している。
モータ231は、サーボモータであり、例えばブラシレスDCサーボモータやACサーボモータである。モータ231の回転軸232の回転が減速機233で減速されて関節(リンク)を駆動する。例えば減速機233の減速比が50:1であれば、モータ231が50回転で減速機233の出力側に配置されているリンク210が1回転する。また、リンク210とリンク210とは、クロスローラベアリング237を介して回転自在に結合されている。
減速機233は、本実施形態では波動歯車減速機である。減速機233は、モータ231の回転軸232に結合された、入力軸であるウェブジェネレータ241と、リンク210に固定された、出力軸であるサーキュラスプライン(ギヤ)242と、を備えている。なお、サーキュラスプライン242は、リンク210に直結されているが、リンク210に一体に形成されていてもよい。
また、減速機233は、ウェブジェネレータ241とサーキュラスプライン242との間に配置され、リンク210に固定されたフレクスプライン(ギヤ)243を備えている。フレクスプライン243は、ウェブジェネレータ241の回転に対して減速比Nで減速され、サーキュラスプライン242に対して相対的に回転する。従って、モータ231の回転は、減速機233で1/Nの減速比で減速されて、フレクスプライン243が固定されたリンク210に対してサーキュラスプライン242が固定されたリンク210を相対的に回転運動させ、関節J2を回転させる。
図3は、実施形態に係る制御システムを示すブロック図である。制御システム600は、ロボット200(図1)の動作を制御するロボット制御装置300と、シミュレーションシステム550と、を有している。シミュレーションシステム550は、コンピュータで構成されたシミュレーション装置500と、シミュレーション装置500に接続された、キーボード521、マウス522等の操作入力部520、モニタ523及び外部記憶装置524と、を備えている。
シミュレーション装置500は、オフライン教示によってユーザの操作に従ってロボット200の動作プログラムを作成し、作成した動作プログラムに基づき、ロボット200に対応する仮想ロボットを三次元仮想空間内で動作させるシミュレーションを行う。
シミュレーション装置500は、演算部としてのCPU(Central Processing Unit)501を備えている。また、シミュレーション装置500は、記憶部として、ROM(Read Only Memory)502、RAM(Random Access Memory)503、HDD(Hard Disk Drive)504を備えている。また、シミュレーション装置500は、記録ディスクドライブ505及び複数のインタフェース511〜515を備えている。
CPU501には、ROM502、RAM503、HDD504、記録ディスクドライブ505及びインタフェース511〜515が、バス510を介して相互に通信可能に接続されている。
ROM502には、BIOS等の基本プログラムが格納されている。RAM503は、CPU501の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD504は、CPU501の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU501に、後述する各種演算処理を実行させるためのプログラム531を記録するものである。CPU501は、HDD504に記録(格納)されたプログラム531に基づいてシミュレーション方法の各工程を実行する。
また、HDD504には、ロボット言語(命令文)で記述された動作プログラムが格納される。更に、HDD504には、ロボット200を構成する部品の三次元データ(CADデータ)、三次元有限要素法の計算式、パラメータ値等の各種情報が予め格納されている。
記録ディスクドライブ505は、記録媒体の一例である記録ディスク532に記録された各種データを読み出すことができる。
インタフェース511にはキーボード521が接続され、インタフェース512にはマウス522が接続されている。これらキーボード521及びマウス522からなる操作入力部520により、各種の操作入力を受付可能となっている。
インタフェース513には、表示部であるモニタ523が接続されており、モニタ523には、データ入力(編集)画像、仮想ロボットが配置された仮想三次元空間の表示画像などの各種画像が表示可能である。
インタフェース514には、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置524が接続可能に構成されている。なお、本実施形態では、コンピュータ読み取り可能な記録媒体がHDD504であり、HDD504にプログラム531が格納される場合について説明するが、これに限定するものではない。プログラム531は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム531を供給するための記録媒体としては、図3に示すROM502や、記録ディスク532、外部記憶装置等524を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、HDD、SSD、CD−ROM、DVD−ROM、磁気テープ、USBメモリ等の不揮発性メモリ、ROM等を用いることができる。また、記憶部としてHDD504の場合について説明するが、SSDや書き換え可能な不揮発性メモリであってもよい。
インタフェース515には、ロボット制御装置300が接続されている。ロボット制御装置300は、動作プログラムに基づき作成された軌道データをシミュレーション装置500から取得し、軌道データに従ってロボット200の動作を制御する。
ここで、ロボットアーム201の基端には、互いに直交する3軸x,y,zからなるワールド座標系Σが設定されている。また、ロボット200の手先、つまりロボットハンド202には、ツールセンターポイント(TCP)が設定される。TCPは、ロボットアーム201の基端に設定されたワールド座標系Σ0を基準に、位置を表す3つのパラメータと、姿勢を表す3つのパラメータで表される。このTCPの目標値である教示点が、オフライン教示により、記憶部であるHDD504に格納される動作プログラムに記述される。
CPU501は、動作プログラムに記述された補間方法に従い教示点間を補間し、逆運動学計算により各関節の値に変換したロボット200(ロボットアーム201)の軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間、Spline補間、B−Spline補間、ベジェ曲線など、種々の方法がある。
ロボットアーム201の動作の制御として、位置制御とインピーダンス制御がある。位置制御では、ロボット200の手先に設定したTCPがワールド座標系Σの3軸x,y,zで目標位置(軌道)を辿るようにロボットアーム201の動作を制御する。一方、インピーダンス制御では、ロボット200の手先に係る力(接触力)が所定値(より具体的には0)に近づくようにロボットアーム201の動作を制御する。よって、インピーダンス制御の設計段階におけるシミュレーションにおいて、接触力を計算する必要がある。接触力とは、物体と物体が接触した際に生じる反発力と摩擦力をいう。ここで、物体と物体が接触する際に、物体間の剛性に大きな差があると、一方の物体には変形が生じる。そのため、接触力には物体の変形に関する情報を反映することが求められる。
ところで、本実施形態のロボット200は、拘束を有するロボットである。拘束を有するロボットの動作をシミュレーションする際には、接触力と拘束力の計算が必要である。ここで、拘束を有するロボットとは、ある動作軸とある動作軸との間に速度拘束(回転速度と回転速度との関係性)を有するものを指す。例えば、パラレルリンク機構を使ったものは拘束を有するロボットであるが、関節機構にモータ軸とリンク軸がギヤで速度拘束されているものについても、拘束を有するロボットである。拘束力とは、ある物体に対して他の物体の動作を拘束する力をいう。
本実施形態では、拘束を有するロボット200がワーク(物体)と接触するときを想定し、CPU501の演算処理により、ロボット200にワークが接触する接触力及びロボット200の関節における拘束力を求める。ここで、接触力はワークの変形を考慮したものである。
以下、オフライン教示におけるロボット200のダイナミクスシミュレーションについて説明する。図4は、実施形態に係るシミュレーション方法を示すフローチャートである。
CPU501は、ユーザの操作によりロボット200の動作プログラムを作成する(S1)。CPU501は、リンク210〜210とワークの相対位置情報や、各リンク210〜210およびワークの重さ、慣性モーメント、重心位置、速度、各リンクの初期の関節角度、ワークの初期変位などの情報を読み込むことで、初期設定を行う(S2)。
ここで、CPU501は、ロボット200の三次元データ(CADデータ)に基づく仮想モデル(仮想ロボット)を仮想三次元空間に配置する。CPU501は、この仮想ロボットが配置された仮想三次元空間をモニタ523に表示させる。
次に、CPU501は、ロボット200のバネ要素やダンパー要素などの受動要素のトルクを計算する(S3)。また、CPU501は、モータの入力トルクτを計算する(S4)。即ち、これらステップS3,S4の計算により、力発生手段(モータ、バネ要素、ダンパー要素)の発生力としてのトルクが計算される。そして、CPU301は、これらステップS3,S4の計算結果を用いて、ロボット200のワークの変形を考慮した接触力及び拘束力を計算する(S5)。
次に、CPU501は、ステップS3,S4,S5の計算結果を用いて順動力学計算を行い、関節の加速度を算出する(S6)。
CPU501は、関節の加速度に基づき、関節の速度及び位置を計算してこれら関節の加速度、速度及び位置等からなる関節情報を更新する(S7)。続いて、3D画面情報(仮想ロボットの位置姿勢)を更新する。
次に、CPU501は、TCPが終点に到達したか否かを判断し(S8)、終点に到達していなければ(S8:No)、予め決められた時間、仮想ロボットの動作を進め(S9)、ステップS3の処理に戻る。CPU501は、TCPが終点に到達していれば(S8:Yes)、仮想ロボットを用いたロボット200の動作のシミュレーションを終了する。
ユーザは、このシミュレーション結果に基づき動作プログラムを必要に応じて適宜修正する。ユーザは、再度シミュレーション装置500にシミュレーションを行わせるなどして、動作プログラムを確定させる。動作プログラムが確定したら、ユーザの操作により、動作プログラムに基づく軌道データをロボット制御装置300に送る。ロボット制御装置300は、実際のロボット200を、軌道データに従って動作させ、組み付け動作などをロボット200に行わせる。このように、オフライン教示で軌道データを作成することで、オンライン教示に比べ、ロボット200の教示作業が容易となる。
次に、ロボット200の動作をシミュレーションするのに用いる、ステップS5のロボット200に変形を伴うワークが接触する接触力及びロボット200の関節における拘束力を求める処理について詳細に説明する。
CPU501は、拘束空間(第1の座標空間)における拘束力f(fconstrain)と、関節空間における拘束力τ(τconstrain)との関係を示す拘束ヤコビアン(第1ヤコビアン)J(Jconstrain)を計算する(S51)。拘束空間とは、ロボット200の関節の拘束条件に基づく自由度を持ち、ロボット200の拘束点の拘束方向を基準とする座標空間である。このとき、CPU501は、以下の式(1)を満たすように、拘束ヤコビアンJ(Jconstrain)を算出する。ここで、q(・)は、関節空間におけるロボット200の関節の速度である。
Figure 2020075329
次に、CPU501は、接触点の検出計算を行い(S52)、接触点が存在するか否かを判断する(S53)。CPU501は、接触点が存在する場合、接触ヤコビアン(第2ヤコビアン)J(Jcontact)を計算する(S54)。具体的に説明すると、CPU501は、ロボット200と物体との接触点のワールド座標系Σ0における座標値に基づき、接触ヤコビアンJ(Jcontact)を算出する。接触ヤコビアンJ(Jcontact)は、接触空間(第2の座標空間)における接触力f(fcontact)と、関節空間における接触力τ(τcontact)との関係を示すヤコビアンである。接触空間は、ロボット200の接触点の法線方向及び接線方向を基準とする三次元直交座標(デカルト座標)で表された座標空間である。
以下、具体的に説明する。なお、xcontactは接触空間における変位(接触点の相対位置)、xconstrainは拘束空間における変位(拘束点の相対位置)とする。よって、xcontact(・)は接触空間における速度、xcontact(・・)は接触空間における加速度であり、xconstrain(・)は拘束空間における速度、xconstrain(・・)は拘束空間における加速度である。
部品aの接触点xcontacta,iと、部品bの接触点xcontactb,iとに接触が発生したとする。iは、接触点に付した番号である。このとき、それぞれの接触点の速度は以下のように表される。
Figure 2020075329
ここで、右辺のJcontacta,i及びJcontactb,iは、i番目の接触点に関するヤコビアンである。これを用いると、i番目の接触における接触点の相対速度x(・)contactiは、以下の式(2)のようになる。
Figure 2020075329
次に、i番目の接触における法線ベクトルをncontactとし、接線ベクトルをtcontactx,iとtcontacty,iとする。これらの表記を用いて、i番目の接触における法線方向速度と接線方向速度を表すヤコビアンJcontactn,i及びJcontactt,iは以下の式(3),(4)のようになる。
Figure 2020075329
各接触における法線方向ヤコビアンJcontactn,iと接線方向ヤコビアンJcontactt,iを積みあげることによって、すべての接触点に対する接触ヤコビアンJcontactが以下の式(5)のように表現できる。
Figure 2020075329
次に、CPU501は、拘束ヤコビアンJconstrain及び接触ヤコビアンJcontactを合わせた接触・拘束ヤコビアン(第3ヤコビアン)Jを求める(S55)。接触・拘束ヤコビアンJは、以下の式(6)で表される。
Figure 2020075329
以上で、ロボット200に対する接触力と拘束力のモデル化が完了する。
そして、CPU501は、部品変形を考慮した接触力と拘束力を連立した方程式を基に計算を行う。
まず、関節空間におけるロボット200の運動方程式を計算する(S56)。ここで、関節空間とは、ロボット200の関節の数を自由度とする空間、即ち各関節位置(角度)を座標軸とする空間である。自由度とは、ある物理系の状態を記述するのに必要な変数の最小個数である。
関節空間において、ロボット200の関節の変位をq、ロボット200の関節の加速度をq(・・)、ロボット200の質量に関する質量行列をA、ロボット200に働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をbとする。また、関節空間において、ロボット200に働く重力に関する重力項をg、ロボット200の関節に発生する発生力(即ち、モータトルクなどの能動要素のトルク、スプリング要素やダンパー要素などの受動要素のトルク)をτactとする。ここで、関数を時間で一次微分したものを(・)、関数を時間で二次微分したものを(・・)で表記する。
このとき、前記関節空間におけるロボット200の第1の運動方程式は、以下の式(7)で表される。
Figure 2020075329
ここで、運動方程式である式(7)を計算するとは、式(7)における質量行列A、コリオリ力/遠心力項b、重力項gを計算することである。
次に、接触・拘束ヤコビアンJを用いて以下の接触・拘束空間における第2の運動方程式に変換する。すると(7)式は(8)式のように変換できる。
Figure 2020075329
ただし、上式のパラメータは以下のとおりである。
Figure 2020075329
ここで、加速度x(・・)は接触・拘束空間における加速度であり、factは接触・拘束空間におけるロボットのモータ、スプリング、ダンパーなどの力発生手段による発生力である。また、質量行列Λは接触・拘束空間における質量行列、μは接触・拘束空間におけるコリオリ力/遠心力項、重力項pは接触・拘束空間における重力項である。
即ち、CPU501は、ヤコビアンJを用いて第1の運動方程式を第2の運動方程式に変換することで、質量行列Λ、コリオリ力/遠心力項μ、重力項p、及び発生力factの各係数を求める。
次に、この運動方程式を、時間領域Δtで積分することで線形化処理して、以下の第3の運動方程式を求める(S57)。
Figure 2020075329
この式は、接触・拘束空間における、力と位置の関係を表している。式中、Λ−1Δtは単位力による位置変化である。行列Wは単位力による変形変化を表わす行列であり、変形物体の接触点における剛性から計算する事ができる。
変形量を計算するための方法である有限要素法において、変形物体は複数の要素で構成されており、要素は節点で構成されている。例えば一般的に用いられる四面体要素では、一つの要素を4つの節点で構成している。接触点の剛性を計算する場合、Wは節点同士の剛性と、接触点とその近傍の節点からの距離の比を入力して以下の式で計算を行う。
Figure 2020075329
ここでHは接触点とその近傍の節点の距離の比であり、Cは各節点の剛性の逆数を表している。また、iは接触点近傍の節点の数である。また、接触は2物体間で発生するためペア(以下、接触点ペア)を構成しており、接触点ペア毎に剛性を考慮する必要がある。式中のAとBは接触点ペアにおける、A側接触点とB側接触点を表している。なお、変形が発生しない剛体部品のWは0となる。
ここで物体が接触力によって変形する場合を考えた場合、Λ行列のサイズ(「接触点ペア数+拘束数」×「接触点ペア数+拘束数」)と、W行列のサイズ(「接触点ペア数」×「接触点ペア数」)が異なるため、(12)式の右辺第1項を計算することができない。そこで行列サイズを合わせるためにΛ行列と同じサイズの行列を作成し、接触点に関わる部分にW行列を配置する必要がある。
δfreeは、接触・拘束空間における、1ステップ後の接触点ペアまたは拘束点ペア同士の相対距離を表しており、剛体項と変形項に分けることができる。
Figure 2020075329
(14)式の右辺第1項は剛体であり以下のように計算できる。
Figure 2020075329
また、(14)式の右辺第2項は変形項であり、外力を0と仮定して変形シミュレーションを1ステップ進めることで計算することができる。
ここで物体が接触力によって変形する場合を考えた場合、剛体項の行列のサイズ(「接触点ペア数+拘束数」×1)と、変形項の行列のサイズ(「接触点ペア数」×1)が異なるため、(14)式を計算することができない。そこで行列サイズを合わせるために剛体項と同じサイズの行列を作成し、接触点に関わる部分に変形項の行列を配置する必要がある。
以上の計算結果より、接触・拘束ヤコビアンを用いて線形化した、接触・拘束空間における運動方程式を得る事ができる。つまり、線形化した第3の運動方程式において、質量行列Λ、コリオリ力/遠心力項μ、重力項p、及び発生力factの各係数は既知の値であり、fconstrain,fcontactが未知数である。第3の運動方程式にこれら係数を適用すれば、第2の運動方程式を第3の運動方程式に変換したことになる。ここで、Δtは接触力と拘束力が働く所定の時間である。この運動方程式は、拘束力f(fconstrain)と接触力f(fcontact)を未知数とした連立方程式である。この方程式を用いて、接触・拘束空間における接触力と拘束力から関節空間における接触力と拘束力を計算する(S58)。
ここで、接触・拘束空間における接触力と拘束力を連立させて計算する際には、下記の制約関係を満たすように計算を行う。
接触時に発生する接触空間における接触力の法線方向成分は、物体同士が離れる方向に発生する。そのため以下の条件が発生する。
Figure 2020075329
接触時に発生する接触空間における相対位置の変化は、物体同士が離れる方向に発生する。そのため以下の条件が発生する。
Figure 2020075329
接触時に発生する接触空間における接触力の法線方向成分と、接触ペア間の相対位置の変化の関係は、接触力が発生した場合には相対位置の近接方向への位置変化はなくなる。そのため、接触ペア間が閾値距離以内であっても相対位置が広がっているならば接触力は発生しない。そのため以下の条件が発生する。
Figure 2020075329
接触時に発生する接触空間における接触力の接線方向成分は、法線方向接触力と摩擦係数を乗じた最大摩擦力以内となる。そのため以下の条件が発生する。
Figure 2020075329
また、拘束力によって発生する拘束空間における相対位置の変化は、常に0となる。そのため以下の条件が発生する。
Figure 2020075329
以上のように、接触力に関する制約は、接触力の物理的な関係性であり、これらを用いて線形相補性問題に帰着する事ができる。また、拘束力に関する制約は拘束力の物理的な関係性を表している。
次に、部品の変形を有限要素法で計算する(S59)。前記計算した接触力を入力し、有限要素法を用いて部品の変形を計算する。有限要素法については公知の一般的な手法を用いることができる。
また、関節空間における拘束力τconstrain及び接触力τcontactを足し合わせた関節への入力トルクをτとする。CPU501は、拘束力fconstrain及び接触力fcontactを接触・拘束ヤコビアンJを用いて、入力トルクτに変換する。
そしてS6に戻り、ダイナミクスシミュレーションを実行する。前記計算した接触力と拘束力を入力とし、順動力学計算を行う事でロボットや部品の加速度を計算する。次に、積分計算を行う事でロボットや部品の速度や位置について計算する。
以上、拘束を有するロボット200の、変形部品との接触を伴うシミュレーションを実行できる。
(実施例1)
図6は実施例1におけるロボットハンドを示す模式図である。ダイナミクスシミュレーション方法について、図6に示すような軸間に拘束を有するロボットについて変形を考慮した接触力及び拘束力を計算する具体例を下記に示す。
図6に示すように、駆動源であるモータに駆動されるギヤ31が、ロボットハンド50の関節であるリンク32,33に接続されている。そのためギヤ31の回転に伴い、ギヤ部を有するリンク32,33はy0方向に移動する。
実施例1ではギヤ31とリンク32,33のギヤ部との変位が、ある一定の比率で動作するという拘束を有している。即ち、拘束条件には、ギヤ31とリンク32,33のギヤ部との速度伝達比(ギヤ比)が含まれている。拘束を有するロボットのリンク32,33に、物体34と接触したときの接触力を求める。なお物体34は、ロボットハンドで把持する、変形する部品である。
まず、第1ヤコビアンである拘束ヤコビアンを導出する。
本実施例では、ギヤで接続されたモータとリンクを模しており、q1は入力軸を、q2,q3は出力軸を模しており、以下のような比率と角度伝達誤差で表されるギヤで接続されている。
Figure 2020075329
Figure 2020075329
ここで、Aはギヤ比である。
次に、上記の入力軸と出力軸の関係について微分し、速度の関係式に変換する。
Figure 2020075329
Figure 2020075329
さらに(21)〜(24)式をまとめて以下のような式で拘束ヤコビアンを算出する。
Figure 2020075329
以上が、ロボットに係る機構を拘束力でモデル化する工程である。
次に、接触点検出計算を行い、第2ヤコビアンである接触ヤコビアンを計算する。
接触点検出は、部品の変形を考慮して行う必要がある。つまり、部品を構成する有限要素の表面が接触点になるため、部品をメッシュ分割する。部品をメッシュ分割し、接触点を算出したら、発明を実施するための形態に記載の方法で(5)式の接触ヤコビアンの算出を行う。
以上が、部品変形を考慮した接触点を計算する工程である。
次に、前記接触・拘束ヤコビアンを用いて線形化した、接触・拘束空間における運動方程式における、ΛとWとδfreeについて計算する。
Figure 2020075329
このようにして算出した接触・拘束空間における運動方程式を、接触力と拘束力を表すfについて解く。こうすることで、部品変形を考慮した接触力と拘束力を連立させて計算することができる。
発明を実施するための形態に記載の方法によって計算される拘束力は、ロボットに係る機構モデルが成り立つのに必要な力が計算される。また、接触力は、事前に設定した部品の摩擦力を反映させた値が計算される(図6(c))。
以上が、部品変形を考慮した接触力と拘束力を連立させて計算する工程である。
次に、この接触力と拘束力などの外力を入力として、部品の変形を有限要素法で計算する。以上が部品の変形を有限要素法で計算する工程である(図6(d))。
最後に、部品の加速度を順動力学計算し、部品の位置を積分計算する。
以上説明したとおり、図6に示すような軸間に拘束を有するロボットハンドが変形物体を把持するシミュレーションにおいて、接触力と拘束力を連立させて計算する事ができる。そのため、変形物体の接触力と拘束力を連立させたシミュレーションを行う事ができるという効果がある。
また、本実施例のようにギヤの動作を拘束力によって計算した場合の時間と、接触力を用いた場合の計算時間を比較した場合、接触力計算では接触点が複数出る可能性に加え、線形相補性を考慮しなければならない分、計算時間が多い。また、ギヤの数が増えるほどその影響は大きくなる。そのため、拘束を有するロボットアームの接触問題をシミュレートする場合は、本実施例のように接触力と拘束力を連立させて計算する方法が、計算時間が少ないため有効である。
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、ロボットアームが垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
また、上述の実施形態では、シミュレーション装置とロボット制御装置とが別のコンピュータで構成される場合について説明したが、これに限定するものではなく、シミュレーション装置とロボット制御装置とが1つのコンピュータで構成されていてもよい。
100 ロボットシステム
200 ロボット
300 ロボット制御装置
500 シミュレーション装置
501 CPU(演算部)
600 制御システム

Claims (9)

  1. 関節を有するロボットが物体を保持する動作をシミュレーションするのに用いる、前記ロボットと変形した前記物体の接触力及び前記ロボットの関節における拘束力を求める演算部を備えたシミュレーション装置であって、
    前記演算部は、
    前記ロボットの関節の拘束点を基準とする第1の座標空間における拘束力fと、前記ロボットの関節空間における拘束力τとの関係を示す第1ヤコビアンJを算出し、
    前記ロボットの関節の接触点を基準とする第2の座標空間における接触力fと、前記ロボットの関節空間における接触力τとの関係を示す第2ヤコビアンJを算出し、
    前記第1ヤコビアンJと第2ヤコビアンJを合わせた第3ヤコビアンJを算出し、
    前記関節空間における、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力および遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとした、前記関節空間における前記ロボットの運動方程式
    Figure 2020075329

    を前記第3ヤコビアンJを用いて、前記第1の座標空間および前記第2の座標空間における加速度x(・・)、質量行列Λ、コリオリ力/遠心力項をμ、重力項p、発生力をfactとした、第2の運動方程式
    Figure 2020075329

    を求める変換処理をし、
    所定の時間をΔt、前記物体の単位力あたりの変形変化を示す行列W、前記接触点の相対距離を示すδfreeを用いて、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
    Figure 2020075329

    を求める線形化処理をし、
    前記線形化処理した運動方程式に基づく連立方程式を作成し、
    前記連立方程式を解くことにより、前記拘束力fと、変形した物体の接触力を考慮した接触力fとを算出することを特徴とするシミュレーション装置。
  2. 前記δfreeは、剛体項と変形項からなり、
    前記演算部は、前記第3の運動方程式を求める際に、行列サイズを変形する処理を行う請求項1に記載のシミュレーション装置。
  3. 前記演算部は、
    前記拘束力f及び前記接触力fを前記第3のヤコビアンJを用いて、前記拘束力τ及び前記接触力τを足し合わせた関節の入力トルクτに変換する処理を更に行うこと請求項1または2に記載のシミュレーション装置。
  4. 前記ロボットの関節が、駆動源により駆動される第1のギヤと、前記第1のギヤに噛合する第2のギヤとを有し、前記拘束条件には、前記第1のギヤと前記第2のギヤとの速度伝達比が含まれていることを特徴とする請求項1乃至3のいずれか1項に記載のシミュレーション装置。
  5. 請求項1乃至4のいずれか1項に記載のシミュレーション装置と、
    前記シミュレーション装置によるシミュレーションにより作成した前記ロボットの動作プログラムに基づき、前記ロボットの動作を制御するロボット制御装置と、を備えた制御システム。
  6. 前記ロボットと、
    請求項5に記載の制御システムと、を備えたロボットシステム。
  7. 演算部が、関節を有するロボットの動作をシミュレーションするのに用いる、前記ロボットと変形した前記物体の接触力及び前記ロボットの関節における拘束力を求めるシミュレーション方法であって、
    前記演算部が、
    前記ロボットの関節の拘束点を基準とする第1の座標空間における拘束力fと、前記ロボットの関節空間における拘束力τとの関係を示す第1ヤコビアンJを算出する工程と、
    前記ロボットの関節の接触点を基準とする第2の座標空間における接触力fと、前記ロボットの関節空間における接触力τとの関係を示す第2ヤコビアンJを算出する工程と、
    前記第1ヤコビアンJと第2ヤコビアンJを合わせた第3ヤコビアンJを算出する工程と、
    前記関節空間における、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力および遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとした、前記関節空間における前記ロボットの運動方程式
    Figure 2020075329

    を前記第3ヤコビアンJを用いて、前記第1の座標空間および前記第2の座標空間における加速度x(・・)、質量行列Λ、コリオリ力/遠心力項をμ、重力項p、発生力をfactとした、第2の運動方程式
    Figure 2020075329

    を求める変換処理をし、
    所定の時間をΔt、前記物体の単位力あたりの変形変化を示す行列W、前記接触点の相対距離を示すδfreeを用いて、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
    Figure 2020075329

    を求める線形化処理をし、
    前記線形化処理した運動方程式に基づく連立方程式を作成し、
    前記連立方程式を解くことにより、前記拘束力fと、変形した物体の接触力を考慮した接触力fとを算出する工程と、
    を有することを特徴とするシミュレーション方法。
  8. 請求項7に記載のシミュレーション方法の各工程をコンピュータに実行させるためのプログラム。
  9. 請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2018210727A 2018-11-08 2018-11-08 シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 Pending JP2020075329A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018210727A JP2020075329A (ja) 2018-11-08 2018-11-08 シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018210727A JP2020075329A (ja) 2018-11-08 2018-11-08 シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2020075329A true JP2020075329A (ja) 2020-05-21

Family

ID=70724834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018210727A Pending JP2020075329A (ja) 2018-11-08 2018-11-08 シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2020075329A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560262A (zh) * 2020-12-14 2021-03-26 长安大学 一种三指灵巧手动力学建模方法、系统、设备及存储介质
WO2023019732A1 (zh) * 2021-08-16 2023-02-23 深圳市优必选科技股份有限公司 一种机器人关节的配置信息的确定方法、装置及终端设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560262A (zh) * 2020-12-14 2021-03-26 长安大学 一种三指灵巧手动力学建模方法、系统、设备及存储介质
CN112560262B (zh) * 2020-12-14 2024-03-15 长安大学 一种三指灵巧手动力学建模方法、系统、设备及存储介质
WO2023019732A1 (zh) * 2021-08-16 2023-02-23 深圳市优必选科技股份有限公司 一种机器人关节的配置信息的确定方法、装置及终端设备

Similar Documents

Publication Publication Date Title
JP5896789B2 (ja) ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2018030210A (ja) シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体
JP6781183B2 (ja) 制御装置及び機械学習装置
JP5210884B2 (ja) 物理的多関節システムの姿勢を制御するコンピュータを用いた方法および多関節システムを位置決めするシステム
JP5210883B2 (ja) 物理的な多関節システムの部位の動作を制御する、コンピュータを使用する方法、物理的な多関節システムの部位の動作を制御するシステム、人間とは別体の物理的多関節システムに前記人間の動作を追従させる、コンピュータを用いた方法、人間とは別体の物理的多関節システムによって前記人間の動作を追従させるシステム、及び、ソースシステムとは別体の物理的多関節システムの部位の動きを制御する、コンピュータを用いた方法
JP6312264B2 (ja) 冗長自由度を伴うロボットマニピュレータの制約
CN107530879B (zh) 多轴机械装置仿真器、运转指令装置的设计辅助装置、电动机控制装置的设计辅助装置以及电动机的容量选定装置
US20110093119A1 (en) Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same
JP6826069B2 (ja) ロボットの動作教示装置、ロボットシステムおよびロボット制御装置
JP2014180704A (ja) ロボットピッキングシステム及び被加工物の製造方法
JP4942924B2 (ja) 仮想多関節物体を仮想環境で動きの連続により動かす方法
JP2015051469A (ja) ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2020110885A (ja) 経路生成装置、経路生成方法、及び経路生成プログラム
WO2021033471A1 (ja) 制御装置、制御方法、及び制御プログラム
JP2020075329A (ja) シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体
EP3978203A1 (en) Singularity-free kinematic parameterization of soft robot manipulators
JP3698770B2 (ja) 負荷重量の推定方法
Huczala et al. Multirepresentations and multiconstraints approach to the numerical synthesis of serial kinematic structures of manipulators
JP6540810B2 (ja) ハンド力覚計測装置、ハンド力覚計測方法、及びハンド力覚計測プログラム
Safeena et al. Adaptive super twisting control of Stewart platform based on super twisting observer
JP7424122B2 (ja) シミュレーション装置およびプログラム
CN114367989B (zh) 缺省的机械臂阻抗控制方法、装置、机械臂及存储介质
JP7447568B2 (ja) シミュレーション装置およびプログラム
WO2023203635A1 (ja) ロボット装置の動作状態を算出するシミュレーション装置
Yeon et al. Development of inverse dynamic controller for industrial robots with HyRoHILS system