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 PDF

Info

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
Application number
JP2019054335A
Other languages
Japanese (ja)
Other versions
JP2020151824A5 (en
JP7391523B2 (en
Inventor
智洋 泉
Tomohiro Izumi
智洋 泉
健太 笹嶋
Kenta Sasajima
健太 笹嶋
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 JP2019054335A priority Critical patent/JP7391523B2/en
Publication of JP2020151824A publication Critical patent/JP2020151824A/en
Publication of JP2020151824A5 publication Critical patent/JP2020151824A5/en
Application granted granted Critical
Publication of JP7391523B2 publication Critical patent/JP7391523B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

To improve controllability of a manipulator.SOLUTION: A correction value calculation section 604 acquires measured values τ1-τ6 of a load generated in a manipulator, during positional control of the manipulator. A dynamics calculation section 602 obtains calculated values τ1^-τ6^ of the load generated in the manipulator, according to dynamics calculation using a robot model 503. The correction value calculation section 604 obtains correction values τcomp1-τcomp6 on the basis of differences between the measured values τ1-τ6 and the calculated values τ1^-τ6^. An impedance control section 601 obtains torque command values τFd1-τFd6 based on teaching data, in controlling thrust of the manipulator. A command value correction section 603 obtains command values τref1-τref6 by correcting the torque command values τFd1-τFd6 with the correction values τcomp1-τcomp6. A second control unit controls thrust of the manipulator on the basis of differences between the command values τref1-τref6 and the measured values τ1-τ6.SELECTED DRAWING: Figure 7

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. Patent Document 1 discloses a technique for feedback-controlling a manipulator joint based on a difference between a torque command value and a measured torque value as force control of the manipulator.

特開2017−56549号公報JP-A-2017-56549

しかし、マニピュレータを力制御しているときにマニピュレータが振動するなど、マニピュレータの挙動が不安定になることがあった。マニピュレータに精密な作業を行わせる場合、マニピュレータの挙動が不安定になると精密な作業に支障をきたすことがあるため、改善が求められていた。 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実施形態に係るロボット装置の概略構成を示す斜視図である。It is a perspective view which shows the schematic structure of the robot apparatus which concerns on 1st Embodiment. 第1実施形態に係る制御装置の構成を示すブロック図である。It is a block diagram which shows the structure of the control device which concerns on 1st Embodiment. 第1実施形態に係る制御装置の構成を示すブロック図である。It is a block diagram which shows the structure of the control device which concerns on 1st Embodiment. 第1実施形態に係るロボット装置の制御システムを示す制御ブロック図である。It is a control block diagram which shows the control system of the robot apparatus which concerns on 1st Embodiment. 第1実施形態における制御装置の処理のフローチャートである。It is a flowchart of the process of the control device in 1st Embodiment. 第1実施形態における制御装置の処理のフローチャートである。It is a flowchart of the process of the control device in 1st Embodiment. 第1実施形態に係る第1制御ユニットのブロック図である。It is a block diagram of the 1st control unit which concerns on 1st Embodiment. 第1実施形態におけるロボットアームの概略図である。It is the schematic of the robot arm in 1st Embodiment. (a)は、第1実施形態における現実のマニピュレータの動力学パラメータの一例を示す図である。(b)は、第1実施形態におけるロボットモデルの動力学パラメータの一例を示す図である。(A) is a figure which shows an example of the dynamic parameters of the actual manipulator in the 1st Embodiment. (B) is a figure which shows an example of the dynamics parameter of the robot model in 1st Embodiment. (a)及び(b)は、第1実施形態におけるマニピュレータによる組付作業を説明するためのマニピュレータの模式図である。(A) and (b) are schematic views of the manipulator for explaining the assembling work by the manipulator in the first embodiment. (a)は、第1実施形態における教示点のパラメータを示す図である。(b)は、第1実施形態における力制御の機械インピーダンスのパラメータを示す図である。(A) is a figure which shows the parameter of the teaching point in 1st Embodiment. (B) is a figure which shows the parameter of the mechanical impedance of force control in 1st Embodiment. 第1実施形態に係る物品の製造方法を説明するフローチャートである。It is a flowchart explaining the manufacturing method of the article which concerns on 1st Embodiment. (a)及び(b)は、第1実施形態における実験結果を示すグラフである。(c)は、比較例における実験結果を示すグラフである。(A) and (b) are graphs showing the experimental results in the first embodiment. (C) is a graph showing the experimental results in the comparative example. 第2実施形態に係るロボット装置の概略構成を示す斜視図である。It is a perspective view which shows the schematic structure of the robot apparatus which concerns on 2nd Embodiment. 第2実施形態に係る制御装置の構成を示すブロック図である。It is a block diagram which shows the structure of the control device which concerns on 2nd Embodiment. 第2実施形態に係る制御装置の構成を示すブロック図である。It is a block diagram which shows the structure of the control device which concerns on 2nd Embodiment. 第2実施形態に係るロボット装置の制御システムを示す制御ブロック図である。It is a control block diagram which shows the control system of the robot apparatus which concerns on 2nd Embodiment. 第2実施形態に係る第2制御ユニットのブロック図である。It is a block diagram of the 2nd control unit which concerns on 2nd Embodiment. 第2実施形態に係る物品の製造方法を説明するフローチャートである。It is a flowchart explaining the manufacturing method of the article which concerns on 2nd Embodiment. 第2実施形態における実験結果を示すグラフである。It is a graph which shows the experimental result in 2nd Embodiment. 第3実施形態に係る第2制御ユニットを示すブロック図である。It is a block diagram which shows the 2nd control unit which concerns on 3rd Embodiment. 第3実施形態における実験結果を示すグラフである。It is a graph which shows the experimental result in 3rd Embodiment. 第4実施形態に係るロボット装置の概略構成を示す斜視図である。It is a perspective view which shows the schematic structure of the robot apparatus which concerns on 4th Embodiment.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第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 robot device 100 includes a manipulator 200 and a control device 1000 having a control unit 500 that controls the position or thrust of the manipulator 200. Further, the robot device 100 includes a teaching pendant 600 as a teaching device for transmitting teaching data to the control device 1000. The teaching pendant 600 is operated by an operator and is used to specify the operation of the manipulator 200 and the control device 1000.

マニピュレータ200は、ロボットアーム251と、マニピュレータ200の先端部を構成する、エンドエフェクタの一例であるハンド252と、を備える。ロボットアーム251は、本実施形態では垂直多関節のロボットアームである。 The manipulator 200 includes a robot arm 251 and a hand 252, which is an example of an end effector and constitutes the tip of the manipulator 200. The robot arm 251 is a vertically articulated robot arm in this embodiment.

ロボットアーム251の先端部には、ハンド252が取り付けられている。以下、エンドエフェクタがハンド252である場合について説明するが、これに限定するものではなく、ツール等であってもよい。ロボットアーム251の基端部は、台座Bに固定されている。ハンド252は、部品やツール等のワークを把持するものである。 A hand 252 is attached to the tip of the robot arm 251. Hereinafter, the case where the end effector is the hand 252 will be described, but the present invention is not limited to this, and a tool or the like may be used. The base end portion of the robot arm 251 is fixed to the pedestal B. The hand 252 grips a work such as a part or a tool.

マニピュレータ200、即ちロボットアーム251は、1つ以上の関節を有していればよく、本実施形態では、複数の関節、例えば6つの関節J〜Jを有している。ロボットアーム251は、各関節J〜Jを各軸A〜Aまわりに回転駆動するための複数(6つ)のサーボ機構部20〜20を有している。 The manipulator 200, that is, the robot arm 251 may have one or more joints, and in the present embodiment, it has a plurality of joints, for example, six joints J 1 to J 6 . Robotic arm 251 includes a servo mechanism unit 20 1 to 20 6 of a plurality (six) for rotating each joint J 1 through J 6 about the respective axes A 1 to A 6.

なお、本実施形態では、関節J〜Jは、回転関節であるが、直動関節であってもよい。関節が回転関節の場合、関節の位置とは、関節の角度、即ち回転位置を表す。関節が直動関節の場合、関節の位置とは、直動位置を表す。また、関節が回転関節の場合、関節の推力とは、関節の推進トルク、即ち出力トルクを表す。関節が直動関節の場合、関節の推力とは、関節の直動推力を表す。 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は、複数のリンク210〜210を有する。リンク210〜210は、関節J1〜J6で回転可能に連結されている。リンク210〜210は、基端側から先端側に向かって、順に直列に連結されている。ロボットアーム251は、マニピュレータ200の先端部、即ちハンド252を、可動範囲内の任意の位置に移動させることができる。 Robotic arm 251 includes a plurality of links 210 0-210 6. Links 210 0-210 6 is rotatably articulated J1 to J6. The links 210 0 to 210 6 are connected in series in order from the proximal end side to the distal end side. The robot arm 251 can move the tip of the manipulator 200, that is, the hand 252, to an arbitrary position within the movable range.

マニピュレータ200の位置、即ち姿勢は、座標系Toで表現することができる。座標系Toは、ロボットアーム251の基端、即ち台座Bに固定した座標系を表し、座標系Teはマニピュレータ200の先端部、即ちハンド252と連動する座標系を表す。 The position, that is, the posture of the manipulator 200 can be expressed by the coordinate system To. The coordinate system To represents the base end of the robot arm 251, that is, the coordinate system fixed to the pedestal B, and the coordinate system Te represents the tip end portion of the manipulator 200, that is, the coordinate system linked to the hand 252.

制御部500は、第1制御ユニットである制御ユニット300と、第2制御ユニットである制御ユニット400と、を有する。制御ユニット300は、ロボット装置100を統括的に制御するものである。制御ユニット400は、制御ユニット300の指令に基づいて、マニピュレータ200の位置又は推力を制御するものである。制御ユニット400は、マニピュレータ200の各サーボ機構部20〜20を制御するサーボ制御装置である。 The control unit 500 includes a control unit 300 which is a first control unit and a control unit 400 which is a second control unit. The control unit 300 controls the robot device 100 in an integrated manner. The control unit 400 controls the position or thrust of the manipulator 200 based on the command of the control unit 300. The control unit 400 is a servo control device that controls each of the servo mechanism units 20 1 to 26 of the manipulator 200.

制御部500について具体的に説明する。図2は、第1実施形態に係る制御装置の構成を示すブロック図である。制御部500は、上述したように、制御ユニット300,400を有する。図2には、制御ユニット300のハードウェア構成について詳細に図示している。 The control unit 500 will be specifically described. FIG. 2 is a block diagram showing a configuration of a control device according to the first embodiment. As described above, the control unit 500 has control units 300 and 400. FIG. 2 illustrates in detail the hardware configuration of the control unit 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〜309を備えている。 The control unit 300 is composed of a computer and includes a CPU (Central Processing Unit) 301 as a processing unit. Further, the control unit 300 includes a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303, and an HDD (Hard Disk Drive) 304 as storage units. Further, the control unit 300 includes a recording disk drive 305 and interfaces 306 to 309.

CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、インタフェース306〜309は、相互に通信可能にバス310で接続されている。ROM302には、CPU301に後述する制御方法の処理を実行させるためのプログラム330が格納されている。CPU301は、ROM302に記録(格納)されたプログラム330に基づいて、後述する制御方法を実行する。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。 The CPU 301, ROM 302, RAM 303, HDD 304, recording disk drive 305, and interfaces 306 to 309 are connected by a bus 310 so as to be able to communicate with each other. The ROM 302 stores a program 330 for causing the CPU 301 to execute the processing of the control method described later. The CPU 301 executes a control method described later based on the program 330 recorded (stored) in the ROM 302. The RAM 303 is a storage device that temporarily stores various data such as the calculation processing result of the CPU 301.

HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶可能な記憶装置である。記録ディスクドライブ305は、記録ディスク331に記録された各種データやプログラム等を読み出すことができる。 The HDD 304 is a storage device that can store the arithmetic processing results of the CPU 301 and various data acquired from the outside. The recording disk drive 305 can read various data, programs, and the like recorded on the recording disk 331.

教示ペンダント600は、インタフェース306に接続されている。CPU301は、インタフェース306及びバス310を介して教示ペンダント600からマニピュレータ200の教示データを取得する。 The teaching pendant 600 is connected to the interface 306. The CPU 301 acquires the teaching data of the manipulator 200 from the teaching pendant 600 via the interface 306 and the bus 310.

制御ユニット400は、インタフェース309に接続されている。CPU301は、指令値のデータを所定の制御周期でバス310及びインタフェース309を介して制御ユニット400に出力する。 The control unit 400 is connected to the interface 309. The CPU 301 outputs command value data to the control unit 400 via the bus 310 and the interface 309 at a predetermined control cycle.

インタフェース307には、モニタ321が接続されており、モニタ321には、CPU301の制御の下、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の記憶装置である外部記憶装置322が接続可能に構成されている。外部記憶装置322には、教示データや、マニピュレータ200のモデルデータが格納可能である。 A monitor 321 is connected to the interface 307, and various images are displayed on the monitor 321 under the control of the CPU 301. The interface 308 is configured so that an external storage device 322, which is a storage device such as a rewritable non-volatile memory or an external HDD, can be connected. Teaching data and model data of the manipulator 200 can be stored in the external storage device 322.

なお、第1実施形態では、コンピュータによって読取可能な記録媒体がROM302であり、ROM302にプログラム330が記録されているが、これに限定するものではない。プログラム330は、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム330を供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。 In the first embodiment, the recording medium that can be read by a computer is the ROM 302, and the program 330 is recorded in the ROM 302, but the present invention is not limited to this. The program 330 may be recorded on any recording medium that can be read by a computer. As the recording medium for supplying the program 330, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, or the like can be used.

図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 control unit 400.

制御ユニット400は、コンピュータで構成されている。制御ユニット400は、処理部であるCPU401と、記憶部であるROM402及びRAM403と、インタフェース406〜409と、を備えている。CPU401、ROM402、RAM403、インタフェース406〜409は、相互に通信可能にバス410で接続されている。ROM402には、CPU401に、後述する制御方法の処理を実行させるためのプログラム430が格納されている。 The control unit 400 is composed of a computer. The control unit 400 includes a CPU 401 as a processing unit, a ROM 402 and a RAM 403 as storage units, and interfaces 406 to 409. The CPU 401, ROM 402, RAM 403, and interfaces 406 to 409 are connected by a bus 410 so as to be able to communicate with each other. The ROM 402 stores a program 430 for causing the CPU 401 to execute the processing of the control method described later.

インタフェース406には、後述するモータ21〜21が接続されている。インタフェース407には、後述する位置センサ23〜23が接続されている。インタフェース408には、後述するトルクセンサ24〜24が接続されている。インタフェース409には、制御ユニット300が接続されている。 The interface 406, the motor 21 1 to 21 6 to be described later is connected. The interface 407, the position sensor 23 1-23 6 to be described later is connected. The interface 408, the torque sensor 24 1-24 6 to be described later is connected. A control unit 300 is connected to the interface 409.

なお、第1実施形態では、コンピュータによって読取可能な記録媒体がROM402であり、ROM402にプログラム430が記録されているが、これに限定するものではない。プログラム430は、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム430を供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。 In the first embodiment, the recording medium that can be read by a computer is the ROM 402, and the program 430 is recorded in the ROM 402, but the present invention is not limited to this. The program 430 may be recorded on any recording medium as long as it can be read by a computer. As the recording medium for supplying the program 430, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, or the like can be used.

図4は、第1実施形態に係るロボット装置の制御システムを示す制御ブロック図である。図2に示す制御ユニット300のCPU301は、プログラム330を実行することにより、図4に示すトルク指令値生成部504及び位置指令値生成部505として機能する。図3に示す制御ユニット400のCPU401は、プログラム430を実行することにより、図4に示すトルク制御部51〜51、位置制御部52〜52、切替部53〜53、及びモータ制御部54〜54として機能する。サーボ機構部20〜20は、モータ21〜21、減速機22〜22、位置センサ23〜23、及びトルクセンサ24〜24を有する。 FIG. 4 is a control block diagram showing a control system of the robot device according to the first embodiment. The CPU 301 of the control unit 300 shown in FIG. 2 functions as the torque command value generation unit 504 and the position command value generation unit 505 shown in FIG. 4 by executing the program 330. CPU401 of the control unit 400 shown in FIG. 3, by executing the program 430, the torque control unit 51 1 to 51 6 shown in FIG. 4, the position control unit 52 1 to 52 6, the switching unit 53 1 to 53 6 and, functions as a motor control unit 54 1 to 54 6. Servomechanism units 20 1 to 20 6 has a motor 21 1 to 21 6, reducer 22 1-22 6, the position sensor 23 1-23 6 and the torque sensor 24 1-24 6.

各モータ21〜21は、マニピュレータ200の各関節J〜Jを駆動する駆動源の一例であり、例えば電動モータである。各減速機22〜22は、各モータ21〜21の回転軸の回転を減速して出力するものであり、例えば波動歯車減速機である。各関節J〜Jで連結された一対のリンクのうち、一方のリンクに対して他方のリンクを、各モータ21〜21、及び各減速機22〜22によって駆動することができる。なお、モータの回転軸が減速機の入力軸に直接連結されていてもよいが、モータと減速機との間に、ベルト機構などの不図示の伝達機構が配置されていてもよい。 Each motor 21 1 to 21 6 is an example of a drive source for driving each joint J 1 through J 6 manipulator 200, for example an electric motor. Each reducer 22 1-22 6 is to output the decelerated rotation of the rotary shaft of the motor 21 1 to 21 6, such as harmonic gear reducer. A pair of links connected by joints J 1 through J 6, that other links against one link, driven by the motors 21 1 to 21 6, and the reduction gear 22 1-22 6 it can. The rotating shaft of the motor may be directly connected to the input shaft of the speed reducer, but a transmission mechanism (not shown) such as a belt mechanism may be arranged between the motor and the speed reducer.

各位置センサ23〜23は、各関節J〜Jの位置(角度)に応じた信号を出力するセンサであり、例えばエンコーダである。エンコーダは、ロータリエンコーダであるのが好ましい。各位置センサ23〜23は、各減速機22〜22の入力軸側、即ち各モータ21〜21に設けられ、各モータ21〜21の回転軸の位置(角度)に応じた信号を、制御ユニット400に出力する。制御ユニット400は、各位置センサ23〜23から取得した信号に基づき、各モータ21〜21の回転軸の位置(角度)の測定値θ〜θを求め、各測定値θ〜θから各関節J〜Jの位置(角度)の測定値q〜qを求める。本実施形態では、減速機22〜22の減速比に基づき、測定値θ〜θを測定値q〜qに変換する。制御ユニット400は、各関節J〜Jの位置(角度)の測定値q〜qを所定の制御周期で制御ユニット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 motor 21 1 to 21 6, the position of the rotation axis of the motor 21 1 to 21 6 (angle) The signal corresponding to the above is output to the control unit 400. Control unit 400, based on the acquired signals from the position sensors 23 1 to 23 6, the measured value theta 1 through? 6 position (angle) of the rotation shaft of the motor 21 1 to 21 6 determined, each measurement theta obtaining a measured value q 1 to q 6 position (angle) of each joint J 1 through J 6 from 1 through? 6. In the present embodiment, based on the reduction ratio of the reduction gear 22 1-22 6 converts the measured value theta 1 through? 6 to the measured values q 1 to q 6. The control unit 400 outputs to the control unit 300 the measurement values q 1 to q 6 positions of the joints J 1 through J 6 (angle) at a predetermined control cycle.

各トルクセンサ24〜24は、マニピュレータ200に作用する負荷の一例として各関節J〜Jに作用する負荷トルクに応じた信号を、制御ユニット400に出力する。制御ユニット400は、各トルクセンサ24〜24から取得した信号に基づき、各関節J〜Jにかかる負荷トルクの測定値τ〜τを求める。制御ユニット400は、各関節J〜Jの負荷トルクの測定値τ〜τを所定の制御周期で制御ユニット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 manipulator 200, and outputs to the control unit 400. Control unit 400, based on the acquired signals from the torque sensor 24 1-24 6, obtains the measurement values τ 16 of load torque applied to the joint J 1 through J 6. The control unit 400 outputs to the control unit 300 the measurement values τ 16 of the load torque of each joint J 1 through J 6 at a predetermined control cycle.

外部記憶装置322には、ユーザが予め作成しておいた教示データとしての力教示データ501及び位置教示データ502と、マニピュレータ200のモデルデータであるロボットモデル503と、が格納されている。なお、これらデータが格納される記憶装置は、外部記憶装置322に限定するものではない。例えば、これらデータは、HDD304、又は教示ペンダント600に含まれる不図示の記憶装置に格納されていてもよい。 The external storage device 322 stores force teaching data 501 and position teaching data 502 as teaching data created in advance by the user, and robot model 503 which is model data of the manipulator 200. The storage device in which these data are stored is not limited to the external storage device 322. For example, these data may be stored in a storage device (not shown) included in the HDD 304 or the teaching pendant 600.

力教示データ501には、目標力Fが含まれている。位置教示データ502には、目標位置Pが含まれている。目標力Fは、マニピュレータ200のハンド252にかかる力の目標値(目標力)であり、操作者が教示ペンダント600を用いて設定することができる。目標位置Pは、マニピュレータ200のハンド252の位置の目標値(目標位置)であり、操作者が教示ペンダント600を用いて設定することができる。制御ユニット300は、力教示データ501から目標力Fを読み出すことができ、位置教示データ502から目標位置Pを読み出すことができる。 The force teaching data 501 includes a target force F d . The position teaching data 502 includes the target position P d . The target force F d is a target value (target force) of the force applied to the hand 252 of the manipulator 200, and can be set by the operator using the teaching pendant 600. The target position P d is a target value (target position) of the position of the hand 252 of the manipulator 200, and can be set by the operator using the teaching pendant 600. The control unit 300 can read the target force F d from the force teaching data 501, and can read the target position P d from the position teaching data 502.

ロボットモデル503は、マニピュレータ200を構成する要素の質量データ、重心位置データ、重心まわりの慣性モーメントデータなどの設計データを含む、ユーザが作成した、仮想的なモデルである。 The robot model 503 is a virtual model created by the user, including design data such as mass data of elements constituting the manipulator 200, center of gravity position data, and moment of inertia data around the center of gravity.

制御ユニット300は、予め設定されているロボットプログラムに従って、マニピュレータ200の位置を制御する位置制御モードと、マニピュレータ200の推力を制御する力制御モードとを切り替えて、制御ユニット400に指令を送る。即ち、制御ユニット300は、位置制御モードに切り替わっているときには位置指令値生成部505として機能して位置指令値を送り、力制御モードに切り替わっているときには、トルク指令値生成部504として機能してトルク指令値を送る。 The control unit 300 switches between a position control mode for controlling the position of the manipulator 200 and a force control mode for controlling the thrust of the manipulator 200 according to a preset robot program, and sends a command to the control unit 400. That is, the control unit 300 functions as the position command value generation unit 505 when the mode is switched to the position control mode to send the position command value, and functions as the torque command value generation unit 504 when the mode is switched to the force control mode. Send the torque command value.

位置指令値生成部505は、目標位置Pに基づいて、関節J〜Jに対応する位置指令値qref1〜qref6を生成する。具体的には、位置指令値生成部505は、ロボットモデル503を用いた逆運動学計算により、目標位置Pを関節J〜Jに対応する位置指令値qref1〜qref6に変換する。位置指令値生成部505は、生成した位置指令値qref1〜qref6を、制御ユニット400の位置制御部52〜52に出力する。位置制御部52〜52は、測定値q〜qと位置指令値qref1〜qref6との差に基づくフィードバック演算、例えばPID演算により、トルク指令値τq1〜τq6を生成する。位置制御部52〜52は、トルク指令値τq1〜τq6を切替部53〜53に出力する。 Position command value generation section 505, based on the target position P d, to generate a position command value q ref1 to q Ref6 corresponding to the joint J 1 through J 6. Specifically, the position command value generating unit 505, the inverse kinematics calculation using the robot model 503 converts the target position P d to the position command value q ref1 to q Ref6 corresponding to the joint J 1 through J 6 .. Position command value generation section 505, the generated position command value q ref1 to q Ref6, and outputs to the position control unit 52 1 to 52 6 of the control unit 400. Position control unit 52 1 to 52 6, the feedback calculation based on the difference between the measured values q 1 to q 6 and the position command value q ref1 to q Ref6, for example by PID calculation, generates a torque command value τ q1q6 .. Position control unit 52 1 to 52 6, it outputs a torque command value τ q1q6 to the switching unit 53 1 to 53 6.

トルク指令値生成部504は、目標力F、目標位置P、測定値τ〜τ、及び測定値q〜qに基づいて、関節J〜Jに対応するトルク指令値τref1〜τref6を生成する。トルク指令値生成部504の具体的な処理は、後述する。トルク指令値生成部504は、生成したトルク指令値τref1〜τref6を、制御ユニット400のトルク制御部51〜51に出力する。トルク制御部51〜51は、負荷トルクの測定値τ〜τとトルク指令値τref1〜τref6との差に基づくフィードバック演算、例えばPID演算により、トルク指令値τF1〜τF6を生成する。トルク制御部51〜51は、トルク指令値τF1〜τF6を切替部53〜53に出力する。 The torque command value generation unit 504 has a torque command value corresponding to the joints J 1 to J 6 based on the target force F d , the target position P d , the measured values τ 1 to τ 6 , and the measured values q 1 to q 6. to generate the τ ref1 ~τ ref6. The specific processing of the torque command value generation unit 504 will be described later. Torque command value generating unit 504, the generated torque command value τ ref1 ~τ ref6, and outputs the torque control unit 51 1 to 51 6 of the control unit 400. Torque control unit 51 1 to 51 6, the feedback calculation based on the difference between the measured values τ 16 and the torque command value τ ref1 ~τ ref6 the load torque, for example by PID calculation, the torque command value τ F1F6 To generate. Torque control unit 51 1 to 51 6, it outputs a torque command value τ F1F6 to the switching unit 53 1 to 53 6.

切替部53〜53は、トルク指令値τF1〜τF6の入力を受けた場合は、入力を受けたトルク指令値τF1〜τF6をトルク指令値τM1〜τM6としてモータ制御部54〜54に出力する。また、切替部53〜53は、トルク指令値τq1〜τq6の入力を受けた場合は、入力を受けたトルク指令値τq1〜τq6をトルク指令値τM1〜τM6としてモータ制御部54〜54に出力する。 Switching unit 53 1 to 53 6, when receiving the input of the torque command value τ F1F6, the motor control unit of the torque command value τ F1F6 when receiving the input as the torque command value τ M1M6 54 is output to the 1-54 6. The motor switching unit 53 1 to 53 6, when receiving the input of the torque command value τ q1q6, a torque command value τ q1q6 when receiving the input as the torque command value τ M1M6 to the control unit 54 1 to 54 6.

モータ制御部54〜54は、トルク指令値τM1〜τM6に応じた電流Cur〜Curをモータ21〜21に通電する。 The motor control unit 54 1 to 54 6, passing a current Cur 1 ~Cur 6 corresponding to the torque command value τ M1M6 to the motor 21 1 to 21 6.

以上、制御ユニット400は、制御ユニット300から位置指令値qref1〜qref6を取得した場合、位置指令値qref1〜qref6と測定値q〜qとの差に基づき、マニピュレータ200の位置を制御する。また制御ユニット400は、制御ユニット300からトルク指令値τref1〜τref6を取得した場合、トルク指令値τref1〜τref6と測定値τ〜τとの差に基づき、マニピュレータ200の推力、即ち関節J〜Jの出力トルクを制御する。 Above, the control unit 400, when acquiring the position command value q ref1 to q Ref6 from the control unit 300, based on a difference between the position command value q ref1 to q Ref6 and measured values q 1 to q 6, the position of the manipulator 200 To control. The control unit 400, when the control unit 300 obtains the torque command value τ ref1 ~τ ref6, based on the difference between the measured values τ 16 and the torque command value τ ref1 ~τ ref6, thrust manipulator 200, that is, controlling the output torque of the joint J 1 through J 6.

力制御モードにおけるマニピュレータ200の力制御、即ちマニピュレータ200の関節のトルク制御について説明する。図5は、第1実施形態において制御部500がマニピュレータ200を力制御する処理のフローチャートである。まず、トルク指令値生成部504は、目標力F及び目標位置Pを外部記憶装置322から取得する(S1)。トルク指令値生成部504は、目標力F、目標位置P、負荷トルクの測定値τ〜τ、位置の測定値q〜qに基づき、ロボットモデル503を用いてトルク指令値τref1〜τref6を算出する(S2)。トルク制御部51〜51は、トルク指令値τref1〜τref6と負荷トルクの測定値τ〜τとの差に基づくPID演算により、トルク指令値τF1〜τF6を算出する(S3)。切替部53〜53は、モータ制御部54〜54にトルク指令値τF1〜τF6をトルク指令値τM1〜τM6として出力する。モータ制御部54〜54は、トルク指令値τM1〜τM6に応じてモータ21〜21を通電制御する(S4)。モータ21〜21は、通電に応じて関節J〜Jに出力トルクを発生する(S5)。制御ユニット300,400は、負荷トルクの測定値τ〜τ及び関節の位置の測定値q〜qを取得する(S6)。制御ユニット300は、駆動が終了したか否かを判定し(S7)、終了していない場合は(S7:No)、ステップS2〜S6を繰り返す。制御部500は、駆動が終了した場合(S7:Yes)、制御処理を終了する。以上のフローチャートに従ってモータ21〜21を駆動することで、マニピュレータ200のハンド252にかかる力Fを所望の目標力Fに制御することが可能である。なお、図5に示すフローチャートの順番に限定するものではなく、他の順番でも力制御は可能である。 The force control of the manipulator 200 in the force control mode, that is, the torque control of the joints of the manipulator 200 will be described. FIG. 5 is a flowchart of a process in which the control unit 500 force-controls the manipulator 200 in the first embodiment. First, the torque command value generation unit 504 acquires the target force F d and the target position P d from the external storage device 322 (S1). The torque command value generation unit 504 uses the robot model 503 to obtain a torque command value based on the target force F d , the target position P d , the measured load torque values τ 1 to τ 6 , and the measured position values q 1 to q 6. τ ref1 to τ ref6 are calculated (S2). Torque control unit 51 1 to 51 6, the PID calculation based on the difference between the torque command value τ ref1 ~τ ref6 and measured values τ 16 of the load torque, and calculates the torque command value τ F1F6 ( S3). Switching unit 53 1 to 53 6, it outputs the motor control unit 54 1 to 54 6 a torque command value τ F1F6 as the torque command value τ M1M6. The motor control unit 54 1 to 54 6, the motor 21 1 to 21 6 for controlling energization according to the torque command value τ M1M6 (S4). Motor 21 1 to 21 6 generates an output torque to the joint J 1 through J 6 in response to energization (S5). Control unit 300, 400 obtains a measured value q 1 to q 6 position measurements τ 16 and joint load torque (S6). The control unit 300 determines whether or not the drive has been completed (S7), and if not (S7: No), repeats steps S2 to S6. When the drive is completed (S7: Yes), the control unit 500 ends the control process. By driving the motor 21 1 to 21 6 according to the flowchart described above, it is possible to control the force F exerted on the hand 252 of the manipulator 200 to the desired target force F d. The order of the flowcharts shown in FIG. 5 is not limited, and force control can be performed in any other order.

次に、位置制御モードにおけるマニピュレータ200の位置制御、即ちマニピュレータ200のハンド252の位置制御について説明する。図6は、第1実施形態において制御部500がマニピュレータ200を位置制御する処理のフローチャートである。まず、位置指令値生成部505は、目標位置Pを外部記憶装置322から取得する(S11)。目標位置Pは、マニピュレータ200を位置決めする目標位置である。位置指令値生成部505は、目標位置Pに基づき、ロボットモデル503を用いて関節J〜Jの位置指令値qref1〜qref6を算出する(S12)。位置制御部52〜52は、位置指令値qref1〜qref6と関節の位置の測定値q〜qとの差に基づくPID演算により、トルク指令値τq1〜τq6を算出する(S13)。なお、ステップS13においては、測定値q〜qの代わりに測定値θ〜θを用いてもよい。この場合、位置指令値qref1〜qref6は、減速機22〜22の減速比で位置指令値θref1〜θref6に変換すればよい。切替部53〜53は、モータ制御部54〜54にトルク指令値τq1〜τq6をトルク指令値τM1〜τM6として出力する。モータ制御部54〜54は、トルク指令値τM1〜τM6に応じてモータ21〜21を通電制御する(S14)。モータ21〜21は、通電に応じて関節J〜Jに出力トルクを発生する(S15)。制御ユニット300,400は、関節の位置の測定値q〜qを取得する(S16)。制御ユニット300は、駆動が終了したか否かを判定し(S17)、終了していない場合は(S17:No)、ステップS12〜S16を繰り返す。制御部500は、駆動が終了した場合(S17:Yes)、制御処理を終了する。以上のフローチャートに従ってモータ21〜21を駆動することで、マニピュレータ200のハンド252の位置を所望の目標位置Pに制御することが可能である。なお、図6に示すフローチャートの順番に限定するものではなく、他の順番でも位置制御は可能である。 Next, the position control of the manipulator 200 in the position control mode, that is, the position control of the hand 252 of the manipulator 200 will be described. FIG. 6 is a flowchart of a process in which the control unit 500 controls the position of the manipulator 200 in the first embodiment. First, the position command value generation unit 505 acquires the target position P d from the external storage device 322 (S11). The target position P d is a target position for positioning the manipulator 200. Position command value generation section 505, based on the target position P d, and calculates the position command value q ref1 to q Ref6 joints J 1 through J 6 by using a robot model 503 (S12). Position control unit 52 1 to 52 6, the PID calculation based on the difference between the measured values q 1 to q 6 position of the position command value q ref1 to q Ref6 and joint, and calculates the torque command value τ q1q6 (S13). In step S13, the measured values θ 1 to θ 6 may be used instead of the measured values q 1 to q 6 . In this case, the position command value q ref1 to q Ref6 may be converted into a position command value theta ref1 through? Ref6 at the speed reduction ratio of the reduction gear 22 1-22 6. Switching unit 53 1 to 53 6, outputs the motor control unit 54 1 to 54 6 a torque command value τ q1q6 as the torque command value τ M1M6. The motor control unit 54 1 to 54 6, the motor 21 1 to 21 6 for controlling energization according to the torque command value τ M1M6 (S14). Motor 21 1 to 21 6 generates an output torque to the joint J 1 through J 6 as they are energized (S15). The control units 300 and 400 acquire the measured values q 1 to q 6 of the joint position (S16). The control unit 300 determines whether or not the drive has been completed (S17), and if not (S17: No), repeats steps S12 to S16. When the drive is completed (S17: Yes), the control unit 500 ends the control process. By driving the motor 21 1 to 21 6 according to the flowchart described above, it is possible to control the position of the hand 252 of the manipulator 200 in a desired target position P d. The order of the flowchart shown in FIG. 6 is not limited, and the position can be controlled in any other order.

ところで、マニピュレータ200の力学モデルであるロボットモデル503と実機とは必ずしも一致せず、誤差が生じる。この誤差をモデル化誤差という。このモデル化誤差は、マニピュレータ200の経年劣化などでも変化する。また、トルクセンサ24〜24の測定値τ〜τには、マニピュレータが置かれている環境(例えば温度)の変化の影響で、オフセット誤差が重畳する。これらの誤差が大きいと、マニピュレータを力制御しているときにマニピュレータが振動するなど、マニピュレータの挙動が不安定になることがある。モデル化誤差とオフセット誤差とを求め、これら誤差に基づいて、モデル及び測定値を校正することも考えられるが、校正の作業を度々行わなければならない。マニピュレータ200に連続運転で作業を行わせる場合には、校正作業の時間の分、サイクルタイムが増加してしまう。 By the way, the robot model 503, which is a mechanical model of the manipulator 200, does not always match the actual machine, and an error occurs. This error is called the modeling error. This modeling error also changes due to aged deterioration of the manipulator 200 and the like. Further, the measurement value τ 16 of the torque sensor 24 1-24 6, the influence of changes in the environment (e.g., temperature) that the manipulator is placed, the offset error is superimposed. If these errors are large, the behavior of the manipulator may become unstable, such as the manipulator vibrating during force control of the manipulator. It is conceivable to obtain the modeling error and the offset error and calibrate the model and the measured value based on these errors, but the calibration work must be performed frequently. When the manipulator 200 is allowed to perform the work in continuous operation, the cycle time increases by the amount of the calibration work time.

そこで、本実施形態では、組立作業などの生産作業においてマニピュレータ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 manipulator 200 is operated in the production work such as the assembly work. FIG. 7 is a block diagram showing a part of the processing of the first control unit according to the first embodiment. FIG. 7 illustrates the processing of the torque command value generation unit 504. The torque command value generation unit 504 functions as an impedance control unit 601, a dynamics calculation unit 602, a command value correction unit 603, and a correction value calculation unit 604. For example, the RAM 303 shown in FIG. 2 functions as a correction value storage unit 605. The functions of each part will be described below.

動力学計算部602は、制御ユニット400がマニピュレータ200の位置を制御しているときに、マニピュレータ200の位置の測定値である関節J〜Jの位置の測定値q〜qを取得する。本実施形態では、動力学計算部602は、力制御を開始する位置を目標位置Pとし、マニピュレータ200を目標位置Pに位置決めした際に、測定値q〜qを取得する。動力学計算部602は、取得したこれらの位置情報を微分して、速度、及び加速度を求める。動力学計算部602は、ロボットモデル503と関節J〜Jの位置、速度、及び加速度の情報に基づいて、公知の動力学計算手法であるニュートン・オイラー法により、関節J〜Jにかかる負荷トルクの計算値τ^〜τ^を算出する。即ち、動力学計算部602は、マニピュレータ200の位置を制御しているときに、ロボットモデル503を用いた動力学の計算により、マニピュレータ200に生じる負荷としての負荷トルクの計算値τ^〜τ^を求める。計算値τ^〜τ^には、モデル化誤差が含まれる。なお、動力学の計算は、これに限定するものではなく、例えばラグランジュの定式化による導出方法などでもよい。 Dynamic calculation unit 602, when the control unit 400 is controlling the position of the manipulator 200, taking measurements q 1 to q 6 position of the joint J 1 through J 6 is the measurement of the position of the manipulator 200 To do. In the present embodiment, the dynamics calculation unit 602 sets the position at which the force control is started as the target position P d, and acquires the measured values q 1 to q 6 when the manipulator 200 is positioned at the target position P d . The dynamics calculation unit 602 differentiates these acquired position information to obtain the velocity and acceleration. Dynamic calculation unit 602, the position of the robot model 503 and joint J 1 through J 6, velocity, and based on the acceleration information, the Newton-Euler method, a known dynamic calculation method, the joint J 1 through J 6 Calculate the calculated values τ ^ 1 to τ ^ 6 of the load torque applied to. That is, when the dynamics calculation unit 602 controls the position of the manipulator 200, the calculated value of the load torque as a load generated in the manipulator 200 by the dynamics calculation using the robot model 503 τ ^ 1 to τ. ^ 6 is calculated. The calculated values τ ^ 1 to τ ^ 6 include a modeling error. The calculation of dynamics is not limited to this, and for example, a derivation method by formulating Lagrange may be used.

補正値計算部604は、制御ユニット400がマニピュレータ200の位置を制御しているときに、マニピュレータ200に生じる負荷の第1測定値として、負荷トルクの測定値τ〜τを取得する。本実施形態では、補正値計算部604は、マニピュレータ200を目標位置Pに位置決めした際に、測定値τ〜τを取得する。測定値τ〜τには、オフセット誤差が含まれている。補正値計算部604は、測定値τ〜τと計算値τ^〜τ^との差に基づいて補正値τcomp1〜τcomp6を求める。具体的には、補正値計算部604は、位置制御モードから力制御モードに切り替わる直前に、計算値τ^〜τ^から測定値τ〜τを減算することで、補正値τcomp1〜τcomp6を求める。例えば補正値計算部604は、位置制御モード時に、計算値τ^〜τ^から測定値τ〜τを減算する処理を、所定の周期で行い、位置制御モードから力制御モードに切り替わったときに、その直前の減算値を補正値τcomp1〜τcomp6とする。補正値計算部604は、補正値τcomp1〜τcomp6を補正値記憶部605に記憶させておく。なお、補正値τcomp1〜τcomp6には、モデル化誤差とオフセット誤差が含まれている。 The correction value calculation unit 604 acquires the measured values τ 1 to τ 6 of the load torque as the first measured value of the load generated on the manipulator 200 when the control unit 400 controls the position of the manipulator 200. In the present embodiment, the correction value calculation unit 604 acquires the measured values τ 1 to τ 6 when the manipulator 200 is positioned at the target position P d . The measured values τ 1 to τ 6 include an offset error. Correction value calculation unit 604 calculates a correction value τ comp1 ~τ comp6 based on the difference between the measured values τ 16 and calculated values τ ^ 1 ~τ ^ 6. Specifically, the correction value calculating unit 604, immediately before switching from the position control mode to a force control mode, by subtracting the measured value τ 16 from the calculated value τ ^ 1 ~τ ^ 6, the correction value tau Obtain comp1 to τ comp6 . For example, the correction value calculation unit 604 performs a process of subtracting the measured values τ 1 to τ 6 from the calculated values τ ^ 1 to τ ^ 6 in the position control mode at a predetermined cycle, and changes from the position control mode to the force control mode. when switched to the subtraction value immediately before the correction value τ comp1 ~τ comp6. The correction value calculation unit 604 stores the correction values τ comp1 to τ comp 6 in the correction value storage unit 605. Incidentally, the correction value τ comp1 ~τ comp6 is included modeling and offset errors.

インピーダンス制御部601は、マニピュレータ200のハンド252に所望の機械インピーダンスを持たせるよう、ロボットモデル503に基づく関節J〜Jのトルク指令値τFd1〜τFd6を、以下の式(1)に従って算出する。式(1)は、インピーダンスの制御式である。機械インピーダンスは、例えば剛性インピーダンス、粘性インピーダンス、及び力インピーダンスである。トルク指令値τFd1〜τFd6は、補正前の仮の指令値であり、モデル化誤差が含まれている。

Figure 2020151824
Impedance control unit 601, so as to have the desired mechanical impedance to the hand 252 of the manipulator 200, the torque command value τ Fd1Fd6 joints J 1 through J 6 based on the robot model 503, according to the following equation (1) calculate. Equation (1) is an impedance control equation. The mechanical impedance is, for example, a rigid impedance, a viscous impedance, and a force impedance. Torque command value τ Fd1Fd6 is the command value of the temporary before correction, contains modeling error.
Figure 2020151824

式(1)中、Mは6×6の慣性行列、Cは6×1のコリオリ力・遠心力のベクトル、Gは6×1の重力負荷トルクのベクトルである。Kは、所望の機械インピーダンスの剛性の値、Dは所望の機械インピーダンスの粘性の値を表わし、それぞれ6×6の行列である。Jacは、関節J〜Jの速度と、座標系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 hand 252 is expressed. The subscript T of the Jacobian matrix Jac represents the transpose of the matrix.

このように、インピーダンス制御部601は、制御ユニット400がマニピュレータ200の推力を制御する際に、式(1)を用いて、教示データ501,502に基づく仮の指令値であるトルク指令値τFd1〜τFd6を求める。動力学計算部602は、M、C、Gを、ロボットモデル503と、関節J〜Jの位置及び速度に基づいて、ニュートン・オイラー法で計算する。 As described above, when the control unit 400 controls the thrust of the manipulator 200, the impedance control unit 601 uses the equation (1) to obtain a torque command value τ Fd1 which is a provisional command value based on the teaching data 501 and 502. Obtain ~ τ Fd6 . Dynamic calculation section 602, M, C, and G, and the robot model 503, based on the position and velocity of the joint J 1 through J 6, calculated by Newton-Euler method.

指令値補正部603は、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正し、トルク制御部51〜51に出力する指令値であるトルク指令値τref1〜τref6を求める。具体的には、指令値補正部603は、補正値記憶部605に記憶されている補正値τcomp1〜τcomp6をインピーダンス制御部601で算出したトルク指令値τFd1〜τFd6から減算することで、トルク指令値τref1〜τref6を生成する。これにより、マニピュレータ200の実機とモデルとの差であるモデル化誤差がキャンセルされる。 Command value correcting unit 603 corrects the torque command value τ Fd1Fd6 correction value τ comp1 ~τ comp6, torque control unit 51 1 to 51 6 torque command value tau ref1 is an instruction value to be outputted to ~Tau Ref6 Ask for. Specifically, the command value correcting section 603 is subtracted from the correction value torque command value τ Fd1Fd6 the correction value τ comp1 ~τ comp6 stored in the storage unit 605 is calculated by the impedance control unit 601 , Torque command values τ ref1 to τ ref6 are generated. As a result, the modeling error, which is the difference between the actual manipulator 200 and the model, is canceled.

トルク指令値τref1〜τref6には、オフセット誤差が含まれている。図4に示すトルク制御部51〜51は、制御ユニット400がマニピュレータ200の推力を制御する際に、マニピュレータ200に生じる負荷の第2測定値である関節J〜Jの負荷トルクの測定値τ〜τを取得する。この測定値τ〜τには、オフセット誤差が含まれている。トルク制御部51〜51は、トルク指令値τref1〜τref6と測定値τ〜τとの差を求め、この差に基づき、フィードバック値であるトルク指令値τF1〜τF6を求める。このように、マニピュレータ200の推力を制御するのに用いられるトルク指令値τF1〜τF6において、オフセット誤差がキャンセルされることになる。 The torque command value τ ref1 ~τ ref6, contains the offset error. Torque control unit 51 1 to 51 6 shown in FIG. 4, when the control unit 400 controls the thrust of the manipulator 200, the load torque of the joint J 1 through J 6 is a second measure of the load occurring in the manipulator 200 Obtain the measured values τ 1 to τ 6 . The measured values τ 1 to τ 6 include an offset error. Torque control unit 51 1 to 51 6 obtains a difference between the torque command value τ ref1 ~τ ref6 and measured values τ 16, on the basis of this difference, the torque command value τ F1F6 is a feedback value Ask. In this way, the offset error is canceled at the torque command values τ F1 to τ F6 used to control the thrust of the manipulator 200.

以上、本実施形態によれば、マニピュレータ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 manipulator 200, the control of the manipulator 200 is stable and the controllability of the manipulator 200 is improved.

以下、マニピュレータ200の制御の実験結果について説明する。図8は、第1実施形態におけるロボットアーム251の概略図である。図8中、T〜Tはリンク210〜210に固定された座標系である。なお、各関節J〜Jの回転軸はZ軸で、回転方向は右手方向である。図8に示したロボットアーム251の姿勢を、関節J〜Jの角度の測定値q〜qが0度の時の姿勢とする。また、リンク210〜210の寸法は、図8に示す通りである。 The experimental results of the control of the manipulator 200 will be described below. FIG. 8 is a schematic view of the robot arm 251 according to the first embodiment. In Figure 8, T 1 through T 6 is a link 210 0-210 6 fixed coordinate system. The rotation axis of each joint J 1 to J 6 is the Z axis, and the rotation direction is the right hand direction. The posture of the robot arm 251 shown in FIG. 8 is the posture when the measured values q 1 to q 6 of the angles of the joints J 1 to J 6 are 0 degrees. Also, the size of the link 210 0-210 6 is as shown in FIG.

図9(a)は、第1実施形態における現実のマニピュレータ200の動力学パラメータの一例を示す図である。図9(a)中、m^は、当該リンクの実際の質量である。s^、s^、s^は、それぞれ当該リンクの座標原点から見た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 actual manipulator 200 in the first embodiment. In FIG. 9A, m ^ is the actual mass of the link. s ^ x , s ^ y , and s ^ z are the actual center-of-gravity positions in the X-axis, Y-axis, and Z-axis directions as viewed from the coordinate origin of the link, respectively. I ^ xx , I ^ yy , and I ^ zz are the actual moments of inertia about the X-axis, Y-axis, and Z-axis around the center of gravity of the link, respectively.

図9(b)は、第1実施形態におけるロボットモデル503の動力学パラメータの一例を示す図である。ロボットモデル503は、ロボットアーム251の設計値からCADで事前に算出し、外部記憶装置322に記憶しておく。図9(b)中、mは当該リンクの設計上の質量である。s、s、sはそれぞれ当該リンクの座標原点から見たX軸、Y軸、Z軸方向の設計上の重心位置である。Ixx、Iyy、Izzはそれぞれ当該リンクの重心まわりのX軸、Y軸、Z軸に対する設計上の慣性モーメントである。本実施形態では、ロボットモデル503の各リンクの質量が、現実の各リンク210〜210の質量の1割の誤差があるものとした。 FIG. 9B is a diagram showing an example of the dynamic parameters of the robot model 503 in the first embodiment. The robot model 503 is calculated in advance by CAD from the design value of the robot arm 251 and stored in the external storage device 322. In FIG. 9B, m is the design mass of the link. s x , sy , and s z are the design center-of-gravity positions in the X-axis, Y-axis, and Z-axis directions as viewed from the coordinate origin of the link, respectively. I xx , I yy , and I zz are design moments of inertia with respect to the X-axis, Y-axis, and Z-axis around the center of gravity of the link, respectively. In the present embodiment, the mass of each link of the robot model 503, and that there is 10% of the error of each link 210 1-210 6 mass reality.

図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 manipulator 200 for explaining the assembly work by the manipulator 200 in the first embodiment. In the present embodiment, a case where the work W1 gripped by the hand 252 is assembled to the work W2 will be described. The work W1 is a part having a cylindrical convex portion, and the work W2 is a part having a cylindrical concave portion. In FIG. 10A, P1 is a teaching point at the start of force control indicated by the coordinate system Te of the hand 252 of the manipulator 200, and P2 is a target position of force control indicated by the coordinate system Te of the hand 252 of the manipulator 200. It is a teaching point showing.

図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 hand 252 of the manipulator 200 is at the teaching point P1. The outlet WA of the work W2 is chamfered. When the work W1 advances 20 mm in the X-axis direction of the coordinate system To by force control, if the work W1 is inside the outlet WA, the work W1 follows the inner surface of the work W2 and is assembled due to the flexibility of the force control. Is completed. The fact that the work W1 is inside the opening WA means that the central axis of the work W1 is within the range of 195 mm to 205 mm in the Z-axis direction of the coordinate system To. At this time, it is assumed that the inclination of the work W1 and the movement of the coordinate system To in the Y-axis direction do not affect the assembly work.

図11(a)は、第1実施形態における教示点のパラメータを示す図である。図11(b)は、第1実施形態における力制御の機械インピーダンスのパラメータを示す図である。図11(a)に、教示点P1,P2の座標系Toを基準とする位置及び姿勢の値を示す。なお、図11(a)中のα、β、γは、それぞれZ軸、Y軸、X軸まわりの回転量を表わす。また、図11(b)に、機械インピーダンスのパラメータとして剛性K、粘性Dd、力Fの値を示す。 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 control unit 500 starts the position control of the manipulator 200, and moves the hand 252 (coordinate system Te) of the manipulator 200 to the teaching point P1 which is the position where the force control is started (S51).

制御部500は、ロボットモデル503と関節J〜Jの位置、速度、及び加速度の情報に基づいて、現在の関節J〜Jの負荷トルクの計算値τ^〜τ^を算出する(S52)。このとき、マニピュレータ200は必ずしも停止している必要はない。 Controller 500, the position of the robot model 503 and joint J 1 through J 6, velocity, and based on the acceleration information, the calculated values τ ^ 1 ~τ ^ 6 of the current load torque of the joint J 1 through J 6 Calculate (S52). At this time, the manipulator 200 does not necessarily have to be stopped.

制御部500は、第1測定値である、関節J〜Jの負荷トルクの測定値τ〜τを取得する(S53)。このとき、測定値τ〜τには、トルクセンサ24〜24のオフセット誤差が含まれ、例えばマニピュレータ200の関節Jにおける測定値τおよび関節Jにおける測定値τに、−1.0Nmのオフセット誤差があるものとする。 Control unit 500 is a first measurement, taking measurements τ 16 of the load torque of the joint J 1 ~J 6 (S53). At this time, the measured value τ 16 is includes an offset error of the torque sensor 24 1-24 6, for example, to measure tau 2 at measurements tau 1 and joint J 2 in the joints J 1 of the manipulator 200, It is assumed that there is an offset error of −1.0 Nm.

制御部500は、計算値τ^〜τ^から測定値τ〜τを減算することで、補正値τcomp1〜τcomp6を算出する(S54)。このとき、算出されたトルク補正値τcomp1〜τcomp6は、補正値記憶部605に記憶される。 Control unit 500 subtracts the measured values τ 16 from the calculated value τ ^ 1 ~τ ^ 6, calculates the correction value τ comp1 ~τ comp6 (S54). At this time, the calculated torque correction values τ comp1 to τ comp 6 are stored in the correction value storage unit 605.

制御部500は、位置制御モードから力制御モードへ切り替え、力制御を開始する(S55)。制御部500は、マニピュレータ200のハンド252に所望の機械インピーダンス(剛性K、粘性D、力F)を持たせるような関節J1〜J6のトルク指令値τFd1〜τFd6を式(1)に従って算出する(S56)。 The control unit 500 switches from the position control mode to the force control mode and starts force control (S55). Controller 500, the desired mechanical impedance to the hand 252 of the manipulator 200 (stiffness K d, viscosity D d, the force F d) a torque command value τ Fd1Fd6 joints J1~J6 as to have the formula (1 ) (S56).

制御部500は、ステップS56で算出したトルク指令値τFd1〜τFd6から補正値記憶部605に記憶されている補正値τcomp1〜τcomp6を減算してトルク指令値τref1〜τref6を算出する(S57)。制御部500は、トルク指令値τref1〜τref6と、第2測定値である測定値τ〜τとの差に基づくPID演算により、トルク指令値τF1〜τF6を算出する(S58)。 Controller 500 calculates a torque command value τ ref1 ~τ ref6 by subtracting the correction value τ comp1 ~τ comp6 stored from the torque command value τ Fd1Fd6 calculated in step S56 in the correction value storage unit 605 (S57). Controller 500, a torque command value τ ref1 ~τ ref6, the PID calculation based on the difference between the measured values τ 16 is a second measured value, calculates a torque command value τ F1F6 (S58 ).

制御部500は、トルク指令値τF1〜τF6をトルク指令値τM1〜τM6とし、トルク指令値τM1〜τM6に応じてモータ21〜21を通電制御する(S59)。モータ21〜21は、通電に応じて関節J〜Jに出力トルクを発生する(S60)。制御部500は、負荷トルクの測定値τ〜τ及び関節の位置の測定値q〜qを取得する(S61)。制御部500は、駆動が終了したか否かを判定し(S62)、終了していない場合は(S62:No)、ステップS56〜S62を繰り返す。制御部500は、駆動終了と判断したら(S62:Yes)、制御処理を終了する。本実施形態では、ステップS55で力制御を開始してから5秒経過した時点で、制御処理を終了する。 Control unit 500, a torque command value τ F1F6 and a torque command value τ M1M6, the motor 21 1 to 21 6 for controlling energization according to the torque command value τ M1M6 (S59). Motor 21 1 to 21 6 generates an output torque to the joint J 1 through J 6 as they are energized (S60). Control unit 500 obtains the measured values q 1 to q 6 position measurements τ 16 and joint load torque (S61). The control unit 500 determines whether or not the drive has been completed (S62), and if not (S62: No), repeats steps S56 to S62. When the control unit 500 determines that the drive has ended (S62: Yes), the control unit 500 ends the control process. In the present embodiment, the control process ends when 5 seconds have elapsed from the start of the force control in step S55.

図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 hand 252 in the X-axis direction with respect to the time when the force is controlled in the first embodiment.

インピーダンス制御の目標位置Pは、図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 hand 252 of the manipulator 200 when the manipulator 200 is force-controlled in the first embodiment. The horizontal axis is the position of the coordinate system Te in the coordinate system To in the X-axis direction. The vertical axis is the position of the coordinate system Te in the coordinate system To in the Z-axis direction. The position change due to the contact between the work W1 and the work W2 shall not be considered.

図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 position 270 mm in the X-axis direction of the coordinate system To, the coordinate system To The position in the Z-axis direction is within the range of 195 mm to 205 mm. Therefore, the assembly of the work W1 to the work W2 is successful.

一方、ステップS57においてトルク指令値τF1〜τF6を補正しない場合、即ち、トルク指令値τF1〜τF6がトルク指令値τref1〜τref6である場合を比較例とする。図13(c)のグラフは、比較例おいて、マニピュレータ200を力制御したときのマニピュレータ200のハンド252の座標系Teの位置変化を示している。 On the other hand, if not corrected torque command value τ F1F6 in step S57, the words, and comparative example where the torque command value τ F1F6 is the torque command value τ ref1 ~τ ref6. The graph of FIG. 13C shows the position change of the coordinate system Te of the hand 252 of the manipulator 200 when the manipulator 200 is force-controlled in the comparative example.

図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 position 270 mm in the X-axis direction of the coordinate system To, it is below the position 185 mm in the Z-axis direction of the coordinate system To and can be assembled at the position 195 mm. It deviates from the range of ~ 205 m by 10 mm or more. Therefore, the assembly of the work W1 to the work W2 fails.

このように、本実施形態では、マニピュレータ200の実機とモデルとの差が不明であっても、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正することで、モデル化誤差をキャンセルすることができる。また、負荷トルクの測定値τ〜τに含まれるオフセット誤差が不明であっても、フィードバック演算において、トルク指令値τref1〜τref6と測定値τ〜τとの差を求めることで、オフセット誤差をキャンセルすることができる。よって、関節J〜Jのトルクの急変を防止することができる。 Thus, in the present embodiment, even in unknown difference between the actual and model of the manipulator 200, by correcting a torque command value τ Fd1Fd6 correction value τ comp1 ~τ comp6, modeling error Can be canceled. Even unknown offset error included in the measured values τ 16 of the load torque, the feedback calculation, determining the difference between the measured values τ 16 and the torque command value τ ref1 ~τ ref6 With, the offset error can be canceled. Therefore, it is possible to prevent a sudden change in the torque of the joint J 1 through J 6.

また、ロボットモデル503は、厳密に現実のマニピュレータ200に近付ける必要がなくなるので、ロボットモデル503の推定などの準備にかかる手間や時間を減らすことができる。さらに、環境変化や経時変化によるトルクセンサ24〜24のオフセット誤差も事前に調べる必要がなくなり、校正作業にかかる手間や時間も減らすことができる。所定の校正作業を事前に行う必要なしに、力制御の作業ごとにモデル化誤差およびセンサオフセット誤差による制御性能の低下や不測の動作を防止することができる。 Further, since the robot model 503 does not need to be strictly close to the actual manipulator 200, it is possible to reduce the labor and time required for preparation such as estimation of the robot model 503. Further, the offset error of the torque sensor 24 1-24 6 due to environmental changes or aging also eliminates the need to examine in advance, it is possible to also reduce time-consuming and time calibration work. It is possible to prevent deterioration of control performance and unexpected operation due to modeling error and sensor offset error for each force control operation without having to perform a predetermined calibration operation in advance.

[第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 robot device 100A of the second embodiment, the same components as those of the robot device 100 of the first embodiment are designated by the same reference numerals, and detailed description thereof will be omitted. As shown in FIG. 14, the robot device 100A includes a manipulator 200 having the same configuration as that of the first embodiment, and a control device 1000A having a control unit 500A for controlling the position or thrust of the manipulator 200. Further, the robot device 100A includes a teaching pendant 600 as a teaching device for transmitting teaching data to the control device 1000A.

制御部500Aは、第1制御ユニットである制御ユニット300Aと、第2制御ユニットである制御ユニット400Aと、を有する。制御ユニット300Aは、ロボット装置100Aを統括的に制御するものである。制御ユニット400Aは、制御ユニット300Aからの指令に基づいて、マニピュレータ200の位置又は推力を制御するものである。制御ユニット400Aは、マニピュレータ200の各サーボ機構部20〜20を制御するサーボ制御装置である。 The control unit 500A includes a control unit 300A which is a first control unit and a control unit 400A which is a second control unit. The control unit 300A comprehensively controls the robot device 100A. The control unit 400A controls the position or thrust of the manipulator 200 based on a command from the control unit 300A. The control unit 400A is a servo controller for controlling the respective servo mechanisms 20 1 to 20 6 of the manipulator 200.

制御部500Aについて具体的に説明する。図15及び図16は、第2実施形態に係る制御部500Aの構成を示すブロック図である。制御部500Aは、上述したように、制御ユニット300A,400Aを有する。図15には、制御ユニット300Aの詳細な構成、図16には、制御ユニット400Aの詳細な構成について図示している。 The control unit 500A will be specifically described. 15 and 16 are block diagrams showing the configuration of the control unit 500A according to the second embodiment. As described above, the control unit 500A has control units 300A and 400A. FIG. 15 shows a detailed configuration of the control unit 300A, and FIG. 16 illustrates a detailed configuration of the control unit 400A.

制御ユニット300Aは、コンピュータで構成されている。制御ユニット300Aのハードウェアは、第1実施形態と同様であり、CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、及びインタフェース306〜309を備えている。CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、インタフェース306〜309は、相互に通信可能にバス310で接続されている。ROM302には、CPU301に制御方法の処理を実行させるためのプログラム330Aが格納されている。 The control unit 300A is composed of a computer. The hardware of the control unit 300A is the same as that of the first embodiment, and includes a CPU 301, a ROM 302, a RAM 303, an HDD 304, a recording disk drive 305, and interfaces 306 to 309. The CPU 301, ROM 302, RAM 303, HDD 304, recording disk drive 305, and interfaces 306 to 309 are connected by a bus 310 so as to be able to communicate with each other. The ROM 302 stores a program 330A for causing the CPU 301 to execute the processing of the control method.

なお、第2実施形態では、コンピュータによって読取可能な記録媒体がROM302であり、ROM302にプログラム330Aが記録されているが、これに限定するものではない。プログラム330Aは、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム330Aを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。 In the second embodiment, the recording medium that can be read by the computer is the ROM 302, and the program 330A is recorded in the ROM 302, but the present invention is not limited to this. Program 330A may be recorded on any recording medium that can be read by a computer. As the recording medium for supplying the program 330A, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, or the like can be used.

図16に示す制御ユニット400Aは、コンピュータで構成されている。制御ユニット400Aのハードウェアは、第1実施形態と同様であり、CPU401と、ROM402と、RAM403と、インタフェース406〜409と、を備えている。CPU401、ROM402、RAM403、インタフェース406〜409は、相互に通信可能にバス410で接続されている。ROM402には、CPU401に制御方法の処理を実行させるためのプログラム430Aが格納されている。 The control unit 400A shown in FIG. 16 is composed of a computer. The hardware of the control unit 400A is the same as that of the first embodiment, and includes a CPU 401, a ROM 402, a RAM 403, and interfaces 406 to 409. The CPU 401, ROM 402, RAM 403, and interfaces 406 to 409 are connected by a bus 410 so as to be able to communicate with each other. The ROM 402 stores a program 430A for causing the CPU 401 to execute the processing of the control method.

インタフェース406には、モータ21〜21が接続されている。インタフェース407には、位置センサ23〜23が接続されている。インタフェース408には、トルクセンサ24〜24が接続されている。インタフェース409には、制御ユニット300Aが接続されている。 The interface 406, the motor 21 1 to 21 6 are connected. The interface 407, the position sensor 23 1-23 6 is connected. The interface 408, the torque sensor 24 1-24 6 is connected. A control unit 300A is connected to the interface 409.

なお、第2実施形態では、コンピュータによって読取可能な記録媒体がROM402であり、ROM402にプログラム430Aが記録されているが、これに限定するものではない。プログラム430Aは、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム430Aを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。 In the second embodiment, the recording medium that can be read by a computer is the ROM 402, and the program 430A is recorded in the ROM 402, but the present invention is not limited to this. The program 430A may be recorded on any recording medium as long as it can be read by a computer. As the recording medium for supplying the program 430A, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, or the like can be used.

図17は、第2実施形態に係るロボット装置の制御システムを示す制御ブロック図である。図15に示す制御ユニット300AのCPU301は、プログラム330Aを実行することにより、図17に示すトルク指令値生成部504A及び位置指令値生成部505として機能する。図16に示す制御ユニット400AのCPU401は、プログラム430Aを実行することにより、図17に示すトルク制御部51A〜51A、位置制御部52〜52、切替部53〜53、及びモータ制御部54〜54として機能する。サーボ機構部20〜20は、モータ21〜21、減速機22〜22、位置センサ23〜23、及びトルクセンサ24〜24を有する。 FIG. 17 is a control block diagram showing a control system of the robot device according to the second embodiment. The CPU 301 of the control unit 300A shown in FIG. 15 functions as the torque command value generation unit 504A and the position command value generation unit 505 shown in FIG. 17 by executing the program 330A. CPU401 of the control unit 400A shown in FIG. 16, by executing a program 430A, the torque control unit 51A 1 ~51A 6 shown in FIG. 17, the position control unit 52 1 to 52 6, the switching unit 53 1 to 53 6 and, functions as a motor control unit 54 1 to 54 6. Servomechanism units 20 1 to 20 6 has a motor 21 1 to 21 6, reducer 22 1-22 6, the position sensor 23 1-23 6 and the torque sensor 24 1-24 6.

トルク指令値生成部504Aは、ロボットモデル503、目標力F、目標位置P、関節J〜Jの位置の測定値q〜q、関節J〜Jのトルクの測定値τ〜τが入力される。そして、トルク指令値生成部504Aは、これらの値を用いて、関節J〜Jに対するトルク指令値τref1〜τref6を求める。トルク指令値生成部504Aは、求めたトルク指令値τref1〜τref6を、トルク制御部51A〜51Aに出力する。 Torque command value generating unit 504A, the robot model 503, the target force F d, the target position P d, the measured values q 1 to q 6 position of the joint J 1 through J 6, the measured value of the torque of the joint J 1 through J 6 τ 1 to τ 6 are input. The torque command value generating unit 504A, using these values, to obtain a torque command value τ ref1 ~τ ref6 for rheumatoid J 1 through J 6. Torque command value generating unit 504A includes a torque command value τ ref1 ~τ ref6 obtained, and outputs the torque control unit 51A 1 ~51A 6.

トルク制御部51A〜51Aは、関節J〜Jのトルク指令値τref1〜τref6と、関節J〜Jのトルクの測定値τ〜τとの差が小さくなるように、トルク指令値τF1〜τF6を求め、切替部53〜53に出力する。トルク制御部51A〜51Aの詳細については後述する。なお、位置制御部52〜52、切替部53〜53、モータ制御部54〜54は、第1実施形態と同様の処理を行うため、詳細な説明は省略する。 Torque control unit 51A 1 ~51A 6 is such that the difference between the torque command value τ ref1 ~τ ref6 joints J 1 through J 6, and the measured values τ 16 torque joints J 1 through J 6 is reduced to obtain the torque command value τ F1F6, and outputs to the switching unit 53 1 to 53 6. Details of the torque control units 51A 1 to 51A 6 will be described later. The position control unit 52 1 to 52 6, the switching unit 53 1 to 53 6, the motor control unit 54 1 to 54 6 performs the same processing as in the first embodiment, the detailed description thereof is omitted.

以上、制御ユニット400Aは、制御ユニット300Aから位置指令値qref1〜qref6を取得した場合、位置指令値qref1〜qref6と測定値q〜qとの差に基づき、マニピュレータ200の位置を制御する。制御ユニット400Aは、制御ユニット300Aからトルク指令値τref1〜τref6を取得した場合、トルク指令値τref1〜τref6と測定値τ〜τとの差に基づき、マニピュレータ200の推力、即ち関節J〜Jの出力トルクを制御する。 Above, the control unit 400A, when acquiring the position command value q ref1 to q Ref6 from the control unit 300A, on the basis of the difference between the position command value q ref1 to q Ref6 and measured values q 1 to q 6, the position of the manipulator 200 To control. The control unit 400A, when the control unit 300A obtains the torque command value τ ref1 ~τ ref6, based on the difference between the measured values τ 16 and the torque command value τ ref1 ~τ ref6, thrust manipulator 200, i.e. controlling the output torque of the joint J 1 through J 6.

ところで、マニピュレータで精密な組立作業を行う場合、マニピュレータを位置制御する位置制御モードにて組立を開始する所定位置にマニピュレータを移動させる。その後、マニピュレータを力制御する力制御モードに切り替えてからマニピュレータに精密組立を行わせることがある。位置制御モードから力制御モードに制御モードを切り替える際、仮に、マニピュレータの関節を駆動するモータへのトルク指令値が急激に変化すると、関節が急峻な動作をし、その結果、マニピュレータのハンドが振動的になることがある。これは、位置制御モードから力制御モードへの切り替え時に、フィードバック値が一旦ゼロにリセットされるためである。 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には、トルク制御部51A〜51Aの処理について図示している。トルク制御部51A〜51Aは、主に、フィードバック制御部60〜60、フィードフォワード演算部62〜62、及び加算部63〜63として機能する。また、図16に示すRAM403は、第1記憶部61〜61及び第2記憶部71〜71として機能する。以下、各部の機能について説明する。 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 . Torque control unit 51A 1 ~51A 6 mainly includes a feedback control unit 60 1 to 60 6, the feed forward calculation unit 62 1 to 62 6, and functions as a summing unit 63 1 to 63 6. Furthermore, RAM 403 shown in FIG. 16 functions as a first storage unit 61 1 to 61 6 and the second storage unit 71 1 to 71 6. The functions of each part will be described below.

第1記憶部61〜61は、力制御モードに切り替わる前の位置制御モードにおいて、第1測定値である、トルクセンサ24〜24を用いて測定した負荷トルクの測定値τ〜τを、オフセット値τoffset1〜τoffset6として記憶する。即ち、トルク制御部51A〜51Aは、位置制御部52〜52がマニピュレータ200の位置を制御しているときにマニピュレータ200に生じる負荷の第1測定値に基づくオフセット値τoffset1〜τoffset6を求める。トルク制御部51A〜51Aは、第1記憶部61〜61に、位置制御時に取得したオフセット値τoffset1〜τoffset6を記憶させておく。第1記憶部61〜61に記憶されたオフセット値τoffset1〜τoffset6は、位置制御モードから力制御モードに切り替えた後、フィードバック値τFB1〜τFB6に加算される。 First storage unit 61 1 to 61 6, in the position control mode before switching to a force control mode, a first measurement value, the measurement value tau 1 ~ load torque measured using the torque sensor 24 1-24 6 the tau 6, is stored as an offset value τ offset1 ~τ offset6. That is, the torque control unit 51A 1 ~51A 6, the offset value τ offset1 ~τ based on the first measurement value of the load occurring in the manipulator 200 when the position control unit 52 1 to 52 6 is controlling the position of the manipulator 200 Find offset6 . Torque control unit 51A 1 ~51A 6 in the first storage section 61 1-61 6 and allowed to store the offset value τ offset1 ~τ offset6 acquired for position control. Offset value τ offset1 ~τ offset6 stored in the first storage unit 61 1 to 61 6, after switching from the position control mode to a force control mode, it is added to the feedback value τ FB1FB6.

本実施形態では、マニピュレータ200の位置が目標位置に到達したのをトリガとし、その時の測定値τ〜τをオフセット値τoffset1〜τoffset6とする。なお、オフセット値τoffset1〜τoffset6は、位置制御中、所定の制御周期で随時更新してもよい。この場合、位置制御モードから力制御モードに切り替わるときには、最後に更新された値が第1記憶部61〜61に保持されることとなる。 In this embodiment, a trigger that the position of the manipulator 200 has reached the target position, the measured value τ 16 at the time the offset value τ offset1 ~τ offset6. The offset value τ offset1 ~τ offset6 during position control, may be updated from time to time at a predetermined control cycle. In this case, when switching from the position control mode to a force control mode, so that the last updated value is held in the first storage unit 61 1 to 61 6.

フィードバック制御部60〜60は、力制御モードにおいて、所定の制御周期で、トルク指令値生成部504Aからトルク指令値τref1〜τref6と、トルクセンサ24〜24を用いて測定した負荷トルクの測定値τ〜τと、を取得する。フィードバック制御部60〜60は、トルク指令値τref1〜τref6と、測定値τ〜τとの差に基づき、フィードバック値τFB1〜τFB6を算出する。フィードバック制御部60〜60は、フィードバック演算の一例として、比例演算、積分演算、及び微分演算とからなるPID演算を行う。 Feedback control unit 60 1 to 60 6, in a force control mode, at a predetermined control period, a torque command value τ ref1 ~τ ref6 from the torque command value generating unit 504A, was measured using the torque sensor 24 1-24 6 The measured values τ 1 to τ 6 of the load torque are acquired. Feedback control unit 60 1 to 60 6, a torque command value τ ref1 ~τ ref6, based on the difference between the measured values τ 16, calculates the feedback value τ FB1FB6. Feedback control unit 60 1 to 60 6 is performed as an example of the feedback calculation, proportional operation, integral operation, and a PID operation consisting of a differentiation operation.

フィードフォワード演算部62〜62は、力制御時において、トルク指令値τref1〜τref6に応じたフィードフォワード値τFF1〜τFF6を求める。加算部63〜63は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6と、フィードフォワード値τFF1〜τFF6とを加算し、その値を、トルク指令値τF1〜τF6として切替部53〜53に出力する。 Feedforward calculation unit 62 1 to 62 6, at the time of the force control, obtains the feedforward value τ FF1FF6 corresponding to the torque command value τ ref1 ~τ ref6. Adding unit 63 1 to 63 6, the feedback value τ FB1FB6, the offset value τ offset1 ~τ offset6, adds the feedforward value τ FF1FF6, and its value, the torque command value tau F1 ~ and outputs to the switching unit 53 1 to 53 6 as tau F6.

フィードフォワード演算部62〜62の処理について具体例を挙げて説明する。ここで、トルク制御部51A〜51Aが入力を受けるトルク指令値τref1〜τref6のうち、力制御時に最初に入力を受ける指令値(第2指令値)を、トルク指令値τ0ref1〜τ0ref6とする。つまり、トルク指令値生成部504Aは、トルク指令値τ0ref1〜τ0ref6を、マニピュレータ200の推力の制御を開始したときに最初に求める。また、トルク制御部51A〜51Aがトルク指令値τ0ref1〜τ0ref6の後に入力を受ける指令値(第1指令値)をトルク指令値τ1ref1〜τ1ref6とする。つまり、トルク指令値生成部504Aは、トルク指令値τ0ref1〜τ0ref6の後にトルク指令値τ1ref1〜τ1ref6を求める。よって、トルク指令値τ0ref1〜τ0ref6は、トルク制御部51A〜51Aにおいて、トルク指令値τ1ref1〜τ1ref6の前に入力を受けるトルク指令値である。 Be described by way of a specific example process of the feedforward calculation unit 62 1 to 62 6. Here, among the torque command value τ ref1 ~τ ref6 the torque control unit 51A 1 ~51A 6 receives an input command value to receive the first input when the force control (second command value), torque command value .tau.0 ref1 ~ Let τ0 ref6 . That is, the torque command value generation unit 504A first obtains the torque command values τ0 ref1 to τ0 ref6 when the control of the thrust of the manipulator 200 is started. The torque control unit 51A 1 ~51A 6 is a torque command value τ0 ref1 ~τ0 command value receiving input after the Ref6 (first command value) torque command value τ1 ref1 ~τ1 ref6. That is, the torque command value generating unit 504A calculates a torque command value τ1 ref1 ~τ1 ref6 after the torque command value τ0 ref1 ~τ0 ref6. Thus, the torque command value τ0 ref1 ~τ0 ref6, in the torque control unit 51A 1 ~51A 6, and the torque command value receiving input before the torque command value τ1 ref1 ~τ1 ref6.

フィードフォワード演算部62〜62は、本実施形態では、モデルトルク演算部70〜70と、減算部73〜73とを含む。力制御を行う最初の制御サイクルについて説明する。モデルトルク演算部70〜70は、ロボットモデル503を用いた動力学の計算により、トルク指令値τ0ref1〜τ0ref6に応じた、マニピュレータ200に生じる負荷である負荷トルクの第2計算値である計算値τ0FF1〜τ0FF6を求める。ロボットモデル503には、モータ21〜21の負荷イナーシャJ及び粘性係数D、並びに減速機22〜22の剛性値K及び減速比Nなどのパラメータが含まれる。本実施形態では、モデルトルク演算部70〜70は、トルク指令値τ0ref1〜τ0ref6と、ロボットモデル503に含まれるパラメータJ、D、K、Nと、に基づいて、計算値τ0FF1〜τ0FF6を以下の式(2)に従って求める。sはラプラス演算子である。

Figure 2020151824
Feedforward calculation unit 62 1 to 62 6, in this embodiment, includes a model torque calculating section 70 1-70 6, a subtraction unit 73 1 to 73 6. The first control cycle for force control will be described. Model torque calculating section 70 1-70 6, the calculation of the kinetics using a robot model 503, corresponding to the torque command value τ0 ref1 ~τ0 ref6, the second calculated value of the load torque is a load generated in the manipulator 200 finding a certain calculated value τ0 FF1 ~τ0 FF6. The robot model 503 includes parameters such as load inertia J M and the viscosity coefficient D M, and the reduction gear 22 1-22 6 stiffness value K and the reduction ratio N of the motor 21 1 to 21 6. In the present embodiment, the model torque calculation unit 70 1 to 70 6, the torque command value τ0 ref1 ~τ0 ref6, based parameter J M, D M included in the robot model 503, K, and N, the calculated values τ0 FF1 to τ0 FF6 are obtained according to the following equation (2). s is a Laplace operator.
Figure 2020151824

第2記憶部71〜71は、計算値τ0FF1〜τ0FF6を、オフセット値である基準値τ0FF1〜τ0FF6として記憶する。第2記憶部71〜71は、力制御が継続される間、計算値τ0FF1〜τ0FF6を基準値τ0FF1〜τ0FF6として保持する。力制御モードから位置制御モードに切り替わったときには、第2記憶部71〜71は、リセットされる。 The second storage unit 71 1 to 71 6, the calculated value τ0 FF1 ~τ0 FF6, is stored as a reference value τ0 FF1 ~τ0 FF6 is an offset value. The second storage unit 71 1 to 71 6, while the force control is continued, for holding the calculated value τ0 FF1 ~τ0 FF6 as a reference value τ0 FF1 ~τ0 FF6. When switching from the force control mode to position control mode, the second storage unit 71 1 to 71 6 is reset.

減算部73〜73は、計算値τ0FF1〜τ0FF6から基準値τ0FF1〜τ0FF6を引いた値を、フィードフォワード値τFF1〜τFF6とし、加算部63〜63に出力する。したがって、本実施形態では、フィードフォワード値τFF1〜τFF6の初期値はゼロである。 Subtraction unit 73 1 to 73 6, a value obtained by subtracting the calculated value τ0 FF1 ~τ0 FF6 reference value τ0 FF1 ~τ0 FF6 from the feedforward value τ FF1FF6, and outputs the result to adding section 63 1-63 6 .. Therefore, in the present embodiment, the initial value of the feedforward value τ FF1FF6 is zero.

次に、最初の制御サイクルの次の制御サイクル以降について説明する。モデルトルク演算部70〜70は、ロボットモデル503を用いた動力学の計算により、トルク指令値τ1ref1〜τ1ref6に応じた、マニピュレータ200に生じる負荷である負荷トルクの第1計算値である計算値τ1FF1〜τ1FF6を求める。本実施形態では、モデルトルク演算部70〜70は、トルク指令値τ1ref1〜τ1ref6と、ロボットモデル503に含まれるパラメータJ、D、K、Nと、に基づいて、計算値τ1FF1〜τ1FF6を以下の式(3)に従って求める。減算部73〜73は、計算値τ1FF1〜τ1FF6から基準値τ0FF1〜τ0FF6を引いた値を、フィードフォワード値τFF1〜τFF6とし、加算部63〜63に出力する。

Figure 2020151824
Next, the following control cycle after the first control cycle will be described. Model torque calculating section 70 1-70 6, the calculation of the kinetics using a robot model 503, corresponding to the torque command value τ1 ref1 ~τ1 ref6, the first calculated value of the load torque is a load generated in the manipulator 200 finding a certain calculated value τ1 FF1 ~τ1 FF6. In the present embodiment, the model torque calculation unit 70 1 to 70 6, a torque command value τ1 ref1 ~τ1 ref6, based parameter J M, D M included in the robot model 503, K, and N, the calculated values τ1 FF1 to τ1 FF6 are obtained according to the following equation (3). Subtraction unit 73 1 to 73 6, a value obtained by subtracting the calculated value τ1 FF1 ~τ1 FF6 reference value τ0 FF1 ~τ0 FF6 from the feedforward value τ FF1FF6, and outputs the result to adding section 63 1-63 6 ..
Figure 2020151824

つまり、マニピュレータ200の関節J〜Jにおいて、作用する負荷の変動で捩れ量が変動すると、ハンド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 hand 252 is vibrated. In the present embodiment, with reference to the load at the time of starting the power control, load fluctuation (difference between two calculated) by the feed-forward value τ FF1FF6, enhance the responsiveness of the force control As a result, the vibration of the hand 252 is suppressed.

なお、第2実施形態においては、第2記憶部71〜71に記憶される基準値は、マニピュレータ200の推力の制御を開始して最初に求められる初期値である計算値τ0FF1〜τ0FF6であるのが好ましいが、これに限定するものではない。例えば、初期値の次の値などを用いてもよい。即ち、基準値は、ある計算値τ1FF1〜τ1FF6よりも前に、トルク指令値τ1FF1〜τ1FF6よりも前のトルク指令値に応じて求められた、マニピュレータ200に生じる負荷の計算値であればよい。 In the second embodiment, the reference value stored in the second storage unit 71 1 to 71 6, and starts controlling the thrust of the manipulator 200 Calculated an initial value is first determined τ0 FF1 ~τ0 FF6 is preferable, but the present invention is not limited to this. For example, the value next to the initial value may be used. That is, the reference value, prior to the calculated value τ1 FF1 ~τ1 FF6 there, than the torque command value τ1 FF1 ~τ1 FF6 obtained in accordance with the previous torque command value, the calculation value of the load occurring in the manipulator 200 All you need is.

図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 hand 252 and the work W1 is assembled to the work W2 to manufacture the article. To do.

まず、制御部500Aは、マニピュレータ200の位置制御を開始し(S71)、力制御を開始する位置、即ち図10(a)に示す教示点P1に到達するまで、位置制御でマニピュレータ200を駆動する(S72)。 First, the control unit 500A starts the position control of the manipulator 200 (S71), and drives the manipulator 200 by the position control until it reaches the position where the force control is started, that is, the teaching point P1 shown in FIG. 10A. (S72).

マニピュレータ200が力制御を開始する位置まで駆動したかどうかを判定する(S73)。制御部500Aは、マニピュレータ200がその位置まで移動した場合(S73:Yes)、当該位置におけるトルクの測定値τ〜τを取得する。制御部500Aは、図18に示す第1記憶部61〜61に、測定値τ〜τをオフセット値τoffset1〜τoffset6として記憶させる(S74)。 It is determined whether or not the manipulator 200 has been driven to a position where force control is started (S73). When the manipulator 200 moves to that position (S73: Yes), the control unit 500A acquires the measured torque values τ 1 to τ 6 at that position. Control unit 500A in the first storage section 61 1-61 6 shown in FIG. 18, and stores the measured value tau 1 ~Tau 6 as the offset value τ offset1 ~τ offset6 (S74).

次に、制御部500Aは、位置制御モードから力制御モードへマニピュレータ200を制御する制御モードを切り替え(S75)、マニピュレータ200の力制御を開始する(S76)。力制御開始後、制御部500Aは、トルク指令値τ0ref1〜τ0ref6を入力として、関節J〜Jにおける負荷トルクの計算値τ0FF1〜τ0FF6を基準値として第2記憶部71〜71に記憶させる(S77)。 Next, the control unit 500A switches the control mode for controlling the manipulator 200 from the position control mode to the force control mode (S75), and starts the force control of the manipulator 200 (S76). After force control start, the control unit 500A is input with a torque command value τ0 ref1 ~τ0 ref6, joints J 1 calculated value of the load torque in ~J 6 τ0 FF1 ~τ0 FF6 second storage unit 71 1 as a reference value a 71 6 to be stored in (S77).

制御部500Aは、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6とフィードフォワード値τFF1〜τFF6とを加算した値に基づいて、マニピュレータ200の推力を制御する。これにより、制御部500Aは、マニピュレータ200のハンド252に働く力が目標力となるように駆動する(S78)。 Control unit 500A includes a feedback value τ FB1FB6, based on the value obtained by adding the offset value τ offset1 ~τ offset6 feedforward value τ FF1FF6, controls the thrust of the manipulator 200. As a result, the control unit 500A is driven so that the force acting on the hand 252 of the manipulator 200 becomes the target force (S78).

制御部500Aは、駆動が終了したかどうか、つまり組付けが完了したかどうかを判定する(S79)。制御部500Aは、駆動が終了していない場合(S79:No)、組付けが完了するまで、ステップS78及びS79のループを繰り返し実行する。制御部500Aは、駆動終了と判断したら(S79:Yes)、制御処理を終了する。 The control unit 500A determines whether or not the drive is completed, that is, whether or not the assembly is completed (S79). If the drive is not completed (S79: No), the control unit 500A repeatedly executes the loops of steps S78 and S79 until the assembly is completed. When the control unit 500A determines that the drive is finished (S79: Yes), the control unit 500A ends the control process.

以上、第2実施形態によれば、位置制御モードから力制御モードへ切り替わる直前に、第1記憶部61〜61にトルクの測定値τ〜τが、オフセット値τoffset1〜τoffset6として記憶される。力制御モードに切り替わった後は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6が加算される。これにより、位置制御モードから力制御モードに制御が切り替わった際に、トルク指令値τM1〜τM6の連続性が補償される。モータトルク指令値τM1〜τM6の連続性が補償されるので、モータへ供給される電流Cur〜Curが急峻に変動するのが防止される。よって、マニピュレータ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 first storage unit 61 1 to 61 6, the offset value τ offset1 ~τ offset6 Is remembered as. After switching to the force control mode, the feedback value τ FB1FB6, the offset value τ offset1 ~τ offset6 is added. As a result, the continuity of the torque command values τ M1 to τ M6 is compensated when the control is switched from the position control mode to the force control mode. Since the continuity of the motor torque command values τ M1 to τ M6 is compensated, it is prevented that the currents Cur 1 to Cur 6 supplied to the motor fluctuate sharply. Therefore, steep movements can be prevented at each joint of the manipulator 200, and the hand 252 of the manipulator 200 can be prevented from vibrating. In particular, when performing precise assembly work using the manipulator 200, vibration of the hand 252 of the manipulator 200 is prevented, so that it is possible to prevent the assembled work or the work to be assembled from being deformed or destroyed. In addition, assembly defects can be reduced, retry operations are reduced, and the productivity of articles is improved.

また、第2実施形態によれば、フィードバック値τFB1〜τFB6に、フィードフォワード値τFF1〜τFF6が加算されるので、マニピュレータ200における関節J〜Jの制御の応答性が向上する。このフィードフォワード値τFF1〜τFF6は、負荷トルクの計算値τ1FF1〜τ1FF6から、オフセットしている分として基準値τ0FF1〜τ0FF6が除去されることで求められるので、トルク指令値τM1〜τM6が急峻に変動するのが防止される。したがって、制御モードの切替時にハンド252が振動するのを効果的に防止することができる。以上、第2実施形態によれば、位置制御モードから力制御モードへ切り替わる際のマニピュレータ200の制御性が向上する。 Further, according to the second embodiment, the feedback value τ FB1FB6, since the feedforward value τ FF1FF6 is added, the responsiveness of the control of the joint J 1 through J 6 in the manipulator 200 is increased .. The feedforward value τ FF1FF6 from calculated values τ1 FF1 ~τ1 FF6 of the load torque, the reference value τ0 FF1 ~τ0 FF6 is obtained by being removed as a frequency that is offset, the torque command value tau It is prevented that M1 to τ M6 fluctuate sharply. Therefore, it is possible to effectively prevent the hand 252 from vibrating when the control mode is switched. As described above, according to the second embodiment, the controllability of the manipulator 200 when switching from the position control mode to the force control mode is improved.

図20は、第2実施形態における実験結果を示すグラフである。図20において、横軸は時間、縦軸はトルクである。図20には、関節J1のトルク指令値τM1と、関節J1の負荷トルクの測定値τについて図示している。 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へ切り替わるが、急峻な変化をさせることなく滑らかに切り替わっている。このため、制御モードを切り替えた後のトルクの測定値τの振動が小さい。また、力制御時は、フィードバック値τFB1にフィードフォワード値τFF1を加算しているため、測定値τが応答性良く、トルク指令値τ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 manipulator 200 even when the control mode is switched.

[第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記憶部71〜71に記憶させておく基準値を、モデルトルク演算部70〜70にて算出した値の初期値とした。制御モードの切り替え直後は、フィードフォワード値τFF1〜τFF6はゼロとなる。よって、この場合、トルク指令値τM1〜τM6は、僅かな期間ではあるが一定値となり、滑らかに推移しない。 In the second embodiment, the reference value should be stored in the second storage unit 71 1 to 71 6, and the initial value of the calculated values in the model torque calculation unit 70 1 to 70 6. Immediately after the switching of the control mode, feedforward value τ FF1FF6 becomes zero. Therefore, in this case, the torque command values τ M1 to τ M6 become constant values for a short period of time and do not change smoothly.

図21は、第3実施形態に係る第2制御ユニットの処理の一部を示すブロック図である。第3実施形態では、モデルトルク演算部70〜70は、力制御実行の前の位置制御実行時に、第2計算値を求める演算処理を並行して行い、この値を第2記憶部71〜71に記憶させておく。 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は、位置制御中に目標力F、目標位置P、測定値τ〜τ、及び測定値q〜qを取得し、トルク指令値τ2ref1〜τ2ref6を、取得したこれら値に基づいて生成する。 Specifically, the torque command value generating unit 504A, when position control is being executed, before the torque command value τ1 ref1 ~τ1 ref6 a first command value when the force control is executed, the obtaining a torque command value τ2 ref1 ~τ2 ref6 a second command value. Torque command value generating unit 504A acquires the target force F d, the target position P d, the measured value τ 16, and the measured values q 1 to q 6 in the position control torque command value τ2 ref1 ~τ2 ref6 Is generated based on these acquired values.

トルク指令値生成部504Aは、位置制御が実行されている時に、トルク指令値τ2ref1〜τ2ref6をモデルトルク演算部70〜70に出力する。そして、モデルトルク演算部70〜70は、取得したトルク指令値τ2ref1〜τ2ref6に応じた負荷トルクの第2計算値である計算値τ2FF1〜τ2FF6を求める。そして、モデルトルク演算部70〜70は、この計算値τ2FF1〜τ2FF6を基準値τ2FF1〜τ2FF6として第2記憶部71〜71に記憶させる。なお、位置制御時、フィードバック制御部60〜60、減算部73〜73、及び加算部63〜63は、演算処理を行う必要がないため行わない。 Torque command value generating unit 504A outputs when the position control is being executed, the torque command value τ2 ref1 ~τ2 ref6 the model torque calculation unit 70 1 to 70 6. The model torque calculating section 70 1-70 6 obtains a calculated value τ2 FF1 ~τ2 FF6 is a second calculated value of the load torque corresponding to the torque command value τ2 ref1 ~τ2 ref6 obtained. The model torque calculating section 70 1-70 6, and stores the calculated value τ2 FF1 ~τ2 FF6 as a reference value τ2 FF1 ~τ2 FF6 in the second storage unit 71 1 to 71 6. Incidentally, when the position control, a feedback control unit 60 1 to 60 6, the subtraction unit 73 1 to 73 6, and the addition unit 63 1 to 63 6 are not performed because there is no need to perform calculation processing.

力制御を実行するときには、フィードバック制御部60〜60は、トルク指令値τ1ref1〜τ1ref6と測定値τ〜τとの差に基づき、フィードバック値τFB1〜τFB6を求める。モデルトルク演算部70〜70は、トルク指令値τ1ref1〜τ1ref6に応じた第1計算値である計算値τ1FF1〜τ1FF6を求める。減算部73〜73は、計算値τ1FF1〜τ1FF6から基準値τ2FF1〜τ2FF6を減算して、フィードフォワード値τFF1〜τFF6を求める。そして、加算部63〜63は、フィードバック値τFB1〜τFB6に、オフセット値τoffset1〜τoffset6、及びフィードフォワード値τFF1〜τFF6を加算することで、トルク指令値τF1〜τF6を求める。 When performing power control, the feedback control unit 60 1 to 60 6, based on a difference between the torque command value τ1 ref1 ~τ1 ref6 and measured values τ 16, obtains the feedback value τ FB1FB6. Model torque calculating section 70 1-70 6 obtains a calculated value τ1 FF1 ~τ1 FF6 is first calculated value corresponding to the torque command value τ1 ref1 ~τ1 ref6. Subtraction unit 73 1 to 73 6, from the calculated value τ1 FF1 ~τ1 FF6 by subtracting the reference value τ2 FF1 ~τ2 FF6, obtaining the feedforward value τ FF1FF6. Then, the addition section 63 1-63 6, the feedback value τ FB1FB6, the offset value τ offset1 ~τ offset6, and by adding the feedforward value τ FF1FF6, torque command value τ F1Find F6 .

これにより、力制御モードに切り替え直後であっても、トルク指令値τ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 hand 252 of the manipulator 200 when the control mode is switched.

図22は、第3実施形態における実験結果を示すグラフである。なお、図22のグラフには、第2実施形態における実験結果も図示している。図22には、関節Jのトルク指令値τ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 hand 252 of the manipulator 200 can be further suppressed when the control mode is switched, and highly accurate and highly responsive force control becomes possible.

[第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 robot device 100B of the fourth embodiment, the same components as those of the robot device of the first, second or third embodiment are designated by the same reference numerals, and detailed description thereof will be omitted. As shown in FIG. 23, the robot device 100B includes a manipulator 200 having the same configuration as that of the first embodiment, and a control device 1000B having a control unit 500B for controlling the manipulator 200. Further, the robot device 100B includes a teaching pendant 600 as a teaching device for transmitting teaching data to the control device 1000B.

制御部500Bは、第1実施形態と同様の制御ユニット300と、第2又は第3実施形態と同様の制御ユニット400Aと、を有する。即ち、制御ユニット300は、第1実施形態において説明した処理を行い、制御ユニット400Aは、第2又は第3実施形態において説明した処理を行う。 The control unit 500B has a control unit 300 similar to that of the first embodiment and a control unit 400A similar to that of the second or third embodiment. That is, the control unit 300 performs the processing described in the first embodiment, and the control unit 400A performs the processing described in the second or third embodiment.

制御ユニット300は、制御ユニット400Aがマニピュレータ200の位置を制御しているときに、補正値τcomp1〜τcomp6(図7)を求めておく。制御ユニット300は、制御ユニット400Aにマニピュレータ200の推力を制御させる際に、教示データである力教示データ501及び位置教示データ502に基づく仮の指令値であるトルク指令値τFd1〜τFd6を求める。そして、制御ユニット300は、トルク指令値τFd1〜τFd6を補正値τcomp1〜τcomp6で補正することでトルク指令値τref1〜τref6を求めて、制御ユニット400Aにトルク指令値τref1〜τref6を出力する。 The control unit 300 obtains correction values τ comp1 to τ comp6 (FIG. 7) when the control unit 400A controls the position of the manipulator 200. Control unit 300, when to control the thrust of the manipulator 200 to the control unit 400A, to obtain a torque command value τ Fd1Fd6 a command value of the tentative based on force teaching data 501 and the position teaching data 502 is teaching data .. Then, the control unit 300 obtains a torque command value τ ref1 ~τ ref6 by correcting the torque command value τ Fd1Fd6 correction value τ comp1 ~τ comp6, torque command value tau ref1 ~ to the control unit 400A Outputs τ ref6 .

一方、制御ユニット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 control unit 400A, when controlling the position of the manipulator 200, as shown in FIG. 18, previously obtained offset value τ offset1 ~τ offset6. The control unit 400A, at the time of controlling the thrust of the manipulator 200, obtains the feedback value τ FB1FB6 and feedforward value τ FF1FF6. Then, the control unit 400A is the feedback value τ FB1FB6, the offset value τ offset1 ~τ offset6, adds the feedforward value τ FF1FF6, and generates a torque command value τ F1F6 To do. The control unit 400A controls the thrust of the manipulator 200 based on the torque command values τ F1 to τ F6 .

このように、第4実施形態では、制御部500Bが、第1実施形態で説明した制御処理と、第2又は第3実施形態で説明した制御処理とを組み合わせて制御処理を実行することで、マニピュレータ200の制御性が更に向上する。 As described above, in the fourth embodiment, the control unit 500B executes the control process by combining the control process described in the first embodiment and the control process described in the second or third embodiment. The controllability of the manipulator 200 is further improved.

なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。 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 robot arm 251 is a vertically articulated robot arm has been described, but the present invention is not limited to this. For example, various robot arms such as a horizontal articulated robot arm, a parallel link robot arm, and a orthogonal robot may be used.

(その他の実施例)
本発明は、上述の実施形態の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 ... Robot device 200 ... Manipulator 300 ... Control unit (first control unit)
400 ... Control unit (second control unit)
500 ... Control unit 1000 ... Control device

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に記載の制御装置。 The control device according to claim 1, wherein the control unit controls the output torque of the joint of the manipulator as the thrust of the manipulator. 前記制御部は、前記マニピュレータを目標位置に位置決めした際に前記第1測定値を取得して、前記補正値を求めることを特徴とする請求項1又は2に記載の制御装置。 The control device according to claim 1 or 2, wherein the control unit acquires the first measured value when the manipulator is positioned at a target position and obtains the correction value. 前記制御部は、前記マニピュレータの位置として、前記マニピュレータの先端部の位置を制御することを特徴とする請求項1乃至3のいずれか1項に記載の制御装置。 The control device according to any one of claims 1 to 3, wherein the control unit controls the position of the tip end portion of the manipulator as the position of the manipulator. 前記制御部は、
前記指令値を出力する第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.
前記制御部は、前記マニピュレータのモデルデータを用いた動力学の計算により、前記指令値に応じた、前記マニピュレータに生じる負荷の計算値を求め、前記計算値から基準値を引いた値を、前記フィードフォワード値とすることを特徴とする請求項6に記載の制御装置。 The control unit obtains a calculated value of the load generated on the manipulator according to the command value by a dynamics calculation using the model data of the manipulator, and subtracts a reference value from the calculated value. The control device according to claim 6, wherein the control device has a feed forward value. 前記計算値が第1計算値であり、前記指令値が第1指令値であり、
前記基準値は、前記第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.
前記第2指令値は、前記マニピュレータの推力の制御を開始したときに求められることを特徴とする請求項8に記載の制御装置。 The control device according to claim 8, wherein the second command value is obtained when the control of the thrust of the manipulator is started. 前記制御部は、
前記指令値を出力する第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制御ユニットと、
前記第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.
請求項1乃至11のいずれか1項に記載の制御装置と、
前記マニピュレータと、を備えるロボット装置。
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制御ユニットと、前記第1制御ユニットの指令に基づいてマニピュレータの位置又は推力を制御する第2制御ユニットとによる制御方法であって、
前記第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.
請求項13乃至15のいずれか1項に記載の制御方法により前記マニピュレータを制御して、物品を製造する物品の製造方法。 A method for manufacturing an article in which the manipulator is controlled by the control method according to any one of claims 13 to 15. 請求項13乃至15のいずれか1項に記載の制御方法をコンピュータに実行させるためのプログラム。 A program for causing a computer to execute the control method according to any one of claims 13 to 15. 請求項17に記載のプログラムを記録した、コンピュータにより読取可能な記録媒体。 A computer-readable recording medium on which the program according to claim 17 is recorded.
JP2019054335A 2019-03-22 2019-03-22 Control device, robot system, control method, article manufacturing method, program, and recording medium Active JP7391523B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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