JP2017056525A - Robot device robot control method, program, recording medium, and method of manufacturing assembling component - Google Patents

Robot device robot control method, program, recording medium, and method of manufacturing assembling component Download PDF

Info

Publication number
JP2017056525A
JP2017056525A JP2015183958A JP2015183958A JP2017056525A JP 2017056525 A JP2017056525 A JP 2017056525A JP 2015183958 A JP2015183958 A JP 2015183958A JP 2015183958 A JP2015183958 A JP 2015183958A JP 2017056525 A JP2017056525 A JP 2017056525A
Authority
JP
Japan
Prior art keywords
hand
load
robot
value
force
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015183958A
Other languages
Japanese (ja)
Inventor
智洋 泉
Tomohiro Izumi
智洋 泉
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 JP2015183958A priority Critical patent/JP2017056525A/en
Publication of JP2017056525A publication Critical patent/JP2017056525A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To suppress the diverging or vibrations of a hand end of a robot, after supporting an article with an end effector.SOLUTION: A robot 200 has a robot arm 251; and a robot hand 252 which is provided at a tip end of the robot arm 251, and grips work W1. A force detecting portion provided on the robot 200 detects hand end force applied on a hand end of the robot 200. A control portion controls the action of the robot 200 by using a load value of a hand end load model of the hand end. The control portion obtains an estimated value φof the hand end load model by using the hand end force detected by the force detecting portion when load fluctuations occur at the hand end. The control portion sets the load value of the hand end load model after the load fluctuations, so as to gradually change from a load value φof the hand end load model before the load fluctuations toward the estimated value φwith time.SELECTED DRAWING: Figure 6

Description

本発明は、手先負荷モデルを用いてロボットの動作を制御するロボット装置、ロボット制御方法、プログラム、記録媒体及び組立部品の製造方法に関する。   The present invention relates to a robot apparatus, a robot control method, a program, a recording medium, and an assembly part manufacturing method for controlling the operation of a robot using a hand load model.

搬送や組立などに用いられる産業用ロボットは、組立作業等の作業時における速度等の制御性能向上が求められている。   Industrial robots used for conveyance and assembly are required to improve control performance such as speed during assembly operations.

このような制御性能を向上する方法として、ロボットアームの先端に取り付けられたエンドエフェクタ、又はエンドエフェクタ及び支持物体からなる手先負荷モデルに基づいたモデルベース制御方法がある。手先負荷モデル(手先の動力学モデル)とは、手先の質量、重心位置若しくは慣性テンソル、又はこれらの組み合わせである。   As a method for improving such control performance, there is a model-based control method based on a hand load model composed of an end effector attached to the tip of a robot arm or an end effector and a supporting object. The hand load model (hand dynamic model) is the hand mass, the position of the center of gravity or the inertia tensor, or a combination thereof.

モデルベース制御方法は、重力やロボット自身の動作による慣性力や遠心力、コリオリ力などの動力学的な非線形要素を補償するようなフィードフォワード量をロボット動作に反映する方法として知られている。組立に必要な力制御においては、モデルベース制御によって接触作業時の安定性と速度の向上が図ることができる。すなわち、手先負荷モデルが正確であればロボットを高速に駆動させても安定した動作を実現できる。   The model-based control method is known as a method of reflecting a feedforward amount that compensates for dynamic nonlinear elements such as gravity, inertial force, centrifugal force, and Coriolis force due to the motion of the robot itself in the robot motion. In the force control required for assembly, the stability and speed during contact work can be improved by model-based control. That is, if the hand load model is accurate, stable operation can be realized even if the robot is driven at high speed.

しかし手先負荷モデルの情報に基づくモデルベース制御において、モデル化誤差があると制御性能に大きな影響を与える。また、ロボットの各関節の制限負荷内で作業を行うためには正確な手先負荷モデルが必要となる。   However, in model-based control based on the information on the hand load model, if there is a modeling error, the control performance is greatly affected. In addition, an accurate hand load model is required to perform work within the limit load of each joint of the robot.

特許文献1では、ワークを微小量持ち上げ、把持前後の手先にかかる力・モーメントの差からワークの質量・重心位置等の負荷モデルを推定する方法が提案されている。   Patent Document 1 proposes a method of lifting a work by a minute amount and estimating a load model such as the work mass and the position of the center of gravity from the difference in force and moment applied to the hand before and after gripping.

特許第5327722号公報Japanese Patent No. 5327722

しかしながら、特許文献1では、ロボットの各関節に発生する負荷トルクから手先負荷モデルの推定が可能だが、推定したワークの質量・重心位置をロボットの制御に反映する際に、手先負荷モデルの値がワークの支持前後で大きく変化する。手先負荷モデルの値がワークの支持前後で大きく変化するので、手先負荷モデルに基づいて制御するモデルベース制御方法では、ロボットの手先の位置が発散又は振動する可能性があった。ロボットの手先の位置が発散又は振動すると、ロボット又はロボットが支持している物体が、周辺の物体に衝突するおそれがあった。   However, in Patent Document 1, it is possible to estimate the hand load model from the load torque generated at each joint of the robot. However, when the estimated work mass / center of gravity position is reflected in the control of the robot, the value of the hand load model is It changes greatly before and after the workpiece is supported. Since the value of the hand load model greatly changes before and after the workpiece is supported, in the model-based control method for controlling based on the hand load model, the position of the hand of the robot may diverge or vibrate. When the position of the hand of the robot diverges or vibrates, the robot or an object supported by the robot may collide with surrounding objects.

そこで、本発明は、エンドエフェクタが物体を支持した後、ロボットの手先の位置が発散又は振動するのを抑制することを目的とする。   Therefore, an object of the present invention is to prevent the position of the hand of the robot from diverging or vibrating after the end effector supports the object.

本発明のロボット装置は、多関節のロボットアームと、前記ロボットアームの先端に設けられ、物体を支持するエンドエフェクタと、前記エンドエフェクタが物体を支持している状態又は前記エンドエフェクタが物体を支持していない状態である手先にかかる手先力を検知する力検知部とを有するロボットと、前記手先の手先負荷モデルの負荷値を用いて前記ロボットの動作を制御する制御部と、を備え、前記制御部は、前記手先において負荷変動が生じた際に前記力検知部により検知された手先力を用いて前記手先負荷モデルの推定値を求める推定処理と、前記負荷変動の後の前記手先負荷モデルの負荷値を、前記負荷変動の前の前記手先負荷モデルの負荷値から経時的に漸次、前記推定値に向かって変化するように設定する設定処理と、を実行することを特徴とする。   The robot apparatus of the present invention includes an articulated robot arm, an end effector that is provided at the tip of the robot arm and supports an object, and the end effector supports the object or the end effector supports the object. A robot having a force detection unit that detects a hand force applied to the hand that is not in operation, and a control unit that controls the operation of the robot using a load value of the hand load model of the hand, and The control unit includes an estimation process for obtaining an estimated value of the hand load model using the hand force detected by the force detection unit when a load fluctuation occurs in the hand, and the hand load model after the load fluctuation A setting process for setting the load value of the hand load model before the load change so that the load value gradually changes toward the estimated value over time, Characterized in that it run.

本発明によれば、ロボットの作業中に手先負荷が急激に変動した際にロボットの手先の位置が発散したり振動したりするのを抑制することができる。   ADVANTAGE OF THE INVENTION According to this invention, it can suppress that the position of the hand of a robot diverges or vibrates when a hand load changes rapidly during the operation | work of a robot.

第1実施形態に係るロボット装置の概略構成を示す斜視図である。1 is a perspective view illustrating a schematic configuration of a robot apparatus according to a first embodiment. 第1実施形態に係るロボット装置のロボット制御装置を示すブロック図である。It is a block diagram which shows the robot control apparatus of the robot apparatus 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 at the time of carrying out force control of the robot in 1st Embodiment. 第1実施形態においてロボットを位置制御する際のフローチャートである。It is a flowchart at the time of controlling the position of the robot in the first embodiment. (a)はロボットによる組付作業を説明するためのロボットの模式図である。(b)は手先負荷モデルの負荷値φを説明するための図である。(c)は手先負荷モデルの負荷値φを説明するための図である。(A) is a schematic diagram of the robot for demonstrating the assembly | attachment operation | work by a robot. (B) is a diagram for explaining the load value phi a of the end load model. (C) is a figure for demonstrating load value (phi) b of a hand load model. 第1実施形態に係る組立部品の製造方法を示すフローチャートである。It is a flowchart which shows the manufacturing method of the assembly components which concern on 1st Embodiment. (a)は、第1実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。(b)は、第1実施形態において時間に対する修正係数k(t)を示すグラフである。(c)は、第1実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。(A) is a graph which shows the target position and present position of the hand of the perpendicular direction with respect to time in 1st Embodiment. (B) is a graph which shows the correction coefficient k (t) with respect to time in 1st Embodiment. (C) is a graph which shows load value (phi) (t) of the hand load model with respect to time in 1st Embodiment. (a)は、比較例において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。(b)は、比較例において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。(A) is a graph which shows load value (phi) (t) of the hand load model with respect to time in a comparative example. (B) is a graph which shows the target position and present position of the hand of the perpendicular direction with respect to time in a comparative example. 第2実施形態に係る組立部品の製造方法を示すフローチャートである。It is a flowchart which shows the manufacturing method of the assembly components which concern on 2nd Embodiment. (a)は、第2実施形態において時間に対する修正係数k(t)を示すグラフである。(b)は、第2実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。(c)は、第2実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。(A) is a graph which shows the correction coefficient k (t) with respect to time in 2nd Embodiment. (B) is a graph which shows load value (phi) (t) of the hand load model with respect to time in 2nd Embodiment. (C) is a graph which shows the target position and the present position of the hand of the perpendicular direction with respect to time in 2nd Embodiment. モデル誤差が含まれる場合の時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。It is a graph which shows the target position and present position of the hand of a perpendicular direction with respect to time when a model error is included. 第3実施形態に係る組立部品の製造方法を示すフローチャートである。It is a flowchart which shows the manufacturing method of the assembly components which concern on 3rd Embodiment. (a)は、第4実施形態において時間に対する修正係数k(t)を示すグラフである。(b)は、第4実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。(c)は、第4実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。(A) is a graph which shows the correction coefficient k (t) with respect to time in 4th Embodiment. (B) is a graph which shows load value (phi) (t) of the hand load model with respect to time in 4th Embodiment. (C) is a graph which shows the target position and the present position of the hand of the perpendicular direction with respect to time in 4th Embodiment. 第5実施形態に係る組立部品の製造方法を示すフローチャートである。It is a flowchart which shows the manufacturing method of the assembly components which concern on 5th Embodiment. 第6実施形態に係る組立部品の製造方法を示すフローチャートである。It is a flowchart which shows the manufacturing method of the assembly components which concern on 6th Embodiment.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。   Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.

[第1実施形態]
図1は、第1実施形態に係るロボット装置の概略構成を示す斜視図である。図1に示すように、ロボット装置100は、多関節のロボット200と、ロボット200の動作を制御するロボット制御装置300と、を備えている。また、ロボット装置100は、ロボット制御装置300に教示データを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、操作者が操作するものであり、ロボット200やロボット制御装置300の動作を指定するのに用いる。
[First Embodiment]
FIG. 1 is a perspective view illustrating a schematic configuration of the robot apparatus according to the first embodiment. As shown in FIG. 1, the robot apparatus 100 includes an articulated robot 200 and a robot control apparatus 300 that controls the operation of the robot 200. The robot apparatus 100 also includes a teaching pendant 400 as a teaching apparatus that transmits teaching data to the robot control apparatus 300. The teaching pendant 400 is operated by an operator, and is used to specify the operation of the robot 200 or the robot control device 300.

ロボット200は、多関節のロボットアーム251と、ロボットアーム251の先端に取り付けられたエンドエフェクタとしてのロボットハンド252と、を備えている。ロボットアーム251は、第1実施形態では垂直多関節である。以下、エンドエフェクタがロボットハンド252である場合について説明するが、これに限定するものではなく、ツール等であってもよい。ロボットアーム251の基端は、台座Bに固定されている。ロボットハンド252は、物体(部品やツール等)を把持(支持)するものである。   The robot 200 includes an articulated robot arm 251 and a robot hand 252 as an end effector attached to the tip of the robot arm 251. The robot arm 251 is a vertical articulated joint in the first embodiment. Hereinafter, although the case where the end effector is the robot hand 252 will be described, the present invention is not limited to this, and a tool or the like may be used. The base end of the robot arm 251 is fixed to the base B. The robot hand 252 holds (supports) objects (parts, tools, etc.).

ロボット200、即ちロボットアーム251は、複数の関節、例えば6つ関節(6軸)J〜Jを有している。ロボットアーム251は、各関節J〜Jを各関節軸A〜Aまわりにそれぞれ回転駆動する複数(6つ)のサーボモータ201〜206を有している。 Robot 200, i.e. the robot arm 251 includes a plurality of joints, for example, six joints (6 axes) J 1 through J 6. The robot arm 251 includes a plurality (six) of servo motors 201 to 206 that rotationally drive the joints J 1 to J 6 around the joint axes A 1 to A 6 .

ロボットアーム251は、複数のリンク(フレーム)210〜210が各関節J〜Jで回転可能に連結されている。ここで、基端側から先端側に向かって、リンク210〜210が順に直列に連結されている。ロボットアーム251は、可動範囲の中であれば、任意の3次元位置で任意の3方向の姿勢に、ロボット200の手先(ロボットアーム251の先端)を向けることができる。 In the robot arm 251, a plurality of links (frames) 210 0 to 210 6 are connected to be rotatable at the joints J 1 to J 6 . Here, links 210 0 to 210 6 are connected in series in this order from the base end side to the tip end side. If the robot arm 251 is within the movable range, the hand of the robot 200 (the tip of the robot arm 251) can be directed to the posture in any three directions at any three-dimensional position.

ロボットアーム251の位置及び姿勢は、座標系で表現することができる。座標系Toは、ロボットアーム251の基端、即ち台座Bに固定した座標系を表し、座標系Teはロボット200の手先(ロボットアーム251の先端)に固定した座標系を表す。   The position and posture of the robot arm 251 can be expressed in a coordinate system. The coordinate system To represents a coordinate system fixed to the base end of the robot arm 251, that is, the base B, and the coordinate system Te represents a coordinate system fixed to the hand of the robot 200 (tip of the robot arm 251).

ここで、ロボット200の手先とは、第1実施形態では、ロボットハンド252が物体を把持(支持)していない場合には、ロボットハンド252のことである。ロボットハンド252が物体を把持(支持)している場合は、ロボットハンド252と把持(支持)している物体(例えば部品やツール等)とを含めてロボット200の手先という。つまり、ロボットハンド252が物体を把持している状態であるか物体を把持していない状態であるかにかかわらず、ロボットアーム251の先端から先を手先という。   Here, the hand of the robot 200 is the robot hand 252 in the first embodiment when the robot hand 252 does not hold (support) an object. When the robot hand 252 is gripping (supporting) an object, the robot hand 252 and the object being gripped (supported) (for example, a component or a tool) are referred to as the hand of the robot 200. In other words, regardless of whether the robot hand 252 is gripping an object or not gripping an object, the tip from the tip of the robot arm 251 is referred to as the tip.

各サーボモータ201〜206は、各関節J〜Jをそれぞれ駆動する電動モータ(モータ)211〜216と、各電動モータ211〜216にそれぞれ接続されたセンサ部221〜226とを有している。各センサ部221〜226は、各関節J〜Jの位置(角度)を検出する位置センサ(角度センサ)と、各関節J〜Jのトルクを検出するトルクセンサとを有する。また、各サーボモータ201〜206は、不図示の減速機を有し、直接、又は不図示のベルトやベアリング等の伝達部材を介して各関節J〜Jで駆動されるフレームに接続されている。 Each servomotor 201 to 206, has an electric motor (motor) 211 to 216 for driving each joint J 1 through J 6 respectively, and a sensor unit 221 to 226 respectively connected to the motors 211 to 216 Yes. Each sensor unit 221-226 includes a position sensor for detecting the position (angle) of each joint J 1 through J 6 (angle sensor), and a torque sensor for detecting the torque of each joint J 1 through J 6. Each servo motor 201 to 206 has a reduction gear (not shown) and is connected to a frame driven by each joint J 1 to J 6 directly or via a transmission member such as a belt or a bearing (not shown). ing.

ロボットアーム251の内部には、各サーボモータ201〜206の電動モータ211〜216の駆動を制御する駆動制御部としてのサーボ制御部230が配置されている。   Inside the robot arm 251, a servo control unit 230 is disposed as a drive control unit that controls driving of the electric motors 211 to 216 of the servo motors 201 to 206.

サーボ制御部230は、入力した各関節J〜Jに対応する各トルク指令値に基づき、各関節J1〜J6のトルクがトルク指令値に追従するよう、各電動モータ211〜216に電流を出力し、各電動モータ211〜216の駆動を制御する。なお、第1実施形態では、サーボ制御部230が1つの制御装置で構成されているものとして説明しているが、各電動モータ211〜216にそれぞれ対応した複数の制御装置の集合体で構成されていてもよい。また、第1実施形態では、サーボ制御部230は、ロボットアーム251の内部に配置されているが、ロボット制御装置300の筐体内部に配置されていてもよい。 The servo control unit 230, based on the torque command value corresponding to each joint J 1 through J 6 input, so that the torque of each joint J1~J6 to follow the torque command value, the current to the motors 211 to 216 Output and control the driving of each of the electric motors 211 to 216. In the first embodiment, the servo control unit 230 is described as being configured by a single control device. However, the servo control unit 230 is configured by an assembly of a plurality of control devices corresponding to the electric motors 211 to 216, respectively. It may be. In the first embodiment, the servo control unit 230 is arranged inside the robot arm 251, but may be arranged inside the housing of the robot control apparatus 300.

次に、ロボット制御装置300について説明する。図2は、第1実施形態に係るロボット装置のロボット制御装置を示すブロック図である。ロボット制御装置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を備えている。   Next, the robot controller 300 will be described. FIG. 2 is a block diagram illustrating the robot control device of the robot device according to the first embodiment. The robot control apparatus 300 is configured by a computer and includes a CPU (Central Processing Unit) 301 as a control unit (processing unit). The robot control apparatus 300 includes a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303, and an HDD (Hard Disk Drive) 304 as storage units. The robot control apparatus 300 includes a recording disk drive 305 and various interfaces 306 to 309.

CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305、各種のインタフェース306〜309が、バス310を介して接続されている。ROM302には、BIOS等の基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。   A ROM 302, a RAM 303, an HDD 304, a recording disk drive 305, and various interfaces 306 to 309 are connected to the CPU 301 via a bus 310. The ROM 302 stores basic programs such as BIOS. A RAM 303 is a storage device that temporarily stores various types of data such as arithmetic processing results of the CPU 301.

HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する演算処理を実行させるためのプログラム330を記録するものである。CPU301は、HDD304に記録(格納)されたプログラム330に基づいてロボット制御方法の各工程を実行する。   The HDD 304 is a storage device that stores arithmetic processing results of the CPU 301, various data acquired from the outside, and the like, and records a program 330 for causing the CPU 301 to execute arithmetic processing described later. The CPU 301 executes each process of the robot control method based on the program 330 recorded (stored) in the HDD 304.

記録ディスクドライブ305は、記録ディスク331に記録された各種データやプログラム等を読み出すことができる。   The recording disk drive 305 can read various data and programs recorded on the recording disk 331.

ティーチングペンダント400はインタフェース306に接続されている。CPU301はインタフェース306及びバス310を介してティーチングペンダント400からの教示データの入力を受ける。   The teaching pendant 400 is connected to the interface 306. The CPU 301 receives input of teaching data from the teaching pendant 400 via the interface 306 and the bus 310.

サーボ制御部230は、インタフェース309に接続されている。CPU301は、サーボ制御部230、インタフェース309及びバス310を介して各センサ部221〜226から検知結果を取得する。また、CPU301は、各関節のトルク指令値のデータを所定時間間隔でバス310及びインタフェース309を介してサーボ制御部230に出力する。   The servo control unit 230 is connected to the interface 309. The CPU 301 acquires detection results from the sensor units 221 to 226 via the servo control unit 230, the interface 309, and the bus 310. Further, the CPU 301 outputs torque command value data of each joint to the servo control unit 230 via the bus 310 and the interface 309 at predetermined time intervals.

インタフェース307には、モニタ321が接続されており、モニタ321には、CPU301の制御の下、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の記憶部である外部記憶装置322が接続可能に構成されている。   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 to be connectable to an external storage device 322 that is a storage unit such as a rewritable nonvolatile memory or an external HDD.

なお、第1実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム330が格納される場合について説明するが、これに限定するものではない。プログラム330は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム330を供給するための記録媒体としては、図2に示すROM302、記録ディスク331、外部記憶装置322等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性メモリ、ROM等を用いることができる。   In the first embodiment, the case where the computer-readable recording medium is the HDD 304 and the program 330 is stored in the HDD 304 will be described, but the present invention is not limited to this. The program 330 may be recorded on any recording medium as long as it is a computer-readable recording medium. For example, as a recording medium for supplying the program 330, the ROM 302, the recording disk 331, the external storage device 322, or the like shown in FIG. 2 may be used. As a specific example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory, a ROM, or the like can be used as a recording medium.

図3は、第1実施形態に係るロボット装置の制御系を示す制御ブロック図である。ロボット制御装置300のCPU301は、プログラム330を実行することにより、力検出部504、力制御部505及び位置目標値生成部506として機能する。サーボ制御部230は、複数(6関節であるので6つ)の切替制御部511〜516と、複数(6関節であるので6つ)の位置制御部521〜526と、複数(6関節であるので6つ)のモータ制御部531〜536として機能する。   FIG. 3 is a control block diagram illustrating a control system of the robot apparatus according to the first embodiment. The CPU 301 of the robot control device 300 functions as a force detection unit 504, a force control unit 505, and a position target value generation unit 506 by executing the program 330. The servo control unit 230 includes a plurality (six for six joints) switching control units 511 to 516, a plurality of (for six joints, six) position control units 521 to 526, and a plurality (for six joints). Therefore, it functions as six) motor control units 531 to 536.

各センサ部221〜226は、各角度センサ(位置センサ)551〜556と、各トルクセンサ541〜546とを有する。各角度センサ551〜556は、各電動モータ211〜216又は各関節J〜Jの角度(位置)をそれぞれ検知するものである。 Each of the sensor units 221 to 226 includes angle sensors (position sensors) 551 to 556 and torque sensors 541 to 546. Each angle sensor 551 to 556 is for detecting each angle (position) of the electric motors 211 to 216, or each of the joints J 1 through J 6.

第1実施形態では、各角度センサ551〜556は、各電動モータ211〜216の角度θ〜θを直接検知する。なお、各関節J〜Jの角度q〜qは、不図示の減速機の減速比等に基づき、各角度θ〜θから求めることができる。したがって、各角度センサ551〜556は、間接的に各関節J〜Jの角度q〜qを検知していることになる。 In the first embodiment, the angle sensors 551 to 556 directly detect the angles θ 1 to θ 6 of the electric motors 211 to 216. The angle q 1 to q 6 of each joint J 1 through J 6 on the basis of the reduction ratio or the like of the reduction gear, not shown, can be determined from the angle theta 1 through? 6. Thus, each angle sensor 551 to 556 would indirectly has detected an angle q 1 to q 6 of each joint J 1 through J 6.

各トルクセンサ541〜546は、各関節J〜Jのトルクτ〜τをそれぞれ検知するものである。複数の角度センサ551〜556でロボット200の手先の位置Pを検知する位置検知部550が構成されている。また、複数のトルクセンサ541〜546でロボット200の手先に作用する力(手先力)Fを検知する力検知部540が構成されている。 The torque sensors 541 to 546 detect the torques τ 1 to τ 6 of the joints J 1 to J 6 , respectively. A plurality of angle sensors 551 to 556 constitute a position detection unit 550 that detects the position P of the hand of the robot 200. In addition, a force detector 540 that detects a force (hand force) F acting on the hand of the robot 200 is configured by the plurality of torque sensors 541 to 546.

ティーチングペンダント400は、操作者の操作により、力教示データ501に含まれる力目標値Frefと、位置教示データ502に含まれる位置目標値PrefとをCPU301に出力する。力目標値Frefは、ロボット200の手先力の目標値であり、操作者がティーチングペンダント400を用いて設定する。位置目標値Prefは、ロボット200の手先位置の目標値であり、操作者がティーチングペンダント400を用いて設定する。外部記憶装置322にはロボットモデル503が記憶されている。 The teaching pendant 400 outputs a force target value F ref included in the force teaching data 501 and a position target value P ref included in the position teaching data 502 to the CPU 301 by an operation of the operator. The force target value F ref is a target value of the hand force of the robot 200 and is set by the operator using the teaching pendant 400. The position target value Pref is a target value of the hand position of the robot 200, and is set by the operator using the teaching pendant 400. A robot model 503 is stored in the external storage device 322.

力検出部504は、各トルクセンサ541〜546により検知されたトルクτ〜τ及び各角度センサ551〜556により検知された角度q〜qを用いて、ロボット200の手先の現在位置P(t)とそのときのロボット200の手先力Fを算出する。 The force detection unit 504 uses the torques τ 1 to τ 6 detected by the torque sensors 541 to 546 and the angles q 1 to q 6 detected by the angle sensors 551 to 556, so that the current position of the hand of the robot 200 is detected. P (t) and the hand force F of the robot 200 at that time are calculated.

力制御部505は、手先負荷モデルを含むロボットモデル503、力目標値Fref、位置目標値Pref、現在位置P(t)及び力Fを入力する。そして、力制御部505は、これら値を用いて、各関節J〜Jに対するトルク指令値τMFref1〜τMFref6を求める。このとき、手先力Fと力目標値Frefとの力偏差、手先の位置P(t)と位置目標値Prefとの位置偏差が小さくなるようにトルク指令値τMFref1〜τMFref6を求める。力制御部505は、求めた各トルク指令値τMFref1〜τMFref6を各切替制御部511〜516に出力する。 The force control unit 505 inputs the robot model 503 including the hand load model, the force target value F ref , the position target value P ref , the current position P (t), and the force F. Then, the force control unit 505 uses these values to determine the torque command value τ MFref1MFref6 for each joint J 1 through J 6. At this time, the force deviation and hand force F and the force target value F ref, to obtain a torque command value τ MFref1MFref6 as positional deviation between the hand position P (t) and the target position value P ref is reduced. The force control unit 505 outputs the obtained torque command values τ MFref1 to τ MFref6 to the switching control units 511 to 516.

位置目標値生成部506は、手先の位置目標値Prefから逆運動学計算により各関節J〜Jの角度指令値(位置指令値)qref1〜qref6を求め、各角度指令値qref1〜qref6を各位置制御部521〜526に出力する。 The position target value generation unit 506 obtains angle command values (position command values) q ref1 to q ref6 of the joints J 1 to J 6 by inverse kinematics calculation from the position target value P ref of the hand, and each angle command value q ref1 to qref6 are output to the position control units 521 to 526 , respectively.

各位置制御部521〜526は、各関節J〜Jの角度q〜qと各関節J〜Jの角度指令値qref1〜qref6との角度偏差が小さくなるようトルク指令値τMPref1〜τMPref6を求める。なお、この角度偏差を小さくすることは、各電動モータ211〜216の角度と角度指令値qref1〜qref6を減速機の減速比等で換算した角度指令値との角度偏差を小さくすることと等価である。各位置制御部521〜526は、各トルク指令値τMPref1〜τMPref6を各切替制御部511〜516に出力する。 Each position control unit 521 to 526, the torque command so that the angular deviation between the angle q 1 to q 6 of each joint J 1 through J 6 and angle command value q ref1 to q Ref6 of the joints J 1 through J 6 is reduced The values τ MPref1 to τ MPref6 are obtained . Reducing the angle deviation means reducing the angle deviation between the angle of each electric motor 211 to 216 and the angle command value obtained by converting the angle command values q ref1 to q ref6 with the reduction gear ratio of the speed reducer. Is equivalent. Each position control unit 521 to 526 outputs each torque command value τ MPref1 to τ MPref6 to each switching control unit 511 to 516.

各切替制御部511〜516は、トルクベース力制御を行う力制御モードと、位置制御を行う位置制御モードとを切り替え制御する。各切替制御部511〜516は、力制御モード時は、各トルク指令値τMFref1〜τMFref6を各トルク指令値τMref1〜τMref6として各モータ制御部531〜536に出力する。また、各切替制御部511〜516は、位置制御モード時は、各トルク指令値τMPref1〜τMPref6を各トルク指令値τMref1〜τMref6として各モータ制御部531〜536に出力する。 Each switching control unit 511 to 516 performs switching control between a force control mode for performing torque-based force control and a position control mode for performing position control. Each switch control unit 511 to 516, the force control mode is output to each motor control unit 531 to 536 each torque command value τ MFref1MFref6 as the torque command value τ Mref1Mref6. Each switch control unit 511 to 516, the position control mode is output to each motor control unit 531 to 536 each torque command value τ MPref1MPref6 as the torque command value τ Mref1Mref6.

各モータ制御部531〜536は、各電動モータ211〜216の角度(位置)θ〜θに基づき、各トルク指令値τMref1〜τMref6を実現するように各電流Cur〜Curを各電動モータ211〜216に通電する。 The motor control units 531 to 536 generate the currents Cur 1 to Cur 6 so as to realize the torque command values τ Mref1 to τ Mref 6 based on the angles (positions) θ 1 to θ 6 of the electric motors 211 to 216, respectively. The electric motors 211 to 216 are energized.

次に、ロボット200の力制御について説明する。図4は、第1実施形態においてロボット200を力制御する際のフローチャートである。   Next, force control of the robot 200 will be described. FIG. 4 is a flowchart when force-controlling the robot 200 in the first embodiment.

まず、操作者が力目標値Frefと位置目標値Prefとをティーチングペンダント400に入力する(S1)。力目標値Frefは、力教示データ501に格納され、位置目標値Prefは、位置教示データ502に格納される。位置目標値Prefは、力制御動作を開始する位置である。 First, the operator inputs the force target value F ref and the position target value P ref to the teaching pendant 400 (S1). The force target value F ref is stored in the force teaching data 501, and the position target value P ref is stored in the position teaching data 502. The position target value Pref is a position where the force control operation is started.

力制御部505は、ロボット200の手先にかかる手先力Fが力目標値Frefに倣うようロボットモデル503に基づいて各電動モータ211〜216に対するトルク指令値(力)τMFref1〜τMFref6を算出する(S2)。ロボットモデル503には、後述する手先負荷モデルが含まれている。 Force control unit 505, calculates the torque command value for the motors 211 to 216 based on the robot model 503 so that the hand force F applied to the hand of the robot 200 follows the force target value F ref (force) τ MFref1MFref6 (S2). The robot model 503 includes a hand load model described later.

各切替制御部511〜516は、各モータ制御部531〜536にトルク指令値(力)τMFref1〜τMFref6をトルク指令値τMref1〜τMref6として出力する(S3)。 Each switch control unit 511 to 516, the output torque command value (force) τ MFref1MFref6 as the torque command value τ Mref1Mref6 to each motor control unit 531 to 536 (S3).

各モータ制御部531〜536は、各電動モータ211〜216の角度θ〜θに基づいて、各トルク指令値τMref1〜τMref6を実現するよう通電制御する(S4)。 The motor control units 531 to 536 perform energization control so as to realize the torque command values τ Mref1 to τ Mref6 based on the angles θ 1 to θ 6 of the electric motors 211 to 216 (S4).

各電動モータ211〜216は、通電されることにより各関節トルクτ〜τを発生する(S5)。 The electric motors 211 to 216 generate the joint torques τ 1 to τ 6 when energized (S5).

各角度センサ551〜556は、各関節J〜Jの角度q〜q(各電動モータ211〜216の角度θ〜θ)を検知する。各トルクセンサ541〜546は、各関節J〜Jのトルクτ〜τを検知する(S6)。各関節J〜Jの角度q〜qと各関節J〜Jのトルクτ〜τは、ロボット制御装置300のCPU301にフィードバックされる。 The angle sensors 551 to 556 detect angles q 1 to q 6 of the joints J 1 to J 6 (angles θ 1 to θ 6 of the electric motors 211 to 216). Each torque sensor 541 to 546 detects the torque τ 16 of each joint J 1 ~J 6 (S6). Angle q 1 to q 6 and the torque τ 16 of each joint J 1 through J 6 of each joint J 1 through J 6 is fed back to the CPU301 of the robot controller 300.

力検出部504(CPU301)は、ロボットモデル503と各関節J〜Jの角度q〜qに基づいて各関節J〜Jのトルクτ〜τを、現在の位置P(t)にいてロボット200の手先にかかる手先力Fに変換する(S7)。なお、関節J〜Jの角度q〜qの代わりに電動モータ211〜216の角度θ〜θを用いてもよい。 Force detection unit 504 (CPU 301) is, the torque τ 16 of each joint J 1 through J 6 based robot model 503 to angle q 1 to q 6 of each joint J 1 through J 6, the current position P At (t), it is converted into a hand force F applied to the hand of the robot 200 (S7). It is also possible to use the angle theta 1 through? 6 of the electric motor 211 to 216 instead of the angle q 1 to q 6 joints J 1 through J 6.

CPU301は、駆動が終了したか否かを判定し(S8)、終了していない場合は(S8:No)、ステップS2〜S7を繰り返す。上記フローに従って各電動モータ211〜216を駆動することで、ロボット200の手先にかかる力Fを所望の力目標値Frefに制御することが可能である。なお、図4に示すフローチャートの順番に限定するものではなく、他の順番でも力制御は可能である。 The CPU 301 determines whether or not the driving is finished (S8), and if not finished (S8: No), repeats steps S2 to S7. By driving the electric motors 211 to 216 according to the above flow, it is possible to control the force F applied to the hand of the robot 200 to a desired force target value F ref . In addition, it is not limited to the order of the flowchart shown in FIG. 4, force control is possible also in another order.

次に、ロボット200の位置制御について説明する。図5は、第1実施形態においてロボット200を位置制御する際のフローチャートである。   Next, position control of the robot 200 will be described. FIG. 5 is a flowchart when the position of the robot 200 is controlled in the first embodiment.

まず、操作者が位置目標値Prefをティーチングペンダント400に入力する(S11)。位置目標値Prefは、位置教示データ502に格納される。 First, the operator inputs the position target value Pref to the teaching pendant 400 (S11). The position target value P ref is stored in the position teaching data 502.

位置目標値生成部506は、ロボットモデル503に基づき、位置目標値Prefを各関節J〜Jの角度指令値qref1〜qref6に変換する(S12)。 The position target value generation unit 506 converts the position target value P ref into angle command values q ref1 to q ref6 of the joints J 1 to J 6 based on the robot model 503 (S12).

各位置制御部521〜526は、各関節J〜Jの角度q〜qが各関節J〜Jの角度指令値qref1〜qref6に倣うよう各電動モータ211〜216のトルク指令値(角度)τMPref1〜τMPref6を算出する(S13)。各関節J〜Jの角度を示す信号としては、角度q〜qの代わりに電動モータ211〜216の角度θ〜θを用いてもよい。 Each position control unit 521 to 526 is, for each joint J 1 through J 6 angle q 1 to q 6 angle command value q ref1 to q Ref6 the motors 211-216 to follow the of the joints J 1 through J 6 Torque command values (angles) τ MPref1 to τ MPref6 are calculated (S13). The signal indicating the angles of the joints J 1 through J 6, may be used angle theta 1 through? 6 of the electric motor 211 to 216 instead of the angle q 1 to q 6.

各切替制御部511〜516は、各モータ制御部531〜536にトルク指令値(角度)τMPref1〜τMPref6をトルク指令値τMref1〜τMref6として出力する(S14)。 Each switch control unit 511 to 516, the output torque command value (angle) τ MPref1MPref6 as the torque command value τ Mref1Mref6 to each motor control unit 531 to 536 (S14).

なお、ステップS15,S16,S17,S18は、ステップS4,S5,S6,S8と同じであり、説明を省略する。上記フローに従って各電動モータ211〜216を駆動することで、ロボット200の手先位置Pを所望の位置目標値Prefに倣うよう制御することが可能である。 Steps S15, S16, S17, and S18 are the same as steps S4, S5, S6, and S8, and a description thereof is omitted. By driving the electric motors 211 to 216 according to the above flow, it is possible to control the hand position P of the robot 200 so as to follow the desired position target value Pref .

ステップS1〜S8の力制御とステップS11〜S18の位置制御とは、切替制御部511〜516にて切り替えられ、作業に応じていずれか一方の制御が選択される。   The force control in steps S1 to S8 and the position control in steps S11 to S18 are switched by switching control units 511 to 516, and either one of the controls is selected according to the work.

次に、手先負荷モデルの推定について説明する。手先負荷モデルとは、ロボットアーム251の先端に取り付けられたエンドエフェクタであるロボットハンド252及び把持物体からなる手先負荷の動力学モデルである。動力学モデルとは、対象の質量、重心位置若しくは慣性テンソル、又はこれらの組み合わせである。第1実施形態では、手先負荷モデルは、手先の質量、重心位置及び慣性テンソルである。   Next, estimation of the hand load model will be described. The hand load model is a hand load dynamic model including a robot hand 252 that is an end effector attached to the tip of the robot arm 251 and a grasped object. The dynamic model is a target mass, a position of the center of gravity, an inertia tensor, or a combination thereof. In the first embodiment, the hand load model is the hand mass, the gravity center position, and the inertia tensor.

第1実施形態では、手先負荷の変動後のロボット200の手先力Fを取得し、その情報(手先力F)を用いてロボット200の作業中に手先負荷モデルを推定する。   In the first embodiment, the hand force F of the robot 200 after the fluctuation of the hand load is acquired, and the hand load model is estimated during the operation of the robot 200 using the information (hand force F).

第1実施形態では、手先負荷モデル(手先負荷の動力学モデル)が変動し、バラつきのあるワーク(第1部品)を搬送して、ワークを治具(第2部品)に組付ける(具体的には、嵌合する)組付工程(嵌合工程)を例に説明する。   In the first embodiment, the hand load model (hand load dynamics model) fluctuates, and the workpiece (first part) having a variation is transported and the work is assembled to the jig (second part) (specifically In the following, an assembly process (fitting process) will be described as an example.

組付工程においては組付動作の速度向上が求められるが、手先に所望の力が働くような位置指令値をサーボ制御部230に与える位置ベース力制御では制御性能が位置制御の帯域、環境剛性に支配され、高速な動作が難しい。   In the assembly process, an increase in the speed of the assembly operation is required. However, in the position-based force control in which a position command value for applying a desired force to the hand is given to the servo control unit 230, the control performance is in the position control band and environmental rigidity. It is difficult to operate at high speed.

そこで第1実施形態では、ロボット200の手先に所望の力が働くような各関節J〜Jのトルク指令値を以下のインピーダンス制御式(1)に従って算出し、サーボ制御部230に与えるトルクベース力制御を行う。つまり、図4に示すフローチャートに従って、ロボット200を力制御する。 Therefore, in the first embodiment, torque command values of the joints J 1 to J 6 that cause a desired force to act on the hand of the robot 200 are calculated according to the following impedance control equation (1), and torque applied to the servo control unit 230 is calculated. Perform base force control. That is, the force of the robot 200 is controlled according to the flowchart shown in FIG.

Figure 2017056525
Figure 2017056525

なお、式(1)のG、Λ、νはそれぞれ重力負荷トルクベクトル、デカルト空間における慣性行列、デカルト空間におけるコリオリ力・遠心力行列である。これらG、Λ、νは、ロボットアーム251と手先負荷の動力学モデルおよび各関節J〜Jの位置、速度、加速度から計算される。また、Λ、K、Dはそれぞれ所望の機械インピーダンスの質量、剛性、粘性の値を表わす。Jはロボットアーム251の各関節J〜Jの速度と、ロボットアーム251の根元に固定された座標系To基準で表現されたロボットアーム251の手先の速度とを関連付ける6×6のヤコビ行列である。 In Equation (1), G, Λ, and ν are a gravity load torque vector, an inertia matrix in Cartesian space, and a Coriolis force / centrifugal force matrix in Cartesian space, respectively. These G, Λ, and ν are calculated from the dynamic model of the robot arm 251 and the hand load, and the positions, velocities, and accelerations of the joints J 1 to J 6 . Further, Λ d , K d , and D d represent values of mass, rigidity, and viscosity of desired mechanical impedance, respectively. J is a 6 × 6 Jacobian matrix that associates the speed of each joint J 1 to J 6 of the robot arm 251 with the speed of the hand of the robot arm 251 expressed by the coordinate system To reference fixed to the base of the robot arm 251. It is.

図6(a)は、ロボット200による組付作業を説明するためのロボット200の模式図である。ロボットハンド252でステージSt1上の第1部品であるワークW1をステージSt2上の第2部品である治具W2に組付ける組付作業を行う場合について説明する。   FIG. 6A is a schematic diagram of the robot 200 for explaining the assembly work by the robot 200. A case where the assembly operation for assembling the workpiece W1, which is the first component on the stage St1, to the jig W2, which is the second component on the stage St2, is performed with the robot hand 252 will be described.

ここで、ワークW1は、ロボットハンド252で把持可能な重さ0.5[kg]の直方体の剛体である。ロボットハンド252は、ロボットアーム251の先端に取り付けられた2指のグリッパであり、ワークW1を把持することができる。また、治具W2はワークW1が嵌る直方体の穴が形成された剛体であり、ステージSt2に固定されている。   Here, the workpiece W1 is a cuboid rigid body having a weight of 0.5 [kg] that can be gripped by the robot hand 252. The robot hand 252 is a two-finger gripper attached to the tip of the robot arm 251 and can grip the workpiece W1. The jig W2 is a rigid body having a rectangular parallelepiped hole into which the work W1 is fitted, and is fixed to the stage St2.

図6(a)中、教示点P1は、ステージSt1上のワークW1把持前の上空位置の教示点である。教示点P2は、ワークW1の把持を行う位置の教示点である。教示点P3は、ワークW1をステージSt2の上空へ移動した後の位置の教示点である。教示点P4は、力制御でワークW1を治具W2に組付ける際の位置の教示点である。教示点P1と教示点P2及び教示点P3と教示点P4は、それぞれ鉛直方向に0.1[m]、教示点P1と教示点P3は水平方向に0.2[m]離れた配置とする。   In FIG. 6A, the teaching point P1 is a teaching point at an empty position before gripping the workpiece W1 on the stage St1. The teaching point P2 is a teaching point at a position where the workpiece W1 is gripped. The teaching point P3 is a teaching point at a position after the workpiece W1 is moved above the stage St2. The teaching point P4 is a teaching point of a position when the workpiece W1 is assembled to the jig W2 by force control. The teaching point P1 and the teaching point P2 and the teaching point P3 and the teaching point P4 are arranged 0.1 [m] apart in the vertical direction, and the teaching point P1 and the teaching point P3 are arranged 0.2 [m] apart in the horizontal direction. .

ここで、ロボットアーム251及びロボットハンド252の動力学モデルを含むロボットモデル503(図3)は、既知であるものとする。ロボットモデル503は、事前に複数の姿勢における各関節の位置、速度、加速度、トルクの情報からラグランジュの定式化に基づく同定方法で推定される。   Here, it is assumed that the robot model 503 (FIG. 3) including the dynamic models of the robot arm 251 and the robot hand 252 is known. The robot model 503 is estimated in advance by an identification method based on a Lagrange formulation from information on the position, speed, acceleration, and torque of each joint in a plurality of postures.

ロボットハンド252は、今回推定される手先負荷モデルに含まれ、手先負荷モデルの初期値として扱う。第1実施形態ではロボットハンド252は、0.5[kg]とする。   The robot hand 252 is included in the hand load model estimated this time, and is handled as an initial value of the hand load model. In the first embodiment, the robot hand 252 is 0.5 [kg].

ワーク把持前の手先負荷モデルの負荷値をφ、ワーク把持後に推定した手先負荷モデルの推定値をφとする。図6(b)は手先負荷モデルの負荷値φを説明するための図であり、図6(c)は手先負荷モデルの負荷値φを説明するための図である。 Let φ a be the load value of the hand load model before gripping the workpiece, and let φ b be the estimated value of the hand load model estimated after gripping the workpiece. 6 (b) is a diagram for explaining a load value phi a of the end load model, FIG. 6 (c) is a view for explaining a load value phi b of the end load model.

手先負荷モデルの負荷値φは、ロボットハンド252の部分の負荷値であり、手先負荷モデルの負荷値φは、ロボットハンド252とロボットハンド252に把持されたワークW1との合計の負荷値である。 Load value phi a of the end load model is a load value of the portion of the robot hand 252, the load value phi b of the end load model, the robot hand 252 and the load value of the sum of the work W1 gripped by the robot hand 252 It is.

図7は、第1実施形態に係る組立部品の製造方法を示すフローチャートである。CPU301は、ロボットアーム251を制御してロボットハンド252を教示点P1の位置から教示点P2のワークW1を把持する把持位置へ移動させる(S51)。このとき、CPU301は、予め設定された、ロボット200の手先の手先負荷モデルの負荷値φを用いて、ロボット200の動作を制御する。 FIG. 7 is a flowchart showing a method of manufacturing an assembly part according to the first embodiment. The CPU 301 controls the robot arm 251 to move the robot hand 252 from the position of the teaching point P1 to a gripping position for gripping the workpiece W1 at the teaching point P2 (S51). At this time, CPU 301 has been set in advance, with a load value phi a of the end load model of the hand of the robot 200 controls the operation of the robot 200.

次に、CPU301は、ロボットハンド252にワークW1を把持させる(S52)。   Next, the CPU 301 causes the robot hand 252 to grip the workpiece W1 (S52).

次に、CPU301は、ロボットアーム251を動作制御して、次の教示点P3へロボットハンド252の移動(第1実施形態では、並進移動)を開始する(S53)。このとき、ロボット200の手先は、ワークW1を把持したことにより、負荷変動が生じる。   Next, the CPU 301 controls the operation of the robot arm 251 and starts to move the robot hand 252 to the next teaching point P3 (in the first embodiment, translational movement) (S53). At this time, the hand fluctuation of the robot 200 causes a load fluctuation due to the gripping of the workpiece W1.

CPU301は、手先において負荷変動が生じた際に手先を教示点P2から教示点P3へ移動させている状態で、トルクセンサ541〜546により検知された手先力Fを用いて手先負荷モデルの推定値φを求める(S54:推定処理,推定工程)。 The CPU 301 moves the hand from the teaching point P2 to the teaching point P3 when a load fluctuation occurs at the hand, and uses the hand force F detected by the torque sensors 541 to 546 to estimate the hand load model. φ b is obtained (S54: estimation process, estimation process).

第1実施形態で負荷変動とは、ロボットハンド252がワークW1を把持(支持)していない状態からワークW1を把持(支持)している状態に変化することである。   In the first embodiment, the load fluctuation is a change from a state in which the robot hand 252 is not gripping (supporting) the workpiece W1 to a state of gripping (supporting) the workpiece W1.

第1実施形態では、ロボット200の手先を移動(並進移動)させている状態で力検知部540にて検知された手先力を用いて推定値φを求める。したがって、力検知部540から手先力Fのデータを取得する際に、ロボット200の手先には、並進力が付与されることになる。 In the first embodiment, the estimated value φ b is obtained using the hand force detected by the force detection unit 540 in a state where the hand of the robot 200 is moved (translationally moved). Therefore, when acquiring data of the hand force F from the force detection unit 540, a translational force is applied to the hand of the robot 200.

このように、CPU301は、現在の手先力Fをもとに手先負荷モデルの推定値φを求める。手先力Fを検知するタイミングは、第1実施形態のようにワークW1を持ち上げるような場合は、ワークW1が持ち上がった瞬間、即ちロボット200の手先に加速度が付与されたときであればよい。第1実施形態では、動作開始後、ワークW1が鉛直上向きに0.015[m]持ち上がったタイミングで、手先力Fの検知を行う。 As described above, the CPU 301 obtains the estimated value φ b of the hand load model based on the current hand force F. The timing for detecting the hand force F may be the moment when the work W1 is lifted, that is, when acceleration is applied to the hand of the robot 200, when the work W1 is lifted as in the first embodiment. In the first embodiment, the hand force F is detected at the timing when the work W1 is lifted 0.015 [m] vertically upward after the operation is started.

図8(a)は、第1実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。教示点P2の位置からワークW1が持ち上がったタイミングをtで示している。図8(a)ではtは0.5[秒]である。このとき、ロボットアーム251の動作は停止させない。 FIG. 8A is a graph showing the target position and the current position of the hand in the vertical direction with respect to time in the first embodiment. The timing with raised work W1 from the position of the teaching point P2 is indicated by t a. Figure 8 (a) in t a is 0.5 [sec]. At this time, the operation of the robot arm 251 is not stopped.

ステップS54の推定処理について詳細に説明する。まず、CPU301は、手先力を算出する(S54−1)。ここで、時刻tにおける現在の手先力をFext、各関節J〜Jにかかる外力トルクをτextとすると、手先力Fextは以下の式(2)で計算される。外力トルクとは手先力が働いたときにロボット200(ロボットアーム251)の各関節J〜Jに発生するトルクである。 The estimation process in step S54 will be described in detail. First, the CPU 301 calculates hand force (S54-1). Here, the time t the current hand force in a F ext, when an external force torque applied to each joint J 1 through J 6 and tau ext, hand force F ext is calculated by the following equation (2). The external force torque is a torque generated at each joint J 1 through J 6 of the robot 200 (robot arm 251) when the hand force is exerted.

Figure 2017056525
Figure 2017056525

式(2)の添字の−Tは逆行列の転置を表わす。   The subscript -T in equation (2) represents the transpose of the inverse matrix.

また、外力トルクτextは、トルクセンサ541〜546で検出した各関節J〜Jの実トルクτからトルク指令値τrefを減ずることで計算される。ただし、外力トルクを計算する方法はこの限りでなく、例えば各関節の実トルクτを電動モータ211〜216の電流値から推定して外力トルクτextを計算してもよい。あるいは外乱オブザーバを用いてトルク指令値τrefとそれによってロボットアーム251を駆動させたときの各関節の位置・速度・加速度から外乱トルクを計算してもよい。 The external force torque τ ext is calculated by subtracting the torque command value τ ref from the actual torque τ of each joint J 1 to J 6 detected by the torque sensors 541 to 546. However, the method of calculating the external force torque is not limited to this. For example, the external torque τ ext may be calculated by estimating the actual torque τ of each joint from the current values of the electric motors 211 to 216. Alternatively, the disturbance torque may be calculated from the torque command value τ ref using a disturbance observer and the position / velocity / acceleration of each joint when the robot arm 251 is driven thereby.

続いて、現在の手先力Fextから手先負荷モデルを算出する方法について説明する。まず、CPU301は、手先負荷の質量を算出する(S54−2)。ロボット座標系ToのZ軸が鉛直上向きであったとすると、手先負荷の質量mは手先力FextのZ軸方向成分Fおよび重力加速度gから以下の式(3)のように計算できる。 Next, a method for calculating a hand load model from the current hand force F ext will be described. First, the CPU 301 calculates the hand load mass (S54-2). Assuming that the Z axis of the robot coordinate system To is vertically upward, the mass m l of the hand load can be calculated from the Z axis direction component F z of the hand force F ext and the gravitational acceleration g as shown in the following expression (3).

Figure 2017056525
Figure 2017056525

式(3)のaは座標系To基準で表現されたロボット200の手先の並進方向の加速度aのZ軸方向成分である。加速度aはロボット200の各軸の速度・加速度から順運動学で算出する。 In the equation (3), a z is a Z-axis direction component of the acceleration a in the translation direction of the hand of the robot 200 expressed on the basis of the coordinate system To. The acceleration a is calculated by forward kinematics from the speed and acceleration of each axis of the robot 200.

CPU301は、手先負荷の重心位置を算出する(S54−3)。手先負荷の重心位置は手先力の回転モーメントを用いて以下の式(4)のように計算できる。   The CPU 301 calculates the gravity center position of the hand load (S54-3). The center-of-gravity position of the hand load can be calculated as the following equation (4) using the rotational moment of the hand force.

Figure 2017056525
Figure 2017056525

式(4)のslx、sly、slzはそれぞれ手先負荷の重心位置のX軸、Y軸、Z軸方向の位置を意味し、M、M、Mはそれぞれ手先力FextのX軸、Y軸、Z軸まわりの回転モーメントを意味する。 In Equation (4), s lx , s ly , and s 1z mean the positions of the center of gravity of the hand load in the X-axis, Y-axis, and Z-axis directions, respectively, and M x , M y , and M z are the hand forces F ext. This means the rotational moment around the X, Y, and Z axes.

CPU301は、手先負荷の慣性テンソルを算出する(S54−4)。ここで、手先負荷の慣性テンソルIを以下のように表わすこととし、その求め方を説明する。 The CPU 301 calculates the inertia tensor of the hand load (S54-4). Here, the inertia tensor I l of the hand load and be represented as follows, to explain its Determination.

Figure 2017056525
Figure 2017056525

式(5)のIxx、Iyy、Izzはそれぞれ手先負荷のX軸、Y軸、Z軸まわりの慣性モーメントであり、Ixy、Ixz、Iyzは手先負荷の慣性乗積である。手先負荷の慣性モーメントIxx、Iyy、Izzはそれぞれ以下の式(6)のように計算できる。 In Equation (5), I xx , I yy , and I zz are moments of inertia around the X-axis, Y-axis, and Z-axis of the hand load, and I xy , I xz , and I yz are inertial products of the hand load. . The inertial moments I xx , I yy , and I zz of the hand load can be calculated as in the following formula (6).

Figure 2017056525
Figure 2017056525

式(6)のω、ω、ωはそれぞれ手先負荷のX軸、Y軸、Z軸まわりの角速度であり、その時間微分(角加速度)はロボットアーム251の各関節の速度・加速度およびヤコビ行列Jから順運動学で算出する。 In Equation (6), ω x , ω y , and ω z are angular velocities around the X-axis, Y-axis, and Z-axis of the hand load, respectively, and their time derivatives (angular acceleration) are the speed and acceleration of each joint of the robot arm 251. And forward kinematics from the Jacobian matrix J.

さらに、手先負荷の力の回転モーメントMと慣性テンソルIには以下の関係が成り立つ。 Moreover, the rotational moment M and inertia tensor I l forces of the hand load following relationship holds.

Figure 2017056525
Figure 2017056525

慣性テンソルIの内、慣性モーメントIxx、Iyy、Izzは式(6)で計算されているので、式(7)を解いて残りの慣性乗積Ixy、Ixz、Iyzを計算し、慣性テンソルが求まる。 Of the inertia tensor I l , the moments of inertia I xx , I yy , and I zz are calculated by the equation (6). Therefore, by solving the equation (7), the remaining inertial products I xy , I xz , and I yz Calculate the inertia tensor.

ここで、推定値φにおける質量は正確に推定され、実際の手先負荷の質量1[kg]であったとする。 Here, the mass of the estimate phi b are accurately estimated, assumed to be the actual mass of the end load 1 [kg].

次に、CPU301は、ステップS54で推定した手先負荷モデルの推定値φを実際にロボット200の制御で用いる手先負荷モデルの負荷値φに反映させる(S55)。具体的には、CPU301は、負荷変動の後の手先負荷モデルの負荷値φ(t)を、負荷変動の前の手先負荷モデルの負荷値φから経時的に漸次、推定値φに向かって変化するように設定する(設定処理,設定工程)。 Next, CPU 301 may be reflected in the load value of the end load model phi used in actual control of the robot 200 estimates phi b of the end load model estimated in step S54 (S55). Specifically, CPU 301 is a load value of the hand load model after load change phi (t), over time gradually from the load value phi a of the front of the hand load model of load change, toward the estimated value phi b (Setting process, setting process).

即ち、第1実施形態では、推定した手先負荷モデルの推定値φを一度に反映せず、以下の式(8)のように、ワーク把持後に推定値φとワーク把持前の手先負荷モデルの負荷値φとの差に修正係数kを乗じて負荷値φに加算する。その計算結果を、ワーク把持後の制御で用いる手先負荷モデルの負荷値φとする。 That is, in the first embodiment, the estimated value φ b of the estimated hand load model is not reflected at a time, and the estimated value φ b after gripping the workpiece and the hand load model before gripping the workpiece as shown in the following equation (8). multiplied by a correction coefficient k to the difference between the load value phi a of adding to the load value phi a. The calculation result is set as the load value φ of the hand load model used in the control after gripping the workpiece.

Figure 2017056525
Figure 2017056525

ここで、修正係数kは、教示点P2から教示点P3への移動量と移動時間から決定される0以上1以下のスカラ量であり、経時的に漸次0から1に単調増加する。手先負荷モデルの負荷値φには、手先の質量、重心位置及び慣性テンソルの各値が含まれている。   Here, the correction coefficient k is a scalar quantity of 0 or more and 1 or less determined from the movement amount and the movement time from the teaching point P2 to the teaching point P3, and gradually increases monotonically from 0 to 1. The load value φ of the hand load model includes values of the hand mass, the center of gravity position, and the inertia tensor.

図8(b)は、第1実施形態において時間に対する修正係数k(t)を示すグラフである。図8(c)は、第1実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。第1実施形態では、修正係数k(t)は、図8(b)に示すように、教示点P2から移動開始して時間t経過した時点からの経過時間に対し線形に変化するものである。なお、修正係数k(t)の変化時間(勾配)は、トルク指令値に対する手先位置の応答が以下の伝達関数(式(9))で表わされる2次系であるとしたときの整定時間(0.5秒)を目安としている。整定時間は応答が目標値の±5%に収まるまでの時間とした。 FIG. 8B is a graph showing the correction coefficient k (t) with respect to time in the first embodiment. FIG. 8C is a graph showing the load value φ (t) of the hand load model with respect to time in the first embodiment. In the first embodiment, the correction factor k (t), as shown in FIG. 8 (b), with respect to the elapsed time from the time starting the movement from the teaching point P2 and t a elapsed intended to vary linearly is there. The change time (gradient) of the correction coefficient k (t) is the settling time (assuming that the response of the hand position to the torque command value is a secondary system represented by the following transfer function (Equation (9)). 0.5 seconds) as a guide. The settling time was the time until the response was within ± 5% of the target value.

Figure 2017056525
Figure 2017056525

式(9)のζは減衰係数、ωは固有角周波数を表わし、それぞれ0.3、20.0とした。   In Equation (9), ζ represents an attenuation coefficient, and ω represents a natural angular frequency, which were set to 0.3 and 20.0, respectively.

次に、CPU301は、修正係数kが1に到達したか否かを判断し(S56)、達していなければ(S56:No)、修正係数kを更新し(S57)、ステップS55に戻って推定値φを修正係数kで修正して制御に用いる手先負荷モデルの負荷値φを求める。手先負荷モデルの負荷値φ(t)は、図8(c)に示すように、負荷変動前の負荷値φから推定値φに経時的に単調増加する。 Next, the CPU 301 determines whether or not the correction coefficient k has reached 1 (S56). If it has not reached (S56: No), the correction coefficient k is updated (S57), and the process returns to step S55 to estimate. determining the load value phi of the end load model used to control and correct the value phi b in correction coefficient k. Load value of the end load model phi (t), as shown in FIG. 8 (c), over time increases monotonically to estimate phi b from the load value phi a preload change.

CPU301は、修正係数kが1に到達した場合(S56:Yes)、手先負荷モデルの負荷値φ(t)が推定値φに到達したので、手先負荷モデルに推定値を反映させる反映処理を終了し、教示点P3にロボット200の手先を到達させる(S58)。 CPU301, when correction coefficient k reaches 1 (S56: Yes), the load value of the end load model phi (t) reaches the estimated value phi b, the reflection processing of reflecting the estimate to hand load model Then, the hand of the robot 200 is made to reach the teaching point P3 (S58).

そして、CPU301は、教示点P4に手先を移動させて手先負荷モデルの負荷値φに基づく力制御で組付作業を行い(S59:組付工程)、処理を終了する。即ち、ステップS59では、CPU301が手先負荷モデルの負荷値φを用いてロボット200の動作を制御し、ワークW1を治具W2に組付ける。 Then, CPU 301 moves the hand to the taught point P4 Complete assembling a force control based on the load value phi b of the end load model (S59: assembling step), the process ends. That is, in step S59, the control operation of the robot 200 using the load values phi b of CPU301 is hand load model, assemble the workpiece W1 to the jig W2.

なお、第1実施形態では、修正係数kのプロファイルを、ロボット200の手先が教示点P3に到達すると同時に1となるか、到達する以前に1になる場合について説明したが、修正係数kのプロファイルの決定方法はこの限りではない。例えば、手先負荷の変化が大きいことが予想されるような場合は、より安定した手先負荷モデルの推定ができるように手先が教示点P3に到達した後に修正係数が1になるように決定してもよい。   In the first embodiment, the profile of the correction coefficient k has been described as being 1 when the hand of the robot 200 reaches the teaching point P3 or 1 before reaching the teaching point P3. The determination method is not limited to this. For example, when a large change in hand load is expected, the correction coefficient is determined to be 1 after the hand reaches the teaching point P3 so that a more stable hand load model can be estimated. Also good.

以上説明したステップS51〜S59の処理を行うことにより、ロボット200の作業中に手先負荷が急激に変化した際にロボット200の手先の位置が発散したり振動したりするのを抑制することができる。   By performing the processes in steps S51 to S59 described above, it is possible to suppress the position of the hand of the robot 200 from diverging or vibrating when the hand load changes rapidly during the operation of the robot 200. .

次に、比較例として、手先負荷モデルの負荷値φ(t)を、負荷値φから推定値φにステップ状に変化させた場合について説明する。図9(a)は、比較例において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。図9(b)は、比較例において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。 Next, as a comparative example, load values of the end load model phi a (t), will be described of changing stepwise the estimated value phi b from the load value phi a. FIG. 9A is a graph showing the load value φ (t) of the hand load model with respect to time in the comparative example. FIG. 9B is a graph showing the target position and the current position of the hand in the vertical direction with respect to time in the comparative example.

図9(a)に示すように、手先負荷モデルの負荷値φ(t)は、ステップ状に変化するため、各電動モータ211〜216のトルク指令値もステップ状の変化となる。トルク指令値がステップ状に変化すると、各関節のトルクをトルク指令値に追従させる制御を行っているので、各関節のトルクが急激に変化する。よって、ロボットアーム251が加振し、図9(b)に示すように、機械的共振周波数で振動する。特に各電動モータ211〜216が不図示の減速機を介してロボットアーム251のリンクを駆動する場合、減速機の剛性は一般的に低いため、各電動モータ211〜216の急峻な変動により加振されやすい。   As shown in FIG. 9A, since the load value φ (t) of the hand load model changes in a step shape, the torque command values of the electric motors 211 to 216 also change in a step shape. When the torque command value changes stepwise, control is performed to cause the torque of each joint to follow the torque command value, so the torque of each joint changes rapidly. Therefore, the robot arm 251 vibrates and vibrates at a mechanical resonance frequency as shown in FIG. In particular, when each electric motor 211 to 216 drives the link of the robot arm 251 via a speed reducer (not shown), since the rigidity of the speed reducer is generally low, vibration is caused by a steep fluctuation of each electric motor 211 to 216. Easy to be.

一方、第1実施形態では、図8(c)に示すように、手先負荷モデルの負荷値φ(t)は、修正係数kが0から1になる間に、負荷値(初期値)φから推定値φへ徐々に近づいていく。これにより、力制御部505で求まるトルク指令値τMFref1〜τMFref6も徐々に変化することになる。 On the other hand, in the first embodiment, as shown in FIG. 8C, the load value φ (t) of the hand load model is the load value (initial value) φ a while the correction coefficient k changes from 0 to 1. gradually approaches from the estimated value φ b. As a result, the torque command value τ MFref1MFref6 which is obtained by the force control unit 505 also changes gradually.

よって、第1実施形態では、手先負荷モデルの負荷値φ(t)が時間に対して徐々に推定値φに変化していくため、急峻なモデルの変化、即ち各電動モータ211〜216の急峻なトルク変動を抑制できる。したがって、図8(a)に示すように、図9(b)に示すような手先の振動(又は発散)が抑制されている。これにより、ロボット200の振動や発散に起因してロボット200又はワークW1が周辺の物体に接触するのを防止することができる。 Therefore, in the first embodiment, the load value of the end load model phi (t) will change gradually the estimated value phi b against time, the steep model change, i.e. the respective electric motors 211 to 216 Steep torque fluctuation can be suppressed. Therefore, as shown in FIG. 8A, hand vibration (or divergence) as shown in FIG. 9B is suppressed. Thereby, it is possible to prevent the robot 200 or the work W1 from coming into contact with surrounding objects due to vibration or divergence of the robot 200.

また、ロボットアーム251を動作させながらモデル修正ができるので、シームレスな動作が可能となり、サイクルタイムの短縮につながる。   In addition, since the model can be corrected while the robot arm 251 is operated, a seamless operation is possible and the cycle time is shortened.

なお、第1実施形態では、修正係数kが、移動開始からの経過時間に対して変化させる場合について説明したが、教示点P2からの移動量に対して変化するようにしてもよい。この場合であっても、手先モデルの負荷値φは、初期値φから推定値φへ経時的に漸次変化することとなる。 In the first embodiment, the case where the correction coefficient k is changed with respect to the elapsed time from the start of movement has been described. However, the correction coefficient k may be changed with respect to the movement amount from the teaching point P2. Even in this case, the load value phi of the hand model, so that the change over time gradually from an initial value phi a to estimate phi b.

さらに、第1実施形態では、各軸の負荷トルクτ〜τを基に手先負荷を推定するため、手先に付加したエンドエフェクタの動力学モデルも合わせて修正することができる。これにより、エンドエフェクタが取り換えられた場合やエンドエフェクタ自体の変形による動力学モデルの変化にも対応することができる。 Furthermore, in the first embodiment, since the hand load is estimated based on the load torques τ 1 to τ 6 of each axis, the dynamic model of the end effector added to the hand can also be corrected. Accordingly, it is possible to cope with a change in the dynamic model due to the replacement of the end effector or the deformation of the end effector itself.

[第2実施形態]
次に、第2実施形態に係るロボット装置について説明する。図10は、第2実施形態に係る組立部品の製造方法を示すフローチャートである。第2実施形態では、第1実施形態の手先負荷モデルの推定手順において、再度、手先を教示点P1の位置へ移動させて、より正確な手先負荷モデルを算出する手順を追加したものである。ロボット装置の構成及びその他の制御動作については第1実施形態と同様であるので、符号を同じくして詳細な説明は省略する。以下、図10に示すフローチャートに沿って説明する。
[Second Embodiment]
Next, a robot apparatus according to the second embodiment will be described. FIG. 10 is a flowchart showing a method of manufacturing an assembly part according to the second embodiment. In the second embodiment, a procedure for calculating a more accurate hand load model by moving the hand to the position of the teaching point P1 again in the hand load model estimation procedure of the first embodiment is added. Since the configuration of the robot apparatus and other control operations are the same as those in the first embodiment, the same reference numerals are used and detailed description thereof is omitted. Hereinafter, description will be given along the flowchart shown in FIG.

CPU301は、現在のロボット200の手先位置が教示点P1にあるときの手先力Fext_aを記憶部(例えばHDD304等)に記憶させる(S61)。つまり、記憶部であるHDD304は、ロボットハンド252がワークW1を支持していない状態で教示点P1に位置している所定位置姿勢のときに力検知部540にて検知された手先力(第1手先力)Fext_aを記憶する。ここで、記憶部であるHDD304は、ロボットハンド252がワークW1を把持(支持)していない状態でのロボットハンド252の負荷モデル(エンドエフェクタ負荷モデル)の負荷値(第1負荷値、初期値)φを予め記憶している。 The CPU 301 stores the hand force F ext_a when the hand position of the current robot 200 is at the teaching point P1 in a storage unit (for example, the HDD 304) (S61). That is, the HDD 304 serving as the storage unit has a hand force (first value) detected by the force detection unit 540 when the robot hand 252 is not supporting the workpiece W1 and is in a predetermined position and posture positioned at the teaching point P1. Hand force) F ext — a is stored. Here, the HDD 304 serving as a storage unit has a load value (first load value, initial value) of a load model (end effector load model) of the robot hand 252 in a state where the robot hand 252 does not hold (support) the workpiece W1. ) previously stores phi a.

次に、CPU301は、ロボットアーム251を制御してロボットハンド252を教示点P1の位置から教示点P2の位置へ移動させる(S62)。次に、CPU301は、ロボットハンド252にワークW1を把持させる(S63)。   Next, the CPU 301 controls the robot arm 251 to move the robot hand 252 from the teaching point P1 to the teaching point P2 (S62). Next, the CPU 301 causes the robot hand 252 to grip the workpiece W1 (S63).

次に、CPU301は、ロボットアーム251を動作制御して、ロボットハンド252の教示点P1への移動を開始する(S64)。このとき、ロボット200の手先は、ワークW1を把持したことにより、負荷変動が生じる。   Next, the CPU 301 controls the operation of the robot arm 251 and starts moving the robot hand 252 to the teaching point P1 (S64). At this time, the hand fluctuation of the robot 200 causes a load fluctuation due to the gripping of the workpiece W1.

CPU301は、手先において負荷変動が生じた際に手先を教示点P2から教示点P1へ移動させている状態で、トルクセンサ541〜546により検知された手先力Fを用いて手先負荷モデルの推定値φを求める(S65:推定処理,推定工程)。第2実施形態で負荷変動とは、ロボットハンド252がワークW1を把持(支持)していない状態からワークW1を把持(支持)している状態に変化することである。このステップS65の推定処理は、第1実施形態で説明したステップS54の推定処理と同じである。 The CPU 301 moves the hand from the teaching point P2 to the teaching point P1 when a load fluctuation occurs at the hand, and uses the hand force F detected by the torque sensors 541 to 546 to estimate the hand load model. φ b is obtained (S65: estimation process, estimation process). In the second embodiment, the load fluctuation is a change from a state where the robot hand 252 is not gripping (supporting) the workpiece W1 to a state where the robot is holding (supporting) the workpiece W1. The estimation process in step S65 is the same as the estimation process in step S54 described in the first embodiment.

ここで、説明のため、推定された手先負荷モデル(質量)の推定値φには、モデル化誤差が入り、実際の手先負荷の質量1[kg]から0.5[kg]ずれた1.5[kg]であったとする。 Here, for the sake of explanation, the estimated value φ b of the estimated hand load model (mass) includes a modeling error, and is deviated by 0.5 [kg] from the mass 1 [kg] of the actual hand load. Suppose that it is 5 kg.

CPU301は、現在のロボットアーム251の各関節の角度q〜qから、デカルト空間におけるロボット200の手先の現在位置Pと教示点P1と間の距離Lを算出する(S66)。 The CPU 301 calculates a distance L between the current position P of the hand of the robot 200 in the Cartesian space and the teaching point P1 from the angles q 1 to q 6 of each joint of the current robot arm 251 (S66).

CPU301は、算出した距離Lが、予め設定した一定時間、予め設定した閾値Lth以下であるか否かを判断する(S67)。   The CPU 301 determines whether or not the calculated distance L is equal to or less than a preset threshold value Lth for a preset fixed time (S67).

距離Lが一定時間、閾値以下であるということは、ロボット200の手先が所定位置姿勢(閾値以下の誤差を含む)、第2実施形態では教示点P1に移動したことを示す。一定時間は例えば0.2[秒]であり、閾値Lthは例えば0.015[m]とする。   That the distance L is equal to or less than the threshold value for a certain period of time indicates that the hand of the robot 200 has moved to a predetermined position and orientation (including an error equal to or less than the threshold value), and in the second embodiment, to the teaching point P1. The fixed time is, for example, 0.2 [second], and the threshold Lth is, for example, 0.015 [m].

CPU301は、一定時間、閾値Lth以下であれば(S67:Yes)ステップS71の処理へ進み、そうでなければ(S67:No)ステップS68の処理へ進む。   If the CPU 301 is equal to or less than the threshold value Lth for a certain time (S67: Yes), the process proceeds to step S71. If not (S67: No), the process proceeds to step S68.

ステップS68では、CPU301は、ステップS55と同様、手先負荷モデルの負荷値φ(t)を、負荷変動の前の手先負荷モデルの負荷値φから経時的に漸次、推定値φに向かって変化するように設定する(設定処理,設定工程)。 In step S68, CPU 301 is similar to step S55, the load value of the end load model phi (t), over time gradually from the load value phi a of the front of the hand load model of load change, toward the estimated value phi b Set to change (setting process, setting process).

ステップS69では、CPU301は、ステップS56と同様、修正係数kが1に到達したか否かを判断する。CPU301は、修正係数kが1に達していれば(S69:Yes)、ステップS66に戻って距離Lを計算し、修正係数kが1に達していなければ(S69:No)、修正係数kを更新し(S70)、ステップS66に戻って距離Lを計算する。   In step S69, the CPU 301 determines whether or not the correction coefficient k has reached 1, as in step S56. If the correction coefficient k has reached 1 (S69: Yes), the CPU 301 returns to step S66 to calculate the distance L. If the correction coefficient k has not reached 1 (S69: No), the CPU 301 sets the correction coefficient k. Update (S70) and return to step S66 to calculate the distance L.

ステップS70では、CPU301は、ステップS61で記憶した手先力Fext_aと現在の手先力Fext_bの差から、より精密な手先負荷モデルの推定値φを計算する(推定処理、推定工程)。 In step S70, CPU 301 from the difference between the hand force F Ext_a the current hand force F Ext_b stored in step S61, calculates an estimated value phi c of more precise hand load model (estimation processing, estimation step).

CPU301は、手先力Fext_aと、ロボットハンド252がワークW1を把持(支持)している状態で教示点P1に位置しているときに力検知部540にて検知された手先力(第2手先力)Fext_bとの差ΔFextを計算する。 The CPU 301 detects the hand force F ext_a and the hand force detected by the force detection unit 540 when the robot hand 252 is gripping (supporting) the workpiece W1 (the second hand). Force) The difference ΔF ext from F ext — b is calculated.

CPU301は、求めた差ΔFextから、ロボットハンド252が把持したワークW1の負荷モデルである物体負荷モデルの負荷値(第2負荷値)を算出し、第1負荷値φと第2負荷値とを加算して推定値φを算出する。 CPU301 is the difference [Delta] F ext thus determined load value of the object load model is a load model of workpiece W1 robot hand 252 grips (second load value) is calculated, the first load value phi a second load value by adding the bets to calculate the estimated value phi c.

ここで、ワークW1の質量をmw、重心位置をswとし、手先力Fext_aとFext_bの差をΔFext=Fext_b−Fext_aとする。ワークW1の質量mw及び重心位置swは、第1実施形態で説明したステップS54−2、S54−3のFextをΔFextと置き換えて同様の手順で算出できる。 Here, the mass of the workpiece W1 is mw, the center of gravity is sw, and the difference between the hand forces F ext_a and F ext_b is ΔF ext = F ext_b −F ext_a . The mass mw and the center-of-gravity position sw of the workpiece W1 can be calculated in the same procedure by replacing F ext in steps S54-2 and S54-3 described in the first embodiment with ΔF ext .

次に、これらの推定したワークW1の質量mw、重心位置swを、手先負荷モデル(質量と重心位置)の負荷値φにそれぞれ加算し、新たな手先負荷モデル(質量と重心位置)の負荷値φとする。質量、重心位置以外のモデル情報、具体的には、慣性テンソルは、負荷値φのままとする。 Then, these estimated mass of the workpiece W1 mw, the center of gravity position sw, respectively added to the load value phi a of the end load model (mass and center of gravity position), the load of the new hand load model (mass and center of gravity position) the value φ c. Mass, model information other than the center of gravity position, specifically, the inertia tensor, and leaves the load value phi b.

ここで、手先負荷モデルの推定値φにおける質量の値は、正確に推定され、実際の手先負荷の質量1[kg]であったとする。 Here, it is assumed that the mass value in the estimated value φ c of the hand load model is accurately estimated and is the mass 1 [kg] of the actual hand load.

CPU301は、ステップS71で推定した、より精密な手先負荷モデルの推定値φを実際にロボット200の制御で用いる手先負荷モデルの負荷値φに反映させる(S72)。処理内容はステップS55の手先負荷モデルの負荷値φ及び推定値φをそれぞれ負荷値φ及び推定値φで置き換えたものと同じである。具体的には、CPU301は、負荷変動の後の手先負荷モデルの負荷値φ(t)を、負荷変動の前の手先負荷モデルの負荷値φから経時的に漸次、推定値φに向かって変化するように設定する(設定処理,設定工程)。 CPU301 is estimated in step S71, to actually be reflected in the load value phi of the end load model used in the control of the robot 200 estimates phi c of more precise hand load model (S72). Processing contents are the same as those obtained by replacing the load value of the end load model in step S55 phi a and an estimate phi b each load value phi b and estimate phi c. Specifically, the CPU 301 gradually shifts the load value φ (t) of the hand load model after the load change from the load value φ b of the hand load model before the load change to the estimated value φ c over time. (Setting process, setting process).

図11(a)は、第2実施形態において時間に対する修正係数k(t)を示すグラフである。図11(b)は、第2実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。図11(c)は、第2実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。修正係数kは図11(b)のような変化とし、手先負荷モデルの負荷値φの変化は図11(c)のような変化となる。   FIG. 11A is a graph showing a correction coefficient k (t) with respect to time in the second embodiment. FIG. 11B is a graph showing the load value φ (t) of the hand load model with respect to time in the second embodiment. FIG. 11C is a graph showing the target position and the current position of the hand in the vertical direction with respect to time in the second embodiment. The correction coefficient k is changed as shown in FIG. 11B, and the change in the load value φ of the hand load model is changed as shown in FIG.

ステップS73〜S76の処理は、第1実施形態で説明した図7のステップS56〜S59と同じであるため、説明を省略する。   Since the processes of steps S73 to S76 are the same as steps S56 to S59 of FIG. 7 described in the first embodiment, the description thereof is omitted.

以上説明したステップS71の処理をCPU301が行うことにより、ワークWの把持前後の手先力の差から、より正確な手先負荷モデルの推定値φを求めることができる。 Above processing by performing is CPU301 of step S71 described, it can be determined from the difference of the hand force before and after gripping the workpiece is W, the estimated value phi c of more accurate hand load model.

図12は、モデル誤差が含まれる場合の時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。図12において、破線は第1実施形態の手順において、ステップS54で推定した手先負荷モデルの推定値φと実際の手先負荷とに誤差があった場合の手先の位置を表わしている。図12では推定したモデルに誤差が含まれるため、定常偏差が残っていることが分かる。なお、ステップS54で推定した手先負荷モデルφの質量は1.5[kg]で、実際の手先負荷の質量は1[kg]である。 FIG. 12 is a graph showing the target position and current position of the hand in the vertical direction with respect to time when a model error is included. 12, a broken line represents a position of the hand when there in the procedure of the first embodiment, is an error in the actual hand load and the estimated value phi b of the end load model estimated in step S54. In FIG. 12, since the estimated model contains an error, it can be seen that a stationary deviation remains. The mass of the estimated hand load model phi b in step S54 is 1.5 [kg], the actual mass of the hand load 1 [kg].

これに対し、図11(c)の破線は、第2実施形態の手順において、教示点P1でワークW1の把持前後の手先力の差から手先負荷モデルを再推定した場合の手先の位置を表わしている。図11(c)に示すように、図12に示すような手先の位置の定常偏差が低減されていることが分かる。   On the other hand, the broken line in FIG. 11C represents the position of the hand when the hand load model is re-estimated from the difference in hand force before and after gripping the workpiece W1 at the teaching point P1 in the procedure of the second embodiment. ing. As shown in FIG. 11C, it can be seen that the steady-state deviation of the hand position as shown in FIG. 12 is reduced.

これにより、第2実施形態によれば、手先負荷モデルにおける手先の質量及び重心位置をより正確に求めることができ、モデル誤差をより低減することができる。   Thereby, according to 2nd Embodiment, the mass and center-of-gravity position of a hand in a hand load model can be calculated | required more correctly, and a model error can be reduced more.

[第3実施形態]
次に、第3実施形態に係るロボット装置について説明する。図13は、第3実施形態に係る組立部品の製造方法を示すフローチャートである。第3実施形態では第2実施形態の手先負荷モデルの推定手順において、再度手先を教示点P1の位置へ移動させずに、次の移動先である教示点P3へ移動させる点が異なる。ロボット装置の構成及びその他の制御動作については第1、第2実施形態と同様であるので、符号を同じくして詳細な説明は省略する。以下、図13に示すフローチャートに沿って説明する。
[Third Embodiment]
Next, a robot apparatus according to a third embodiment will be described. FIG. 13 is a flowchart showing a method of manufacturing an assembly part according to the third embodiment. The third embodiment is different from the second embodiment in that the hand load model is not moved again to the position of the teaching point P1, but moved to the next teaching point P3, which is the next movement destination, in the estimation procedure of the hand load model of the second embodiment. Since the configuration of the robot apparatus and other control operations are the same as those in the first and second embodiments, the same reference numerals are used and detailed description thereof is omitted. Hereinafter, description will be given along the flowchart shown in FIG.

ただし、ステップS81〜S83、S85、S88〜S90、S93〜S97は第2実施形態と同様であるのでこれらの説明は省略し、追加又は変更したステップについてのみ詳細に説明する。   However, Steps S81 to S83, S85, S88 to S90, and S93 to S97 are the same as those in the second embodiment, and thus description thereof will be omitted, and only added or changed steps will be described in detail.

CPU301は、ステップS81において、現在のロボット200の手先位置が教示点P1にあるときの手先力を記憶部(例えばHDD304等)に記憶させる。つまり、記憶部であるHDD304は、ロボットハンド252がワークW1を支持していない状態で教示点P1に位置している第1位置姿勢のときに力検知部540にて検知された手先力(第1手先力)を記憶する。ここで、記憶部であるHDD304には、ロボットハンド252がワークW1を把持していない状態でのロボットハンド252の負荷モデル(エンドエフェクタ負荷モデル)の負荷値(第1負荷値、初期値)φを予め記憶している。 In step S <b> 81, the CPU 301 stores a hand force when the current hand position of the robot 200 is at the teaching point P <b> 1 in a storage unit (e.g., HDD 304). That is, the HDD 304 serving as the storage unit has a hand force (first force) detected by the force detection unit 540 when the robot hand 252 does not support the workpiece W1 and is in the first position and posture positioned at the teaching point P1. 1 hand force) is memorized. Here, the load value (first load value, initial value) φ of the load model (end effector load model) of the robot hand 252 when the robot hand 252 is not gripping the workpiece W1 is stored in the HDD 304 serving as a storage unit. a is stored in advance.

CPU301は、ステップS84において、ロボットアーム251を動作制御して、教示点P2の次の教示点P3へロボットハンド252の移動を開始する。   In step S84, the CPU 301 controls the operation of the robot arm 251 and starts moving the robot hand 252 to the teaching point P3 next to the teaching point P2.

CPU301は、ステップS86において、現在のロボットアーム251の各関節の角度q〜qから、デカルト空間におけるロボット200の手先の現在位置Pと教示点P3と間の距離Lを算出する。 In step S86, the CPU 301 calculates a distance L between the current position P of the hand of the robot 200 and the teaching point P3 in the Cartesian space from the angles q 1 to q 6 of each joint of the current robot arm 251.

CPU301は、ステップS87において、算出した距離Lが、予め設定した一定時間、予め設定した閾値Lth以下であるか否かを判断する。距離Lが一定時間、閾値以下であるということは、ロボット200の手先が第2位置姿勢(閾値以下の誤差を含む)、第3実施形態では教示点P3に移動したことを示す。   In step S87, the CPU 301 determines whether or not the calculated distance L is equal to or less than a preset threshold value Lth for a preset fixed time. That the distance L is equal to or less than the threshold value for a certain time indicates that the hand of the robot 200 has moved to the second position / posture (including an error equal to or less than the threshold value), which is the teaching point P3 in the third embodiment.

CPU301は、一定時間、閾値Lth以下であれば(S87:Yes)ステップS91の処理へ進み、そうでなければ(S87:No)ステップS88の処理へ進む。   If the CPU 301 is equal to or less than the threshold value Lth for a certain time (S87: Yes), the process proceeds to step S91; otherwise (S87: No), the process proceeds to step S88.

CPU301は、ステップS91において、ステップS81でHDD304に記憶させた手先力から、ロボットハンド202がワークW1を支持していない状態で教示点P3の位置姿勢のときの手先力(第1手先力)を推定する。具体的には、CPU301は、ステップS81で記憶した教示点P1での手先力に基づいて、教示点P3におけるワーク把持前相当の手先力Fext3を以下の式(10)で算出する。 In step S91, the CPU 301 uses the hand force stored in the HDD 304 in step S81 to obtain the hand force (first hand force) when the robot hand 202 does not support the workpiece W1 and is in the position and orientation of the teaching point P3. presume. Specifically, the CPU 301 calculates a hand force F ext3 equivalent to the work point before gripping the workpiece at the teaching point P3 based on the hand force at the teaching point P1 stored in step S81 by the following equation (10).

Figure 2017056525
Figure 2017056525

なお、Fext1は教示点P1におけるワーク把持前の手先力であり、R3−1は教示点P3から教示点P1への回転行列を表わす。ただし、教示点P3での姿勢が教示点P1での姿勢と同じであれば回転行列R3−1は3×3の単位行列となり、式(10)での計算は不要となる。 Note that F ext1 is a hand force before gripping the workpiece at the teaching point P1, and R 3-1 represents a rotation matrix from the teaching point P3 to the teaching point P1. However, if the posture at the teaching point P3 is the same as the posture at the teaching point P1, the rotation matrix R 3-1 is a 3 × 3 unit matrix, and the calculation in Expression (10) is not necessary.

次に、CPU301は、ステップS91において算出した、教示点P3におけるワーク把持前相当の手先力と現在の実際の手先力の差から手先負荷モデルを再推定する(S92)。   Next, the CPU 301 re-estimates the hand load model from the difference between the hand force before gripping the workpiece at the teaching point P3 calculated in step S91 and the current actual hand force (S92).

即ち、CPU301は、Fext3と、ロボットハンド252がワークW1を把持している状態で教示点P3の位置姿勢のときに力検知部540にて検知された手先力(第2手先力)Fext_bとの差ΔFextを計算する。 That is, the CPU 301 detects the hand force (second hand force) F ext_b detected by the force detection unit 540 when F ext3 and the robot hand 252 are gripping the workpiece W1 and the teaching point P3 is in the position and orientation. The difference ΔF ext is calculated.

CPU301は、求めた差ΔFextから、ロボットハンド252が把持したワークW1の負荷モデルである物体負荷モデルの負荷値(第2負荷値)を算出し、第1負荷値φと第2負荷値とを加算して推定値φを算出する。 CPU301 is the difference [Delta] F ext thus determined load value of the object load model is a load model of workpiece W1 robot hand 252 grips (second load value) is calculated, the first load value phi a second load value by adding the bets to calculate the estimated value phi c.

以上、ステップS91,S92の処理をCPU301が行うことにより、教示点P3におけるワークW1の把持前相当の手先力と現在の実際の手先力の差から、より正確な手先負荷モデルの推定値φを求めることができる。 As described above, the CPU 301 performs the processing of steps S91 and S92, so that a more accurate estimated value φ c of the hand load model is obtained from the difference between the hand force before gripping the workpiece W1 at the teaching point P3 and the current actual hand force. Can be requested.

また、手先負荷モデルの再推定のために再度ロボット200の手先をワークW1の把持前位置に移動させず直接次の移動場所へ移動することができるので、サイクルタイムを増加させることなく作業ができる。   Further, since the hand of the robot 200 can be moved directly to the next moving position without moving again to the position before gripping the workpiece W1 for re-estimating the hand load model, the work can be performed without increasing the cycle time. .

[第4実施形態]
次に、第4実施形態に係るロボット装置について説明する。図14(a)は、第4実施形態において時間に対する修正係数k(t)を示すグラフである。
[Fourth Embodiment]
Next, a robot apparatus according to a fourth embodiment will be described. FIG. 14A is a graph showing a correction coefficient k (t) with respect to time in the fourth embodiment.

第4実施形態では、修正係数k(t)が経時時間に対し非線形に変化するプロファイルにした点で第1実施形態と異なる。ロボット装置の構成及びその他の制御動作については第1実施形態と同様であるので、符号を同じくして詳細な説明は省略する。   The fourth embodiment differs from the first embodiment in that the correction coefficient k (t) has a profile that changes nonlinearly with time. Since the configuration of the robot apparatus and other control operations are the same as those in the first embodiment, the same reference numerals are used and detailed description thereof is omitted.

図14(a)には、修正係数k(t)が5次多項式のプロファイルとなる場合を図示している。修正係数k(t)は、時間で微分可能な時間の関数である。修正係数k(t)は、0.5[秒]から1.0[秒]の間にかけて滑らかに単調増加させている。5次多項式k(t)は以下の式(11)で与えられる。   FIG. 14A shows a case where the correction coefficient k (t) is a fifth-order polynomial profile. The correction factor k (t) is a function of time that can be differentiated in time. The correction coefficient k (t) is increased smoothly and monotonously from 0.5 [seconds] to 1.0 [seconds]. The fifth order polynomial k (t) is given by the following equation (11).

Figure 2017056525
Figure 2017056525

はk(t)の終点の値、t、tはそれぞれ始点、終点の時刻を意味する。 k f represents the end point value of k (t), and t 0 and t f represent the start point and end point times, respectively.

図14(b)は、第4実施形態において時間に対する手先負荷モデルの負荷値φ(t)を示すグラフである。図14(c)は、第4実施形態において時間に対する鉛直方向の手先の目標位置と現在位置を示すグラフである。   FIG. 14B is a graph showing the load value φ (t) of the hand load model with respect to time in the fourth embodiment. FIG. 14C is a graph showing the target position and the current position of the hand in the vertical direction with respect to time in the fourth embodiment.

図14(b)に示すように、手先負荷モデルの負荷値φ(t)は、修正係数k(t)の変化と同様に滑らかに変化していることが分かる。また、図14(c)を見ると、図12における手先位置の変化に比べ、より振動が低減されていることが分かる。   As shown in FIG. 14B, it can be seen that the load value φ (t) of the hand load model changes smoothly in the same manner as the change of the correction coefficient k (t). Moreover, when FIG.14 (c) is seen, compared with the change of the hand position in FIG. 12, it turns out that a vibration is reduced more.

以上説明したように、第4実施形態によれば、修正係数k(t)を滑らかな非線形の関数としたので、ロボット200の振動がより低減される。なお、微分可能な修正係数k(t)のプロファイルはこの限りでなく、シグモイド関数やスプライン曲線などであってもよい。また、第4実施形態の修正係数を第2又は第3実施形態の修正係数に適用することでより正確かつ安定した手先負荷モデルの推定が図られる。   As described above, according to the fourth embodiment, since the correction coefficient k (t) is a smooth non-linear function, the vibration of the robot 200 is further reduced. The profile of the differentiable correction coefficient k (t) is not limited to this, and may be a sigmoid function or a spline curve. Further, by applying the correction coefficient of the fourth embodiment to the correction coefficient of the second or third embodiment, a more accurate and stable hand load model can be estimated.

[第5実施形態]
次に、第5実施形態に係るロボット装置について説明する。図15は、第5実施形態に係る組立部品の製造方法を示すフローチャートである。第5実施形態では、手先負荷モデルの推定値を複数回求める点が第1実施形態と異なる。ロボット装置の構成及びその他の制御動作については第1実施形態と同様であるので、符号を同じくして詳細な説明は省略する。以下、図15に示すフローチャートに沿って説明する。
[Fifth Embodiment]
Next, a robot apparatus according to a fifth embodiment will be described. FIG. 15 is a flowchart showing a method of manufacturing an assembly part according to the fifth embodiment. The fifth embodiment is different from the first embodiment in that an estimated value of the hand load model is obtained a plurality of times. Since the configuration of the robot apparatus and other control operations are the same as those in the first embodiment, the same reference numerals are used and detailed description thereof is omitted. In the following, description will be given along the flowchart shown in FIG.

第5実施形態では、ステップS101〜S109の処理内容は第1実施形態で説明した図7のステップS51〜S59と同様であるが、第5実施形態ではステップS107の後にステップS104へ移る。   In the fifth embodiment, the processing contents of steps S101 to S109 are the same as steps S51 to S59 of FIG. 7 described in the first embodiment, but in the fifth embodiment, the process proceeds to step S104 after step S107.

即ち第1実施形態では、ロボット200の手先の移動開始直後に手先負荷モデルの推定を1度だけ行うのに対し、第5実施形態では修正係数が1に到達するまで複数回行い、手先負荷モデルを収束させる。   That is, in the first embodiment, the hand load model is estimated only once immediately after the start of the movement of the hand of the robot 200, whereas in the fifth embodiment, the hand load model is performed a plurality of times until the correction coefficient reaches 1. To converge.

ステップS104においては、CPU301は、複数回推定した過去の手先負荷モデルの推定値の平均を計算し、それを次のステップS105で用いる手先負荷モデルの推定値φとする。 In step S104, the CPU 301 calculates an average of the estimated values of the past hand load models estimated a plurality of times, and uses this as the estimated value φ b of the hand load model used in the next step S105.

以上、第5実施形態によれば、CPU301は、推定値の収束計算を行うことにより、精密な手先負荷モデルの推定値φが求まる。なお、ステップS104における複数回推定した過去の手先負荷モデルの平均の計算方法は全体平均、移動平均のどちらでもよい。また、平均ではなく中央値を計算し、それを用いてもよい。 As described above, according to the fifth embodiment, CPU 301 by performing a convergence calculation of the estimated value, obtained an estimate phi b precise hand load model. Note that the average calculation method of the past hand load models estimated a plurality of times in step S104 may be either an overall average or a moving average. Also, a median value may be calculated instead of the average and used.

[第6実施形態]
次に、第6実施形態に係るロボット装置について説明する。図16は、第6実施形態に係る組立部品の製造方法を示すフローチャートである。第6実施形態では、ロボット200の手先の移動時に、手先の回転運動を同時に行う点で第1実施形態と異なる。ロボット装置の構成及びその他の制御動作については第1実施形態と同様であるので、符号を同じくして詳細な説明は省略する。以下、図16に示すフローチャートに沿って説明する。
[Sixth Embodiment]
Next, a robot apparatus according to a sixth embodiment will be described. FIG. 16 is a flowchart showing a method of manufacturing an assembly part according to the sixth embodiment. The sixth embodiment is different from the first embodiment in that a rotational movement of the hand is simultaneously performed when the hand of the robot 200 moves. Since the configuration of the robot apparatus and other control operations are the same as those in the first embodiment, the same reference numerals are used and detailed description thereof is omitted. Hereinafter, description will be given along the flowchart shown in FIG.

第6実施形態では、ステップS111〜S112,S114〜S119の処理内容は第1実施形態で説明した図7のステップS51〜S52,S54〜S59と同様である。   In the sixth embodiment, the processing contents of steps S111 to S112 and S114 to S119 are the same as steps S51 to S52 and S54 to S59 of FIG. 7 described in the first embodiment.

ステップS113では、教示点P2から教示点P3へ移動を開始するが、このとき手先に並進力だけでなく回転力が働くように手先をXYZ軸まわりに複数回(3回程度)回転させる。教示点P3において、元の角度に戻るような回転運動を移動時に追加する。   In step S113, the movement from the teaching point P2 to the teaching point P3 is started. At this time, the hand is rotated a plurality of times (about three times) around the XYZ axes so that not only the translational force but also the rotational force acts on the hand. At the teaching point P3, a rotational motion that returns to the original angle is added during movement.

このような回転運動を手先に加えることで手先に並進方向の加速度だけでなく、回転方向の角加速度が発生し、手先力の回転成分も発生する。これにより、式(4)〜(7)で計算されるような手先負荷の重心位置や慣性テンソルが収束しやすくなり、より精密な手先負荷モデルの推定が図られる。   By applying such rotational motion to the hand, not only the translational acceleration but also the angular acceleration in the rotational direction is generated at the hand, and the rotational component of the hand force is also generated. Thereby, the center of gravity position of the hand load and the inertia tensor as calculated by the equations (4) to (7) can be easily converged, and a more accurate hand load model can be estimated.

また、第6実施形態ではステップS117の後に、第5実施形態と同様、ステップS114へ移る。すなわち、第1実施形態では手先の移動開始直後に手先負荷モデルの推定を1度だけ行うのに対し、第6実施形態では修正係数が1に到達するまで複数回行い、手先負荷モデルを収束させる。   In the sixth embodiment, after step S117, the process proceeds to step S114 as in the fifth embodiment. That is, in the first embodiment, the hand load model is estimated only once immediately after the start of hand movement, whereas in the sixth embodiment, the hand load model is converged several times until the correction coefficient reaches 1. .

ステップS114においては、CPU301は、複数回推定した過去の手先負荷モデルの推定値の平均を計算し、それを次のステップS115で用いる手先負荷モデルの推定値φとする。 In step S114, the CPU 301 calculates the average of the estimated values of the past hand load models estimated a plurality of times, and sets the average as the estimated value φ b of the hand load model used in the next step S115.

以上、第6実施形態によれば、CPU301は、推定値の収束計算を行うことにより、精密な手先負荷モデルの推定値φが求まる。なお、ステップS114における複数回推定した過去の手先負荷モデルの平均の計算方法は全体平均、移動平均のどちらでもよい。また、平均ではなく中央値を計算し、それを用いてもよい。 As described above, according to the sixth embodiment, CPU 301 by performing a convergence calculation of the estimated value, obtained an estimate phi b precise hand load model. Note that the average calculation method of the past hand load models estimated a plurality of times in step S114 may be either the overall average or the moving average. Also, a median value may be calculated instead of the average and used.

なお、第6実施形態では教示点P2から移動する際に回転運動を追加したものとして説明したが、第2実施形態のように一度教示点P1へ移動して収束処理をした後に第6実施形態の追加の回転運動を行ってさらにモデルを収束させてもよい。   Although the sixth embodiment has been described on the assumption that a rotational motion is added when moving from the teaching point P2, the sixth embodiment moves to the teaching point P1 once and converges as in the second embodiment. An additional rotational motion may be performed to further converge the model.

本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。   The present invention is not limited to the embodiments described above, and many modifications are possible within the technical idea of the present invention. In addition, the effects described in the embodiments of the present invention only list the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments of the present invention.

本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。   The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

また、上述の実施形態では、ロボットアーム251が垂直多関節の場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。つまり、関節の駆動方向は、回転方向の駆動だけに限らず、直動方向の駆動(伸縮駆動)も含まれる。さらに、関節を駆動するのが電動モータである場合について説明したが、これに限定するものではなく、例えば人工筋肉等であってもよい。また、上述の実施形態では、ロボットアームが6つの関節を有する場合について説明したが、関節の数はこれに限定されるものではない。   In the above-described embodiment, the case where the robot arm 251 has a vertical articulated joint has been described. However, the present invention is not limited to this. The robot arm may be various robot arms such as a horizontal articulated robot arm, a parallel link robot arm, and an orthogonal robot. That is, the driving direction of the joint is not limited to driving in the rotational direction, but includes driving in the linear motion direction (extension / retraction driving). Furthermore, although the case where the electric motor drives the joint has been described, the present invention is not limited to this, and may be, for example, an artificial muscle or the like. In the above-described embodiment, the case where the robot arm has six joints has been described. However, the number of joints is not limited to this.

また、上述の実施形態では、力検知部が、複数のトルクセンサで構成される場合について説明したが、これに限定するものではなく、ロボットアームの先端に設けられた力覚センサであってもよい。   In the above-described embodiment, the case where the force detection unit is configured by a plurality of torque sensors has been described. However, the present invention is not limited to this, and a force sensor provided at the tip of the robot arm may be used. Good.

100…ロボット装置、200…ロボット、251…ロボットアーム、252…ロボットハンド(エンドエフェクタ)、301…CPU(制御部)、540…力検知部 DESCRIPTION OF SYMBOLS 100 ... Robot apparatus, 200 ... Robot, 251 ... Robot arm, 252 ... Robot hand (end effector), 301 ... CPU (control part), 540 ... Force detection part

Claims (17)

多関節のロボットアームと、前記ロボットアームの先端に設けられ、物体を支持するエンドエフェクタと、前記エンドエフェクタが物体を支持している状態又は前記エンドエフェクタが物体を支持していない状態である手先にかかる手先力を検知する力検知部とを有するロボットと、
前記手先の手先負荷モデルの負荷値を用いて前記ロボットの動作を制御する制御部と、を備え、
前記制御部は、
前記手先において負荷変動が生じた際に前記力検知部により検知された手先力を用いて前記手先負荷モデルの推定値を求める推定処理と、
前記負荷変動の後の前記手先負荷モデルの負荷値を、前記負荷変動の前の前記手先負荷モデルの負荷値から経時的に漸次、前記推定値に向かって変化するように設定する設定処理と、を実行することを特徴とするロボット装置。
An articulated robot arm, an end effector that is provided at the tip of the robot arm and supports an object, and a hand that is in a state in which the end effector supports an object or a state in which the end effector does not support an object A robot having a force detection unit for detecting the hand force applied to the
A control unit that controls the operation of the robot using a load value of the hand load model of the hand, and
The controller is
An estimation process for obtaining an estimated value of the hand load model using a hand force detected by the force detection unit when a load fluctuation occurs in the hand;
A setting process for setting the load value of the hand load model after the load change to gradually change from the load value of the hand load model before the load change to the estimated value over time. The robot apparatus characterized by performing.
前記負荷変動とは、前記エンドエフェクタが前記物体を支持していない状態から前記物体を支持している状態に変化することである請求項1に記載のロボット装置。   The robot apparatus according to claim 1, wherein the load fluctuation is a change from a state where the end effector does not support the object to a state where the object is supported. 前記制御部は、前記推定処理において、前記手先を移動させている状態で前記力検知部により検知された手先力を用いて前記推定値を求めることを特徴とする請求項1又は2に記載のロボット装置。   The said control part calculates | requires the said estimated value using the hand force detected by the said force detection part in the state which is moving the said hand in the said estimation process, The Claim 1 or 2 characterized by the above-mentioned. Robot device. 前記制御部は、前記推定処理において、前記手先に並進力又は回転力を付与した状態で前記力検知部により検知された手先力を用いて前記推定値を求めることを特徴とする請求項3に記載のロボット装置。   The said control part calculates | requires the said estimated value using the hand force detected by the said force detection part in the said estimation process in the state which provided the translational force or the rotational force to the said hand. The robot apparatus described. 前記制御部は、前記推定処理において、前記推定値を複数回求めることを特徴とする請求項3又は4に記載のロボット装置。   The robot apparatus according to claim 3, wherein the control unit obtains the estimated value a plurality of times in the estimation process. 前記エンドエフェクタのエンドエフェクタ負荷モデルの第1負荷値を予め記憶する記憶部を備え、
前記制御部は、前記推定処理として、
前記エンドエフェクタが前記物体を支持していない状態で所定位置姿勢のときに前記力検知部にて検知された第1手先力と、前記エンドエフェクタが前記物体を支持している状態で前記所定位置姿勢のときに前記力検知部にて検知された第2手先力との差から、前記エンドエフェクタが支持した前記物体の物体負荷モデルの第2負荷値を算出し、
前記第1負荷値と前記第2負荷値とを加算して前記推定値を算出することを特徴とする請求項2に記載のロボット装置。
A storage unit that stores in advance a first load value of an end effector load model of the end effector;
The control unit, as the estimation process,
The first hand force detected by the force detection unit when the end effector does not support the object and is in a predetermined position and posture, and the predetermined position while the end effector supports the object. Calculating the second load value of the object load model of the object supported by the end effector from the difference from the second hand force detected by the force detection unit at the time of posture;
The robot apparatus according to claim 2, wherein the estimated value is calculated by adding the first load value and the second load value.
前記エンドエフェクタのエンドエフェクタ負荷モデルの第1負荷値を予め記憶する記憶部を備え、
前記制御部は、前記推定処理として、
前記エンドエフェクタが前記物体を支持していない状態で第1位置姿勢のときに前記力検知部にて検知された手先力から、前記エンドエフェクタが前記物体を支持していない状態で第2位置姿勢のときの第1手先力を推定し、
前記第1手先力と、前記エンドエフェクタが前記物体を支持している状態で前記第2位置姿勢のときに前記力検知部にて検知された第2手先力との差から、前記エンドエフェクタが支持した前記物体の物体負荷モデルの第2負荷値を算出し、
前記第1負荷値と前記第2負荷値とを加算して前記推定値を算出することを特徴とする請求項2に記載のロボット装置。
A storage unit that stores in advance a first load value of an end effector load model of the end effector;
The control unit, as the estimation process,
From the hand force detected by the force detection unit when the end effector does not support the object and in the first position and posture, the second position and orientation is determined while the end effector does not support the object. Estimate the first hand force at
From the difference between the first hand force and the second hand force detected by the force detector when the end effector is supporting the object and in the second position and posture, the end effector Calculating a second load value of the object load model of the supported object;
The robot apparatus according to claim 2, wherein the estimated value is calculated by adding the first load value and the second load value.
前記手先負荷モデルは、前記手先の質量、重心位置若しくは慣性テンソル又はこれらの組み合わせであることを特徴とする請求項1乃至7のいずれか1項に記載のロボット装置。   The robot apparatus according to any one of claims 1 to 7, wherein the hand load model is a mass, a gravity center position, an inertia tensor, or a combination thereof of the hand. 前記負荷変動の前の前記手先負荷モデルの負荷値をφとし、
前記推定値をφとし、
0以上1以下の間で変化する修正係数をkとしたとき、
前記制御部は、前記設定処理にて
Figure 2017056525
の式に従い、前記修正係数kを経時的に漸次0から1に単調増加させることで、前記負荷変動の後の前記手先負荷モデルの負荷値を算出することを特徴とする請求項1乃至8のいずれか1項に記載のロボット装置。
The load value of the hand load model before the load change and phi a,
The estimated value and phi b,
When the correction coefficient that changes between 0 and 1 is k,
In the setting process, the control unit
Figure 2017056525
9. The load value of the hand load model after the load change is calculated by gradually increasing the correction coefficient k from 0 to 1 over time according to the equation: The robot apparatus according to any one of claims.
前記修正係数kは、経時時間に対し線形に変化することを特徴とする請求項9に記載のロボット装置。   The robot apparatus according to claim 9, wherein the correction coefficient k changes linearly with time. 前記修正係数kは、経時時間に対し非線形に変化することを特徴とする請求項9に記載のロボット装置。   The robot apparatus according to claim 9, wherein the correction coefficient k changes nonlinearly with time. 前記修正係数kは、時間で微分可能な時間の関数であることを特徴とする請求項11に記載のロボット装置。   The robot apparatus according to claim 11, wherein the correction coefficient k is a function of time that can be differentiated with respect to time. 前記ロボットアームは、各関節をそれぞれ駆動する複数のモータと、前記各モータに対する各トルク指令値に基づいて前記各モータの駆動を制御する駆動制御部と、を有し、
前記制御部は、前記力検知部により検知された手先力及び前記負荷モデルを用いて前記各トルク指令値を求めることを特徴とする請求項1乃至12のいずれか1項に記載のロボット装置。
The robot arm has a plurality of motors that drive each joint, and a drive control unit that controls the driving of each motor based on each torque command value for each motor,
The robot apparatus according to claim 1, wherein the control unit obtains each torque command value using a hand force detected by the force detection unit and the load model.
ロボットが、多関節のロボットアームと、前記ロボットアームの先端に設けられ、物体を支持するエンドエフェクタと、前記エンドエフェクタが物体を支持している状態又は前記エンドエフェクタが物体を支持していない状態である手先にかかる手先力を検知する力検知部とを有しており、制御部が、前記手先の手先負荷モデルの負荷値を用いて前記ロボットの動作を制御するロボット制御方法であって、
前記制御部が、前記手先において負荷変動が生じた際に前記力検知部により検知された手先力を用いて前記手先負荷モデルの推定値を求める推定工程と、
前記制御部が、前記負荷変動の後の前記手先負荷モデルの負荷値を、前記負荷変動の前の前記手先負荷モデルの負荷値から経時的に漸次、前記推定値に向かって変化するように設定する設定工程と、を備えたことを特徴とするロボット制御方法。
A robot is an articulated robot arm, an end effector that is provided at the tip of the robot arm and supports the object, and the end effector supports the object or the end effector does not support the object A force detection unit that detects a hand force applied to the hand, and the control unit controls the operation of the robot using a load value of the hand load model of the hand,
An estimation step for obtaining an estimated value of the hand load model by using the hand force detected by the force detection unit when a load fluctuation occurs in the hand at the control unit;
The control unit sets the load value of the hand load model after the load change to gradually change from the load value of the hand load model before the load change toward the estimated value over time. A robot control method comprising: a setting step of:
請求項14に記載のロボット制御方法の各工程をコンピュータに実行させるためのプログラム。   The program for making a computer perform each process of the robot control method of Claim 14. 請求項15に記載のプログラムが記録された、コンピュータが読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 15 is recorded. ロボットが、多関節のロボットアームと、前記ロボットアームの先端に設けられ、物体を支持するエンドエフェクタと、前記エンドエフェクタが物体を支持している状態又は前記エンドエフェクタが物体を支持していない状態である手先にかかる手先力を検知する力検知部とを有しており、制御部が、前記手先の手先負荷モデルを用いて前記ロボットの動作を制御して、組立部品を製造する組立部品の製造方法であって、
前記制御部が、前記エンドエフェクタに第1部品を支持させたときに前記力検知部により検知された手先力を用いて前記手先負荷モデルの推定値を求める推定工程と、
前記制御部が、前記エンドエフェクタに前記第1部品を支持させたことによる負荷変動の後の前記手先負荷モデルの負荷値を、前記負荷変動の前の前記手先負荷モデルの負荷値から経時的に漸次、前記推定値に向かって変化するように設定する設定工程と、
前記制御部が、前記設定工程にて設定された前記手先負荷モデルの負荷値を用いて前記ロボットの動作を制御し、前記第1部品を第2部品に組付ける組付工程と、を備えたことを特徴とする組立部品の製造方法。
A robot is an articulated robot arm, an end effector that is provided at the tip of the robot arm and supports the object, and the end effector supports the object or the end effector does not support the object A force detection unit that detects a hand force applied to the hand, and a control unit controls an operation of the robot using a hand load model of the hand to manufacture an assembly part. A manufacturing method comprising:
An estimation step of obtaining an estimated value of the hand load model using the hand force detected by the force detection unit when the control unit supports the first component on the end effector;
A load value of the hand load model after a load change due to the control unit supporting the first component on the end effector is changed over time from a load value of the hand load model before the load change. Gradually, a setting step for setting to change toward the estimated value;
An assembly step of controlling the operation of the robot using the load value of the hand load model set in the setting step, and assembling the first part to the second part. An assembly part manufacturing method characterized by the above.
JP2015183958A 2015-09-17 2015-09-17 Robot device robot control method, program, recording medium, and method of manufacturing assembling component Pending JP2017056525A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015183958A JP2017056525A (en) 2015-09-17 2015-09-17 Robot device robot control method, program, recording medium, and method of manufacturing assembling component

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015183958A JP2017056525A (en) 2015-09-17 2015-09-17 Robot device robot control method, program, recording medium, and method of manufacturing assembling component

Publications (1)

Publication Number Publication Date
JP2017056525A true JP2017056525A (en) 2017-03-23

Family

ID=58391218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015183958A Pending JP2017056525A (en) 2015-09-17 2015-09-17 Robot device robot control method, program, recording medium, and method of manufacturing assembling component

Country Status (1)

Country Link
JP (1) JP2017056525A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019188514A (en) * 2018-04-24 2019-10-31 ファナック株式会社 Device, method, and program for estimating weight and centroid position of load using robot
CN111515928A (en) * 2020-04-15 2020-08-11 上海工程技术大学 Mechanical arm motion control system
JP2020151824A (en) * 2019-03-22 2020-09-24 キヤノン株式会社 Control device, robot device, control method, article manufacturing method, program, and recording medium
US11673273B2 (en) 2019-06-07 2023-06-13 Fanuc Corporation Off-line programming apparatus, robot controller, and augmented reality system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019188514A (en) * 2018-04-24 2019-10-31 ファナック株式会社 Device, method, and program for estimating weight and centroid position of load using robot
US11602863B2 (en) 2018-04-24 2023-03-14 Fanuc Corporation Device, method and program for estimating weight and position of gravity center of load by using robot
JP2020151824A (en) * 2019-03-22 2020-09-24 キヤノン株式会社 Control device, robot device, control method, article manufacturing method, program, and recording medium
JP7391523B2 (en) 2019-03-22 2023-12-05 キヤノン株式会社 Control device, robot system, control method, article manufacturing method, program, and recording medium
US11673273B2 (en) 2019-06-07 2023-06-13 Fanuc Corporation Off-line programming apparatus, robot controller, and augmented reality system
CN111515928A (en) * 2020-04-15 2020-08-11 上海工程技术大学 Mechanical arm motion control system
CN111515928B (en) * 2020-04-15 2023-03-31 上海工程技术大学 Mechanical arm motion control system

Similar Documents

Publication Publication Date Title
US10486309B2 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
EP3147087B1 (en) Robot apparatus, robot controlling method, program, recording medium, and assembly manufacturing method
CN109849025B (en) Vibration suppressing device
US8874263B2 (en) Walking robot and control method thereof
US11298822B2 (en) Robot, method of controlling robot, and robot control device
JP6851837B2 (en) Manufacturing methods for control devices, robot systems, control methods, programs, recording media and articles
JP2017056525A (en) Robot device robot control method, program, recording medium, and method of manufacturing assembling component
DK2492062T3 (en) industrial Robot
JP4976883B2 (en) Manipulator system
JP2017056549A (en) Robot device robot control method, program, recording medium, and method of manufacturing assembling component
JP2017209762A (en) Robot device, robot control method, program, recording medium and production method of article
US11597083B2 (en) Robot apparatus, robot system, control method of robot apparatus, product manufacturing method using robot apparatus, and storage medium
JP3698770B2 (en) Load weight estimation method
Bruzzone et al. Modelling and control of peg-in-hole assembly performed by a translational robot
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
Fateh et al. On the transforming of control space by manipulator Jacobian
US20230052996A1 (en) Method of obtaining vibrational properties of robot arm
CN112512758B (en) Deflection amount estimating device, robot control device, and deflection amount estimating method
JP7391523B2 (en) Control device, robot system, control method, article manufacturing method, program, and recording medium
JPH10249763A (en) Friction parameter control method for robot manipulator
JP2019214105A (en) Robot control apparatus and robot control method
JP2019104091A (en) Robot apparatus and control method for robot apparatus
CN112703090A (en) Robot control device, robot control method, and robot control program
Tittel et al. Full 6-dof admittance control for the industrial robot stäubli tx60
TWI781708B (en) Learning apparatus, learning method, learning program, control apparatus, control method, and control program