JP2019104091A - ロボット装置、ロボット装置の制御方法 - Google Patents

ロボット装置、ロボット装置の制御方法 Download PDF

Info

Publication number
JP2019104091A
JP2019104091A JP2017239047A JP2017239047A JP2019104091A JP 2019104091 A JP2019104091 A JP 2019104091A JP 2017239047 A JP2017239047 A JP 2017239047A JP 2017239047 A JP2017239047 A JP 2017239047A JP 2019104091 A JP2019104091 A JP 2019104091A
Authority
JP
Japan
Prior art keywords
robot
robot apparatus
tip
force
acceleration
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
JP2017239047A
Other languages
English (en)
Inventor
津崎 亮一
Ryoichi Tsuzaki
亮一 津崎
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 JP2017239047A priority Critical patent/JP2019104091A/ja
Publication of JP2019104091A publication Critical patent/JP2019104091A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)

Abstract

【課題】多関節ロボットにおいては、前の動作に関する各関節の駆動を終了しても、例えばロボットアームの振動等により手先部の位置が変動している時間がある。この間に次の動作を開始させてしまうと、次の動作に関する手先部の位置姿勢の精度に影響が生ずる可能性がある。次の動作を開始させても精度が保証可能な範囲内に変動が収まった状態、即ち位置決め完了の判定にマージンを与えすぎると、ロボットの動作速度が低下してしまう。【解決手段】各関節軸にかかる力を検出するトルクセンサが検出した力を用いて多関節ロボットの先端にかかる力および/または多関節ロボットの先端の加速度を求め、力、および/または加速度が、所定範囲内に収束したか否かを判定することで位置決めが完了したかを判定する。【選択図】図3

Description

本発明は、複数の関節を有するロボット装置と、その制御方法に関する。特に、関節を駆動してロボットの位置姿勢を変更した際の位置決め完了を検知する技術に関する。
近年、様々なロボット装置が普及しているが、工場や作業現場等においては、複雑な作業を行わせるために複数の関節を備えた多関節ロボットの導入が盛んである。
例えば工場等において生産装置として多関節ロボットを用いる場合には、生産効率を高めるために、ロボットを高速に動作させる必要がある。生産工程中の一つの動作から次の動作に移行する際には、作業を行う手先部の位置姿勢の精度を保証するため、前の動作に関する各関節の駆動を確実に終了させてから次の動作に関する関節の駆動を開始させる。その際には、前の動作に関する各関節の駆動を終了したとしても、例えばロボットアームの振動等により手先部の位置が変動している間に次の動作を開始させてしまうと、次の動作に関する手先部の位置姿勢の精度に影響が生ずる可能性がある。
以後の説明では、一つの動作に関する各関節の駆動を終了させた後に、ロボットの作業部である手先部の位置姿勢の変動が、次の動作を開始させても精度を保証可能な所定範囲内に収まった状態になることを、位置決め完了と呼ぶ。
従来は、ロボットの操作者が経験則等により位置決め完了に要する時間を設定し、前の動作の各関節の駆動を終了した後、設定した時間の経過後に、次の動作の各関節の駆動を開始するように制御していた。
また、特許文献1には、各関節を駆動するサーボモータの位置、速度、トルク指令値からロボットの先端位置を推定し、この値が予め設定した許容範囲内となった場合に位置決め完了と判定する方法が提案されている。
また、特許文献2には、各関節の駆動機構の出力側に搭載した出力側エンコーダにより各関節の角度を検出し、検出角度に基づきロボットの先端の位置を求め、位置決め完了か否かを判定する方法が提案されている。
また、特許文献3には、ロボットの先端に作用する外力を検知するためにロボットの先端に搭載された力覚センサを用いて、ロボットの先端の振動を検知する方法が記載されている。
特開平3−257506号公報 特開2016−13613号公報 特開2015−199149号公報
従来の、ロボットの操作者が経験則等により位置決め完了に要する時間を設定する方法では、操作者が試行錯誤的に時間を設定するため、次の動作を開始させた時に手先部の位置姿勢の精度が保証されない可能性があった。これを防止するために十分なマージンを見込んで操作者が時間を設定すると、次の動作を開始するまでの待機時間が長くなり、実効的な動作速度が低下して生産効率を高めることができなくなってしまう。
また、特許文献1に記載の技術では、関節を駆動するサーボモータの回転角度を検出するエンコーダの出力、つまり減速機入力側の検出角度値に基づいて、ロボットアームの先端位置を計算により推定している。減速機の入力側からロボットアームの先端までには、剛性が低く振動を起こしやすい減速機等が介在するので、先端の振動が収束したことを減速機の入力側の値で保証することは困難である。したがって、実際にはロボットアームの先端の振動が収束していない場合もあり、組み付け作業の精度が低下する場合があった。
また、特許文献2に記載の技術では、各関節の駆動機構の出力側に搭載した出力側エンコーダにより各関節の回転角度については検出できるが、回転軸と直交する関節軸の傾きは検出できなった。そのため、旋回動作のような回転軸と直交する方向に力が加わる動作においては、ロボットアームが撓み先端の振動が収束していない場合があり、位置決め完了を十分な精度で判定できない場合が発生する可能性があった。
また、特許文献3に記載の技術は、ロボットの先端に作用する外力を検知するためにロボット先端に搭載された力覚センサを用いるが、力覚センサより先に存在する慣性質量が小さいと、振動を検知する際の感度が低い場合があった。このため、この技術を位置決め完了の判定に適用しようとしても、十分な精度で判定できない場合が発生する可能性があった。
そこで、多関節ロボットの実効的な動作速度を向上させるため、関節を駆動してロボットの位置姿勢を変更した際の位置決め完了を、短時間内に高精度に検知する技術が求められていた。
本発明は、複数の関節を有するロボット装置であって、前記複数の関節の各関節軸を駆動するサーボモータと、前記各関節軸にかかる力を検出するトルクセンサと、前記各サーボモータをフィードバック制御するモータ制御部と、前記トルクセンサが検出した力を用いて前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める計算部と、前記計算部が求めた前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度が、所定範囲内に収束したか否かを判定する位置決め判定部と、を備えたことを特徴とするロボット装置である。
また、本発明は、複数の関節を有するロボット装置をコンピュータを用いて制御する制御方法であって、前記複数の関節の各関節軸にかかる力を検出するトルクセンサが検出した力を用いて、前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める計算工程と、前記計算工程で求めた前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度が、所定範囲内に収束したか否かを判定する位置決め判定工程と、を備えたことを特徴とするロボット装置の制御方法である。
本発明によれば、前の動作に関する各関節の駆動を終了させた後、ロボットの手先部の位置姿勢の変動が次の動作を開始させても精度を保証可能な範囲内に収まった状態、即ち位置決め完了に到達したか否かを、短時間内に高精度に検知することができる。本発明は、実効的な動作速度を向上させたロボット装置、およびロボット装置の制御方法を提供することができる。
第1実施形態に係るロボットシステムの斜視図である。 第1実施形態に係るロボット制御装置を示すブロック図である。 第1実施形態に係るロボットシステムの制御系を示す制御ブロック図である。 第1実施形態においてロボットのトルクベース力制御を説明するためのフローチャートである。 第1実施形態においてロボットの位置制御を説明するためのフローチャートである。 第1実施形態に係るロボット制御方法の各工程を示すフローチャートである。 第1実施形態に係る効果を示す図である。 第2実施形態に係るロボット制御方法の各工程を示すフローチャートである。 第3実施形態に係る準備工程を示すフローチャートである。 第3実施形態に係る位置決め完了に係る閾値と教示点のテーブルである。 第3実施形態に係るロボット制御方法の各工程を示すフローチャートである。
以下、図面を参照して、本発明の第1実施形態である多関節ロボットとその制御方法について説明する。
[第1実施形態]
図1は、第1実施形態に係るロボットシステムの斜視図である。図1に示すように、ロボットシステム100は、多関節のロボット200と、ロボット200の動作を制御するロボット制御装置300と、を備えている。また、ロボットシステム100は、ロボット制御装置300に教示データを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、操作者が操作するものであり、ロボット200やロボット制御装置300の動作を指定するのに用いる。
ロボット200は、垂直多関節のロボットアーム251と、ロボットアーム251の先端に取り付けられたエンドエフェクタであるロボットハンド252と、を備えている。以下、エンドエフェクタとしてロボットハンド252を用いる場合について説明するが、エンドエフェクタはこれに限定するものではなく、例えばドライバなど他のツールであってもよい。ロボットアーム251の基端は、台座150に固定されている。ロボットハンド252は、部品やツール等の物体を把持するものである。
ロボット200、即ちロボットアーム251は、複数の関節、例えば6つ関節J〜Jを有している。ロボットアーム251は、各関節J〜Jを各関節軸A〜Aまわりにそれぞれ回転駆動する複数、例えば6つのサーボモータ201〜206を有している。ロボットアーム251は、複数のリンク210〜210が各関節J〜Jで回転可能に連結されている。ロボットアーム251は、可動範囲の中であれば、任意の3次元位置で任意の3方向の姿勢に、ロボット200の手先を向けることができる。
ロボット200の手先の位置及び姿勢は、ロボットアーム251の基端、即ち台座150を基準とする座標系Toで表現される。ロボット200の手先には、座標系Teが設定されている。ここで、ロボット200の手先とは、第1実施形態では、ロボットハンド252が物体を把持していない場合には、ロボットハンド252のことである。ロボットハンド252が物体を把持している場合は、ロボットハンド252と把持している物体を含めてロボット200の手先という。つまり、ロボットハンド252が物体を把持している状態であるか物体を把持していない状態であるかにかかわらず、ロボットアーム251の先端から先を手先という。
各サーボモータ201〜206は、各関節J〜Jをそれぞれ駆動する電動モータであるモータ211〜216と、各モータ211〜216にそれぞれ接続されたセンサ部221〜226とを有している。各センサ部221〜226は、各関節J〜Jの位置、即ち角度に応じた信号を発生する位置センサであるエンコーダを有する。また、各センサ部221〜226は、各関節J〜Jのトルクに応じた信号を発生するトルクセンサを有する。また、各サーボモータ201〜206は、不図示の減速機を有し、直接、又は不図示のベルトやベアリング等の伝達機構を介して各関節J〜Jで駆動されるリンクに接続されている。
ロボットアーム251の内部には、各サーボモータ201〜206のモータ211〜216の駆動を制御するサーボ制御部230が配置されている。サーボ制御部230は、入力を受けた各関節J〜Jに対応する各トルク指令値に基づき、各関節J〜Jのトルクがトルク指令値に追従するよう、各モータ211〜216に電流を出力し、各モータ211〜216の駆動を制御する。なお、第1実施形態では、サーボ制御部230は、ロボットアーム251の内部に配置されているが、ロボットアーム251の外部、例えばロボット制御装置300の筐体内部に配置されていてもよい。
また、ロボット200のロボットアーム251は、各関節J〜Jをそれぞれ制動する複数のブレーキ231〜236を有する。ブレーキ231〜236は、例えばディスクブレーキである。各ブレーキ231〜236を作動させることにより、各関節J〜Jが動かないように各関節J〜Jを固定することができる。
次に、ロボット制御装置300について説明する。図2は、第1実施形態に係るロボット制御装置300を示すブロック図である。ロボット制御装置300は、コンピュータで構成されており、CPU(Central Processing Unit)301を備えている。また、ロボット制御装置300は、記憶部として、内部記憶装置であるROM(Read Only Memory)302、RAM(Random Access Memory)303及びHDD(Hard Disk Drive)304を備えている。また、ロボット制御装置300は、ディスクドライブ305及びインタフェース306〜310を備えている。CPU301、ROM302、RAM303、HDD304、ディスクドライブ305、及びインタフェース306〜310は、互いに通信可能にバス311で接続されている。
CPU301は、第1実施形態では複数のコア301A,301Bを有しており、各コア301A,301Bで独立して演算が可能である。ROM302には、基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する演算処理を実行させるためのプログラム330を記録するものである。CPU301は、HDD304に記録されたプログラム330に基づいてロボット制御方法の各ステップを実行する。ディスクドライブ305は、ディスク331に記録された各種データやプログラム等を読み出すことができる。
ティーチングペンダント400はインタフェース306に接続されている。CPU301はインタフェース306及びバス311を介してティーチングペンダント400からの教示データの入力を受ける。
サーボ制御部230は、インタフェース309に接続されている。CPU301は、サーボ制御部230、インタフェース309及びバス311を介して各センサ部221〜226から信号を取得する。また、CPU301は、各関節の指令値のデータを所定の時間間隔でバス311及びインタフェース309を介してサーボ制御部230に出力する。
インタフェース307には、モニタ321が接続されており、モニタ321には、CPU301の制御の下、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の記憶部である外部記憶装置322が接続可能に構成されている。
インタフェース310には、外部装置323が接続されている。CPU301は、インタフェース310及びバス311を介して、外部装置323とデータの入出力を行う。外部装置323は、例えばLEDを明滅する装置やPLC(Programmable Logic Controller)といった装置である。
なお、第1実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム330が格納される場合について説明するが、これに限定するものではない。プログラム330は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム330を供給するための記録媒体としては、図2に示すROM302,ディスク331、外部記憶装置322等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、DVD−ROMやCD−ROM等の光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
図3は、第1実施形態に係るロボットシステム100の制御系を示す制御ブロック図である。ロボット制御装置300のCPU301は、プログラム330を実行することにより、指示部501、手先計算部520、位置決め閾値記憶部521、位置決め検知部522、及び制御部510として機能する。第1実施形態では、CPU301のコア301Aが指示部501として機能し、CPU301のコア301Bが制御部510として機能する。サーボ制御部230は、複数、即ち6関節であるので6つのモータ制御部531〜536を有する。
各関節J〜Jには各センサ部221〜226が設けられ、センサ部221〜226は、エンコーダ551〜556と、トルクセンサ541〜546を備える。例えば関節Jにはセンサ部221が設けられ、センサ部221にはエンコーダ551とトルクセンサ541とが配されている。他の関節J〜Jについても、それぞれ同様の構成となっている。角度検出器であるエンコーダ551〜556は、ロータリエンコーダであり、モータ211〜216の回転角度に応じた計測値である角度値θ〜θ、および各関節J〜Jの回転角度に応じた計測値である角度値q〜qを信号としてそれぞれ出力する。トルクセンサ541〜546は、各関節J〜Jにかかる力に応じた計測値であるトルク値τ〜τを信号としてそれぞれ出力する。
ティーチングペンダント400は、操作者の操作により、ロボット200の手先に作用する力の目標値である力目標値Frefを、ロボット制御装置300に設定、即ち外部記憶装置322に記憶させる。また、ロボット200の手先の位置姿勢の目標値である位置目標値Prefを、ロボット制御装置300に設定、即ち外部記憶装置322に設定する。力目標値Fref及び位置目標値Prefは、組立工程に合わせて複数存在する。また、外部記憶装置322には、ロボット言語で記述されたロボットプログラム506、及びロボット200の3次元のCADデータ等のロボットモデル519が記憶されている。ロボットプログラム506は、ロボット200と外部装置323の動作を規定するものである。操作者がテキストエディタや専用のIDE(Integrated Development Environment)を用いて組立工程に対応させて作成する。ロボットプログラム506は、力目標値Fref及び位置目標値Prefと関連付けて用いることが可能である。なお、力目標値Fref、位置目標値Pref、ロボットプログラム506及びロボットモデル519は、外部記憶装置322に記憶されるものとしたが、内部記憶装置に記憶されてもよい。
指示部501は、ロボットプログラム506に従って、ロボット200の動作を制御部510に指示するものである。
制御部510は、指示部501の指示に従って、第1の制御である力制御、又は第2の制御である位置制御、のいずれか一方を選択してロボット200の動作を制御する。
第1の制御である力制御を行う場合は、トルクベース力制御を実施する。トルクベース力制御では、各関節に配されたトルクセンサ541〜546が検出するトルク値τ〜τ6、及び各関節に配されたエンコーダ551〜556が検出する角度値θ〜θあるいはq〜qに基づき、ロボット200の動作をフィードバック制御する。
トルクベース力制御においては、制御部510は、フィードバック指令値として各関節のトルク指令値τref1〜τref6を求め、各関節のモータ制御部531〜536に所定の制御周期でこれを出力する。各モータ制御部531〜536は、トルクセンサ541〜546が検出する各トルク値τ〜τと各トルク指令値τref1〜τref6との偏差が小さくなるように、各モータ211〜216に流す各電流Cur〜Curを制御する。尚、トルクベース力制御については、後に図4を参照して詳しく説明する。
第2の制御である位置制御を行う場合は、ロボット200の各関節に配されたエンコーダ551〜556が検出する角度値θ〜θあるいはq〜qに基づき、ロボット200の動作をフィードバック制御する。
位置制御においては、制御部510は、フィードバック指令値として、各関節の角度指令値qref1〜qref6を求め、各関節のモータ制御部531〜536に出力する。各モータ制御部531〜536は、各角度指令値qref1〜qref6を各モータ211〜216の角度指令値θref1〜θref6に変換する。各モータ制御部531〜536は、各エンコーダ551〜556が検出する各モータの角度値θ〜θと各角度指令値θref1〜θref6との偏差が小さくなるように、各モータ211〜216に流す各電流Cur〜Curを制御する。なお、各モータ制御部531〜536は、モータの回転角度である各角度値θ〜θの代わりに、関節の回転角度である各角度値q〜qを用いて制御してもよい。この場合、各モータ制御部531〜536は、各エンコーダ551〜556が検出する各角度値q〜qと各関節の角度指令値qref1〜qref6との偏差が小さくなるように、各モータ211〜216に流す電流Cur〜Curを制御する。尚、位置制御については、後に図5を参照して詳しく説明する。
尚、図3においては、図示の便宜のためτref1〜τref6の各信号を個別に表記するのではなく、まとめてτref1―6と表記している。また、qref1〜qref6、Cur〜Cur、θ〜θ、τ〜τ、q〜qについても、図3においては同様の方法でまとめて表記している。
手先計算部520は、各関節に配されたトルクセンサが検出する各軸のトルク値τ〜τ、各関節に配されたエンコーダが検出する各角度値q〜q6、及びロボットモデル519を用いて、手先力F、手先加速度Accの計算を行う。尚、場合によっては、各関節に配されたエンコーダが検出する各角度値q〜qの代わりに、角度指示値としての各角度指令値qref1〜qref6を用いて手先力F、手先加速度Accの計算を行うように構成してもよい。
具体的には、手先計算部520は、下記の変数をもとに、手先力F、手先加速度Accを求める計算を行う。
・ロボットモデル519、各角度値q〜q及び各角度値q〜qの微分値から算出されるヤコビアンJ。
・逆動力学計算とヤコビアンJにより算出される慣性行列Λ。
これらの変数を用いて、下記の数式1を計算する。
位置決め閾値記憶部521は、ロボット200の静止状態、例えばロボット200の起動直後の一定時間の手先計算部520で計算した手先力F及び手先加速度Accの履歴から算出される手先力閾値Fth、手先加速度閾値Accthを保持する。
具体的に説明すると、位置決め閾値記憶部521は、下記の変数をもとに、手先力閾値Fth、手先加速度閾値Accthの計算を行う。
・手先力Fの履歴の平均であるFave
・手先力Fの履歴の標準偏差であるFσ
・手先力Fの履歴における最大振幅値であるFWorst
・手先加速度Accの履歴の平均であるAccave
・手先加速度Accの履歴の標準偏差であるAccσ
・手先加速度Accの履歴における最大振幅値であるAccWorst
・係数n
・係数nAcc
・係数m
・係数mAcc
これらの変数を用いて、下記の数式2もしくは数式3を計算する。
尚、数式2、数式3は例示であり、これ以外の数式でもよい。
係数n、係数nAcc、係数m及び係数mAccは、手先の振動が十分に収束してから次の動作を行いたい場合は小さな値を設定する。逆に、多少の手先の振動を許容し、早く次の動作を行いたい場合は、大きめの値を設定する。
比較的大きな振動を許容できる教示点には係数n、係数nAcc、係数m及び係数mAccを大きな値に設定し、振動が許容できない教示点には小さな値に設定するように、個別の教示点ごとに最適化する調整も可能である。教示点ごとに手先力閾値Fth、手先加速度閾値Accthを最適化すれば、各動作毎に必要な手先部の位置姿勢精度を担保しながら、次の動作を開始するまでの位置決め完了に要する時間を短縮することができる。
なお、手先力閾値Fth、手先加速度閾値Accthは、ティーチングペンダント400等を用いて、操作者が入力して設定してもよい。あるいは、ロボットプログラム506に記載して、予め指定しておいても良い。
判定部である位置決め検知部522は、手先計算部520から出力される手先力F及び手先加速度Accの片方もしくは両方が所定時間、位置決め閾値記憶部521に記憶された閾値以内に収束したら、指示部501に対して位置決め完了通知を送る。すなわち、ロボット装置の先端にかかる力および/またはロボット装置の先端の加速度が、所定範囲内に収束したか否かを判定して通知する。
尚、位置決め完了の判定に手先力Fと手先加速度Accの片方のみを用いるか、もしくは両方を使うかは、ロボットプログラム506やティーチングペンダントなどで操作者が指定できるものとする。
次に、図4のフローチャートを参照して、本実施形態におけるロボット200のトルクベース力制御について詳細に説明する。
まず、操作者が力目標値Frefと位置目標値Prefとをティーチングペンダント400を用いて設定する(S1)。力目標値Fref及び位置目標値Prefは、外部記憶装置322に記憶される。なお、力目標値Fref及び位置目標値Prefは、ティーチングペンダント400を使わずに、ロボットプログラム506に直接記述してもよい。
制御部510は、手先に作用した力の計測値である手先力Fが力目標値Frefに倣うよう、即ち手先力Fと力目標値Frefとの力偏差が小さくなるよう各モータ211〜216に対するトルク指令値τref1〜τref6を算出する(S2)。
各モータ制御部531〜536は、各トルク指令値τref1〜τref6を実現するよう、各トルクセンサ541〜546が計測したトルク値τ〜τに基づいて各モータ211〜216へ電流Cur〜Curを通電する通電制御を行う(S3)。
各モータ211〜216は、通電されることによりトルクを発生して各関節を駆動する(S4)。
各エンコーダ551〜556は、各関節の角度を示す信号として角度値q〜qを制御部510へ出力する。各トルクセンサ541〜546は、各関節のトルクを示す信号としてトルク値τ〜τを制御部510へ出力する。各エンコーダ551〜556が検出した角度値q〜qと、各トルクセンサ541〜546が検出したトルク値τ〜τは、制御部510にフィードバックされ、制御部510は、角度値q〜q及びトルク値τ〜τを取得する(S5)。
制御部510は、ロボットモデル519及び角度値q〜qに基づいて、ロボット200の手先の位置Pを算出する。制御部510は、ロボットモデル519、角度値q〜q及びトルク値τ〜τに基づき、ロボット200の手先にかかる手先力Fを算出する(S6)。
制御部510は、駆動が終了したか否かを判定し(S7)、終了していない場合は、ステップS2〜S7を繰り返す。
以上の制御手順に従って各モータ211〜216を駆動することで、ロボット200の手先力Fを力目標値Frefに制御することが可能である。なお、トルクベース力制御の制御手順は、図4に示すフローチャートに限定されるものではなく、手順の順番を変更することもあり得る。
次に、図5のフローチャートを参照して、本実施形態におけるロボット200の位置制御について説明する。
まず、操作者が位置目標値Prefをティーチングペンダント400を用いて設定する(S11)。位置目標値Prefは、外部記憶装置322に記憶される。なお、位置目標値Prefは、ティーチングペンダント400を使わずに、ロボットプログラム506に直接記述してもよい。
制御部510は、ロボットモデル519に基づき、位置目標値Prefを各関節J〜Jの角度指令値qref1〜qref6に変換するための計算を行い、角度指令値qref1〜qref6を算出する(S12)。
各モータ制御部531〜536は、各エンコーダ551〜556が出力する各モータ211〜216の角度値θ〜θが各角度指令値qref1〜qref6を実現するよう、各モータ211〜216へ電流Cur〜Curを通電する制御を行う(S13)。
なお、制御には、各モータ211〜216の角度値θ〜θの代わりに、各関節J〜Jの角度を示す信号である角度値q〜qを用いてもよい。各モータ211〜216は、通電されることによりトルクを発生する(S14)。
各エンコーダ551〜556は、各関節J〜Jの角度値q〜qを示す信号を制御部510へ出力する。これにより、各関節J〜Jの角度値q〜qは、制御部510にフィードバックされ、制御部510は、角度値を取得する(S15)。場合によっては、制御部510は、各モータの角度値θ〜θを取得し、ロボットモデル519及び角度値θ〜θに基づいて各関節J〜Jの角度値q〜qを求めてもよい。
制御部510は、駆動が終了したか否か、即ち手先の位置Pが位置目標値Pref付近に達したか否かを判定し(S16)、駆動が終了していない場合は(S16:No)、ステップS12〜S16を繰り返す。以上のフローチャートに従って各モータ211〜216を駆動することで、ロボット200の手先の位置Pを位置目標値Prefに制御することが可能である。
以上、ステップS1〜S7のトルクベース力制御とステップS11〜S16の位置制御について説明したが、これらは、ロボットプログラム506に従って指示部501にて切り替えられ、作業に応じていずれか一方の制御が選択される。
次に、図6のフローチャートを参照して、第1実施形態に係るロボット制御方法の各工程を説明してゆく。
まず、ロボットシステム100は、操作者からのティーチングペンダント400での動作開始指示をうけて、ロボット200のモータ211から216に通電を行う。その後、位置決め閾値記憶部において位置決め完了に用いる手先力閾値Fthと手先加速度閾値Accthの計算を行う(S21)。
指示部501は、ロボットプログラム506と教示データ508から最初の動作指令を生成し、制御部510に送信する(S22)。
動作指令が、位置制御かトルクベース力制御かによって、分岐を行う(S23)。
制御方法が位置制御の場合は、前述の図5のフローチャートに従い、位置制御を行う(S24)。
制御方法がトルクベース力制御の場合は、前述の図4のフローチャートに従い、トルクベース力制御を行う(S25)。
手先計算部520は、各エンコーダ551〜556及び各トルクセンサ541〜546の値を取得し、手先力F及び手先加速度Accを計算する(S26)。
位置決め検知部522は、手先計算部520からえられる手先力F及び手先加速度Accのうち片方、もしくは両方を、位置決め閾値記憶部521に記憶された閾値と比較し、位置決め完了か否かを判定する(S27)。
位置決め完了と判定されれば、位置決め完了通知を指示部501に送信する。位置決め完了と判断されなければ、ロボットの振動が収まるのを所定の時間待つ静定待ちをする(S28)。なお、指定時間内に位置決め完了判定が完了しない場合は、エラー終了とする(不図示)。
S28で所定の時間を待つことで、センサ情報が更新される(S29)。
位置決め完了と判断した場合は、指示部501はロボットプログラム506を解釈し、動作が完了したかを判断する(S30)。次の動作がなければ動作完了とする。次の動作が存在する場合はS22に遷移する。
以上説明したように、第1実施形態に係るロボットシステム100によれば、ロボット先端位置の振動を、各トルクセンサ541〜546により手先力Fもしくは手先加速度Accを算出して判定することにより、正確に求められるようになっている。
振動が収束するまでの時間、つまり位置決め完了までの時間を高精度に把握できるため、静定待ちの時間が不必要に長くなるのを防止することができる。また、事前に位置決め完了時間を調整する必要がないため、設定を含めた作業の効率が向上する。
図7は、手先力Fを力覚センサで検知する場合と、トルクセンサで検知した場合を示した比較グラフである。なお、説明の簡易化のために、手先力Fの6要素のうち1要素のみをプロットしている。ロボットの先端に取り付けた力覚センサに比べて、トルクセンサではロボット各軸で力を検知するため、感度良く振動を検知できる。つまり、本実施形態によれば、力覚センサで振動を検知するよりも精度よく位置決め完了の判定が可能となり、静定待ちの時間を短縮することができる。
[第2実施形態]
次に、第2実施形態に係るロボットシステムについて説明する。なお、第2実施形態の全体構成は、第1実施形態と同様であるため説明を省略し、第1実施形態と異なる点を中心に説明する。
図8は、第2実施形態に係るロボット制御方法の各工程を示すフローチャートである。図6に示した第1実施形態のフローチャートとの違いは、トルクベース力制御(S35)の遷移先が、動作完了(S40)となっている。つまり、トルクベース力制御時には位置決め完了検知を行わないことになる。
一般的に、位置制御に比べてトルクベース力制御の計算量は多い。計算量の少ない位置制御時のみ位置決め完了検知を行うことで、ロボットシステム100全体としての計算量の増加を防ぐことが可能となる。
以上、第2実施形態によれば、位置制御時には位置決め完了検知を行うことで、精度よく位置決め完了の判定が可能となり、静定待ちの時間を短縮することができる。一方、トルクベース力制御時には位置決め完了検知を行わないことでロボットシステム100全体の計算量の増加を防ぎ、CPU301にかけるコスト増を抑えることが可能となる。
[第3実施形態]
次に、第3実施形態に係るロボットシステムについて説明する。なお、第3実施形態の全体構成は、第1実施形態と同様であるため説明を省略し、第1実施形態と異なる点を中心に説明する。
第1実施形態では、全ての動作教示点で、共通の手先力閾値Fth、手先加速度閾値Accthを用いているが、ロボット200の位置姿勢により、静止状態の手先力Fや手先加速度Accが異なる場合がある。いろいろな位置姿勢でも精度を保証できるようにするためには、余裕をもった閾値を設定する必要があり、教示点によっては余裕分により静定待ちのロボット停止時間が必要以上に長くなる場合があり得た。
第3実施形態では、全ての動作において同一の手先力閾値Fth、手先加速度閾値Accthを用いて位置決め完了の判定を行うのではなく、適宜の閾値を用いれば位置決め判定時間が短縮できる教示点に関して、閾値の取得を個別に行う。比較的短時間のうちに振動が収束すると見込まれる教示点に関して、それに相応した手先力閾値Fth、手先加速度閾値Accthを設定することで、位置決め完了の判定時間を短縮することができる。
図9は、第3実施形態に係る準備工程を示すフローチャートである。
まず、操作者が指定した教示点に移動する(S41)。
指定した教示点において、S21と同様に、位置決め閾値記憶部において位置決め完了に用いる手先力閾値Fthと手先加速度閾値Accthの計算を行う(S42)。
個別に閾値を取得すべき教示点が複数存在する場合は、図9のフローを複数回行う。このようにして、指定した教示点について個別の手先力閾値Fthと手先加速度閾値Accthを求めて記憶する。図10は、教示点番号001と教示点番号005の教示点に対して閾値を取得した場合のテーブルを例示したものである。なお、教示点番号000は、特定の閾値が付与されていないその他の教示点に適応される閾値を示している。
図11は、第3実施形態に係るロボット制御方法の各工程を示すフローチャートである。第1実施形態との違いは、閾値計算(S51)において算出される閾値は、前述の図10の教示点番号000に格納することである。更に、位置決め完了(S57)に用いる閾値は、動作に用いる教示点が図10のテーブルに存在する場合はその閾値を、それ以外は教示点番号000に格納した閾値を用いる。このようにすることにより、教示点毎に適宜異なる閾値を用いて判定できる。
以上、第3実施形態によれば教示点毎に手先力閾値Fthや手先加速度閾値Accthを取得して用いるため、第1実施形態よりも更に位置決め完了判定時間を短縮することが期待できる
[他の実施形態]
本発明の実施形態は、上述した第1〜第3の実施形態に限られるものではなく、本発明の基本思想の範囲内で、適宜変更したり組み合わせたりすることが可能である。上述した実施形態の多関節ロボットおよびその制御方法を用いて、ワークの組み立て作業を行い、物品を製造すれば、多関節ロボットの手先の位置姿勢を高い精度で高速に制御できるため、高品位の物品を短時間に製造することができる。また、種々の工具をエンドエフェクタとして実施形態の多関節ロボットに装着すれば、ワークの組み立て作業に限らず様々な加工作業を高速に実行することが可能である。
100・・・ロボットシステム/200・・・ロボット/201〜206・・・サーボモータ/221〜226・・・センサ部/251・・・ロボットアーム/252・・・ロボットハンド/300・・・ロボット制御装置/400・・・ティーチングペンダント/506・・・ロボットプログラム/519・・・ロボットモデル/531〜536・・・モータ制御部/541〜546・・・トルクセンサ/551〜556・・・エンコーダ/Cur1−6・・・電流/J1−6・・・関節/q1−6・・・角度値/qref1−6・・・角度指令値/θ1−6・・・角度値/τ1−6・・・トルク値/τref1−6・・・トルク指令値

Claims (9)

  1. 複数の関節を有するロボット装置であって、
    前記複数の関節の各関節軸を駆動するサーボモータと、
    前記各関節軸にかかる力を検出するトルクセンサと、
    前記各サーボモータをフィードバック制御するモータ制御部と、
    前記トルクセンサが検出した力を用いて前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める計算部と、
    前記計算部が求めた前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度が、所定範囲内に収束したか否かを判定する位置決め判定部と、
    を備えたことを特徴とするロボット装置。
  2. 前記各関節軸の角度を検出する角度検出器を備え、
    前記計算部は、前記トルクセンサが検出した力と前記角度検出器が検出した角度を用いて前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める、
    ことを特徴とする請求項1に記載のロボット装置。
  3. 前記計算部は、前記トルクセンサが検出した力と前記サーボモータを制御するための角度指示値を用いて前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める、
    ことを特徴とする請求項1に記載のロボット装置。
  4. 複数の関節を有するロボット装置をコンピュータを用いて制御する制御方法であって、
    前記複数の関節の各関節軸にかかる力を検出するトルクセンサが検出した力を用いて、前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める計算工程と、
    前記計算工程で求めた前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度が、所定範囲内に収束したか否かを判定する位置決め判定工程と、
    を備えたことを特徴とするロボット装置の制御方法。
  5. 前記計算工程は、前記トルクセンサが検出した力と、前記複数の関節の各関節軸の角度を検出する角度検出器が検出した角度を用いて、前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める、
    ことを特徴とする請求項4に記載のロボット装置の制御方法。
  6. 前記計算工程は、前記トルクセンサが検出した力と、前記複数の関節の角度を制御するための角度指示値を用いて、前記ロボット装置の先端にかかる力および/または前記ロボット装置の先端の加速度を求める、
    ことを特徴とする請求項4に記載のロボット装置の制御方法。
  7. 請求項4乃至6の中のいずれか1項に記載のロボット装置の制御方法の各工程を、前記コンピュータに実行させるためのプログラム。
  8. 請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
  9. 請求項4乃至6の中のいずれか1項に記載のロボット装置の制御方法により、前記ロボット装置を制御してワークの組み立て作業を行う、
    ことを特徴とする物品の製造方法。
JP2017239047A 2017-12-13 2017-12-13 ロボット装置、ロボット装置の制御方法 Pending JP2019104091A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017239047A JP2019104091A (ja) 2017-12-13 2017-12-13 ロボット装置、ロボット装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017239047A JP2019104091A (ja) 2017-12-13 2017-12-13 ロボット装置、ロボット装置の制御方法

Publications (1)

Publication Number Publication Date
JP2019104091A true JP2019104091A (ja) 2019-06-27

Family

ID=67060709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017239047A Pending JP2019104091A (ja) 2017-12-13 2017-12-13 ロボット装置、ロボット装置の制御方法

Country Status (1)

Country Link
JP (1) JP2019104091A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021013999A (ja) * 2019-07-16 2021-02-12 ファナック株式会社 ロボットの制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021013999A (ja) * 2019-07-16 2021-02-12 ファナック株式会社 ロボットの制御装置
JP7448317B2 (ja) 2019-07-16 2024-03-12 ファナック株式会社 ロボットの制御装置

Similar Documents

Publication Publication Date Title
US10486309B2 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
JP6851837B2 (ja) 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法
JP5895628B2 (ja) ロボットの制御方法及びロボット制御装置、並びにロボット制御システム
US10272568B2 (en) Robot apparatus, robot controlling method, program, recording medium, and assembly manufacturing method
JP6512790B2 (ja) ロボット制御方法、ロボット装置、プログラム、記録媒体及び物品の製造方法
JP7091422B2 (ja) ロボット装置、物品の製造方法、ロボット装置の制御方法、プログラム、記録媒体、駆動装置、駆動装置の制御方法
JP7336215B2 (ja) ロボットシステム、制御方法、物品の製造方法、プログラム、及び記録媒体
JP2016028842A (ja) アクチュエータシステム
JP6652310B2 (ja) ロボットシステム、ロボットアームの制御方法、プログラム、記録媒体、及び物品の製造方法
US20190217466A1 (en) Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article
WO2019171516A1 (ja) 垂直多関節ロボットの慣性パラメータ同定システム及び慣性パラメータ同定方法並びに垂直多関節ロボットの制御装置及び制御方法
JP2019104091A (ja) ロボット装置、ロボット装置の制御方法
JP2017056525A (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体及び組立部品の製造方法
JP2020015124A (ja) ロボット制御方法、物品の製造方法、ロボット制御装置、ロボット、プログラム及び記録媒体
WO2015162757A1 (ja) ロボット制御装置およびロボット制御方法
JP7154748B2 (ja) ロボットシステム、物品の製造方法、制御方法、制御プログラム、及び記録媒体
JP2013223895A (ja) ロボット制御方法及びロボット制御装置
JP2016209936A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2016221661A (ja) ロボット制御方法、組立品の製造方法、ロボット装置、プログラム及び記録媒体
JP6896824B2 (ja) ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、情報処理装置、情報処理方法、制御プログラム及び記録媒体
JP7392428B2 (ja) ロボットシステムの制御方法
JP2017127932A (ja) ロボット装置、ロボット制御方法、部品の製造方法、プログラム及び記録媒体
JP2019214105A (ja) ロボット制御装置およびロボット制御方法
JP2021079463A (ja) ロボットシステムの制御方法
JP2020062730A (ja) ロボット制御方法、ロボット装置、プログラム、記録媒体および物品の製造方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207