JP2017124455A - ロボット装置、ロボット制御方法、プログラム及び記録媒体 - Google Patents
ロボット装置、ロボット制御方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2017124455A JP2017124455A JP2016003948A JP2016003948A JP2017124455A JP 2017124455 A JP2017124455 A JP 2017124455A JP 2016003948 A JP2016003948 A JP 2016003948A JP 2016003948 A JP2016003948 A JP 2016003948A JP 2017124455 A JP2017124455 A JP 2017124455A
- Authority
- JP
- Japan
- Prior art keywords
- joint
- acceleration
- robot body
- robot
- vibration
- 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
Abstract
【課題】ロボット本体が振動する設置面に設置された場合においても、ロボット本体の先端部の振動を抑制する。
【解決手段】振動演算部374は、検知部240による検知結果から、ロボット本体のベース部の振動加速度を取得し、ロボット本体のベース部の振動加速度から、ロボット本体のベース部の振動量、つまり補正量PCを算出する。補正部371は、ロボット本体の先端部の位置指令値Pを、補正量PCで補正する。逆キネマティクス演算部372は、補正したロボット本体の先端部の位置指令値(P−PC)から、ロボット本体の各関節の位置制御に用いる関節指令値θを求める。
【選択図】図3
【解決手段】振動演算部374は、検知部240による検知結果から、ロボット本体のベース部の振動加速度を取得し、ロボット本体のベース部の振動加速度から、ロボット本体のベース部の振動量、つまり補正量PCを算出する。補正部371は、ロボット本体の先端部の位置指令値Pを、補正量PCで補正する。逆キネマティクス演算部372は、補正したロボット本体の先端部の位置指令値(P−PC)から、ロボット本体の各関節の位置制御に用いる関節指令値θを求める。
【選択図】図3
Description
本発明は、ロボット本体の先端部の振動を抑制するものに関する。
一般的に、ロボットは、各関節に搭載されている減速器等のバネ要素により、アームリンクに対し各関節の剛性が低くなっている。各関節の剛性が低いことにより、ロボットの動作時にロボットの先端部が振動的になるという問題があった。
ロボットの先端部の振動を抑制する手法として特許文献1が知られている。特許文献1には、ロボットの先端部に加速度センサを設け、加速度センサにより検出される加速度量に基づいて、ロボットの構造に応じた所定の変換を行うことで、ロボットの先端部に生じる振動量を算出する。算出した振動量を抑制するように各関節への補償成分を算出し、各関節の位置指令値を補償成分で補正することで、ロボットの先端部の振動を抑制しようとするものである。
しかしながら、特許文献1の方法では、ロボットが設置される設置面の振動モデルを考慮していない。つまり、特許文献1の方法では、ロボットが剛性の低い架台や移動体上など、振動しやすい設置面上に設置された場合を想定したものではない。したがって、ロボットが振動しやすい設置面上に設置された場合、特許文献1の方法では、ロボットの先端部の振動を高精度に抑制することができなかった。
そこで、本発明は、ロボット本体が振動する設置面に設置された場合においても、ロボット本体の先端部の振動を抑制することを目的とする。
本発明のロボット装置は、複数の関節を有するロボット本体と、前記ロボット本体の動作を制御する制御部と、前記ロボット本体に発生する加速度を検知する検知部と、を備え、前記制御部は、前記ロボット本体の先端部の位置指令値から、前記ロボット本体の各関節の位置制御に用いる関節指令値を求める指令値算出処理と、前記検知部による検知結果から、前記ロボット本体のベース部の振動加速度を取得する取得処理と、前記ロボット本体のベース部の振動加速度から、前記ロボット本体のベース部の振動量を算出する振動算出処理と、前記指令値算出処理にて前記各関節指令値を求めるのに使用する前記位置指令値を、前記ロボット本体のベース部の振動量で補正する補正処理と、を実行する。
本発明によれば、ロボット本体の先端部の位置指令値が、ロボット本体のベース部の振動量で補正されるので、ロボット本体が振動する設置面に設置された場合においても、ロボット本体の先端部の振動を抑制することができる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、実施形態に係るロボット装置を示す斜視図である。ロボット装置100は、ロボット200と、ロボット200の動作を制御する制御装置300と、ユーザの操作によりロボット200の動作を教示する教示部としてのティーチングペンダント400と、を備えている。
ロボット200は、垂直多関節のロボットアーム201と、ロボットアーム201の先端に取り付けられた、先端加速度検知部としての力覚センサ203とを有する。また、ロボット200は、力覚センサ203を介してロボットアーム201の先端に取り付けられた、エンドエフェクタとしてのロボットハンド202と、を有している。
ロボットアーム201は、架台150に固定されるベース部(基端のリンク)210と、変位や力を伝達する複数のリンク211〜216とを有する。複数のリンク210〜216が関節J1〜J6で屈曲(旋回)又は回転可能に連結されている。本実施形態では、ロボットアーム201は、屈曲する3軸と回転する3軸の6軸の関節J1〜J6で構成されている。ここで、屈曲とは2つのリンクの結合部のある点で折れ曲がること、回転とは2つのリンクの長手方向の回転軸でリンクが相対的に回ることをいい、それぞれを屈曲部、回転部と呼ぶ。ロボットアーム201は、6つの関節J1〜J6から構成され、関節J1,J4,J6が回転部、関節J2,J3,J5が屈曲部である。
ロボットハンド202は、複数のフィンガー220を有し、リンク(先端のリンク)216に力覚センサ203を介して取り付けられている。
複数のフィンガー220を閉動作させることにより、第1ワークであるワークW1を把持することができ、複数のフィンガー220を開動作させることにより、ワークW1を把持解放することができる。ロボットハンド202は、複数のフィンガー220を用いてワークW1を把持することにより、第1ワークであるワーク(嵌合部品)W1を第2ワークであるワーク(被嵌合部品)W2に嵌合する嵌合作業(組立作業)を行うことができる。この組立作業により、組立部品W0が製造される。
ロボットアーム201は、各関節J1〜J6に対して設けられ、各関節J1〜J6をそれぞれ駆動するための複数(6つ)の関節駆動装置230Nを有している。ここで、Nは1〜6の通し番号(整数)であり、ロボットアーム201の基端から先端に向かって順に割り振られている。なお、図1では、関節駆動装置230N(=2)は、便宜上、関節J2にのみ図示しているが、他の関節J1,J3〜J6にも、同様の構成の関節駆動装置230Nが配置されている。
図2は、実施形態に係るロボット装置の制御系の構成を示すブロック図である。制御装置300は、メイン制御部330と、複数(関節の数に対応した数:本実施形態では6つ)の位置制御部340Nと、を有する(N=1〜6)。
各位置制御部340Nには、関節駆動装置230Nが接続されている。関節駆動装置230Nは、電動モータである回転モータ(以下、「モータ」という)231Nと、モータ231の回転軸の回転を減速する減速機233Nと、を有している。
モータ231Nは、サーボモータであり、例えばブラシレスDCサーボモータやACサーボモータである。減速機233Nは、例えば小型軽量で減速比の大きい波動歯車減速機である。モータ231Nの回転軸の回転は、減速機233Nで1/N0の減速比で減速されて、一方のリンクに対して他方のリンクを相対的に回転運動させ、関節を屈曲又は回転させる。
ロボットアーム201は、各関節J1〜J6に設けられ、関節の角度(位置)、即ちモータ231Nの回転軸の回転角度を検出する位置検出部であるロータリエンコーダ236Nを有している。また、ロボットアーム201は、各関節J1〜J6に設けられ、関節に発生するトルクを検知するトルクセンサ235Nを有している。
トルクセンサ235N及びエンコーダ236Nは、位置制御部340Nに接続されている。エンコーダ236Nは、アブソリュート型のロータリエンコーダが望ましく、1回転の絶対角度エンコーダ、絶対角度エンコーダの回転総数のカウンタ、及びカウンタに電力を供給するバックアップ電池を有して構成される。ロボットアーム201への電源の供給がオフになっても、このバックアップ電池が有効であれば、ロボットアーム201への電源供給のオン/オフに関係なく、カウンタにおいて回転総数が保持される。したがって、ロボットアーム201の姿勢が制御可能となる。
本実施形態では、ロボットアーム201(トルクセンサ235N及びエンコーダ236Nを除く)とロボットハンド202とでロボット本体250が構成されている。また、力覚センサ203及び複数(6つ)のトルクセンサ2351〜2356で、ロボット本体250に発生する加速度を検知する検知部240が構成されている。
また、力覚センサ203は、ロボット本体250の先端部(つまりロボットハンド202)に発生する加速度を検知する先端加速度検知部として機能する。力覚センサ203は、6軸力覚センサであり、ロボット200(ロボット本体250)の手首部に搭載されており、直接的にはロボットハンド202にかかる力を検知する。力覚センサにより検知される力は、X軸、Y軸、Z軸の力成分と、各軸まわりのモーメント成分からなる。
トルクセンサ235Nは、ロボット本体250の関節に発生する関節の駆動方向の加速度を検知する関節加速度検知部として機能する。トルクセンサ235Nは、直接的には減速機233Nの出力軸にかかるトルクを検知する。
メイン制御部330は、コンピュータで構成されており、制御部(演算部)としてのCPU(Central Processing Unit)301を備えている。また、メイン制御部330は、記憶部として、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304を備えている。また、メイン制御部330は、記録ディスクドライブ305、検出回路312及びインタフェース311,313Nを備えている。
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305、検出回路312及びインタフェース311,313Nが、バスを介して接続されている。ROM302には、BIOS等の基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。
HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する演算処理を実行させるためのプログラム320を記録するものである。CPU301は、HDD304に記録(格納)されたプログラム320に基づいてロボット制御方法の各工程を実行する。
記録ディスクドライブ305は、記録ディスク321に記録された各種データやプログラム等を読み出すことができる。なお、メイン制御部330には、書き換え可能な不揮発性メモリや外付けHDD等の不図示の外部記憶装置が接続されていてもよい。
教示部であるティーチングペンダント400は、インタフェース311に接続されている。ティーチングペンダント400は、ユーザの入力操作により、ロボット200を教示する教示点、即ちロボット本体250の先端部の目標位置を指定するものである。教示点のデータは、インタフェース311及びバスを通じてHDD304に出力される。
HDD304は、ティーチングペンダント400により指定された教示点のデータを格納することができる。CPU301は、HDD304に設定(格納)された教示点のデータを読み出すことができる。
インタフェース313Nには、位置制御部340Nが接続されている。なお、本実施形態では、ロボットアーム201が6つの関節J1〜J6を有しているので、制御装置300は、6つの位置制御部340Nを有するが、図2では、位置制御部340Nを1つだけ図示し、残りの5つは図示を省略している。各位置制御部340Nは、制御装置300の筐体内に配置されている。なお、各位置制御部340Nの配置位置は、制御装置300の筐体内に限定するものではなく、例えばロボットアーム201(リンク)の内部であってもよい。
CPU301は、予め設定された教示点に基づき、ロボット本体250の軌道を計算し、各関節J1〜J6の位置(角度)、具体的にはモータ231Nの回転軸の回転角度を示す関節指令値の信号を所定時間間隔で各位置制御部340Nに出力する。
位置制御部340Nは、CPU351N、記憶部としてのEEPROM352N及びRAM353N、インタフェース361N、検出回路362N,363N並びにモータ駆動回路365Nを備えており、これらがバスを介して接続されて構成されている。
CPU351Nは、プログラム368Nに従って演算処理を実行する。EEPROM352Nは、プログラム368Nを記憶する記憶装置である。RAM353Nは、CPU351Nの演算処理結果等、各種データを一時的に記憶する記憶装置である。
メイン制御部330は、複数(6つ)のインタフェース313N(図2では1つのみ図示)を有している。各インタフェース313Nと各位置制御部340Nのインタフェース361Nとがケーブル等で接続されており、メイン制御部330と各位置制御部340Nとの間で信号の送受信を行うことができる。
トルクセンサ235Nは、検出回路362Nに接続され、エンコーダ236Nは、検出回路363Nに接続されている。トルクセンサ235Nからは、検出したトルク値を示す信号が出力され、エンコーダ236Nからは、検出した角度(位置)を示す信号が出力される。検出回路362Nは、トルクセンサ235Nから信号を取得し、CPU351Nにて取得可能な信号に変換してCPU351Nに出力する。検出回路363Nは、エンコーダ236Nから信号を取得し、CPU351Nにて取得可能な信号に変換してCPU351Nに出力する。CPU351Nは、これら検知結果をCPU301に出力する。このように、メイン制御部330のCPU301は、各位置制御部340Nを介してトルク値及び角度値を取得するが、各位置制御部340Nを介さずに直接取得してもよい。
モータ駆動回路365Nは、例えば半導体スイッチング素子を有するモータドライバであり、入力した電流指令値に応じて、パルス幅変調された3相交流のPWM波形の電圧をモータ231Nに出力することで、モータ231Nに電流を供給する。
各位置制御部340NのCPU351Nは、メイン制御部330のCPU301から入力を受けた関節指令値に関節の角度(位置)が近づくようにモータ231Nへの電流の電流指令値を演算し、電流指令値をモータ駆動回路365Nに出力する。
位置制御部340Nは、一般にカスケード制御と呼ばれている制御方式をとっており、位置制御器、速度制御器、電流制御器を直列に接続した構成となっている。カスケード制御方式の特徴として、各制御器の制御周期を個別に設定できるという特徴がある。本実施形態において、各制御器の制御周期は、電流制御器<速度制御器<位置制御器となるように設定されている。
なお、本実施形態では、エンコーダ236Nは、モータ231Nの回転軸の回転位置を検知するため、位置制御部340Nは、関節指令値を減速機233Nの減速比N0で補正して、モータ231Nの回転位置を制御する。
モータ駆動回路365Nは、入力を受けた電流指令値に対応する電流をモータ231Nに供給する。そして、モータ231Nは、モータ駆動回路265Nから電力供給を受けて駆動トルクを発生し、減速機233Nの入力軸にトルクを伝達する。減速機233Nの出力軸は、入力軸の回転に対して1/N0の回転数で回転する。これにより、一方のリンクが他方のリンクに対して相対的に回転(旋回)する。
なお、本実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム320が格納される場合について説明するが、これに限定するものではない。プログラム320は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム320を供給するための記録媒体としては、図2に示す記録ディスク321、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、USBメモリ等の不揮発性メモリ、ROM等を用いることができる。
ここで、ロボット本体250の先端部、即ちロボットハンド202には、ツールセンターポイント(TCP)が設定されている。TCPは、位置を表す3つのパラメータ(x,y,z)と、姿勢を表す3つのパラメータ(Rx,Ry,Rz)、即ち6つのパラメータ(x,y,z,Rx,Ry,Rz)で表され、タスク空間上では、1つの点としてみなすことができる。つまり、タスク空間は、これら6つの座標軸で規定された空間である。本実施形態では、教示点は、タスク空間で指定される。
CPU301は、教示点間を補間するロボット本体250の経路(補間経路)を生成する。ロボット本体250の経路とは、タスク空間におけるロボット本体250のTCPの軌跡である。そして、CPU301は、ロボット本体250の軌道(補正前)を仮計算する。ロボット本体250の軌道とは、時間をパラメータとして経路を表したものであり、本実施形態では、時刻毎(例えば1ms毎)のロボット本体250の先端部(TCP)の位置指令値の集合である。位置指令値は、6つのパラメータ(x,y,z,Rx,Ry,Rz)で表される。
図3は、実施形態に係るロボット装置の制御系の機能ブロック図である。図4は、振動演算部の詳細を説明するブロック図である。本実施形態では、図2に示すCPU301がプログラム320を実行することにより、図3に示す各部371〜375として機能する。具体的には、CPU301は、補正部371と、逆キネマティクス演算部372と、ロボットパラメータ演算部373と、振動演算部374と、補正部375として機能する。
振動演算部374は、図4に示すように、取得部376と、振動量算出部377と、関節振動量算出部378とを有する。
取得部376は、検知部240の検知結果から、ロボット本体250のベース部210の振動加速度αCを演算することにより取得する(取得処理、取得工程)。また、振動量算出部377は、振動加速度αCから、ベース部210の振動量である補正値PCを算出する。
本実施形態では、検知部240は、直接ベース部210の振動加速度を検知するものではなく、力覚センサ203及びトルクセンサ2351〜2356を用いて間接的に振動加速度を検知する。したがって、取得部376は、力覚センサ203及びトルクセンサ2351〜2356の検知結果を用いて、ベース部210の振動加速度を演算により取得する。なお、検知部240が、直接、ベース部210の振動加速度を検知する加速度センサであった場合には、取得演算部276は、検知部240の検知結果をそのままベース部210の振動加速度として取得するだけでよい。
また、関節振動量算出部378は、後述するロボット本体250の各関節J1〜J6の振動加速度から、ロボット本体250の各関節J1〜J6の振動量を示す補正値θB(θB1〜θB6)を求める(関節振動算出処理、関節振動算出工程)。
図3に示す補正部371は、ロボット本体250の先端部、つまりロボットハンド202(TCP)の位置指令値Pを、補正値PCで補正、具体的には位置指令値Pから補正値PCを減算する(補正処理、補正工程)。補正値PCは、位置指令値Pと同様、6つのパラメータからなり、演算により求めたロボット本体250のベース部210の振動量である。よって、補正値PCは、ベース部210の振動を補償(抑制)するためのものである。
位置指令値Pをベース部210の振動量である補正値PCで補正することで、ロボット本体250の先端部、つまりロボットハンド202は、架台150に対しては、架台150の振動と逆方向に相対的に振動することになる。よって、ロボット本体250の先端部、つまりロボットハンド202は、架台150が設置されている床面に対しては、架台150の振動分が相殺されることになる。
逆キネマティクス演算部372は、補正値PCで補正された位置指令値Pから、ロボット本体250の各関節J1〜J6の位置制御に用いる関節指令値θ(θ1〜θ6)を求める(指令値算出処理、指令値算出工程)。具体的には、逆キネマティクス演算部372は、位置指令値Pと補正値(ベース部の振動量)PCとの差分とから、逆運動学計算により、各関節J1〜J6に対する関節指令値(角度指令値)θを求める。
ロボットパラメータ演算部373は、ロボットモデルデータと関節指令値θに基づき、ロボット本体250の動作及び姿勢に応じたロボットパラメータTA,L,Mを算出する。ロボットモデルデータ(ロボット本体250の設計値)は、予め記憶部(例えばHDD304)に記憶されている。
具体的に説明すると、ロボットパラメータ演算部373は、関節指令値θに従って動作するロボット本体250の各関節J1〜J6に発生する想定トルクTA(TA1〜TA6)を、関節指令値θ及びロボットモデルデータを用いて求める。また、ロボットパラメータ演算部373は、ベース部210と各関節J1〜J6との距離L(L1〜L6)と、各関節J1〜J6に作用する重量M(M1〜M6)とをロボットモデルデータと各関節指令値θを用いて求める。関節指令値θは、時間と共に変化するので、ロボットパラメータ演算部373は、これらロボットパラメータTA,L,Mを関節指令値θに応じて算出する。
このように、ロボットパラメータ演算部373は、逆キネマティクス演算部372で算出した各関節指令値θからロボット本体250の各関節J1〜J6に発生する想定トルクを求める(想定トルク算出処理、想定トルク算出工程)。
補正部375は、逆キネマティクス演算部372で算出した各関節指令値θ(θ1〜θ6)を、ロボット本体250の各関節J1〜J6の振動量を示す補正値θB(θB1〜θB6)で補正する(関節補正処理、関節補正工程)。具体的には、補正部375は、関節指令値θと補正値θBとの差(θ−θB)を演算する。したがって、各位置制御部3401〜3406は、関節指令値θを補正値θBで補正した値を用いて、ロボット本体250の各関節J1〜J6の位置制御を行うことになる。
以下、振動演算部374の演算処理について具体的に説明する。振動演算部374は、力覚センサ203により検知された検知結果F、トルクセンサ2351〜2356により検知された検知結果T(T1〜T6)、及びロボットパラメータTA,L,Mから、補正値PCと、補正値θBとを算出する。
図4において、取得部376は、加速度演算部381と、関節加速度想定部3821〜3826と、先端加速度想定部383と、先端加速度算出部384と、基端加速度算出部385とを有する。
加速度演算部381は、力覚センサ203により検出された力Fを、ロボット本体250の先端部(ロボットハンド202)の加速度αに換算する。具体的には、加速度演算部381は、力覚センサ203により検出された力Fを、ロボットハンド202の重量M0で除算して、ロボットハンド202の加速度αを求める。ロボットハンド202の重量M0のデータは、予めHDD304等の記憶部に記憶されている。
なお、力覚センサ203は、ロボットハンド202に発生する力を検知しているので、ロボットハンド202の加速度αを間接的に検知していることになるが、直接、ロボットハンド202の加速度αを検知してもよい。即ち、先端加速度検知部が、加速度センサであってもよい。この場合、加速度演算部381は省略することができる。なお、本実施形態では、先端加速度検知部が、ロボット200(ロボット本体250)の力制御に用いる力覚センサ203であるので、別途、加速度センサを設けなくてもよい。
関節加速度想定部3821〜3826は、位置指令値(P−PC)(つまり関節指令値θ)に基づくロボット本体250の各関節J1〜J6の仮想的な動作から、各関節J1〜J6に発生する各関節J1〜J6の駆動方向の想定加速度αA1〜αA6を求める。つまり、関節加速度想定部3821〜3826は、各関節指令値θ(θ1〜θ6)からロボット本体250の各関節J1〜J6に発生する各関節J1〜J6の駆動方向の想定加速度αA1〜αA6を算出する(関節加速度想定処理、関節加速度想定工程)。
具体的に説明すると、ロボットパラメータ演算部373において各関節指令値θ(θ1〜θ6)から想定トルクTA(TA1〜TA6)が求められている。したがって、関節加速度想定部3821〜3826は、各想定トルクTA(TA1〜TA6)からロボット本体250の各関節J1〜J6に発生する各関節J1〜J6の駆動方向の想定加速度αA1〜αA6を算出する。
関節J1を例に、想定加速度αA1の算出方法について、更に具体的に説明する。まず、関節加速度想定部3821は、関節J1での想定トルクTA1に、ベース部210と関節J1との間の距離L1を乗算することにより、関節J1に発生する力を算出する。そして、関節加速度想定部3821は、関節J1に発生する力を関節J1に作用する重量M1で除算することで、関節J1に発生する関節J1の駆動方向の加速度αA1を算出する。関節J2〜J6についても同様の演算を行う。なお、関節加速度想定部3821〜3826は、各関節指令値θ(θ1〜θ6)から直接、ロボット本体250の各関節J1〜J6に発生する各関節J1〜J6の駆動方向の想定加速度αA1〜αA6を算出してもよい。
先端加速度想定部383は、位置指令値からロボット本体250の先端部(ロボットハンド202)に発生する想定加速度αAを算出する(先端加速度想定処理、先端加速度想定工程)。つまり、位置指令値からは、関節指令値θが求められ、関節指令値θからは、想定トルクTAが求められ、想定トルクTAからは、各関節J1〜J6の想定加速度αA1〜αA6が求められている。本実施形態では、先端加速度想定部383は、位置指令値から求められた想定加速度αA1〜αA6から、ロボット本体の先端部に発生する想定加速度αAを算出する。
具体的に説明すると、先端加速度想定部383は、ロボット本体250の各関節J1〜J6の想定加速度αA1〜αA6を合計することで、ロボット本体250の先端部に発生する想定加速度αAを算出する。想定加速度αAは、実際に先端部に発生している実加速度ではなく、シミュレーションにより求まる理想的な状態での加速度(シミュレーション値)である。
なお、本実施形態では、位置指令値から求めた各関節の想定加速度αA1〜αA6から、先端部の想定加速度αAを求める場合について説明したが、位置指令値から直接、想定加速度αAを求めてもよい。
先端加速度算出部384は、関節加速度算出部3861〜3866と、振動加速度算出部387とを有する。各関節加速度算出部3861〜3866は、ロボット本体250の各関節の実加速度と、ロボット本体250の各関節の想定加速度との偏差に応じて、ロボット本体250の各関節に発生する各関節の駆動方向の振動加速度αB1〜αB6を求める。そして、振動加速度算出部387は、ロボット本体250の先端部の振動加速度αBを算出する(先端加速度算出処理、先端加速度算出工程)。
ここで、本実施形態では、トルクセンサ2351〜2356は、加速度を直接検知しているのではなく、トルクを検知している。したがって、先端加速度算出部384は、実加速度に対応する実トルクT(T1〜T6)と、想定加速度に対応する想定トルクTA(TA1〜TA6)との偏差(TA−T)を求め、この偏差から、各振動加速度αB1〜αB6を算出する。
ここで、関節J1を例に、振動加速度αB1の算出方法について、更に具体的に説明する。関節加速度算出部3861は、想定トルクTA1と実トルクT1とのトルク差(TA1−T1)を算出する。トルク差(TA1−T1)は、関節J1の振動により発生するトルクである。関節加速度算出部3861は、トルク差(TA1−T1)に、ベース部210と関節J1との間の距離L1を乗算することにより、関節J1に発生する振動力を算出する。そして、関節加速度算出部3861は、関節J1に発生する振動力を関節J1に作用する重量M1で除算することで、関節J1に発生する関節J1の駆動方向の振動加速度αB1を算出する。関節J2〜J6についても同様の演算を行う。
振動加速度算出部387は、ロボット本体250の各関節の振動加速度αB1〜αB6を合計することで、ロボット本体250の先端部(ロボットハンド202)の振動加速度αBを算出する。
基端加速度算出部385は、加速度αから想定加速度αAと振動加速度αBとを減算して、ベース部210の振動加速度αCを求める(基端加速度算出処理、基端加速度算出工程)。
振動量算出部377は、振動加速度αCを時間で2階積分する演算を行うことで、ベース部210における振動量、つまり補正値PCを算出する(振動算出処理、振動算出工程)。なお、図4中のsはラプラス演算子である。
そして、補正部371は、逆キネマティクス演算部372にて各関節指令値θ1〜θ6を求めるのに使用する位置指令値を、ベース部210の振動量である補正値PCで補正する。これにより、ロボット本体250の先端部における、ベース部210(つまり架台150)の振動に起因する振動を抑制することができる。
関節振動量算出部378は、各関節J1〜J6の振動加速度αB1〜αB6を時間で2階積分することで、ロボット本体250の各関節J1〜J6の振動量を示す補正値θB(θB1〜θB6)を求める(関節振動算出処理、関節振動算出工程)。
そして、補正部375は、各位置制御部3401〜3406にて位置制御に用いる指令値θ1〜θ6を、各補正値θB1〜θB6でそれぞれ補正する。これにより、各関節J1〜J6自体の振動を抑制することができる。
以上、本実施形態によれば、ロボット本体250の先端部の位置指令値Pが、ロボット本体250のベース部210の振動量である補正値PCで補正される。したがって、ロボット本体250が振動する設置面、例えば架台150に設置された場合においても、ロボット本体250の先端部の振動を抑制することができる。つまり、本実施形態によれば、ベース部210の振動量を算出し、この振動量を補正値PCとして、位置指令値Pに与えることで、ベース部210の振動によるロボット本体250の先端部の振動を高精度に抑制することが可能となる。
また、各関節J1〜J6で発生する振動量を各関節のトルクから算出し、各振動量を各補正値θB1〜θB6として、各関節指令値θ1〜θ6に与えることで、逆キネマティクス演算部610を介さずに各関節の振動を補償することができる。したがって、各関節J1〜J6の振動を高精度かつ高速に抑制することができる。
以上より、ベース部210に発生する振動と、各関節J1〜J6に発生する振動を高精度かつ高速に抑制することができるため、ロボット本体250の先端部に発生する振動を高精度かつ高速に抑制することが可能となる。また、ロボット200が設置される架台150が低い剛性であったとしても、ロボット本体250の先端部の振動を高精度かつ高速に抑制することができる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、ロボットアームが垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい
また、上述の実施形態では、ロボット200が架台150上に設置される場合について説明したが、無人搬送車(AGV)等の移動体上に設置されていてもよい。この場合であっても、移動体が動作することにより発生するベース部210の振動を求めることが可能なため、ロボット本体250の先端部の振動を高精度かつ高速に抑制することが可能となる。
100…ロボット装置、202…ロボットハンド(先端部)、210…ベース部、240…検知部、250…ロボット本体、301…CPU(制御部)
Claims (11)
- 複数の関節を有するロボット本体と、
前記ロボット本体の動作を制御する制御部と、
前記ロボット本体に発生する加速度を検知する検知部と、を備え、
前記制御部は、
前記ロボット本体の先端部の位置指令値から、前記ロボット本体の各関節の位置制御に用いる関節指令値を求める指令値算出処理と、
前記検知部による検知結果から、前記ロボット本体のベース部の振動加速度を取得する取得処理と、
前記ロボット本体のベース部の振動加速度から、前記ロボット本体のベース部の振動量を算出する振動算出処理と、
前記指令値算出処理にて前記各関節指令値を求めるのに使用する前記位置指令値を、前記ロボット本体のベース部の振動量で補正する補正処理と、を実行するロボット装置。 - 前記検知部は、
前記ロボット本体の先端部に発生する加速度を検知する先端加速度検知部と、
前記ロボット本体の各関節に発生する各関節の駆動方向の加速度をそれぞれ検知する複数の関節加速度検知部と、を有し、
前記制御部は、
前記取得処理として、
前記指令値算出処理で算出した各関節指令値から前記ロボット本体の各関節に発生する各関節の駆動方向の想定加速度を算出する関節加速度想定処理と、
前記位置指令値から前記ロボット本体の先端部に発生する想定加速度を算出する先端加速度想定処理と、
前記ロボット本体の各関節の実加速度と、前記ロボット本体の各関節の想定加速度との偏差に応じて、前記ロボット本体の各関節に発生する各関節の駆動方向の振動加速度を求め、前記ロボット本体の先端部の振動加速度を算出する先端加速度算出処理と、
前記先端加速度検知部により検知された加速度から、前記先端加速度想定処理で算出した前記ロボット本体の先端部の想定加速度と、前記先端加速度算出処理で算出した前記ロボット本体の先端部の振動加速度とを減算して、前記ロボット本体のベース部の振動加速度を求める基端加速度算出処理と、を実行する請求項1に記載のロボット装置。 - 前記制御部は、前記先端加速度算出処理では、前記ロボット本体の各関節の振動加速度の合計により、前記ロボット本体の先端部の振動加速度を算出する請求項2に記載のロボット装置。
- 前記制御部は、前記先端加速度想定処理では、前記関節加速度想定処理で算出した前記ロボット本体の各関節の想定加速度の合計により、前記ロボット本体の先端部に発生する想定加速度を算出する請求項2又は3に記載のロボット装置。
- 前記制御部は、
前記ロボット本体の各関節の振動加速度から、前記ロボット本体の各関節の振動量を求める関節振動算出処理と、
前記指令値算出処理で算出した各関節指令値を前記ロボット本体の各関節の振動量で補正する関節補正処理と、を更に実行する請求項2乃至4のいずれか1項に記載のロボット装置。 - 前記先端加速度検知部が、前記ロボット本体の先端部に発生する力を検知する力覚センサである請求項2乃至5のいずれか1項に記載のロボット装置。
- 前記関節加速度検知部が、前記ロボット本体の関節に発生するトルクを検知するトルクセンサである請求項2乃至6のいずれか1項に記載のロボット装置。
- 前記制御部は、前記指令値算出処理で算出した各関節指令値から前記ロボット本体の各関節に発生する想定トルクを求める想定トルク算出処理を更に実行し、
前記関節加速度想定処理では、前記ロボット本体の各関節に発生する想定トルクから前記ロボット本体の各関節の想定加速度を求め、
前記先端加速度算出処理では、前記各トルクセンサにより検知された各関節の実トルクと、前記ロボット本体の各関節に発生する想定トルクとの偏差から、前記ロボット本体の各関節に発生する各関節の駆動方向の振動加速度を求める請求項7に記載のロボット装置。 - 複数の関節を有するロボット本体の動作を制御するロボット制御方法であって、
前記ロボット本体の先端部の位置指令値から、前記ロボット本体の各関節の位置制御に用いる関節指令値を求める指令値算出工程と、
前記ロボット本体に発生する加速度を検知する検知部の検知結果から、前記ロボット本体のベース部の振動加速度を取得する取得工程と、
前記ロボット本体のベース部の振動加速度から、前記ロボット本体のベース部の振動量を算出する振動算出工程と、
前記指令値算出工程にて前記各関節指令値を求めるのに使用する前記位置指令値を、前記ロボット本体のベース部の振動量で補正する補正工程と、を備えたロボット制御方法。 - コンピュータに、請求項9に記載のロボット制御方法の各工程を実行させるためのプログラム。
- 請求項10に記載のプログラムが記録された、コンピュータが読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016003948A JP2017124455A (ja) | 2016-01-12 | 2016-01-12 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016003948A JP2017124455A (ja) | 2016-01-12 | 2016-01-12 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017124455A true JP2017124455A (ja) | 2017-07-20 |
Family
ID=59364471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016003948A Pending JP2017124455A (ja) | 2016-01-12 | 2016-01-12 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017124455A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019136860A (ja) * | 2018-02-13 | 2019-08-22 | キヤノン株式会社 | ロボットの制御装置、制御方法、ロボットシステム、プログラム及び記録媒体 |
CN110465936A (zh) * | 2018-05-09 | 2019-11-19 | 发那科株式会社 | 控制系统和被驱动体的控制方法 |
WO2020017370A1 (ja) | 2018-07-17 | 2020-01-23 | ソニー株式会社 | 制御装置、制御方法、及び制御システム |
JP2020097101A (ja) * | 2018-12-17 | 2020-06-25 | キヤノン株式会社 | ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、制御プログラム及び記録媒体 |
WO2022070442A1 (ja) * | 2020-09-29 | 2022-04-07 | 日本電産株式会社 | ロボットシステム |
CN114714362A (zh) * | 2022-05-16 | 2022-07-08 | 伯朗特机器人股份有限公司 | 一种基于Levenberg-Marquard算法的六轴协作机器人校准方法 |
US11534912B2 (en) | 2019-04-26 | 2022-12-27 | Fanuc Corporation | Vibration display device, operation program creating device, and system |
US11597083B2 (en) | 2018-12-17 | 2023-03-07 | Canon Kabushiki Kaisha | Robot apparatus, robot system, control method of robot apparatus, product manufacturing method using robot apparatus, and storage medium |
US11872698B2 (en) | 2018-02-13 | 2024-01-16 | Canon Kabushiki Kaisha | Controller of robot and control method |
-
2016
- 2016-01-12 JP JP2016003948A patent/JP2017124455A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019136860A (ja) * | 2018-02-13 | 2019-08-22 | キヤノン株式会社 | ロボットの制御装置、制御方法、ロボットシステム、プログラム及び記録媒体 |
US11872698B2 (en) | 2018-02-13 | 2024-01-16 | Canon Kabushiki Kaisha | Controller of robot and control method |
CN110465936A (zh) * | 2018-05-09 | 2019-11-19 | 发那科株式会社 | 控制系统和被驱动体的控制方法 |
WO2020017370A1 (ja) | 2018-07-17 | 2020-01-23 | ソニー株式会社 | 制御装置、制御方法、及び制御システム |
JP7375754B2 (ja) | 2018-07-17 | 2023-11-08 | ソニーグループ株式会社 | 制御装置、制御方法、及び制御システム |
US11850751B2 (en) | 2018-07-17 | 2023-12-26 | Sony Corporation | Control device, control method, and control system |
JP2020097101A (ja) * | 2018-12-17 | 2020-06-25 | キヤノン株式会社 | ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、制御プログラム及び記録媒体 |
US11597083B2 (en) | 2018-12-17 | 2023-03-07 | Canon Kabushiki Kaisha | Robot apparatus, robot system, control method of robot apparatus, product manufacturing method using robot apparatus, and storage medium |
US11534912B2 (en) | 2019-04-26 | 2022-12-27 | Fanuc Corporation | Vibration display device, operation program creating device, and system |
WO2022070442A1 (ja) * | 2020-09-29 | 2022-04-07 | 日本電産株式会社 | ロボットシステム |
CN114714362A (zh) * | 2022-05-16 | 2022-07-08 | 伯朗特机器人股份有限公司 | 一种基于Levenberg-Marquard算法的六轴协作机器人校准方法 |
CN114714362B (zh) * | 2022-05-16 | 2023-08-11 | 伯朗特机器人股份有限公司 | 一种基于Levenberg-Marquard算法的六轴协作机器人校准方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017124455A (ja) | ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
US10486309B2 (en) | Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component | |
US10150215B2 (en) | Robot control device and robot | |
JP6504864B2 (ja) | ロボット制御方法、ロボット装置、プログラム、記録媒体及び物品の製造方法 | |
JP5895628B2 (ja) | ロボットの制御方法及びロボット制御装置、並びにロボット制御システム | |
US9242377B2 (en) | Robot | |
JP5929224B2 (ja) | ロボット | |
JP6584102B2 (ja) | ロボット装置、ロボット制御方法、プログラム、記録媒体、及び物品の製造方法 | |
US9044861B2 (en) | Robot | |
JP5916583B2 (ja) | 多関節ロボットのウィービング制御装置 | |
JPH079606B2 (ja) | ロボット制御装置 | |
JP2016083713A (ja) | ロボット制御方法、ロボット装置、プログラム、記録媒体及び組立部品の製造方法 | |
JP2017209762A (ja) | ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 | |
JP2013166224A (ja) | ロボットの制御装置、ロボット及びそのプログラム | |
JP6700679B2 (ja) | 制御方法、物品の製造方法、ロボット装置、制御プログラム及び記録媒体 | |
JP2020015124A (ja) | ロボット制御方法、物品の製造方法、ロボット制御装置、ロボット、プログラム及び記録媒体 | |
JP2022011402A (ja) | ロボットの制御方法およびロボットシステム | |
JP2016032326A (ja) | モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体 | |
JP2009220184A (ja) | 産業用ロボットの出力トルク制限回路 | |
JP2013223895A (ja) | ロボット制御方法及びロボット制御装置 | |
JP2017127932A (ja) | ロボット装置、ロボット制御方法、部品の製造方法、プログラム及び記録媒体 | |
JPS60118478A (ja) | 関節形ロボツトの位置制御装置 | |
JP6036476B2 (ja) | ロボット | |
JP2014159066A (ja) | ロボット制御装置及びロボットの制御方法 | |
JP2019214105A (ja) | ロボット制御装置およびロボット制御方法 |