JP2018030210A - シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 - Google Patents
シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2018030210A JP2018030210A JP2016164833A JP2016164833A JP2018030210A JP 2018030210 A JP2018030210 A JP 2018030210A JP 2016164833 A JP2016164833 A JP 2016164833A JP 2016164833 A JP2016164833 A JP 2016164833A JP 2018030210 A JP2018030210 A JP 2018030210A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- force
- contact
- jacobian
- joint
- 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
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】ロボットの接触力と拘束力とを共に計算し、計算負荷を低減する。【解決手段】ロボットシステム100におけるシミュレーションシステム550のコンピュータにより、拘束を有するロボット200の動作のシミュレーションを行うのに用いる接触力及び拘束力を計算する。この計算方法は、まず、接触・拘束空間と関節空間との関係を示すヤコビアンを求める。このヤコビアンを用いてロボット200の運動方程式を接触・拘束空間に変換する。更に変換した運動方程式を線形化して、これにより得られる連立方程式を解くことで、接触力及び拘束力を同時に求める。【選択図】図1
Description
本発明は、拘束を有するロボットのシミュレーションの技術に関する。
近年、ロボット開発において、ロボットの動作を詳細にシミュレーションするために、様々な技術開発が行われている。拘束力の導入もその一つであり、パラレルリンクを用いたロボットのシミュレーションにおいて高速な演算が可能となっている。
ここで、拘束力とは、ある物体に対して他の物体の動作を拘束する力をいう。拘束力の一例として、ギヤとギヤとが速度伝達比ZA:ZBで伝達する力が挙げられる。また、拘束力の他の例として、物体上の任意点の自由度を、別の物体の座標系に拘束する力が挙げられる。この他の例では、例えば物体上の任意点の並進自由度を、別の物体に拘束する拘束力を計算することで、物体と別の物体を球面軸で繋いだような動作をシミュレーションすることができ、閉リンクロボットのシミュレーションが可能となる。
一方、ロボットは、ワークの搬送や組み立てなどの生産ラインにも適用されている。また、ギヤやパラレルリンク機構などのロボットを、接触力のみを用いてシミュレーションする方法もある。このようなロボットの動作をシミュレーションするには、接触力の計算が必要となる。接触力の計算方式に関しては、従来はモデル同士の侵入量から接触力を疑似的に計算する方式が主流であったが、現在は解析的でより現実に即した計算方式が提案されている。
ロボットの接触力の計算方法の従来例として非特許文献1が知られている。非特許文献1では、ロボットに作用する接触力を、コリオリ力、遠心力項などの影響を考慮して算出する方法について記載されている。まず、接触点におけるロボットの運動方程式を導出し、次に、接触点が満たすべき条件を考慮して接触力を算出している。ここで、満たすべき条件とは、接触点における接触力の向き、接触点における速度、法線方向の接触力と接線方向の接触力との関係などである。また、接触力を算出する方法として、ガウスサイデル法に似た繰り返し計算を用いて、満たすべき条件に合致した接触力を計算している。
Shin’ichiro Nakaoka,"Constraint-based Dynamics Simulator for Humanoid Robots with Shock Absorbing Mechanisms", Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems,pp.3641-3647,2007
しかしながら、上記非特許文献1に記載の方法では、ロボットの接触力を求める際に、関節における拘束力については考慮されていなかった。そのため、拘束(具体的には速度拘束)を有するロボットがワークと接触するような場合のシミュレーションを行うことができなかった。
また、パラレルリンク機構などの拘束を有するロボットを、接触力を用いてシミュレーションする方法では、ロボットの拘束機構についても接触点の接触力について連立方程式を立てる必要がある。拘束機構については多数の接触点が存在するため、接触点の数が増えるほど連立方程式の数が増えることになり、拘束を有するロボットについて接触点のみでシミュレーションを行う場合、計算負荷が高く、多くの計算時間が必要であった。
そこで、本発明は、ロボットの接触力と拘束力とを共に計算し、計算負荷を低減することを目的とする。
関節を有するロボットの動作をシミュレーションするのに用いる、前記ロボットに物体が接触する接触力及び前記ロボットの関節における拘束力を求める演算部を備えたシミュレーション装置であって、
前記演算部は、
前記ロボットの関節の数を自由度とする関節空間において前記ロボットの関節の速度をq(・)としたとき、前記ロボットの関節の拘束条件に基づく自由度を持ち、前記ロボットの拘束点の拘束方向を基準とする第1の座標空間における拘束力fAと、前記関節空間における拘束力τAとの関係を示す第1のヤコビアンJAを、
を満たすように算出する第1のヤコビアン算出処理と、
前記ロボットと前記物体との接触点のワールド座標系における座標値に基づき、前記ロボットの接触点の法線方向及び接線方向を基準とする直交座標で表された第2の座標空間における接触力fBと、前記関節空間における接触力τBとの関係を示す第2のヤコビアンJBを算出する第2のヤコビアン算出処理と、
前記第1のヤコビアンJA及び前記第2のヤコビアンJBを合わせた第3のヤコビアンJを求める第3のヤコビアン算出処理と、
前記関節空間において、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとし、前記関節空間における前記ロボットの第1の運動方程式
を前記第3のヤコビアンJを用いて変換することで、前記第1の座標空間及び前記第2の座標空間における、加速度x(・・)、質量行列Λ、コリオリ力/遠心力項μ、重力項p、発生力factとなる前記ロボットの第2の運動方程式
を求める変換処理と、
所定の時間をΔtとし、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
を求める線形化処理と、
前記線形化した前記第3の運動方程式を前記拘束力fA及び前記接触力fBを未知数とする連立方程式とし、前記連立方程式を解くことにより前記拘束力fA及び前記接触力fBを算出する力算出処理と、を実行することを特徴とする。
前記演算部は、
前記ロボットの関節の数を自由度とする関節空間において前記ロボットの関節の速度をq(・)としたとき、前記ロボットの関節の拘束条件に基づく自由度を持ち、前記ロボットの拘束点の拘束方向を基準とする第1の座標空間における拘束力fAと、前記関節空間における拘束力τAとの関係を示す第1のヤコビアンJAを、
前記ロボットと前記物体との接触点のワールド座標系における座標値に基づき、前記ロボットの接触点の法線方向及び接線方向を基準とする直交座標で表された第2の座標空間における接触力fBと、前記関節空間における接触力τBとの関係を示す第2のヤコビアンJBを算出する第2のヤコビアン算出処理と、
前記第1のヤコビアンJA及び前記第2のヤコビアンJBを合わせた第3のヤコビアンJを求める第3のヤコビアン算出処理と、
前記関節空間において、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとし、前記関節空間における前記ロボットの第1の運動方程式
所定の時間をΔtとし、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
前記線形化した前記第3の運動方程式を前記拘束力fA及び前記接触力fBを未知数とする連立方程式とし、前記連立方程式を解くことにより前記拘束力fA及び前記接触力fBを算出する力算出処理と、を実行することを特徴とする。
本発明によれば、ロボットが物体と接触する場面をシミュレーションする場合、拘束機構である関節については拘束力でモデル化することで、拘束機構である関節を接触力でモデル化する場合と比べて運動方程式で求めるべき力の数が少なくなる。したがって、演算負荷が低減し、高速なシミュレーションが可能となる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、実施形態に係るロボットシステムを示す説明図である。図1に示すように、ロボットシステム100は、ロボット200と、制御システム600と、を備えている。
ロボット200は、垂直多関節のロボットアーム201と、ロボットアーム201の先端に取り付けられたエンドエフェクタとしてのロボットハンド202と、を備えている。
ロボットアーム201の基端は、台座150に固定された固定端である。ロボットアーム201の先端は、自由端である。ロボットアーム201は、可動範囲の中であれば任意の3次元位置で任意の3方向の姿勢に、手先(ロボットアーム201の先端)を向けることができる。
ロボットアーム201は、複数の関節、例えば6つ関節J1〜J6を有している。ロボットアーム201は、各関節J1〜J6をそれぞれ回転駆動する複数(6つ)の駆動機構を有している。
ロボットアーム201は、複数のリンク2100〜2106を有し、複数のリンク2100〜2106が関節J1〜J6で回転可能に連結されている。ここで、基端側から先端側に向かって、リンク2100〜2106が順に直列に連結されている。
図2は、ロボットアームの複数の関節のうちの1つの関節を示す部分断面図である。以下、関節J2を例に代表して説明し、他の関節J1,J3〜J6については、同様の構成であるため、説明を省略する。
関節J2を駆動する駆動機構230は、駆動源である電動モータ(以下、「モータ」という)231と、モータ231の出力を減速する減速機233と、を有している。
モータ231は、サーボモータであり、例えばブラシレスDCサーボモータやACサーボモータである。モータ231の回転軸232の回転が減速機233で減速されて関節(リンク)を駆動する。例えば減速機233の減速比が50:1であれば、モータ231が50回転で減速機233の出力側に配置されているリンク2102が1回転する。また、リンク2101とリンク2102とは、クロスローラベアリング237を介して回転自在に結合されている。
減速機233は、本実施形態では波動歯車減速機である。減速機233は、モータ231の回転軸232に結合された、入力軸であるウェブジェネレータ241と、リンク2102に固定された、出力軸であるサーキュラスプライン(ギヤ)242と、を備えている。なお、サーキュラスプライン242は、リンク2102に直結されているが、リンク2102に一体に形成されていてもよい。
また、減速機233は、ウェブジェネレータ241とサーキュラスプライン242との間に配置され、リンク2101に固定されたフレクスプライン(ギヤ)243を備えている。フレクスプライン243は、ウェブジェネレータ241の回転に対して減速比Nで減速され、サーキュラスプライン242に対して相対的に回転する。従って、モータ231の回転は、減速機233で1/Nの減速比で減速されて、フレクスプライン243が固定されたリンク2101に対してサーキュラスプライン242が固定されたリンク2102を相対的に回転運動させ、関節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軸x0,y0,z0からなるワールド座標系Σ0が設定されている。また、ロボット200の手先、つまりロボットハンド202には、ツールセンターポイント(TCP)が設定される。TCPは、ロボットアーム201の基端に設定されたワールド座標系Σ0を基準に、位置を表す3つのパラメータと、姿勢を表す3つのパラメータで表される。このTCPの目標値である教示点が、オフライン教示により、記憶部であるHDD504に格納される動作プログラムに記述される。
CPU501は、動作プログラムに記述された補間方法に従い教示点間を補間し、逆運動学計算により各関節の値に変換したロボット200(ロボットアーム201)の軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間、Spline補間、B−Spline補間、ベジェ曲線など、種々の方法がある。
ロボットアーム201の動作の制御として、位置制御とインピーダンス制御がある。位置制御では、ロボット200の手先に設定したTCPがワールド座標系Σ0の3軸x0,y0,z0で目標位置(軌道)を辿るようにロボットアーム201の動作を制御する。一方、インピーダンス制御では、ロボット200の手先に係る力(接触力)が所定値(より具体的には0)に近づくようにロボットアーム201の動作を制御する。よって、インピーダンス制御の設計段階におけるシミュレーションにおいて、接触力を計算する必要がある。接触力とは、物体と物体が接触した際に生じる反発力と摩擦力をいう。
ところで、本実施形態のロボット200は、拘束を有するロボットである。拘束を有するロボットの動作をシミュレーションする際には、接触力と拘束力の計算が必要である。ここで、拘束を有するロボットとは、ある動作軸とある動作軸との間に速度拘束(回転速度と回転速度との関係性)を有するものを指す。例えば、パラレルリンク機構を使ったものは拘束を有するロボットであるが、関節機構にモータ軸とリンク軸がギヤで速度拘束されているものについても、拘束を有するロボットである。拘束力とは、ある物体に対して他の物体の動作を拘束する力をいう。
本実施形態では、拘束を有するロボット200がワーク(物体)と接触するときを想定し、CPU501の演算処理により、ロボット200にワークが接触する接触力及びロボット200の関節における拘束力を求める。
以下、オフライン教示におけるロボット200のダイナミクスシミュレーションについて説明する。図4は、実施形態に係るシミュレーション方法を示すフローチャートである。
CPU501は、ユーザの操作によりロボット200の動作プログラムを作成する(S1)。CPU501は、ロボット200のリンク2100〜2106の相対位置情報や、各リンク2100〜2106の重さ、慣性モーメント、重心位置、初期の関節角度、速度などの情報を読み込むことで、初期設定を行う(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の関節における拘束力を求める処理について詳細に説明する。
図5は、接触力及び拘束力の計算方法を示すフローチャートである。なお、以下の説明で、ヤコビアンとは、ヤコビ行列のことである。また、実施形態中の拘束力τconstrainは、拘束力τAに相当し、実施形態中の接触力τcontactは、接触力τBに相当する。また、実施形態中の拘束力fconstrainは、拘束力fAに相当し、実施形態中の接触力fcontactは、接触力fBに相当する。更に、実施形態中の拘束ヤコビアンJconstrainは、第1のヤコビアンJAに相当し、実施形態中の接触ヤコビアンJcontactは、第2のヤコビアンJBに相当し、実施形態中の接触・拘束ヤコビアンJは、第3のヤコビアンJに相当する。
まずCPU501は、関節空間におけるロボット200の運動方程式(第1の運動方程式)を計算する(S11)。ここで、関節空間とは、ロボット200の関節の数を自由度とする空間、即ち各関節位置(角度)を座標軸とする空間である。自由度とは、ある物理系の状態を記述するのに必要な変数の最小個数である。
関節空間において、ロボット200の関節の変位をq、ロボット200の関節の加速度をq(・・)、ロボット200の質量に関する質量行列をA、ロボット200に働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をbとする。また、関節空間において、ロボット200に働く重力に関する重力項をg、ロボット200の関節に発生する発生力(即ち、モータトルクなどの能動要素のトルク、スプリング要素やダンパー要素などの受動要素のトルク)をτactとする。また、関節空間において、ロボット200の拘束力をτconstrain、ロボット200の接触力をτcontactとする。ここで、関数を時間で一次微分したものを(・)、関数を時間で二次微分したものを(・・)で表記する。
関節空間におけるロボット200の第1の運動方程式は、加速度q(・・)、質量行列A、コリオリ力/遠心力項b、重力項g、発生力τact、拘束力τconstrain、接触力τcontactを用いて以下の式(1)で表される。
ここで、第1の運動方程式である式(1)を計算するとは、式(1)における質量行列A、コリオリ力/遠心力項b、重力項gを計算することである。また、式(1)は、拘束を取り去ったロボット200の運動方程式である。
次に、CPU501は、拘束空間(第1の座標空間)における拘束力fconstrainと、関節空間における拘束力τconstrainとの関係を示す拘束ヤコビアンJconstrainを計算する(S12)。拘束空間とは、ロボット200の関節の拘束条件に基づく自由度を持ち、ロボット200の拘束点の拘束方向を基準とする座標空間である。
このとき、CPU501は、以下の式(2)を満たすように、拘束ヤコビアンJconstrainを算出する(第1のヤコビアン算出工程、第1のヤコビアン算出処理)。ここで、q(・)は、関節空間におけるロボット200の関節の速度である。
具体例として、ギヤの拘束のように、回転部品の軸q1と回転部品の軸q2がある減速比Rで拘束される場合の拘束ヤコビアンJconstrainは、以下のように計算できる。
この場合の拘束点は軸q1と軸q2の位置であり、このヤコビアンのサイズは、1つのギヤの拘束につき「1×自由度」である。
異なる具体例として、部品同士を固定する拘束のように、部品1の任意点P1と部品2の任意点P2の位置を拘束する場合の拘束ヤコビアンJconstrainは、以下のように計算できる。
ここで、JP1は任意点P1のヤコビアンを表し、JP2は任意点P2のヤコビアンを表し、関節の速度と任意点の速度を関係づける一般的なヤコビアンである。この場合の拘束点は任意点P1と任意点P2の位置であり、このヤコビアンのサイズは、1つの固定点につき「(並進成分+回転成分)×自由度」である。
さらにこの例において、部品1の任意点P1と部品2の任意点P2を並進方向にのみ固定する拘束のような場合の拘束ヤコビアンJconstrainは、以下のように計算できる。
ここで、J’P1は任意点P1のヤコビアンの回転成分を表し、J’P2は任意点P2のヤコビアンの並進成分を表している。この場合の拘束点は任意点P1と任意点P2の位置であり、このヤコビアンのサイズは、1つの固定点につき「(並進成分)×自由度」である。
次に、CPU501は、接触点の検出計算を行い(S13)、接触点が存在するか否かを判断する(S14)。CPU501は、接触点が存在する場合、接触ヤコビアンJcontactを計算する(S15:第2のヤコビアン算出工程、第2のヤコビアン算出処理)。具体的に説明すると、CPU501は、ロボット200と物体との接触点のワールド座標系Σ0における座標値に基づき、接触ヤコビアンJcontactを算出する。接触ヤコビアンJcontactは、接触空間(第2の座標空間)における接触力fcontactと、関節空間における接触力τcontactとの関係を示すヤコビアンである。接触空間は、ロボット200の接触点の法線方向及び接線方向を基準とする三次元直交座標(デカルト座標)で表された座標空間である。
以下、更に具体的に説明する。なお、xcontactは接触空間における変位(接触点の相対位置)、xconstrainは拘束空間における変位(拘束点の相対位置)とする。よって、xcontact(・)は接触空間における速度、xcontact(・・)は接触空間における加速度であり、xconstrain(・)は拘束空間における速度、xconstrain(・・)は拘束空間における加速度である。
部品aの接触点xcontact a,iと、部品bの接触点xcontact b,iとに接触が発生したとする。iは、接触点に付した番号である。このとき、それぞれの接触点の速度は以下のように表される。
ここで、右辺のJcontact a,i及びJcontact b,iは、i番目の接触点のヤコビアンである。これを用いると、i番目の接触における接触点の相対速度x(・)contact iは、以下の式(3)のようになる。
次に、i番目の接触における法線ベクトルをncontact iとし、接線ベクトルをtcontact x,iとtcontact y,iとする。これらの表記を用いて、i番目の接触における法線方向速度と接線方向速度を表すヤコビアンJcontact n,i及びJcontact t,iは以下の式(4),(5)のようになる。
各接触における法線方向ヤコビアンJcontact n,iと接線方向ヤコビアンJcontact t,iを積みあげることによって、すべての接触点に対する接触ヤコビアンJcontactが以下の式(6)のように表現できる。
次に、CPU501は、拘束ヤコビアンJconstrain及び接触ヤコビアンJcontactを合わせた接触・拘束ヤコビアンJを求める(S16:第3のヤコビアン算出工程,第3のヤコビアン算出処理)。接触・拘束ヤコビアンJは、以下の式(7)で表される。
次に、CPU501は、接触・拘束ヤコビアンJを用いて、関節空間における第1の運動方程式(式(1))を、以下の接触・拘束空間(第1の座標空間及び第2の座標空間)における第2の運動方程式(式(8))に変換する(S17:変換工程,変換処理)。
なお、式(8)は、以下の式で表される。
ただし、上式のパラメータは以下の通りである。
即ち、CPU501は、ヤコビアンJを用いて第1の運動方程式(式(1))を第2の運動方程式(式(8))に変換することで、質量行列Λ、コリオリ力/遠心力項μ、重力項p、及び発生力factの各係数を求める。なお、加速度x(・・)は、xconstrain(・・),xcontact(・・)からなる。
次に、CPU501は、式(8)に示す第2の運動方程式を、時間領域で積分することで線形化して、以下の第3の運動方程式を求める(S18:線形化工程,線形化処理)。
つまり、線形化した第3の運動方程式において、質量行列Λ、コリオリ力/遠心力項μ、重力項p、及び発生力factの各係数は既知の値であり、fconstrain,fcontactが未知数である。第3の運動方程式にこれら係数を適用すれば、第2の運動方程式を第3の運動方程式に変換したことになる。ここで、Δtは接触力と拘束力が働く所定の時間である。
式(8)に示す第2の運動方程式を時間領域で積分し線形化した第3の運動方程式は、以下のようにも表される。
以上の第3の運動方程式は、接触・拘束空間における拘束点の拘束力fconstrain及び接触点の接触力fcontactを未知数とする連立方程式となる。
次に、CPU501は、線形化した連立方程式を解くことにより、接触・拘束空間における拘束力fconstrainと接触力fcontactを算出する(S19:力算出工程、力算出処理)。このように、本実施形態では、拘束力fconstrain及び接触力fcontactを同時に求めることができる。
ここで、接触・拘束空間における接触力fcontact及び拘束力fconstrainを連立させて計算する際には、下記の制約条件を満たすように計算を行う。
制約条件1.接触時に発生する接触空間における接触力の法線方向成分は、物体同士が離れる方向に発生する。
制約条件2.接触時に発生する接触空間における速度は、物体同士が離れる方向に発生する。
制約条件3.接触時に発生する接触空間における接触力の法線方向成分と速度の関係について、反発係数=0の場合においては、接触力が発生した場合には速度は0になり、逆に接触力が0になる場合に速度は0にならない。
制約条件4.接触時に発生する接触空間における接触力の接線方向成分は、法線方向接触力と摩擦係数kを掛けた最大摩擦力以内となる。
制約条件5.拘束力によって発生する拘束空間における速度は、常に0となる。
接触力fcontactに関する制約は、接触力の物理的な関係性であり、これらを用いて線形相補性問題に帰着することができる。拘束力fconstrainに関する制約は、拘束力の物理的な関係性を表している。以上の制約をまとめると、以下のようになる。
式(17)は、接触点において法線方向の接触力は、物体同士が離れる方向にしか作用しないことを意味している。式(18)は、接触点において物体同士がめり込む方向に速度が発生しないことを意味している。式(19)は、反発係数=0の場合においては、接触力が発生した場合には接触空間における速度は0になり、逆に接触力が0になる場合には接触空間における速度は0にならないことを意味している。式(20)は、接線方向接触力が法線方向接触力の最大摩擦係数以内であることを意味している。式(21)は、拘束空間での速度が常に0となることを意味している。
したがって、CPU501は、ステップS19では、式(17)〜式(21)の関係式を満たすように、拘束力fconstrainと接触力fcontactを求める。具体的に説明すると、CPU501は、以下の演算処理1〜5を行う。
l=0とする。fに初期解flを代入する(演算処理1)。
flのi成分fi lを以下の式に従い更新する(演算処理2)。
ここで、mi,jは式(13)の行列Mの(i,j)成分である。Ziは式(14)のベクトルzの成分iである。
次に、fi l+1がfcontactの法線方向の力に相当する成分であり、かつ、fi l+1<0ならfi l+1=0とする(演算処理3)。
次に、演算処理4として、fi l+1とfi+1 l+1がfcontactの接線方向の力に相当する成分である場合、以下の処理4−1,4−2を実行する。即ち、処理4−1として、以下の計算をする。
また、処理4−2として、以下の計算をする。
次に、演算処理5として、以下の式の演算結果を満たす場合は、fl+1をfとして終了する。
以上の式を満たさない場合は、l=l+1として、演算処理2へ戻る。以上の演算処理により、式(17)〜式(21)を満たす式(12)に対する拘束力fconstrainと接触力fcontactを求めることができる。即ち、拘束を有するロボットの接触力を求めることが可能になる。
関節空間における拘束力τconstrain及び接触力τcontactを足し合わせた関節への入力トルクをτとする。CPU501は、拘束力fconstrain及び接触力fcontactを接触・拘束ヤコビアンJを用いて、入力トルクτに変換する(S20:力変換工程,力変換処理)。
以上、ロボット200が物体と接触する場面をシミュレーションする場合、拘束機構である関節については拘束力でモデル化することで、拘束機構である関節を接触力でモデル化する場合と比べて運動方程式で求めるべき力の数が少なくなる。したがって、演算負荷が低減し、高速なシミュレーションが可能となる。
[実施例]
(実施例1)ギヤ拘束
図6は、実施例1におけるロボットを示す模式図である。ダイナミクスシミュレーション方法について、図6に示すような軸間に拘束を有するロボットについて接触力及び拘束力を計算する具体例を下記に示す。
(実施例1)ギヤ拘束
図6は、実施例1におけるロボットを示す模式図である。ダイナミクスシミュレーション方法について、図6に示すような軸間に拘束を有するロボットについて接触力及び拘束力を計算する具体例を下記に示す。
図6に示すように、ロボット50の関節である回転ジョイント41が、駆動源であるモータに駆動される第1のギヤである入力ギヤ31で構成され、回転ジョイント42が、入力ギヤ31に噛合する第2のギヤである出力ギヤ32で構成されている。したがって、回転ジョイント41が入力軸であり、回転ジョイント42が出力軸である。出力ギヤ32には、リンク33が接続されている。したがって、リンク33は出力ギヤ32と共に回転する。
実施例1では、入力ギヤ31と出力ギヤ32との変位が、ある一定の比率で動作するという拘束を有している。即ち、拘束条件には、入力ギヤ31と出力ギヤ32との速度伝達比(ギヤ比)が含まれている。例えば、入力ギヤ31と出力ギヤ32との速度伝達比が2:1の拘束条件で拘束されているものとする。拘束を有するロボットのリンク33に、物体34と接触したときの接触力を求める。
ロボットのリンク間の相対位置情報を表1にまとめる。
また、リンクの緒元を表2にまとめる。
回転ジョイント41と回転ジョイント42に関する拘束条件を表3にまとめる。
ここでリンク33は出力ギヤ32に固定されているものとし、以降では一体部品として扱う。まず図6の状態における関節変位は、以下のようになる。
各関節速度は、以下のようになる。
このときの質量行列Aは、以下のようになる。
重力項gは、以下のようになる。
また、遠心力/コリオリ力bは、以下のようになる。
以上により、拘束を取り去った状態におけるロボットの以下の運動方程式のA,b,gに関する項が求まる(S11)。
ここで発生力τmotorは、駆動源であるモータの駆動力である。なお、実施例1では、これらA,b,gの計算手順については省略しているが、これらA,b,gの数値は、各リンクの慣性モーメントや重さ、重心位置、各リンク間の相対位置情報から計算されるものである。拘束ヤコビアンJconstrainは第1軸と第2軸の速度伝達比(ギヤ比)が2:1のギヤで接続されているという拘束なので、以下のように算出される(S12)。
次に、接触点検出計算を行う(S13)。接触点情報を表4及び表5に示す。
接触点情報と法線方向の情報から接触ヤコビアンJcontactは以下のように算出される(S15)。
これらの接触ヤコビアンJcontactと拘束ヤコビアンJconstrainを用いて、接触・拘束ヤコビアンJを算出する(S16)。また、接触・拘束ヤコビアンJを用いて運動方程式を変換し、式(12)を算出する。このとき、Mとzは以下のように算出される。
ここで接触力と拘束力が働く時間を表すΔtについては、3.75E−08[s]とした。前述した方法により、摩擦係数を0.2としてfを求める(S19)。
fの第1成分が拘束力fconstrainを表し、第2成分と第3成分が接触力fcontactの法線方向成分、第4〜第7成分までが接触力fcontactの接線方向成分に対応している。算出したfによりx(・)を算出すると、以下のようになる。
拘束点xconstrainにおける速度である第1成分は0となっており、式(21)を満たしていることが確認できる。また、第2成分と第3成分は接触点xcontactにおける法線方向の速度も0となっている。fの対応する成分を見てみるといずれも正の値を取っており、式(17)と式(18)と式(19)を満たしていることが確認できる。
また、fの接触力の法線方向と接線方向の力を比較すると、接触1においては、以下の不等式が成り立つ。
接触2においても、以下の不等式が成り立つ。
いずれも式(20)を満たしていることが確認できる。このとき、接触力と拘束力を足し合わせた各軸の力を示すトルクτは、以下のように求まる(S20)。
以上説明したとおり、図6に示すような、軸間に拘束を有するロボット50に対して、接触力を計算することができるため、ギヤ31,32のダイナミクスを考慮したロボットの接触シミュレーションを行うことができる。
実施例1では、ロボット50と物体34が接触した瞬間を具体例として挙げている。接触力と拘束力とを、連立方程式を用いて解いており、ギヤの拘束1つにつき1個の変数、接触1つにつき3個の変数を解く必要がある。実施例1では接触点が2つあるため、7個の変数を解いている。この変数の個数は、拘束ヤコビアン、接触ヤコビアンの行数に対応している。また、接触力計算では式(17)〜式(20)を考慮しなければならない分、計算量が大きい。つまり、ある1つの接触点の接触力の計算量は、ある1つのギヤの拘束力の計算量に比べて、最低3倍以上の計算量が必要である。さらに、実際にギヤを接触でシミュレーションする場合、複数の接触点が発生する可能性がある。仮に実施例1において拘束力を廃しギヤを接触力でシミュレーションした場合では、ギヤ間において最低2つの接触点が発生するため、最低6倍以上の計算量が必要である。さらに、ギヤの数が増えるほどその影響は大きくなる。そのため、拘束を有するロボットの接触問題をシミュレーションする場合は、実施例1のように接触力と拘束力を連立させて計算することにより、計算時間を短縮することができる。これにより、高速なシミュレーションが可能となる。
(実施例2)角度の伝達誤差つきギヤ拘束
実施例2では、ロボットで一般的に使用される波動歯車減速機などの角度の伝達誤差を持つギヤを模した軸間拘束を有するロボットに対して、接触力の計算方法を適用したときの具体例を示す。
実施例2では、ロボットで一般的に使用される波動歯車減速機などの角度の伝達誤差を持つギヤを模した軸間拘束を有するロボットに対して、接触力の計算方法を適用したときの具体例を示す。
ロボットで使用される波動歯車減速機など柔軟物を含むギヤの伝達力計算を行うには、接触力計算に加えて変形計算を行う必要があり、計算コストがかかる。そのため、実施例2のように拘束力でシミュレーションを実現するのが有効である。
なお、ロボットの基本構成、リンクの配置、リンクの緒元は実施例1と同一とし、説明を省略する。
実施例2は、実施例1と同様にギヤで接続されたリンクを模しており、回転ジョイント41が入力軸、回転ジョイント42が出力軸となる。そして、実施例2では、以下のような比率と伝達誤差で表されるギヤで接続されている。即ち、拘束条件には、入力ギヤ31と出力ギヤ32との速度伝達比(ギヤ比)と、入力ギヤ31と出力ギヤ32との間の角度の伝達誤差が含まれているものとする。
ここで、右辺第一項がギヤ比を、右辺第二項が角度伝達誤差を表している。拘束ヤコビアンJconstrainは以下のように算出される。まず、上記の入力軸と出力軸の関係について微分し、速度の関係式に変換する。
その後、式をまとめて以下のような式で拘束ヤコビアンJconstrainを算出する。
実施例2では、表6のようなギヤ比と角度伝達誤差パラメータを選択した。
角度伝達誤差以外のパラメータについては実施例1と同様であるため、ロボットのリンク間の相対位置情報とリンクの緒元は省略する。まず図6の状態における各関節変位は、以下のようになる。
各関節速度は、以下のようになる。
このときの質量行列Aは、以下のようになる。
重力項gは、以下のようになる。
また、遠心力/コリオリ力bは、以下のようになる。
以上により、拘束を取り去った状態におけるロボットの以下の運動方程式のA,b,gに関する項が求まる(S11)。
なお、実施例2ではこれらA,b,gの計算手順については省略しているが、これらA,b,gの数値は、各リンクの慣性モーメントや重さ、重心位置、各リンク間の相対位置情報から計算されるものである。拘束ヤコビアンは第1軸と第2軸の変位比率が10:1のギヤで接続されており、かつ角度伝達誤差を含むという拘束であり、前段で計算した式に値を入れると以下のようになる(S12)。
次に、接触点検出計算を行う(S13)。接触点情報を表7及び表8に示す。
接触点情報と法線方向の情報から接触ヤコビアンJcontactは以下のように算出される(S14)。
これらの接触ヤコビアンJcontactと拘束ヤコビアンJconstrainを用いて、接触・拘束ヤコビアンを算出する(S15)。また、接触・拘束ヤコビアンJを用いて運動方程式を変換し、式(12)を算出する。このとき、Mとzは以下のように算出される(S17)。
ここで接触力と拘束力が働く所定の時間Δtについては、1.00E−07[s]とした。前述した方法により、摩擦係数を0.2としてfを求める。
fの第1成分が拘束力を表し、第2成分と第3成分が接触力の法線方向成分、第4〜第7成分までが接触力の接線方向成分に対応している。算出したfによりx(・)を算出すると、以下のようになる。
拘束点における速度である第1成分は0となっており式(21)を満たしていることが確認できる。また、第2成分と第3成分は接触点における法線方向の速度も0となっている。このとき、fの対応する成分を見てみるといずれも正の値を取っており、式(17)と式(18)と式(19)を満たしていることが確認できる。
また、fの接触力の法線方向と接線方向の力を比較すると、以下の不等式が成り立つ。
よって、式(20)を満たしていることが確認できる。また、fの接触力の法線方向と接線方向の力を比較すると、以下の不等式が成り立つ。
よって、式(20)を満たしていることが確認できる。このとき、接触力と拘束力を足し合わせた各軸の力(トルク)τは、以下のように求まる。
以上説明したとおり、ギヤの角度伝達誤差を考慮したロボットの接触シミュレーションを行うことができる。
[実施例3]
次に、実施例3のダイナミクスシミュレーション方法について説明する。図7(a)は、実施例3におけるロボットを示す模式図である。図7(a)に示すロボット80は、パラレルリンク型のロボットである。図7(a)に示すような、拘束点の相対速度が常に0になるような拘束を有するロボット80に対して、接触計算方法を適用したときの具体例について説明する。図7(a)に示すように、ロボット80は、複数のリンク61〜64が、関節である回転ジョイント71〜75で回転可能に連結されている。
次に、実施例3のダイナミクスシミュレーション方法について説明する。図7(a)は、実施例3におけるロボットを示す模式図である。図7(a)に示すロボット80は、パラレルリンク型のロボットである。図7(a)に示すような、拘束点の相対速度が常に0になるような拘束を有するロボット80に対して、接触計算方法を適用したときの具体例について説明する。図7(a)に示すように、ロボット80は、複数のリンク61〜64が、関節である回転ジョイント71〜75で回転可能に連結されている。
図7(b)は、図7(a)に示すロボットの1つの回転ジョイントを、互いに拘束関係にある2つの拘束点とした模式図である。ロボット80は、回転ジョイント74を取り去り、代わりに拘束点81と拘束点82とがx0方向とz0方向の座標が常時一致するという拘束条件が設けられた、2本別々のロボットと考えてもよい。2本のロボットのうち、1本目はリンク61〜63を有し、2本目はリンク44のみによって構成される。図7(a)に示すロボット80は、拘束を有するロボットである。
図7(c)は、実施例3においてロボットに物体が接触した状態を示す模式図である。この拘束を有するロボット80が、図7(c)に示すような物体91と接触したときの接触力を求める。
ロボット80のリンク間の相対位置情報を表9にまとめる。また、リンクの緒元は実施例1と同様であるため省略する。表10には、拘束点81と拘束点82に関する拘束条件をまとめる。
図7(c)の状態における各関節変位は、以下のようになる。
各関節速度は、以下のようになる。
このときの質量行列Aは、以下のようになる。
重力項gは、以下のようになる。
また、遠心力/コリオリ力bは、以下のようになる。
以上により、拘束を取り去った状態におけるロボット80の運動方程式のA,b,gに関する項が求まる(S11)。
なお、実施例3ではこれらA,b,gの計算手順については省略しているが、これらA,b,gの数値は、表1と表2に示した各リンクの慣性モーメントや重さ、重心位置、また、各リンク間の相対位置情報から計算されるものである。
拘束ヤコビアンは、表10の拘束点情報と各軸の姿勢から以下のように算出される(S12)。具体的には、拘束点81と拘束点82の位置を計算し、各点におけるヤコビアンを計算し、それぞれのヤコビアンの差を取り、そこから拘束する軸成分を取得する。本シミュレーションでは、y並進成分とz並進成分を拘束することとした。
次に接触点情報を表11及び表12に示す。
接触点情報と法線方向の情報から接触ヤコビアンは以下のように算出される(S15)。
これらの接触ヤコビアンと拘束ヤコビアンを用いて、Mとzは以下のように算出される。
ここで接触力と拘束力が働く所定の時間Δtについては、1.00E−07[s]とした。前述した方法により、摩擦係数を0.2としてfを求める。
fの第1成分と第2成分が拘束力を表し、第3成分と第4成分が接触力の法線方向成分、第5〜第8成分までが接触力の接線方向成分に対応している。算出したfによりx(・)を算出すると、以下のようになる。
拘束点における速度である第1成分と第2成分は0となっており、式(21)を満たしていることが確認できる。また、第3成分と第4成分は接触点における法線方向の速度も0となっている。fの対応する成分を見てみるといずれも正の値を取っており、式(17)と式(18)と式(19)を満たしていることが確認できる。また、fの接触力の法線方向と接線方向の力を比較すると1つ目の接触について、以下の不等式が成り立つ。
2つ目の接触について、以下の不等式が成り立つ。
いずれも式(20)を満たしていることが確認できる。このとき、接触力と拘束力を足し合わせた各軸の力(トルク)τは、以下のように求まる。
以上説明したとおり、図7(b)に示すような拘束点81,82の相対速度が常に0になるような拘束を有するロボットに対して接触力を計算することができる。このため、パラレルリンクを考慮したロボットの接触シミュレーションを行うことができる。
なお、シミュレーション中の接触や拘束の数やその種類は、これらの実施例に限定されるものではない。
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、ロボットアームが垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
また、上述の実施形態では、シミュレーション装置とロボット制御装置とが別のコンピュータで構成される場合について説明したが、これに限定するものではなく、シミュレーション装置とロボット制御装置とが1つのコンピュータで構成されていてもよい。
100…ロボットシステム、200…ロボット、300…ロボット制御装置、500…シミュレーション装置、501…CPU(演算部)、600…制御システム
Claims (9)
- 関節を有するロボットの動作をシミュレーションするのに用いる、前記ロボットに物体が接触する接触力及び前記ロボットの関節における拘束力を求める演算部を備えたシミュレーション装置であって、
前記演算部は、
前記ロボットの関節の数を自由度とする関節空間において前記ロボットの関節の速度をq(・)としたとき、前記ロボットの関節の拘束条件に基づく自由度を持ち、前記ロボットの拘束点の拘束方向を基準とする第1の座標空間における拘束力fAと、前記関節空間における拘束力τAとの関係を示す第1のヤコビアンJAを、
を満たすように算出する第1のヤコビアン算出処理と、
前記ロボットと前記物体との接触点のワールド座標系における座標値に基づき、前記ロボットの接触点の法線方向及び接線方向を基準とする直交座標で表された第2の座標空間における接触力fBと、前記関節空間における接触力τBとの関係を示す第2のヤコビアンJBを算出する第2のヤコビアン算出処理と、
前記第1のヤコビアンJA及び前記第2のヤコビアンJBを合わせた第3のヤコビアンJを求める第3のヤコビアン算出処理と、
前記関節空間において、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとし、前記関節空間における前記ロボットの第1の運動方程式
を前記第3のヤコビアンJを用いて変換することで、前記第1の座標空間及び前記第2の座標空間における、加速度x(・・)、質量行列Λ、コリオリ力/遠心力項μ、重力項p、発生力factとなる前記ロボットの第2の運動方程式
を求める変換処理と、
所定の時間をΔtとし、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
を求める線形化処理と、
前記線形化した前記第3の運動方程式を前記拘束力fA及び前記接触力fBを未知数とする連立方程式とし、前記連立方程式を解くことにより前記拘束力fA及び前記接触力fBを算出する力算出処理と、を実行することを特徴とするシミュレーション装置。 - 前記演算部は、
前記拘束力fA及び前記接触力fBを前記第3のヤコビアンJを用いて、前記拘束力τA及び前記接触力τBを足し合わせた関節の入力トルクτに変換する力変換処理を更に実行することを特徴とする請求項1に記載のシミュレーション装置。 - 前記ロボットの関節が、駆動源により駆動される第1のギヤと、前記第1のギヤに噛合する第2のギヤとを有し、
前記拘束条件には、前記第1のギヤと前記第2のギヤとの速度伝達比が含まれていることを特徴とする請求項1又は2に記載のシミュレーション装置。 - 前記拘束条件には、前記第1のギヤと前記第2のギヤとの間の伝達誤差が含まれていることを特徴とする請求項3に記載のシミュレーション装置。
- 請求項1乃至4のいずれか1項に記載のシミュレーション装置と、
前記シミュレーション装置によるシミュレーションにより作成した前記ロボットの動作プログラムに基づき、前記ロボットの動作を制御するロボット制御装置と、を備えた制御システム。 - 前記ロボットと、
請求項5に記載の制御システムと、を備えたロボットシステム。 - 演算部が、関節を有するロボットの動作をシミュレーションするのに用いる、前記ロボットに物体が接触する接触力及び前記ロボットの関節における拘束力を求めるシミュレーション方法であって、
前記演算部が、前記ロボットの関節の数を自由度とする関節空間において前記ロボットの関節の速度をq(・)としたとき、前記ロボットの関節の拘束条件に基づく自由度とする第1の座標空間における拘束力fAと、前記関節空間における拘束力τAとの関係を示す第1のヤコビアンJAを、
を満たすように算出する第1のヤコビアン算出工程と、
前記演算部が、前記ロボットと前記物体との接触点のワールド座標系における座標値に基づき、前記ロボットの接触点の法線方向及び接線方向を基準とする直交座標で表された第2の座標空間における接触力fBと、前記関節空間における接触力τBとの関係を示す第2のヤコビアンJBを算出する第2のヤコビアン算出工程と、
前記演算部が、前記第1のヤコビアンJA及び前記第2のヤコビアンJBを合わせた第3のヤコビアンJを求める第3のヤコビアン算出工程と、
前記関節空間において、前記ロボットの関節の加速度をq(・・)、前記ロボットの質量に関する質量行列をA、前記ロボットに働くコリオリ力及び遠心力に関するコリオリ力/遠心力項をb、前記ロボットに働く重力に関する重力項をg、前記ロボットの関節に発生する発生力をτactとし、前記関節空間における前記ロボットの第1の運動方程式
を前記第3のヤコビアンJを用いて変換することで、前記第1の座標空間及び前記第2の座標空間における、加速度x(・・)、質量行列Λ、コリオリ力/遠心力項μ、重力項p、発生力factとなる前記ロボットの第2の運動方程式
を求める変換工程と、
前記演算部が、所定の時間をΔtとし、前記第2の運動方程式を時間領域で積分して線形化することにより第3の運動方程式
を求める線形化工程と、
前記演算部が、前記線形化した前記第3の運動方程式を前記拘束力fA及び前記接触力fBを未知数とする連立方程式とし、前記連立方程式を解くことにより前記拘束力fA及び前記接触力fBを算出する力算出工程と、を備えたことを特徴とするシミュレーション方法。 - コンピュータに請求項7に記載のシミュレーション方法の各工程を実行させるためのプログラム。
- 請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016164833A JP2018030210A (ja) | 2016-08-25 | 2016-08-25 | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016164833A JP2018030210A (ja) | 2016-08-25 | 2016-08-25 | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018030210A true JP2018030210A (ja) | 2018-03-01 |
Family
ID=61304370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016164833A Pending JP2018030210A (ja) | 2016-08-25 | 2016-08-25 | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018030210A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110795876A (zh) * | 2019-10-23 | 2020-02-14 | 珠海格力智能装备有限公司 | 建立减速机的有限元等效模型的方法 |
| CN112384335A (zh) * | 2018-07-02 | 2021-02-19 | 泰瑞达公司 | 用于一个或多个机器人的自然任务分配的系统和方法 |
| CN112464486A (zh) * | 2020-12-02 | 2021-03-09 | 华北水利水电大学 | 一种机器人用摆线针轮减速机的传动误差数值仿真方法 |
| CN112818482A (zh) * | 2021-01-19 | 2021-05-18 | 中国科学院沈阳自动化研究所 | 弹性光滑曲面约束的细长软体机器人的建模与控制方法 |
| CN112818481A (zh) * | 2021-01-19 | 2021-05-18 | 中国科学院沈阳自动化研究所 | 弹性平面约束的细长软体机器人的建模与控制方法 |
| JP2021082222A (ja) * | 2019-11-22 | 2021-05-27 | キヤノン株式会社 | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 |
| CN113001549A (zh) * | 2021-03-16 | 2021-06-22 | 中国人民解放军32801部队 | 一种基于广义抓持逆矩阵的多机械臂负载分配方法 |
| CN113263503A (zh) * | 2021-07-19 | 2021-08-17 | 上海捷勃特机器人有限公司 | 一种机器人系统的控制单元、机器人系统及机器人系统的控制方法 |
-
2016
- 2016-08-25 JP JP2016164833A patent/JP2018030210A/ja active Pending
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021529674A (ja) * | 2018-07-02 | 2021-11-04 | テラダイン、 インコーポレイテッド | 1つ以上のロボット相互参照パラグラフの自然タスクのためのシステム及び方法 |
| CN112384335A (zh) * | 2018-07-02 | 2021-02-19 | 泰瑞达公司 | 用于一个或多个机器人的自然任务分配的系统和方法 |
| CN112384335B (zh) * | 2018-07-02 | 2025-03-25 | 泰瑞达公司 | 用于一个或多个机器人的自然任务分配的系统和方法 |
| JP7487118B2 (ja) | 2018-07-02 | 2024-05-20 | テラダイン、 インコーポレイテッド | 1つ以上のロボット相互参照パラグラフの自然ロボットタスクのためのシステム及び方法 |
| CN110795876A (zh) * | 2019-10-23 | 2020-02-14 | 珠海格力智能装备有限公司 | 建立减速机的有限元等效模型的方法 |
| JP7475841B2 (ja) | 2019-11-22 | 2024-04-30 | キヤノン株式会社 | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 |
| JP2021082222A (ja) * | 2019-11-22 | 2021-05-27 | キヤノン株式会社 | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 |
| CN112464486B (zh) * | 2020-12-02 | 2024-03-19 | 华北水利水电大学 | 一种机器人用摆线针轮减速机的传动误差数值仿真方法 |
| CN112464486A (zh) * | 2020-12-02 | 2021-03-09 | 华北水利水电大学 | 一种机器人用摆线针轮减速机的传动误差数值仿真方法 |
| CN112818482B (zh) * | 2021-01-19 | 2023-07-21 | 中国科学院沈阳自动化研究所 | 弹性光滑曲面约束的细长软体机器人的建模与控制方法 |
| CN112818481B (zh) * | 2021-01-19 | 2023-11-07 | 中国科学院沈阳自动化研究所 | 弹性平面约束的细长软体机器人的建模与控制方法 |
| CN112818481A (zh) * | 2021-01-19 | 2021-05-18 | 中国科学院沈阳自动化研究所 | 弹性平面约束的细长软体机器人的建模与控制方法 |
| CN112818482A (zh) * | 2021-01-19 | 2021-05-18 | 中国科学院沈阳自动化研究所 | 弹性光滑曲面约束的细长软体机器人的建模与控制方法 |
| CN113001549A (zh) * | 2021-03-16 | 2021-06-22 | 中国人民解放军32801部队 | 一种基于广义抓持逆矩阵的多机械臂负载分配方法 |
| CN113263503A (zh) * | 2021-07-19 | 2021-08-17 | 上海捷勃特机器人有限公司 | 一种机器人系统的控制单元、机器人系统及机器人系统的控制方法 |
| CN113263503B (zh) * | 2021-07-19 | 2021-11-09 | 上海捷勃特机器人有限公司 | 一种机器人系统的控制单元、机器人系统及机器人系统的控制方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2018030210A (ja) | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 | |
| US9120227B2 (en) | Human motion tracking control with strict contact force constraints for floating-base humanoid robots | |
| Wang et al. | Kinematics and dynamics of a 6 degree-of-freedom fully parallel manipulator with elastic joints | |
| JP5896789B2 (ja) | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
| US8560122B2 (en) | Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same | |
| Enferadi et al. | A Kane’s based algorithm for closed-form dynamic analysis of a new design of a 3RSS-S spherical parallel manipulator | |
| CN107530879B (zh) | 多轴机械装置仿真器、运转指令装置的设计辅助装置、电动机控制装置的设计辅助装置以及电动机的容量选定装置 | |
| Pedrammehr et al. | Closed-form dynamics of a hexarot parallel manipulator by means of the principle of virtual work | |
| RU2308764C2 (ru) | Перемещение виртуального сочлененного объекта в виртуальном пространстве с предотвращением столкновений сочлененного объекта с элементами окружающего пространства | |
| Vallés et al. | Mechatronic development and dynamic control of a 3-DOF parallel manipulator | |
| Cazalilla et al. | Hybrid force/position control for a 3-DOF 1T2R parallel robot: Implementation, simulations and experiments | |
| Zobova et al. | Multi-physics modelling of a compliant humanoid robot | |
| Bellakehal et al. | Vision/force control of parallel robots | |
| JP2020075329A (ja) | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 | |
| Buffinton | Kane’s Method in Robotics | |
| Charlet et al. | Reorientation of free-falling legged robots | |
| HRONCOVA et al. | INVERSE AND FORWARD KINEMATICS AND DYNAMICS OF A TWO LINK ROBOT ARM. | |
| JP6540810B2 (ja) | ハンド力覚計測装置、ハンド力覚計測方法、及びハンド力覚計測プログラム | |
| Friedmann et al. | Adequate motion simulation and collision detection for soccer playing humanoid robots | |
| Ángel et al. | RoboTenis: design, dynamic modeling and preliminary control | |
| Akdağ et al. | An integrated approach for simulation of mechatronic systems applied to a hexapod robot | |
| Badrikouhi et al. | Smooth trajectory planning based on direct collocation method for cable-driven parallel robots with central spine | |
| Hwang et al. | Dynamic analysis and control of industrial robotic manipulators | |
| Sarhan et al. | Motion control of 3-DoF delta robot using adaptive neuro fuzzy inference system | |
| Filipovic | Relation between Euler–Bernoulli equation and contemporary knowledge in robotics |
