JP2020151824A - Control device, robot device, control method, article manufacturing method, program, and recording medium - Google Patents
Control device, robot device, control method, article manufacturing method, program, and recording medium Download PDFInfo
- Publication number
- JP2020151824A JP2020151824A JP2019054335A JP2019054335A JP2020151824A JP 2020151824 A JP2020151824 A JP 2020151824A JP 2019054335 A JP2019054335 A JP 2019054335A JP 2019054335 A JP2019054335 A JP 2019054335A JP 2020151824 A JP2020151824 A JP 2020151824A
- Authority
- JP
- Japan
- Prior art keywords
- value
- manipulator
- control unit
- command value
- thrust
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000004519 manufacturing process Methods 0.000 title claims description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000012937 correction Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 21
- 238000005259 measurement Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 230000009467 reduction Effects 0.000 description 8
- 239000003638 chemical reducing agent Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004043 responsiveness Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Abstract
Description
本発明は、マニピュレータの制御に関する。 The present invention relates to the control of a manipulator.
産業用ロボットにおけるマニピュレータの制御として、マニピュレータの位置を制御する位置制御と、マニピュレータの推力を制御する力制御とが知られている。例えば、物品の一例として組立品を製造する際、マニピュレータの先端部にワークを保持させておき、位置制御によりマニピュレータの先端部を目標位置に位置決めした後、力制御によりワークを組み付け対象物に組み付けることが行われている。特許文献1には、マニピュレータの力制御として、トルク指令値と測定されたトルク値との差に基づいてマニピュレータの関節をフィードバック制御する技術が開示されている。
As the control of the manipulator in an industrial robot, position control for controlling the position of the manipulator and force control for controlling the thrust of the manipulator are known. For example, when manufacturing an assembly as an example of an article, a work is held at the tip of a manipulator, the tip of the manipulator is positioned at a target position by position control, and then the work is assembled to an object to be assembled by force control. Is being done.
しかし、マニピュレータを力制御しているときにマニピュレータが振動するなど、マニピュレータの挙動が不安定になることがあった。マニピュレータに精密な作業を行わせる場合、マニピュレータの挙動が不安定になると精密な作業に支障をきたすことがあるため、改善が求められていた。 However, the behavior of the manipulator may become unstable, such as the manipulator vibrating while the manipulator is force-controlled. When the manipulator is made to perform precise work, if the behavior of the manipulator becomes unstable, the precise work may be hindered, so improvement has been required.
本発明は、マニピュレータの制御性を向上させることを目的とする。 An object of the present invention is to improve the controllability of a manipulator.
本発明の制御装置は、マニピュレータの位置又は推力を制御する制御部を備え、前記制御部は、前記マニピュレータの位置を制御しているときに、前記マニピュレータに生じる負荷の第1測定値を取得し、前記マニピュレータのモデルデータを用いた動力学の計算により、前記マニピュレータに生じる負荷の計算値を求め、前記第1測定値と前記計算値との差に基づいて補正値を求めておき、前記マニピュレータの推力を制御する際に、教示データに基づく仮の指令値を求め、前記仮の指令値を前記補正値で補正することで指令値を求め、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づき、前記マニピュレータの推力を制御することを特徴とする。 The control device of the present invention includes a control unit that controls the position or thrust of the manipulator, and the control unit acquires the first measurement value of the load generated on the manipulator while controlling the position of the manipulator. , The calculated value of the load generated in the manipulator is obtained by the calculation of dynamics using the model data of the manipulator, the correction value is obtained based on the difference between the first measured value and the calculated value, and the manipulator When controlling the thrust of the manipulator, a temporary command value based on the teaching data is obtained, the command value is obtained by correcting the temporary command value with the correction value, and the second measured value of the load generated on the manipulator is acquired. However, it is characterized in that the thrust of the manipulator is controlled based on the difference between the command value and the second measured value.
本発明によれば、マニピュレータの制御性が向上する。 According to the present invention, the controllability of the manipulator is improved.
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るロボット装置の概略構成を示す斜視図である。図1に示すように、ロボット装置100は、マニピュレータ200と、マニピュレータ200の位置又は推力を制御する制御部500を有する制御装置1000と、を備えている。また、ロボット装置100は、制御装置1000に教示データを送信する教示装置としての教示ペンダント600を備えている。教示ペンダント600は、操作者が操作するものであり、マニピュレータ200や制御装置1000の動作を指定するのに用いる。
Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
[First Embodiment]
FIG. 1 is a perspective view showing a schematic configuration of a robot device according to the first embodiment. As shown in FIG. 1, the
マニピュレータ200は、ロボットアーム251と、マニピュレータ200の先端部を構成する、エンドエフェクタの一例であるハンド252と、を備える。ロボットアーム251は、本実施形態では垂直多関節のロボットアームである。
The
ロボットアーム251の先端部には、ハンド252が取り付けられている。以下、エンドエフェクタがハンド252である場合について説明するが、これに限定するものではなく、ツール等であってもよい。ロボットアーム251の基端部は、台座Bに固定されている。ハンド252は、部品やツール等のワークを把持するものである。
A
マニピュレータ200、即ちロボットアーム251は、1つ以上の関節を有していればよく、本実施形態では、複数の関節、例えば6つの関節J1〜J6を有している。ロボットアーム251は、各関節J1〜J6を各軸A1〜A6まわりに回転駆動するための複数(6つ)のサーボ機構部201〜206を有している。
The
なお、本実施形態では、関節J1〜J6は、回転関節であるが、直動関節であってもよい。関節が回転関節の場合、関節の位置とは、関節の角度、即ち回転位置を表す。関節が直動関節の場合、関節の位置とは、直動位置を表す。また、関節が回転関節の場合、関節の推力とは、関節の推進トルク、即ち出力トルクを表す。関節が直動関節の場合、関節の推力とは、関節の直動推力を表す。 In the present embodiment, the joint J 1 through J 6 is the rotary joints may be prismatic joint. When the joint is a rotary joint, the position of the joint represents the angle of the joint, that is, the rotational position. When the joint is a linear motion joint, the position of the joint represents the linear motion position. When the joint is a rotary joint, the thrust of the joint represents the propulsion torque of the joint, that is, the output torque. When the joint is a linear joint, the thrust of the joint represents the linear thrust of the joint.
ロボットアーム251は、複数のリンク2100〜2106を有する。リンク2100〜2106は、関節J1〜J6で回転可能に連結されている。リンク2100〜2106は、基端側から先端側に向かって、順に直列に連結されている。ロボットアーム251は、マニピュレータ200の先端部、即ちハンド252を、可動範囲内の任意の位置に移動させることができる。
マニピュレータ200の位置、即ち姿勢は、座標系Toで表現することができる。座標系Toは、ロボットアーム251の基端、即ち台座Bに固定した座標系を表し、座標系Teはマニピュレータ200の先端部、即ちハンド252と連動する座標系を表す。
The position, that is, the posture of the
制御部500は、第1制御ユニットである制御ユニット300と、第2制御ユニットである制御ユニット400と、を有する。制御ユニット300は、ロボット装置100を統括的に制御するものである。制御ユニット400は、制御ユニット300の指令に基づいて、マニピュレータ200の位置又は推力を制御するものである。制御ユニット400は、マニピュレータ200の各サーボ機構部201〜206を制御するサーボ制御装置である。
The
制御部500について具体的に説明する。図2は、第1実施形態に係る制御装置の構成を示すブロック図である。制御部500は、上述したように、制御ユニット300,400を有する。図2には、制御ユニット300のハードウェア構成について詳細に図示している。
The
制御ユニット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〜309を備えている。
The
CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、インタフェース306〜309は、相互に通信可能にバス310で接続されている。ROM302には、CPU301に後述する制御方法の処理を実行させるためのプログラム330が格納されている。CPU301は、ROM302に記録(格納)されたプログラム330に基づいて、後述する制御方法を実行する。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。
The
HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶可能な記憶装置である。記録ディスクドライブ305は、記録ディスク331に記録された各種データやプログラム等を読み出すことができる。
The
教示ペンダント600は、インタフェース306に接続されている。CPU301は、インタフェース306及びバス310を介して教示ペンダント600からマニピュレータ200の教示データを取得する。
The
制御ユニット400は、インタフェース309に接続されている。CPU301は、指令値のデータを所定の制御周期でバス310及びインタフェース309を介して制御ユニット400に出力する。
The
インタフェース307には、モニタ321が接続されており、モニタ321には、CPU301の制御の下、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の記憶装置である外部記憶装置322が接続可能に構成されている。外部記憶装置322には、教示データや、マニピュレータ200のモデルデータが格納可能である。
A
なお、第1実施形態では、コンピュータによって読取可能な記録媒体がROM302であり、ROM302にプログラム330が記録されているが、これに限定するものではない。プログラム330は、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム330を供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
In the first embodiment, the recording medium that can be read by a computer is the
図3は、第1実施形態に係る制御装置の構成を示すブロック図である。図3には、制御ユニット400のハードウェア構成について詳細に図示している。
FIG. 3 is a block diagram showing a configuration of a control device according to the first embodiment. FIG. 3 illustrates in detail the hardware configuration of the
制御ユニット400は、コンピュータで構成されている。制御ユニット400は、処理部であるCPU401と、記憶部であるROM402及びRAM403と、インタフェース406〜409と、を備えている。CPU401、ROM402、RAM403、インタフェース406〜409は、相互に通信可能にバス410で接続されている。ROM402には、CPU401に、後述する制御方法の処理を実行させるためのプログラム430が格納されている。
The
インタフェース406には、後述するモータ211〜216が接続されている。インタフェース407には、後述する位置センサ231〜236が接続されている。インタフェース408には、後述するトルクセンサ241〜246が接続されている。インタフェース409には、制御ユニット300が接続されている。
The
なお、第1実施形態では、コンピュータによって読取可能な記録媒体がROM402であり、ROM402にプログラム430が記録されているが、これに限定するものではない。プログラム430は、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム430を供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
In the first embodiment, the recording medium that can be read by a computer is the
図4は、第1実施形態に係るロボット装置の制御システムを示す制御ブロック図である。図2に示す制御ユニット300のCPU301は、プログラム330を実行することにより、図4に示すトルク指令値生成部504及び位置指令値生成部505として機能する。図3に示す制御ユニット400のCPU401は、プログラム430を実行することにより、図4に示すトルク制御部511〜516、位置制御部521〜526、切替部531〜536、及びモータ制御部541〜546として機能する。サーボ機構部201〜206は、モータ211〜216、減速機221〜226、位置センサ231〜236、及びトルクセンサ241〜246を有する。
FIG. 4 is a control block diagram showing a control system of the robot device according to the first embodiment. The
各モータ211〜216は、マニピュレータ200の各関節J1〜J6を駆動する駆動源の一例であり、例えば電動モータである。各減速機221〜226は、各モータ211〜216の回転軸の回転を減速して出力するものであり、例えば波動歯車減速機である。各関節J1〜J6で連結された一対のリンクのうち、一方のリンクに対して他方のリンクを、各モータ211〜216、及び各減速機221〜226によって駆動することができる。なお、モータの回転軸が減速機の入力軸に直接連結されていてもよいが、モータと減速機との間に、ベルト機構などの不図示の伝達機構が配置されていてもよい。
Each
各位置センサ231〜236は、各関節J1〜J6の位置(角度)に応じた信号を出力するセンサであり、例えばエンコーダである。エンコーダは、ロータリエンコーダであるのが好ましい。各位置センサ231〜236は、各減速機221〜226の入力軸側、即ち各モータ211〜216に設けられ、各モータ211〜216の回転軸の位置(角度)に応じた信号を、制御ユニット400に出力する。制御ユニット400は、各位置センサ231〜236から取得した信号に基づき、各モータ211〜216の回転軸の位置(角度)の測定値θ1〜θ6を求め、各測定値θ1〜θ6から各関節J1〜J6の位置(角度)の測定値q1〜q6を求める。本実施形態では、減速機221〜226の減速比に基づき、測定値θ1〜θ6を測定値q1〜q6に変換する。制御ユニット400は、各関節J1〜J6の位置(角度)の測定値q1〜q6を所定の制御周期で制御ユニット300に出力する。
Each position sensor 23 1-23 6 is a sensor which outputs a signal corresponding to the position (angle) of each joint J 1 through J 6, for example an encoder. The encoder is preferably a rotary encoder. Each position sensor 23 1-23 6, the input shaft side of the reduction gear 22 1-22 6, i.e. provided in each
各トルクセンサ241〜246は、マニピュレータ200に作用する負荷の一例として各関節J1〜J6に作用する負荷トルクに応じた信号を、制御ユニット400に出力する。制御ユニット400は、各トルクセンサ241〜246から取得した信号に基づき、各関節J1〜J6にかかる負荷トルクの測定値τ1〜τ6を求める。制御ユニット400は、各関節J1〜J6の負荷トルクの測定値τ1〜τ6を所定の制御周期で制御ユニット300に出力する。
Each torque sensor 24 1-24 6, a signal corresponding to the load torque acting on each joint J 1 through J 6 as an example of a load acting on the
外部記憶装置322には、ユーザが予め作成しておいた教示データとしての力教示データ501及び位置教示データ502と、マニピュレータ200のモデルデータであるロボットモデル503と、が格納されている。なお、これらデータが格納される記憶装置は、外部記憶装置322に限定するものではない。例えば、これらデータは、HDD304、又は教示ペンダント600に含まれる不図示の記憶装置に格納されていてもよい。
The
力教示データ501には、目標力Fdが含まれている。位置教示データ502には、目標位置Pdが含まれている。目標力Fdは、マニピュレータ200のハンド252にかかる力の目標値(目標力)であり、操作者が教示ペンダント600を用いて設定することができる。目標位置Pdは、マニピュレータ200のハンド252の位置の目標値(目標位置)であり、操作者が教示ペンダント600を用いて設定することができる。制御ユニット300は、力教示データ501から目標力Fdを読み出すことができ、位置教示データ502から目標位置Pdを読み出すことができる。
The
ロボットモデル503は、マニピュレータ200を構成する要素の質量データ、重心位置データ、重心まわりの慣性モーメントデータなどの設計データを含む、ユーザが作成した、仮想的なモデルである。
The
制御ユニット300は、予め設定されているロボットプログラムに従って、マニピュレータ200の位置を制御する位置制御モードと、マニピュレータ200の推力を制御する力制御モードとを切り替えて、制御ユニット400に指令を送る。即ち、制御ユニット300は、位置制御モードに切り替わっているときには位置指令値生成部505として機能して位置指令値を送り、力制御モードに切り替わっているときには、トルク指令値生成部504として機能してトルク指令値を送る。
The
位置指令値生成部505は、目標位置Pdに基づいて、関節J1〜J6に対応する位置指令値qref1〜qref6を生成する。具体的には、位置指令値生成部505は、ロボットモデル503を用いた逆運動学計算により、目標位置Pdを関節J1〜J6に対応する位置指令値qref1〜qref6に変換する。位置指令値生成部505は、生成した位置指令値qref1〜qref6を、制御ユニット400の位置制御部521〜526に出力する。位置制御部521〜526は、測定値q1〜q6と位置指令値qref1〜qref6との差に基づくフィードバック演算、例えばPID演算により、トルク指令値τq1〜τq6を生成する。位置制御部521〜526は、トルク指令値τq1〜τq6を切替部531〜536に出力する。
Position command
トルク指令値生成部504は、目標力Fd、目標位置Pd、測定値τ1〜τ6、及び測定値q1〜q6に基づいて、関節J1〜J6に対応するトルク指令値τref1〜τref6を生成する。トルク指令値生成部504の具体的な処理は、後述する。トルク指令値生成部504は、生成したトルク指令値τref1〜τref6を、制御ユニット400のトルク制御部511〜516に出力する。トルク制御部511〜516は、負荷トルクの測定値τ1〜τ6とトルク指令値τref1〜τref6との差に基づくフィードバック演算、例えばPID演算により、トルク指令値τF1〜τF6を生成する。トルク制御部511〜516は、トルク指令値τF1〜τF6を切替部531〜536に出力する。
The torque command
切替部531〜536は、トルク指令値τF1〜τF6の入力を受けた場合は、入力を受けたトルク指令値τF1〜τF6をトルク指令値τM1〜τM6としてモータ制御部541〜546に出力する。また、切替部531〜536は、トルク指令値τq1〜τq6の入力を受けた場合は、入力を受けたトルク指令値τq1〜τq6をトルク指令値τM1〜τM6としてモータ制御部541〜546に出力する。
モータ制御部541〜546は、トルク指令値τM1〜τM6に応じた電流Cur1〜Cur6をモータ211〜216に通電する。
The
以上、制御ユニット400は、制御ユニット300から位置指令値qref1〜qref6を取得した場合、位置指令値qref1〜qref6と測定値q1〜q6との差に基づき、マニピュレータ200の位置を制御する。また制御ユニット400は、制御ユニット300からトルク指令値τref1〜τref6を取得した場合、トルク指令値τref1〜τref6と測定値τ1〜τ6との差に基づき、マニピュレータ200の推力、即ち関節J1〜J6の出力トルクを制御する。
Above, the
力制御モードにおけるマニピュレータ200の力制御、即ちマニピュレータ200の関節のトルク制御について説明する。図5は、第1実施形態において制御部500がマニピュレータ200を力制御する処理のフローチャートである。まず、トルク指令値生成部504は、目標力Fd及び目標位置Pdを外部記憶装置322から取得する(S1)。トルク指令値生成部504は、目標力Fd、目標位置Pd、負荷トルクの測定値τ1〜τ6、位置の測定値q1〜q6に基づき、ロボットモデル503を用いてトルク指令値τref1〜τref6を算出する(S2)。トルク制御部511〜516は、トルク指令値τref1〜τref6と負荷トルクの測定値τ1〜τ6との差に基づくPID演算により、トルク指令値τF1〜τF6を算出する(S3)。切替部531〜536は、モータ制御部541〜546にトルク指令値τF1〜τF6をトルク指令値τM1〜τM6として出力する。モータ制御部541〜546は、トルク指令値τM1〜τM6に応じてモータ211〜216を通電制御する(S4)。モータ211〜216は、通電に応じて関節J1〜J6に出力トルクを発生する(S5)。制御ユニット300,400は、負荷トルクの測定値τ1〜τ6及び関節の位置の測定値q1〜q6を取得する(S6)。制御ユニット300は、駆動が終了したか否かを判定し(S7)、終了していない場合は(S7:No)、ステップS2〜S6を繰り返す。制御部500は、駆動が終了した場合(S7:Yes)、制御処理を終了する。以上のフローチャートに従ってモータ211〜216を駆動することで、マニピュレータ200のハンド252にかかる力Fを所望の目標力Fdに制御することが可能である。なお、図5に示すフローチャートの順番に限定するものではなく、他の順番でも力制御は可能である。
The force control of the
次に、位置制御モードにおけるマニピュレータ200の位置制御、即ちマニピュレータ200のハンド252の位置制御について説明する。図6は、第1実施形態において制御部500がマニピュレータ200を位置制御する処理のフローチャートである。まず、位置指令値生成部505は、目標位置Pdを外部記憶装置322から取得する(S11)。目標位置Pdは、マニピュレータ200を位置決めする目標位置である。位置指令値生成部505は、目標位置Pdに基づき、ロボットモデル503を用いて関節J1〜J6の位置指令値qref1〜qref6を算出する(S12)。位置制御部521〜526は、位置指令値qref1〜qref6と関節の位置の測定値q1〜q6との差に基づくPID演算により、トルク指令値τq1〜τq6を算出する(S13)。なお、ステップS13においては、測定値q1〜q6の代わりに測定値θ1〜θ6を用いてもよい。この場合、位置指令値qref1〜qref6は、減速機221〜226の減速比で位置指令値θref1〜θref6に変換すればよい。切替部531〜536は、モータ制御部541〜546にトルク指令値τq1〜τq6をトルク指令値τM1〜τM6として出力する。モータ制御部541〜546は、トルク指令値τM1〜τM6に応じてモータ211〜216を通電制御する(S14)。モータ211〜216は、通電に応じて関節J1〜J6に出力トルクを発生する(S15)。制御ユニット300,400は、関節の位置の測定値q1〜q6を取得する(S16)。制御ユニット300は、駆動が終了したか否かを判定し(S17)、終了していない場合は(S17:No)、ステップS12〜S16を繰り返す。制御部500は、駆動が終了した場合(S17:Yes)、制御処理を終了する。以上のフローチャートに従ってモータ211〜216を駆動することで、マニピュレータ200のハンド252の位置を所望の目標位置Pdに制御することが可能である。なお、図6に示すフローチャートの順番に限定するものではなく、他の順番でも位置制御は可能である。
Next, the position control of the
ところで、マニピュレータ200の力学モデルであるロボットモデル503と実機とは必ずしも一致せず、誤差が生じる。この誤差をモデル化誤差という。このモデル化誤差は、マニピュレータ200の経年劣化などでも変化する。また、トルクセンサ241〜246の測定値τ1〜τ6には、マニピュレータが置かれている環境(例えば温度)の変化の影響で、オフセット誤差が重畳する。これらの誤差が大きいと、マニピュレータを力制御しているときにマニピュレータが振動するなど、マニピュレータの挙動が不安定になることがある。モデル化誤差とオフセット誤差とを求め、これら誤差に基づいて、モデル及び測定値を校正することも考えられるが、校正の作業を度々行わなければならない。マニピュレータ200に連続運転で作業を行わせる場合には、校正作業の時間の分、サイクルタイムが増加してしまう。
By the way, the
そこで、本実施形態では、組立作業などの生産作業においてマニピュレータ200を動作させている制御の中で、モデル化誤差及びオフセット誤差をキャンセルさせる。図7は、第1実施形態に係る第1制御ユニットの処理の一部を示すブロック図である。図7には、トルク指令値生成部504の処理について図示している。トルク指令値生成部504は、インピーダンス制御部601、動力学計算部602、指令値補正部603、補正値計算部604として機能し、例えば図2に示すRAM303が補正値記憶部605として機能する。以下、各部の機能について説明する。
Therefore, in the present embodiment, the modeling error and the offset error are canceled in the control in which the
動力学計算部602は、制御ユニット400がマニピュレータ200の位置を制御しているときに、マニピュレータ200の位置の測定値である関節J1〜J6の位置の測定値q1〜q6を取得する。本実施形態では、動力学計算部602は、力制御を開始する位置を目標位置Pdとし、マニピュレータ200を目標位置Pdに位置決めした際に、測定値q1〜q6を取得する。動力学計算部602は、取得したこれらの位置情報を微分して、速度、及び加速度を求める。動力学計算部602は、ロボットモデル503と関節J1〜J6の位置、速度、及び加速度の情報に基づいて、公知の動力学計算手法であるニュートン・オイラー法により、関節J1〜J6にかかる負荷トルクの計算値τ^1〜τ^6を算出する。即ち、動力学計算部602は、マニピュレータ200の位置を制御しているときに、ロボットモデル503を用いた動力学の計算により、マニピュレータ200に生じる負荷としての負荷トルクの計算値τ^1〜τ^6を求める。計算値τ^1〜τ^6には、モデル化誤差が含まれる。なお、動力学の計算は、これに限定するものではなく、例えばラグランジュの定式化による導出方法などでもよい。
補正値計算部604は、制御ユニット400がマニピュレータ200の位置を制御しているときに、マニピュレータ200に生じる負荷の第1測定値として、負荷トルクの測定値τ1〜τ6を取得する。本実施形態では、補正値計算部604は、マニピュレータ200を目標位置Pdに位置決めした際に、測定値τ1〜τ6を取得する。測定値τ1〜τ6には、オフセット誤差が含まれている。補正値計算部604は、測定値τ1〜τ6と計算値τ^1〜τ^6との差に基づいて補正値τcomp1〜τcomp6を求める。具体的には、補正値計算部604は、位置制御モードから力制御モードに切り替わる直前に、計算値τ^1〜τ^6から測定値τ1〜τ6を減算することで、補正値τcomp1〜τcomp6を求める。例えば補正値計算部604は、位置制御モード時に、計算値τ^1〜τ^6から測定値τ1〜τ6を減算する処理を、所定の周期で行い、位置制御モードから力制御モードに切り替わったときに、その直前の減算値を補正値τcomp1〜τcomp6とする。補正値計算部604は、補正値τcomp1〜τcomp6を補正値記憶部605に記憶させておく。なお、補正値τcomp1〜τcomp6には、モデル化誤差とオフセット誤差が含まれている。
The correction
インピーダンス制御部601は、マニピュレータ200のハンド252に所望の機械インピーダンスを持たせるよう、ロボットモデル503に基づく関節J1〜J6のトルク指令値τFd1〜τFd6を、以下の式(1)に従って算出する。式(1)は、インピーダンスの制御式である。機械インピーダンスは、例えば剛性インピーダンス、粘性インピーダンス、及び力インピーダンスである。トルク指令値τFd1〜τFd6は、補正前の仮の指令値であり、モデル化誤差が含まれている。
式(1)中、Mは6×6の慣性行列、Cは6×1のコリオリ力・遠心力のベクトル、Gは6×1の重力負荷トルクのベクトルである。Kdは、所望の機械インピーダンスの剛性の値、Ddは所望の機械インピーダンスの粘性の値を表わし、それぞれ6×6の行列である。Jacは、関節J1〜J6の速度と、座標系To(図1)基準で表現されたハンド252の速度とを関連付ける6×6のヤコビ行列である。なお、ヤコビ行列Jacの添え字Tは行列の転置を表わしている。
In equation (1), M is a 6 × 6 inertial matrix, C is a 6 × 1 Coriolis / centrifugal force vector, and G is a 6 × 1 gravitational load torque vector. K d represents the value of the rigidity of the desired mechanical impedance, and D d represents the value of the viscosity of the desired mechanical impedance, which are 6 × 6 matrices, respectively. Jac is rheumatoid J 1 through J and speed 6, the coordinate system To (Fig. 1) standards Jacobian 6 × 6 correlating the speed of the
このように、インピーダンス制御部601は、制御ユニット400がマニピュレータ200の推力を制御する際に、式(1)を用いて、教示データ501,502に基づく仮の指令値であるトルク指令値τFd1〜τFd6を求める。動力学計算部602は、M、C、Gを、ロボットモデル503と、関節J1〜J6の位置及び速度に基づいて、ニュートン・オイラー法で計算する。
As described above, when the
指令値補正部603は、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正し、トルク制御部511〜516に出力する指令値であるトルク指令値τref1〜τref6を求める。具体的には、指令値補正部603は、補正値記憶部605に記憶されている補正値τcomp1〜τcomp6をインピーダンス制御部601で算出したトルク指令値τFd1〜τFd6から減算することで、トルク指令値τref1〜τref6を生成する。これにより、マニピュレータ200の実機とモデルとの差であるモデル化誤差がキャンセルされる。
Command
トルク指令値τref1〜τref6には、オフセット誤差が含まれている。図4に示すトルク制御部511〜516は、制御ユニット400がマニピュレータ200の推力を制御する際に、マニピュレータ200に生じる負荷の第2測定値である関節J1〜J6の負荷トルクの測定値τ1〜τ6を取得する。この測定値τ1〜τ6には、オフセット誤差が含まれている。トルク制御部511〜516は、トルク指令値τref1〜τref6と測定値τ1〜τ6との差を求め、この差に基づき、フィードバック値であるトルク指令値τF1〜τF6を求める。このように、マニピュレータ200の推力を制御するのに用いられるトルク指令値τF1〜τF6において、オフセット誤差がキャンセルされることになる。
The torque command value τ ref1 ~τ ref6, contains the offset error.
以上、本実施形態によれば、マニピュレータ200の推力の制御中、モデル化誤差とオフセット誤差が共にキャンセルされるので、マニピュレータ200の制御が安定し、マニピュレータ200の制御性が向上する。
As described above, according to the present embodiment, since both the modeling error and the offset error are canceled during the control of the thrust of the
以下、マニピュレータ200の制御の実験結果について説明する。図8は、第1実施形態におけるロボットアーム251の概略図である。図8中、T1〜T6はリンク2100〜2106に固定された座標系である。なお、各関節J1〜J6の回転軸はZ軸で、回転方向は右手方向である。図8に示したロボットアーム251の姿勢を、関節J1〜J6の角度の測定値q1〜q6が0度の時の姿勢とする。また、リンク2100〜2106の寸法は、図8に示す通りである。
The experimental results of the control of the
図9(a)は、第1実施形態における現実のマニピュレータ200の動力学パラメータの一例を示す図である。図9(a)中、m^は、当該リンクの実際の質量である。s^x、s^y、s^zは、それぞれ当該リンクの座標原点から見たX軸、Y軸、Z軸方向の実際の重心位置である。I^xx、I^yy、I^zzは、それぞれ当該リンクの重心まわりのX軸、Y軸、Z軸に対する実際の慣性モーメントである。
FIG. 9A is a diagram showing an example of the dynamic parameters of the
図9(b)は、第1実施形態におけるロボットモデル503の動力学パラメータの一例を示す図である。ロボットモデル503は、ロボットアーム251の設計値からCADで事前に算出し、外部記憶装置322に記憶しておく。図9(b)中、mは当該リンクの設計上の質量である。sx、sy、szはそれぞれ当該リンクの座標原点から見たX軸、Y軸、Z軸方向の設計上の重心位置である。Ixx、Iyy、Izzはそれぞれ当該リンクの重心まわりのX軸、Y軸、Z軸に対する設計上の慣性モーメントである。本実施形態では、ロボットモデル503の各リンクの質量が、現実の各リンク2101〜2106の質量の1割の誤差があるものとした。
FIG. 9B is a diagram showing an example of the dynamic parameters of the
図10(a)及び図10(b)は、第1実施形態におけるマニピュレータ200による組付作業を説明するためのマニピュレータ200の模式図である。本実施形態では、ハンド252で把持したワークW1をワークW2に組み付ける組み付け作業を行う場合について説明する。ワークW1は、円筒形状の凸部を有する部品であり、ワークW2は円筒形状の凹部を有する部品である。図10(a)中、P1は、マニピュレータ200のハンド252の座標系Teで示す力制御開始時の教示点であり、P2は、マニピュレータ200のハンド252の座標系Teで示す力制御の目標位置を示す教示点である。
10 (a) and 10 (b) are schematic views of the
図10(b)は、マニピュレータ200のハンド252の座標系Teが教示点P1にあるときのワークW1とワークW2との位置関係を説明するための拡大図である。ワークW2のとば口WAは、面取りされている。ワークW1が座標系ToのX軸方向に力制御で20mm進んだ時、ワークW1がとば口WAの内側にあれば、力制御の柔軟性により、ワークW1がワークW2の内面に倣い、組み付けが完了する。ワークW1がとば口WAの内側にあるとは、ワークW1の中心軸が座標系ToのZ軸方向の195mm〜205mmの範囲内にあることである。このとき、ワークW1の傾き、及び座標系ToのY軸方向への移動は、組み付け作業には影響がないものとする。
FIG. 10B is an enlarged view for explaining the positional relationship between the work W1 and the work W2 when the coordinate system Te of the
図11(a)は、第1実施形態における教示点のパラメータを示す図である。図11(b)は、第1実施形態における力制御の機械インピーダンスのパラメータを示す図である。図11(a)に、教示点P1,P2の座標系Toを基準とする位置及び姿勢の値を示す。なお、図11(a)中のα、β、γは、それぞれZ軸、Y軸、X軸まわりの回転量を表わす。また、図11(b)に、機械インピーダンスのパラメータとして剛性Kd、粘性Dd、力Fdの値を示す。 FIG. 11A is a diagram showing parameters of teaching points in the first embodiment. FIG. 11B is a diagram showing parameters of mechanical impedance of force control in the first embodiment. FIG. 11A shows the values of the position and the posture with respect to the coordinate system To of the teaching points P1 and P2. Note that α, β, and γ in FIG. 11A represent the amounts of rotation around the Z-axis, Y-axis, and X-axis, respectively. Further, FIG. 11B shows the values of the rigidity K d , the viscosity D d , and the force F d as the parameters of the mechanical impedance.
図12は、第1実施形態に係る物品の製造方法を説明するフローチャートである。まず、制御部500は、マニピュレータ200の位置制御を開始し、マニピュレータ200のハンド252(座標系Te)を、力制御を開始する位置である教示点P1へ移動させる(S51)。
FIG. 12 is a flowchart illustrating a method for manufacturing an article according to the first embodiment. First, the
制御部500は、ロボットモデル503と関節J1〜J6の位置、速度、及び加速度の情報に基づいて、現在の関節J1〜J6の負荷トルクの計算値τ^1〜τ^6を算出する(S52)。このとき、マニピュレータ200は必ずしも停止している必要はない。
制御部500は、第1測定値である、関節J1〜J6の負荷トルクの測定値τ1〜τ6を取得する(S53)。このとき、測定値τ1〜τ6には、トルクセンサ241〜246のオフセット誤差が含まれ、例えばマニピュレータ200の関節J1における測定値τ1および関節J2における測定値τ2に、−1.0Nmのオフセット誤差があるものとする。
制御部500は、計算値τ^1〜τ^6から測定値τ1〜τ6を減算することで、補正値τcomp1〜τcomp6を算出する(S54)。このとき、算出されたトルク補正値τcomp1〜τcomp6は、補正値記憶部605に記憶される。
制御部500は、位置制御モードから力制御モードへ切り替え、力制御を開始する(S55)。制御部500は、マニピュレータ200のハンド252に所望の機械インピーダンス(剛性Kd、粘性Dd、力Fd)を持たせるような関節J1〜J6のトルク指令値τFd1〜τFd6を式(1)に従って算出する(S56)。
The
制御部500は、ステップS56で算出したトルク指令値τFd1〜τFd6から補正値記憶部605に記憶されている補正値τcomp1〜τcomp6を減算してトルク指令値τref1〜τref6を算出する(S57)。制御部500は、トルク指令値τref1〜τref6と、第2測定値である測定値τ1〜τ6との差に基づくPID演算により、トルク指令値τF1〜τF6を算出する(S58)。
制御部500は、トルク指令値τF1〜τF6をトルク指令値τM1〜τM6とし、トルク指令値τM1〜τM6に応じてモータ211〜216を通電制御する(S59)。モータ211〜216は、通電に応じて関節J1〜J6に出力トルクを発生する(S60)。制御部500は、負荷トルクの測定値τ1〜τ6及び関節の位置の測定値q1〜q6を取得する(S61)。制御部500は、駆動が終了したか否かを判定し(S62)、終了していない場合は(S62:No)、ステップS56〜S62を繰り返す。制御部500は、駆動終了と判断したら(S62:Yes)、制御処理を終了する。本実施形態では、ステップS55で力制御を開始してから5秒経過した時点で、制御処理を終了する。
図13(a)、図13(b)及び図13(c)は、実験結果を示すグラフである。図13(a)は、第1実施形態において、力制御を行っているときの時間に対するハンド252のX軸方向の位置を示すグラフである。
13 (a), 13 (b) and 13 (c) are graphs showing the experimental results. FIG. 13A is a graph showing the position of the
インピーダンス制御の目標位置Pdは、図13(a)に示すように、教示点P1から座標系ToでX軸方向に50mm移動した位置である。インピーダンス制御を開始した時点から3秒間、X軸方向に50mm線形変化するものとした。 As shown in FIG. 13A, the target position P d of the impedance control is a position moved 50 mm in the X-axis direction from the teaching point P1 in the coordinate system To. It was assumed that the impedance was linearly changed by 50 mm in the X-axis direction for 3 seconds from the start of impedance control.
図13(b)のグラフは、第1実施形態おいて、マニピュレータ200を力制御したときのマニピュレータ200のハンド252の座標系Teの位置変化を示している。横軸は、座標系Toにおける座標系TeのX軸方向の位置である。縦軸は、座標系Toにおける座標系TeのZ軸方向の位置である。ワークW1とワークW2との接触による位置変化は考慮しないものとする。
The graph of FIG. 13B shows the position change of the coordinate system Te of the
図13(b)に示す通り、座標系Teは、ワークW1がとば口WAに入る範囲、即ち座標系Teが座標系ToのX軸方向の位置270mmに到達したときに、座標系ToのZ軸方向の位置195mm〜205mmの範囲内にある。したがってワークW2に対するワークW1の組み付けが成功する。
As shown in FIG. 13B, the coordinate system Te is the range in which the work W1 enters the jump port WA, that is, when the coordinate system Te reaches the
一方、ステップS57においてトルク指令値τF1〜τF6を補正しない場合、即ち、トルク指令値τF1〜τF6がトルク指令値τref1〜τref6である場合を比較例とする。図13(c)のグラフは、比較例おいて、マニピュレータ200を力制御したときのマニピュレータ200のハンド252の座標系Teの位置変化を示している。
On the other hand, if not corrected torque command value τ F1 ~τ F6 in step S57, the words, and comparative example where the torque command value τ F1 ~τ F6 is the torque command value τ ref1 ~τ ref6. The graph of FIG. 13C shows the position change of the coordinate system Te of the
図13(c)に示すように、座標系Teが、座標系ToのX軸方向の位置270mmに到達したときに、座標系ToのZ軸方向の位置185mm以下にあり、組み付け可能な位置195mm〜205mの範囲から10mm以上ずれている。したがってワークW2に対するワークW1の組み付けが失敗する。
As shown in FIG. 13 (c), when the coordinate system Te reaches the
このように、本実施形態では、マニピュレータ200の実機とモデルとの差が不明であっても、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正することで、モデル化誤差をキャンセルすることができる。また、負荷トルクの測定値τ1〜τ6に含まれるオフセット誤差が不明であっても、フィードバック演算において、トルク指令値τref1〜τref6と測定値τ1〜τ6との差を求めることで、オフセット誤差をキャンセルすることができる。よって、関節J1〜J6のトルクの急変を防止することができる。
Thus, in the present embodiment, even in unknown difference between the actual and model of the
また、ロボットモデル503は、厳密に現実のマニピュレータ200に近付ける必要がなくなるので、ロボットモデル503の推定などの準備にかかる手間や時間を減らすことができる。さらに、環境変化や経時変化によるトルクセンサ241〜246のオフセット誤差も事前に調べる必要がなくなり、校正作業にかかる手間や時間も減らすことができる。所定の校正作業を事前に行う必要なしに、力制御の作業ごとにモデル化誤差およびセンサオフセット誤差による制御性能の低下や不測の動作を防止することができる。
Further, since the
[第2実施形態]
第2実施形態に係るロボット装置について説明する。図14は、第2実施形態に係るロボット装置の概略構成を示す斜視図である。第2実施形態のロボット装置100Aにおいて、第1実施形態のロボット装置100と同様の構成については、同一符号を付して詳細な説明は省略する。図14に示すように、ロボット装置100Aは、第1実施形態と同様の構成のマニピュレータ200と、マニピュレータ200の位置又は推力を制御する制御部500Aを有する制御装置1000Aと、を備えている。また、ロボット装置100Aは、制御装置1000Aに教示データを送信する教示装置としての教示ペンダント600を備えている。
[Second Embodiment]
The robot device according to the second embodiment will be described. FIG. 14 is a perspective view showing a schematic configuration of the robot device according to the second embodiment. In the
制御部500Aは、第1制御ユニットである制御ユニット300Aと、第2制御ユニットである制御ユニット400Aと、を有する。制御ユニット300Aは、ロボット装置100Aを統括的に制御するものである。制御ユニット400Aは、制御ユニット300Aからの指令に基づいて、マニピュレータ200の位置又は推力を制御するものである。制御ユニット400Aは、マニピュレータ200の各サーボ機構部201〜206を制御するサーボ制御装置である。
The
制御部500Aについて具体的に説明する。図15及び図16は、第2実施形態に係る制御部500Aの構成を示すブロック図である。制御部500Aは、上述したように、制御ユニット300A,400Aを有する。図15には、制御ユニット300Aの詳細な構成、図16には、制御ユニット400Aの詳細な構成について図示している。
The
制御ユニット300Aは、コンピュータで構成されている。制御ユニット300Aのハードウェアは、第1実施形態と同様であり、CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、及びインタフェース306〜309を備えている。CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、インタフェース306〜309は、相互に通信可能にバス310で接続されている。ROM302には、CPU301に制御方法の処理を実行させるためのプログラム330Aが格納されている。
The
なお、第2実施形態では、コンピュータによって読取可能な記録媒体がROM302であり、ROM302にプログラム330Aが記録されているが、これに限定するものではない。プログラム330Aは、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム330Aを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
In the second embodiment, the recording medium that can be read by the computer is the
図16に示す制御ユニット400Aは、コンピュータで構成されている。制御ユニット400Aのハードウェアは、第1実施形態と同様であり、CPU401と、ROM402と、RAM403と、インタフェース406〜409と、を備えている。CPU401、ROM402、RAM403、インタフェース406〜409は、相互に通信可能にバス410で接続されている。ROM402には、CPU401に制御方法の処理を実行させるためのプログラム430Aが格納されている。
The
インタフェース406には、モータ211〜216が接続されている。インタフェース407には、位置センサ231〜236が接続されている。インタフェース408には、トルクセンサ241〜246が接続されている。インタフェース409には、制御ユニット300Aが接続されている。
The
なお、第2実施形態では、コンピュータによって読取可能な記録媒体がROM402であり、ROM402にプログラム430Aが記録されているが、これに限定するものではない。プログラム430Aは、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム430Aを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
In the second embodiment, the recording medium that can be read by a computer is the
図17は、第2実施形態に係るロボット装置の制御システムを示す制御ブロック図である。図15に示す制御ユニット300AのCPU301は、プログラム330Aを実行することにより、図17に示すトルク指令値生成部504A及び位置指令値生成部505として機能する。図16に示す制御ユニット400AのCPU401は、プログラム430Aを実行することにより、図17に示すトルク制御部51A1〜51A6、位置制御部521〜526、切替部531〜536、及びモータ制御部541〜546として機能する。サーボ機構部201〜206は、モータ211〜216、減速機221〜226、位置センサ231〜236、及びトルクセンサ241〜246を有する。
FIG. 17 is a control block diagram showing a control system of the robot device according to the second embodiment. The
トルク指令値生成部504Aは、ロボットモデル503、目標力Fd、目標位置Pd、関節J1〜J6の位置の測定値q1〜q6、関節J1〜J6のトルクの測定値τ1〜τ6が入力される。そして、トルク指令値生成部504Aは、これらの値を用いて、関節J1〜J6に対するトルク指令値τref1〜τref6を求める。トルク指令値生成部504Aは、求めたトルク指令値τref1〜τref6を、トルク制御部51A1〜51A6に出力する。
Torque command
トルク制御部51A1〜51A6は、関節J1〜J6のトルク指令値τref1〜τref6と、関節J1〜J6のトルクの測定値τ1〜τ6との差が小さくなるように、トルク指令値τF1〜τF6を求め、切替部531〜536に出力する。トルク制御部51A1〜51A6の詳細については後述する。なお、位置制御部521〜526、切替部531〜536、モータ制御部541〜546は、第1実施形態と同様の処理を行うため、詳細な説明は省略する。
以上、制御ユニット400Aは、制御ユニット300Aから位置指令値qref1〜qref6を取得した場合、位置指令値qref1〜qref6と測定値q1〜q6との差に基づき、マニピュレータ200の位置を制御する。制御ユニット400Aは、制御ユニット300Aからトルク指令値τref1〜τref6を取得した場合、トルク指令値τref1〜τref6と測定値τ1〜τ6との差に基づき、マニピュレータ200の推力、即ち関節J1〜J6の出力トルクを制御する。
Above, the
ところで、マニピュレータで精密な組立作業を行う場合、マニピュレータを位置制御する位置制御モードにて組立を開始する所定位置にマニピュレータを移動させる。その後、マニピュレータを力制御する力制御モードに切り替えてからマニピュレータに精密組立を行わせることがある。位置制御モードから力制御モードに制御モードを切り替える際、仮に、マニピュレータの関節を駆動するモータへのトルク指令値が急激に変化すると、関節が急峻な動作をし、その結果、マニピュレータのハンドが振動的になることがある。これは、位置制御モードから力制御モードへの切り替え時に、フィードバック値が一旦ゼロにリセットされるためである。 By the way, when performing precise assembly work with a manipulator, the manipulator is moved to a predetermined position where assembly is started in a position control mode in which the position of the manipulator is controlled. After that, the manipulator may be forced to perform precision assembly after switching to the force control mode in which the manipulator is force-controlled. When switching the control mode from the position control mode to the force control mode, if the torque command value to the motor that drives the joint of the manipulator changes suddenly, the joint will move steeply, and as a result, the hand of the manipulator will vibrate. May become a target. This is because the feedback value is once reset to zero when switching from the position control mode to the force control mode.
図18は、第2実施形態に係る第2制御ユニットの処理の一部を示すブロック図である。図18には、トルク制御部51A1〜51A6の処理について図示している。トルク制御部51A1〜51A6は、主に、フィードバック制御部601〜606、フィードフォワード演算部621〜626、及び加算部631〜636として機能する。また、図16に示すRAM403は、第1記憶部611〜616及び第2記憶部711〜716として機能する。以下、各部の機能について説明する。
FIG. 18 is a block diagram showing a part of the processing of the second control unit according to the second embodiment. FIG. 18 illustrates the processing of the torque control units 51A 1 to 51A 6 .
第1記憶部611〜616は、力制御モードに切り替わる前の位置制御モードにおいて、第1測定値である、トルクセンサ241〜246を用いて測定した負荷トルクの測定値τ1〜τ6を、オフセット値τoffset1〜τoffset6として記憶する。即ち、トルク制御部51A1〜51A6は、位置制御部521〜526がマニピュレータ200の位置を制御しているときにマニピュレータ200に生じる負荷の第1測定値に基づくオフセット値τoffset1〜τoffset6を求める。トルク制御部51A1〜51A6は、第1記憶部611〜616に、位置制御時に取得したオフセット値τoffset1〜τoffset6を記憶させておく。第1記憶部611〜616に記憶されたオフセット値τoffset1〜τoffset6は、位置制御モードから力制御モードに切り替えた後、フィードバック値τFB1〜τFB6に加算される。
本実施形態では、マニピュレータ200の位置が目標位置に到達したのをトリガとし、その時の測定値τ1〜τ6をオフセット値τoffset1〜τoffset6とする。なお、オフセット値τoffset1〜τoffset6は、位置制御中、所定の制御周期で随時更新してもよい。この場合、位置制御モードから力制御モードに切り替わるときには、最後に更新された値が第1記憶部611〜616に保持されることとなる。
In this embodiment, a trigger that the position of the
フィードバック制御部601〜606は、力制御モードにおいて、所定の制御周期で、トルク指令値生成部504Aからトルク指令値τref1〜τref6と、トルクセンサ241〜246を用いて測定した負荷トルクの測定値τ1〜τ6と、を取得する。フィードバック制御部601〜606は、トルク指令値τref1〜τref6と、測定値τ1〜τ6との差に基づき、フィードバック値τFB1〜τFB6を算出する。フィードバック制御部601〜606は、フィードバック演算の一例として、比例演算、積分演算、及び微分演算とからなるPID演算を行う。
フィードフォワード演算部621〜626は、力制御時において、トルク指令値τref1〜τref6に応じたフィードフォワード値τFF1〜τFF6を求める。加算部631〜636は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6と、フィードフォワード値τFF1〜τFF6とを加算し、その値を、トルク指令値τF1〜τF6として切替部531〜536に出力する。
フィードフォワード演算部621〜626の処理について具体例を挙げて説明する。ここで、トルク制御部51A1〜51A6が入力を受けるトルク指令値τref1〜τref6のうち、力制御時に最初に入力を受ける指令値(第2指令値)を、トルク指令値τ0ref1〜τ0ref6とする。つまり、トルク指令値生成部504Aは、トルク指令値τ0ref1〜τ0ref6を、マニピュレータ200の推力の制御を開始したときに最初に求める。また、トルク制御部51A1〜51A6がトルク指令値τ0ref1〜τ0ref6の後に入力を受ける指令値(第1指令値)をトルク指令値τ1ref1〜τ1ref6とする。つまり、トルク指令値生成部504Aは、トルク指令値τ0ref1〜τ0ref6の後にトルク指令値τ1ref1〜τ1ref6を求める。よって、トルク指令値τ0ref1〜τ0ref6は、トルク制御部51A1〜51A6において、トルク指令値τ1ref1〜τ1ref6の前に入力を受けるトルク指令値である。
Be described by way of a specific example process of the
フィードフォワード演算部621〜626は、本実施形態では、モデルトルク演算部701〜706と、減算部731〜736とを含む。力制御を行う最初の制御サイクルについて説明する。モデルトルク演算部701〜706は、ロボットモデル503を用いた動力学の計算により、トルク指令値τ0ref1〜τ0ref6に応じた、マニピュレータ200に生じる負荷である負荷トルクの第2計算値である計算値τ0FF1〜τ0FF6を求める。ロボットモデル503には、モータ211〜216の負荷イナーシャJM及び粘性係数DM、並びに減速機221〜226の剛性値K及び減速比Nなどのパラメータが含まれる。本実施形態では、モデルトルク演算部701〜706は、トルク指令値τ0ref1〜τ0ref6と、ロボットモデル503に含まれるパラメータJM、DM、K、Nと、に基づいて、計算値τ0FF1〜τ0FF6を以下の式(2)に従って求める。sはラプラス演算子である。
第2記憶部711〜716は、計算値τ0FF1〜τ0FF6を、オフセット値である基準値τ0FF1〜τ0FF6として記憶する。第2記憶部711〜716は、力制御が継続される間、計算値τ0FF1〜τ0FF6を基準値τ0FF1〜τ0FF6として保持する。力制御モードから位置制御モードに切り替わったときには、第2記憶部711〜716は、リセットされる。
The
減算部731〜736は、計算値τ0FF1〜τ0FF6から基準値τ0FF1〜τ0FF6を引いた値を、フィードフォワード値τFF1〜τFF6とし、加算部631〜636に出力する。したがって、本実施形態では、フィードフォワード値τFF1〜τFF6の初期値はゼロである。
次に、最初の制御サイクルの次の制御サイクル以降について説明する。モデルトルク演算部701〜706は、ロボットモデル503を用いた動力学の計算により、トルク指令値τ1ref1〜τ1ref6に応じた、マニピュレータ200に生じる負荷である負荷トルクの第1計算値である計算値τ1FF1〜τ1FF6を求める。本実施形態では、モデルトルク演算部701〜706は、トルク指令値τ1ref1〜τ1ref6と、ロボットモデル503に含まれるパラメータJM、DM、K、Nと、に基づいて、計算値τ1FF1〜τ1FF6を以下の式(3)に従って求める。減算部731〜736は、計算値τ1FF1〜τ1FF6から基準値τ0FF1〜τ0FF6を引いた値を、フィードフォワード値τFF1〜τFF6とし、加算部631〜636に出力する。
つまり、マニピュレータ200の関節J1〜J6において、作用する負荷の変動で捩れ量が変動すると、ハンド252が振動する。本実施形態では、力制御を開始する時点での負荷を基準とし、負荷変動分(2つの計算値の差分)をフィードフォワード値τFF1〜τFF6とすることで、力制御の応答性を高め、その結果、ハンド252の振動が抑制される。
That is, in the joint J 1 through J 6 manipulator 200, the torsion amount of variation of the load applied is changed, the
なお、第2実施形態においては、第2記憶部711〜716に記憶される基準値は、マニピュレータ200の推力の制御を開始して最初に求められる初期値である計算値τ0FF1〜τ0FF6であるのが好ましいが、これに限定するものではない。例えば、初期値の次の値などを用いてもよい。即ち、基準値は、ある計算値τ1FF1〜τ1FF6よりも前に、トルク指令値τ1FF1〜τ1FF6よりも前のトルク指令値に応じて求められた、マニピュレータ200に生じる負荷の計算値であればよい。
In the second embodiment, the reference value stored in the
図19は、第2実施形態に係る物品の製造方法を説明するフローチャートである。なお、第2実施形態では、第1実施形態と同様、図10(a)に示すように、ワークW1をハンド252に把持させ、ワークW1をワークW2に組み付けることで物品が製造されるものとする。
FIG. 19 is a flowchart illustrating a method of manufacturing an article according to a second embodiment. In the second embodiment, as in the first embodiment, as shown in FIG. 10A, the work W1 is held by the
まず、制御部500Aは、マニピュレータ200の位置制御を開始し(S71)、力制御を開始する位置、即ち図10(a)に示す教示点P1に到達するまで、位置制御でマニピュレータ200を駆動する(S72)。
First, the
マニピュレータ200が力制御を開始する位置まで駆動したかどうかを判定する(S73)。制御部500Aは、マニピュレータ200がその位置まで移動した場合(S73:Yes)、当該位置におけるトルクの測定値τ1〜τ6を取得する。制御部500Aは、図18に示す第1記憶部611〜616に、測定値τ1〜τ6をオフセット値τoffset1〜τoffset6として記憶させる(S74)。
It is determined whether or not the
次に、制御部500Aは、位置制御モードから力制御モードへマニピュレータ200を制御する制御モードを切り替え(S75)、マニピュレータ200の力制御を開始する(S76)。力制御開始後、制御部500Aは、トルク指令値τ0ref1〜τ0ref6を入力として、関節J1〜J6における負荷トルクの計算値τ0FF1〜τ0FF6を基準値として第2記憶部711〜716に記憶させる(S77)。
Next, the
制御部500Aは、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6とフィードフォワード値τFF1〜τFF6とを加算した値に基づいて、マニピュレータ200の推力を制御する。これにより、制御部500Aは、マニピュレータ200のハンド252に働く力が目標力となるように駆動する(S78)。
制御部500Aは、駆動が終了したかどうか、つまり組付けが完了したかどうかを判定する(S79)。制御部500Aは、駆動が終了していない場合(S79:No)、組付けが完了するまで、ステップS78及びS79のループを繰り返し実行する。制御部500Aは、駆動終了と判断したら(S79:Yes)、制御処理を終了する。
The
以上、第2実施形態によれば、位置制御モードから力制御モードへ切り替わる直前に、第1記憶部611〜616にトルクの測定値τ1〜τ6が、オフセット値τoffset1〜τoffset6として記憶される。力制御モードに切り替わった後は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6が加算される。これにより、位置制御モードから力制御モードに制御が切り替わった際に、トルク指令値τM1〜τM6の連続性が補償される。モータトルク指令値τM1〜τM6の連続性が補償されるので、モータへ供給される電流Cur1〜Cur6が急峻に変動するのが防止される。よって、マニピュレータ200の各関節において急峻な動作が防止され、マニピュレータ200のハンド252が振動するのを防止することができる。特に、マニピュレータ200を用いて精密な組立て作業を行う場合、マニピュレータ200のハンド252の振動が防止されるので、組立ワーク又は被組立ワークが変形したり破壊したりするのを防止することができる。また、組立不良を低減することができ、リトライ動作などが少なくなり、物品の生産性が向上する。
As described above, according to the second embodiment, immediately before the switching from the position control mode to a force control mode, the measured value tau 1 ~Tau 6 torque in the
また、第2実施形態によれば、フィードバック値τFB1〜τFB6に、フィードフォワード値τFF1〜τFF6が加算されるので、マニピュレータ200における関節J1〜J6の制御の応答性が向上する。このフィードフォワード値τFF1〜τFF6は、負荷トルクの計算値τ1FF1〜τ1FF6から、オフセットしている分として基準値τ0FF1〜τ0FF6が除去されることで求められるので、トルク指令値τM1〜τM6が急峻に変動するのが防止される。したがって、制御モードの切替時にハンド252が振動するのを効果的に防止することができる。以上、第2実施形態によれば、位置制御モードから力制御モードへ切り替わる際のマニピュレータ200の制御性が向上する。
Further, according to the second embodiment, the feedback value τ FB1 ~τ FB6, since the feedforward value τ FF1 ~τ FF6 is added, the responsiveness of the control of the joint J 1 through J 6 in the
図20は、第2実施形態における実験結果を示すグラフである。図20において、横軸は時間、縦軸はトルクである。図20には、関節J1のトルク指令値τM1と、関節J1の負荷トルクの測定値τ1について図示している。 FIG. 20 is a graph showing the experimental results in the second embodiment. In FIG. 20, the horizontal axis is time and the vertical axis is torque. FIG. 20 illustrates the torque command value τ M1 of the joint J1 and the measured value τ 1 of the load torque of the joint J1.
制御モードの切り替え時、トルク指令値τM1は、トルク指令値τq1からトルク指令値τF1へ切り替わるが、急峻な変化をさせることなく滑らかに切り替わっている。このため、制御モードを切り替えた後のトルクの測定値τ1の振動が小さい。また、力制御時は、フィードバック値τFB1にフィードフォワード値τFF1を加算しているため、測定値τ1が応答性良く、トルク指令値τM1に追従していることが確認できる。 When the control mode is switched, the torque command value τ M1 switches from the torque command value τ q1 to the torque command value τ F1 , but the torque command value τ M1 switches smoothly without making a sharp change. Therefore, the vibration of the measured torque value τ 1 after switching the control mode is small. Further, during force control, since the feedforward value τ FF1 is added to the feedback value τ FB 1 , it can be confirmed that the measured value τ 1 has good responsiveness and follows the torque command value τ M1 .
以上より、第2実施形態によれば、位置制御モードから力制御モードに制御モードを切り替える際において、制御モードの切り替え時のトルク指令値τM1〜τM6の連続性を補償し、かつ力制御モード時の応答性を向上させることができる。これにより、制御モードを切り替える場合においても、マニピュレータ200の高精度かつ高応答な力制御が可能となる。
From the above, according to the second embodiment, when the control mode is switched from the position control mode to the force control mode, the continuity of the torque command values τ M1 to τ M6 at the time of switching the control mode is compensated and the force control is performed. The responsiveness in the mode can be improved. This enables highly accurate and highly responsive force control of the
[第3実施形態]
次に、第3実施形態のロボット装置について説明する。なお、ロボット装置の構成は、第2実施形態と同様であるため、説明を省略する。
[Third Embodiment]
Next, the robot device of the third embodiment will be described. Since the configuration of the robot device is the same as that of the second embodiment, the description thereof will be omitted.
第2実施形態では、第2記憶部711〜716に記憶させておく基準値を、モデルトルク演算部701〜706にて算出した値の初期値とした。制御モードの切り替え直後は、フィードフォワード値τFF1〜τFF6はゼロとなる。よって、この場合、トルク指令値τM1〜τM6は、僅かな期間ではあるが一定値となり、滑らかに推移しない。
In the second embodiment, the reference value should be stored in the
図21は、第3実施形態に係る第2制御ユニットの処理の一部を示すブロック図である。第3実施形態では、モデルトルク演算部701〜706は、力制御実行の前の位置制御実行時に、第2計算値を求める演算処理を並行して行い、この値を第2記憶部711〜716に記憶させておく。 FIG. 21 is a block diagram showing a part of the processing of the second control unit according to the third embodiment. In the third embodiment, the model torque calculation unit 70 1 to 70 6, the position control executed before the force control execution, carried out in parallel arithmetic processing for obtaining the second calculated value, this value second storage unit 71 advance and stored in 1-71 6.
具体的には、トルク指令値生成部504Aは、位置制御が実行されている時に、力制御が実行される時の第1指令値であるトルク指令値τ1ref1〜τ1ref6よりも前に、第2指令値であるトルク指令値τ2ref1〜τ2ref6を求める。トルク指令値生成部504Aは、位置制御中に目標力Fd、目標位置Pd、測定値τ1〜τ6、及び測定値q1〜q6を取得し、トルク指令値τ2ref1〜τ2ref6を、取得したこれら値に基づいて生成する。
Specifically, the torque command
トルク指令値生成部504Aは、位置制御が実行されている時に、トルク指令値τ2ref1〜τ2ref6をモデルトルク演算部701〜706に出力する。そして、モデルトルク演算部701〜706は、取得したトルク指令値τ2ref1〜τ2ref6に応じた負荷トルクの第2計算値である計算値τ2FF1〜τ2FF6を求める。そして、モデルトルク演算部701〜706は、この計算値τ2FF1〜τ2FF6を基準値τ2FF1〜τ2FF6として第2記憶部711〜716に記憶させる。なお、位置制御時、フィードバック制御部601〜606、減算部731〜736、及び加算部631〜636は、演算処理を行う必要がないため行わない。
Torque command
力制御を実行するときには、フィードバック制御部601〜606は、トルク指令値τ1ref1〜τ1ref6と測定値τ1〜τ6との差に基づき、フィードバック値τFB1〜τFB6を求める。モデルトルク演算部701〜706は、トルク指令値τ1ref1〜τ1ref6に応じた第1計算値である計算値τ1FF1〜τ1FF6を求める。減算部731〜736は、計算値τ1FF1〜τ1FF6から基準値τ2FF1〜τ2FF6を減算して、フィードフォワード値τFF1〜τFF6を求める。そして、加算部631〜636は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6、及びフィードフォワード値τFF1〜τFF6を加算することで、トルク指令値τF1〜τF6を求める。
When performing power control, the
これにより、力制御モードに切り替え直後であっても、トルク指令値τF1〜τF6、即ち図17に示すトルク指令値τM1〜τM6は、時間変化に対して滑らかに推移する。その結果、制御モード切り替え時にマニピュレータ200のハンド252が振動するのをさらに低減することができる。
As a result, even immediately after switching to the force control mode, the torque command values τ F1 to τ F6 , that is, the torque command values τ M1 to τ M6 shown in FIG. 17 change smoothly with time. As a result, it is possible to further reduce the vibration of the
図22は、第3実施形態における実験結果を示すグラフである。なお、図22のグラフには、第2実施形態における実験結果も図示している。図22には、関節J1のトルク指令値τM1を図示している。第1実施形態におけるトルク指令値τM1の時間変化率は、位置制御モードにおいては一定であるが、位置制御モードから力制御モードに切り替えた直後、一定とならずに変化する。一方、第2実施形態におけるトルク指令値τM1の時間変化率は、位置制御モードから力制御モードに切り替えた直後であっても、一定となる。 FIG. 22 is a graph showing the experimental results in the third embodiment. The graph of FIG. 22 also shows the experimental results of the second embodiment. Figure 22 illustrates a torque command value tau M1 joints J 1. The time change rate of the torque command value τ M1 in the first embodiment is constant in the position control mode, but does not change immediately after switching from the position control mode to the force control mode. On the other hand, the time change rate of the torque command value τ M1 in the second embodiment is constant even immediately after switching from the position control mode to the force control mode.
第3実施形態によれば、位置制御モードから力制御モードに制御モードを切り替える際において、制御モードの切替時のトルク指令値τM1〜τM6を連続かつ滑らかにすることができる。その結果、制御モードの切替時に、マニピュレータ200のハンド252の振動をさらに抑制でき、高精度かつ高応答な力制御が可能となる。
According to the third embodiment, when the control mode is switched from the position control mode to the force control mode, the torque command values τ M1 to τ M6 at the time of switching the control mode can be continuously and smoothly made. As a result, the vibration of the
[第4実施形態]
第4実施形態のロボット装置について説明する。図23は、第4実施形態に係るロボット装置の概略構成を示す斜視図である。第4実施形態のロボット装置100Bにおいて、第1、第2又は第3実施形態のロボット装置と同様の構成については、同一符号を付して詳細な説明は省略する。図23に示すように、ロボット装置100Bは、第1実施形態と同様の構成のマニピュレータ200と、マニピュレータ200を制御する制御部500Bを有する制御装置1000Bと、を備えている。また、ロボット装置100Bは、制御装置1000Bに教示データを送信する教示装置としての教示ペンダント600を備えている。
[Fourth Embodiment]
The robot device of the fourth embodiment will be described. FIG. 23 is a perspective view showing a schematic configuration of the robot device according to the fourth embodiment. In the
制御部500Bは、第1実施形態と同様の制御ユニット300と、第2又は第3実施形態と同様の制御ユニット400Aと、を有する。即ち、制御ユニット300は、第1実施形態において説明した処理を行い、制御ユニット400Aは、第2又は第3実施形態において説明した処理を行う。
The
制御ユニット300は、制御ユニット400Aがマニピュレータ200の位置を制御しているときに、補正値τcomp1〜τcomp6(図7)を求めておく。制御ユニット300は、制御ユニット400Aにマニピュレータ200の推力を制御させる際に、教示データである力教示データ501及び位置教示データ502に基づく仮の指令値であるトルク指令値τFd1〜τFd6を求める。そして、制御ユニット300は、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正することでトルク指令値τref1〜τref6を求めて、制御ユニット400Aにトルク指令値τref1〜τref6を出力する。
The
一方、制御ユニット400Aは、マニピュレータ200の位置を制御しているときに、図18に示すように、オフセット値τoffset1〜τoffset6を求めておく。制御ユニット400Aは、マニピュレータ200の推力を制御する際に、フィードバック値τFB1〜τFB6及びフィードフォワード値τFF1〜τFF6を求める。そして、制御ユニット400Aは、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6と、フィードフォワード値τFF1〜τFF6と、を加算して、トルク指令値τF1〜τF6を生成する。制御ユニット400Aは、このトルク指令値τF1〜τF6に基づいてマニピュレータ200の推力を制御する。
On the other hand, the
このように、第4実施形態では、制御部500Bが、第1実施形態で説明した制御処理と、第2又は第3実施形態で説明した制御処理とを組み合わせて制御処理を実行することで、マニピュレータ200の制御性が更に向上する。
As described above, in the fourth embodiment, the
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。 The present invention is not limited to the embodiments described above, and many modifications can be made within the technical idea of the present invention. Moreover, the effects described in the embodiments are merely a list of the most preferable effects arising from the present invention, and the effects according to the present invention are not limited to those described in the embodiments.
上述の実施形態では、ロボットアーム251が垂直多関節のロボットアームである場合について説明したが、これに限定するものではない。例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
In the above-described embodiment, the case where the
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other Examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
100…ロボット装置
200…マニピュレータ
300…制御ユニット(第1制御ユニット)
400…制御ユニット(第2制御ユニット)
500…制御部
1000…制御装置
100 ...
400 ... Control unit (second control unit)
500 ...
Claims (18)
前記制御部は、
前記マニピュレータの位置を制御しているときに、前記マニピュレータに生じる負荷の第1測定値を取得し、前記マニピュレータのモデルデータを用いた動力学の計算により、前記マニピュレータに生じる負荷の計算値を求め、前記第1測定値と前記計算値との差に基づいて補正値を求めておき、
前記マニピュレータの推力を制御する際に、教示データに基づく仮の指令値を求め、前記仮の指令値を前記補正値で補正することで指令値を求め、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づき、前記マニピュレータの推力を制御することを特徴とする制御装置。 Equipped with a control unit that controls the position or thrust of the manipulator
The control unit
While controlling the position of the manipulator, the first measured value of the load generated on the manipulator is acquired, and the calculated value of the load generated on the manipulator is obtained by the calculation of kinetics using the model data of the manipulator. , The correction value is obtained based on the difference between the first measured value and the calculated value.
When controlling the thrust of the manipulator, a tentative command value based on the teaching data is obtained, the tentative command value is corrected by the correction value to obtain the command value, and the second measured value of the load generated on the manipulator is obtained. The control device is characterized in that the thrust of the manipulator is controlled based on the difference between the command value and the second measured value.
前記指令値を出力する第1制御ユニットと、
前記第1制御ユニットから前記指令値を取得し、前記指令値と前記第2測定値との差に基づき、前記マニピュレータの推力を制御する第2制御ユニットと、を含むことを特徴とする請求項1乃至4のいずれか1項に記載の制御装置。 The control unit
The first control unit that outputs the command value and
A claim comprising a second control unit that acquires the command value from the first control unit and controls the thrust of the manipulator based on the difference between the command value and the second measured value. The control device according to any one of 1 to 4.
前記制御部は、
前記マニピュレータの位置を制御しているときに前記マニピュレータに生じる負荷の第1測定値に基づくオフセット値を求めておき、
前記マニピュレータの推力を制御する際に、教示データに基づいて指令値を求め、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づいてフィードバック値を求め、前記フィードバック値に、前記オフセット値と、前記指令値に応じたフィードフォワード値と、を加算した値に基づいて、前記マニピュレータの推力を制御することを特徴とする制御装置。 Equipped with a control unit that controls the position or thrust of the manipulator
The control unit
An offset value based on the first measured value of the load generated on the manipulator while controlling the position of the manipulator is obtained.
When controlling the thrust of the manipulator, a command value is obtained based on the teaching data, a second measured value of the load generated on the manipulator is acquired, and feedback is provided based on the difference between the command value and the second measured value. A control device for obtaining a value and controlling the thrust of the manipulator based on a value obtained by adding the offset value and the feed forward value according to the command value to the feedback value.
前記基準値は、前記第1計算値よりも前に、前記第1指令値よりも前の第2指令値に応じて求められた、前記マニピュレータに生じる負荷の第2計算値であることを特徴とする請求項7に記載の制御装置。 The calculated value is the first calculated value, the command value is the first command value, and the like.
The reference value is a second calculated value of the load generated in the manipulator, which is obtained in response to the second command value before the first command value before the first calculated value. The control device according to claim 7.
前記指令値を出力する第1制御ユニットと、
前記第1制御ユニットから前記指令値を取得して前記マニピュレータの推力を制御する第2制御ユニットと、を含むことを特徴とする請求項6乃至9のいずれか1項に記載の制御装置。 The control unit
The first control unit that outputs the command value and
The control device according to any one of claims 6 to 9, further comprising a second control unit that acquires the command value from the first control unit and controls the thrust of the manipulator.
前記第1制御ユニットの指令に基づいてマニピュレータの位置又は推力を制御する第2制御ユニットと、を備え、
前記第1制御ユニットは、
前記第2制御ユニットが前記マニピュレータの位置を制御しているときに、前記マニピュレータに生じる負荷の第1測定値を取得し、前記マニピュレータのモデルデータを用いた動力学の計算により、前記マニピュレータに生じる負荷の計算値を求め、前記第1測定値と前記計算値との差に基づいて補正値を求めておき、
前記第2制御ユニットに前記マニピュレータの推力を制御させる際に、教示データに基づく仮の指令値を求め、前記仮の指令値を前記補正値で補正することで指令値を求めて、前記第2制御ユニットに前記指令値を出力し、
前記第2制御ユニットは、
前記マニピュレータの位置を制御しているときに前記第1測定値に基づくオフセット値を求めておき、
前記マニピュレータの推力を制御する際に、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づいてフィードバック値を求め、前記フィードバック値に、前記オフセット値と、前記指令値に応じたフィードフォワード値と、を加算した値に基づいて前記マニピュレータの推力を制御することを特徴とする制御装置。 The first control unit and
A second control unit that controls the position or thrust of the manipulator based on the command of the first control unit is provided.
The first control unit is
When the second control unit controls the position of the manipulator, the first measured value of the load generated on the manipulator is acquired, and the calculation of kinetics using the model data of the manipulator results in the manipulator. The calculated value of the load is obtained, and the correction value is obtained based on the difference between the first measured value and the calculated value.
When the second control unit controls the thrust of the manipulator, a tentative command value based on the teaching data is obtained, and the tentative command value is corrected by the correction value to obtain the command value. The command value is output to the control unit,
The second control unit is
An offset value based on the first measured value is obtained while controlling the position of the manipulator.
When controlling the thrust of the manipulator, the second measured value of the load generated in the manipulator is acquired, the feedback value is obtained based on the difference between the command value and the second measured value, and the feedback value is used as the above. A control device characterized in that the thrust of the manipulator is controlled based on a value obtained by adding an offset value and a feedback value according to the command value.
前記マニピュレータと、を備えるロボット装置。 The control device according to any one of claims 1 to 11.
A robot device including the manipulator.
前記制御部が、前記マニピュレータの位置を制御しているときに、前記マニピュレータに生じる負荷の第1測定値を取得し、前記マニピュレータのモデルデータを用いた動力学の計算により、前記マニピュレータに生じる負荷の計算値を求め、前記測定値と前記計算値との差に基づいて補正値を求めておき、
前記制御部が、前記マニピュレータの推力を制御する際に、教示データに基づく仮の指令値を求め、前記仮の指令値を前記補正値で補正することで指令値を求め、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づき、前記マニピュレータの推力を制御することを特徴とする制御方法。 The control unit is a control method that controls the position or thrust of the manipulator.
When the control unit controls the position of the manipulator, the first measured value of the load generated on the manipulator is acquired, and the load generated on the manipulator is calculated by kinetic calculation using the model data of the manipulator. The calculated value of is obtained, and the correction value is obtained based on the difference between the measured value and the calculated value.
When the control unit controls the thrust of the manipulator, it obtains a tentative command value based on the teaching data, corrects the tentative command value with the correction value to obtain the command value, and causes a load on the manipulator. A control method characterized in that the thrust of the manipulator is controlled based on the difference between the command value and the second measured value.
前記制御部が、
前記マニピュレータの位置を制御しているときに前記マニピュレータに生じる負荷の第1測定値に基づくオフセット値を求めておき、
前記マニピュレータの推力を制御する際に、教示データに基づいて指令値を求め、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づいてフィードバック値を求め、前記フィードバック値に、前記オフセット値と、前記指令値に応じたフィードフォワード値と、を加算した値に基づいて、前記マニピュレータの推力を制御することを特徴とする制御方法。 The control unit is a control method that controls the position or thrust of the manipulator.
The control unit
An offset value based on the first measured value of the load generated on the manipulator while controlling the position of the manipulator is obtained.
When controlling the thrust of the manipulator, a command value is obtained based on the teaching data, a second measured value of the load generated on the manipulator is acquired, and feedback is provided based on the difference between the command value and the second measured value. A control method characterized in that a value is obtained, and the thrust of the manipulator is controlled based on a value obtained by adding the offset value and the feedforward value according to the command value to the feedback value.
前記第1制御ユニットが、
前記第2制御ユニットが前記マニピュレータの位置を制御しているときに、前記マニピュレータに生じる負荷の第1測定値を取得し、前記マニピュレータのモデルデータを用いた動力学の計算により、前記マニピュレータに生じる負荷の計算値を求め、前記第1測定値と前記計算値との差に基づいて補正値を求めておき、
前記第2制御ユニットに前記マニピュレータの推力を制御させる際に、教示データに基づく仮の指令値を求め、前記仮の指令値を前記補正値で補正することで指令値を求めて、前記第2制御ユニットに前記指令値を出力し、
前記第2制御ユニットが、
前記マニピュレータの位置を制御しているときに前記第1測定値に基づくオフセット値を求めておき、
前記マニピュレータの推力を制御する際に、前記マニピュレータに生じる負荷の第2測定値を取得し、前記指令値と前記第2測定値との差に基づいてフィードバック値を求め、前記フィードバック値に、前記オフセット値と、前記指令値に応じたフィードフォワード値と、を加算した値に基づいて前記マニピュレータの推力を制御することを特徴とする制御方法。 It is a control method by the first control unit and the second control unit that controls the position or thrust of the manipulator based on the command of the first control unit.
The first control unit
When the second control unit controls the position of the manipulator, the first measured value of the load generated on the manipulator is acquired, and the calculation of kinetics using the model data of the manipulator results in the manipulator. The calculated value of the load is obtained, and the correction value is obtained based on the difference between the first measured value and the calculated value.
When the second control unit controls the thrust of the manipulator, a tentative command value based on the teaching data is obtained, and the tentative command value is corrected by the correction value to obtain the command value. The command value is output to the control unit,
The second control unit
An offset value based on the first measured value is obtained while controlling the position of the manipulator.
When controlling the thrust of the manipulator, the second measured value of the load generated in the manipulator is acquired, the feedback value is obtained based on the difference between the command value and the second measured value, and the feedback value is used as the above. A control method characterized in that the thrust of the manipulator is controlled based on a value obtained by adding an offset value and a feedforward value according to the command value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019054335A JP7391523B2 (en) | 2019-03-22 | 2019-03-22 | Control device, robot system, control method, article manufacturing method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019054335A JP7391523B2 (en) | 2019-03-22 | 2019-03-22 | Control device, robot system, control method, article manufacturing method, program, and recording medium |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020151824A true JP2020151824A (en) | 2020-09-24 |
JP2020151824A5 JP2020151824A5 (en) | 2022-03-30 |
JP7391523B2 JP7391523B2 (en) | 2023-12-05 |
Family
ID=72557147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019054335A Active JP7391523B2 (en) | 2019-03-22 | 2019-03-22 | Control device, robot system, control method, article manufacturing method, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7391523B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63162182A (en) * | 1986-12-25 | 1988-07-05 | 三浦 宏文 | Method of controlling flexible manipulator |
JPH0691568A (en) * | 1992-09-16 | 1994-04-05 | Toshiba Corp | Robot control device |
JPH08118275A (en) * | 1994-10-19 | 1996-05-14 | Toyota Central Res & Dev Lab Inc | Controller for manipulator |
JP2017056525A (en) * | 2015-09-17 | 2017-03-23 | キヤノン株式会社 | Robot device robot control method, program, recording medium, and method of manufacturing assembling component |
-
2019
- 2019-03-22 JP JP2019054335A patent/JP7391523B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63162182A (en) * | 1986-12-25 | 1988-07-05 | 三浦 宏文 | Method of controlling flexible manipulator |
JPH0691568A (en) * | 1992-09-16 | 1994-04-05 | Toshiba Corp | Robot control device |
JPH08118275A (en) * | 1994-10-19 | 1996-05-14 | Toyota Central Res & Dev Lab Inc | Controller for manipulator |
JP2017056525A (en) * | 2015-09-17 | 2017-03-23 | キヤノン株式会社 | Robot device robot control method, program, recording medium, and method of manufacturing assembling component |
Also Published As
Publication number | Publication date |
---|---|
JP7391523B2 (en) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10486309B2 (en) | Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component | |
JP6700669B2 (en) | Control method, robot device, program, recording medium, and article manufacturing method | |
US20150045954A1 (en) | Robot apparatus and robot controlling method | |
JP7080649B2 (en) | Control method, manufacturing method of goods, control program, recording medium, robot system, control device | |
JP7091422B2 (en) | Robot device, manufacturing method of goods, control method of robot device, program, recording medium, drive device, control method of drive device | |
JPH11502776A (en) | Apparatus and method for calibration of multi-axis industrial robot | |
JP2018114607A (en) | Robot control device, robot system, robot control method, program, and manufacturing method of recording medium and article | |
JP5916583B2 (en) | Weaving control device for articulated robot | |
Miermeister et al. | Auto-calibration method for overconstrained cable-driven parallel robots | |
JP4976883B2 (en) | Manipulator system | |
JP2016083713A (en) | Robot control method, robot device, program, recording medium and assembly part manufacturing method | |
JP2017209762A (en) | Robot device, robot control method, program, recording medium and production method of article | |
WO2018212307A1 (en) | Speed reducer angular transmission error identification system and speed reducer angular transmission error identification method | |
JP6652310B2 (en) | Robot system, robot arm control method, program, recording medium, and article manufacturing method | |
JP2017056525A (en) | Robot device robot control method, program, recording medium, and method of manufacturing assembling component | |
JP2020015124A (en) | Robot control method, article manufacturing method, robot control device, robot, program and recording medium | |
JP4498061B2 (en) | Welding robot controller | |
US11597083B2 (en) | Robot apparatus, robot system, control method of robot apparatus, product manufacturing method using robot apparatus, and storage medium | |
JP2004025387A (en) | Loading weight of articulated robot and automatic calculation method for position of gravity center of loading weight | |
JP2020151824A (en) | Control device, robot device, control method, article manufacturing method, program, and recording medium | |
JP6896824B2 (en) | Robot devices, robot systems, control methods for robot devices, manufacturing methods for articles using robot devices, information processing devices, information processing methods, control programs and recording media | |
CN112512758B (en) | Deflection amount estimating device, robot control device, and deflection amount estimating method | |
JP2019214105A (en) | Robot control apparatus and robot control method | |
Kilicaslan et al. | Control of constrained spatial three-link flexible manipulators | |
Barjuei | Hybrid position/force control of a spatial compliant mechanism |
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 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230801 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231122 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7391523 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |