Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7591938B2 - Control device - Google Patents
[go: Go Back, main page]

JP7591938B2 - Control device - Google Patents

Control device Download PDF

Info

Publication number
JP7591938B2
JP7591938B2 JP2021020016A JP2021020016A JP7591938B2 JP 7591938 B2 JP7591938 B2 JP 7591938B2 JP 2021020016 A JP2021020016 A JP 2021020016A JP 2021020016 A JP2021020016 A JP 2021020016A JP 7591938 B2 JP7591938 B2 JP 7591938B2
Authority
JP
Japan
Prior art keywords
coordinates
robot
robot hand
workpiece
calibration
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.)
Active
Application number
JP2021020016A
Other languages
Japanese (ja)
Other versions
JP2022122648A (en
Inventor
大和 上原
政史 中尾
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.)
Keyence Corp
Original Assignee
Keyence Corp
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 Keyence Corp filed Critical Keyence Corp
Priority to JP2021020016A priority Critical patent/JP7591938B2/en
Publication of JP2022122648A publication Critical patent/JP2022122648A/en
Application granted granted Critical
Publication of JP7591938B2 publication Critical patent/JP7591938B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、ロボットを制御する制御装置に関する。 The present invention relates to a control device for controlling a robot.

従来、ロボットと、ロボットハンドに固定された三次元カメラとを組み合わせた、いわゆるハンドアイと呼ばれる方式のロボットシステムが知られている(例えば、特許文献1参照)。この種のロボットシステムでは、運用前に、カメラ座標をロボットハンドのロボット座標に変換するためのキャリブレーションが必要である。特許文献1では、ロボット座標系に一つのキャリブレーション用マークを配置し、三次元カメラをキャリブレーション用マークに向けたままで平行移動させた複数の観測箇所と、これら観測箇所とは異なる方向からキャリブレーション用マークを臨む複数の観測箇所とでキャリブレーション用マークの観測を行い、各観測箇所で得られたマーク位置認識データと、ロボットハンドの姿勢データとを対応付けることによってキャリブレーションデータを取得するようにしている。 Conventionally, a so-called hand-eye type robot system has been known that combines a robot with a three-dimensional camera fixed to the robot hand (see, for example, Patent Document 1). This type of robot system requires calibration before operation to convert the camera coordinates into the robot coordinates of the robot hand. In Patent Document 1, one calibration mark is placed in the robot coordinate system, and the calibration mark is observed at multiple observation points where the three-dimensional camera is translated while facing the calibration mark, and at multiple observation points where the calibration mark is viewed from a different direction from these observation points, and calibration data is obtained by associating the mark position recognition data obtained at each observation point with the posture data of the robot hand.

特開2012-91280号公報JP 2012-91280 A

ところで、特許文献1では、キャリブレーションを行う際にキャリブレーション用マークを用意する必要がある。キャリブレーション用マークは、ロボットシステムの運用時にピッキングするワークとは材質、形状、大きさなどが異なっているので、カメラの撮像用パラメータ(露光時間、ゲインなど)や、ピント位置などをワークの撮像時とは変えてキャリブレーション用マークの撮像を行う必要がある。つまり、運用時と異なるパラメータでキャリブレーションを行うことになるので、運用に最適な状態のキャリブレーションとは言い難い。 In Patent Document 1, it is necessary to prepare a calibration mark when performing calibration. The calibration mark is different in material, shape, size, etc. from the workpiece that is picked up when the robot system is in operation, so it is necessary to image the calibration mark by changing the camera's imaging parameters (exposure time, gain, etc.) and focus position from when the workpiece is imaged. In other words, since calibration is performed with parameters that are different from those used during operation, it is difficult to say that the calibration is optimal for operation.

そこで、キャリブレーション用マークでなく、ワークをキャリブレーション用マークとして使用することが考えられる。ところが、カメラ座標をロボット座標に変換するためのパラメータを求める際には、ロボットハンドを回転させる動作が必要であり、特にロボットハンドを大きく回転させることで、原理上、より正確性が増すので、キャリブレーション時にはロボットハンドを大きく回転させたいという要求がある。 One solution is to use the workpiece as the calibration mark instead of the calibration mark. However, when determining the parameters for converting the camera coordinates into the robot coordinates, it is necessary to rotate the robot hand. In particular, rotating the robot hand more widely increases accuracy in principle, so there is a demand to rotate the robot hand more widely during calibration.

しかしながら、カメラの視野やワークはロボットハンドの可動範囲に対して小さいので、ロボットハンドを大きく回転させると、ワークがカメラの視野の外に出てしまい、キャリブレーションデータが取得できなくなる。 However, the camera's field of view and the workpiece are small compared to the range of motion of the robot hand, so if the robot hand is rotated significantly, the workpiece will go outside the camera's field of view, making it impossible to obtain calibration data.

また、ロボットハンドを回転させたときにワークがカメラの視野から出ない場合であっても、ワークの一部しか撮像できない場合には、正確なキャリブレーションに足るデータが取得できない。 Even if the workpiece does not leave the camera's field of view when the robot hand is rotated, if only a portion of the workpiece is imaged, sufficient data for accurate calibration cannot be obtained.

さらに、一般的に三次元カメラの視野周辺部は中央部近傍に比べて測定精度が劣るが、ロボットハンドを大きく回転させると、三次元カメラの視野周辺部のデータを使ってキャリブレーションを行うことになり、この点でも正確なキャリブレーションが期待できなくなるおそれがあった。 Furthermore, generally speaking, measurement accuracy is lower in the peripheral areas of a 3D camera's field of view than in the area near the center. If the robot hand is rotated significantly, calibration will be performed using data from the peripheral areas of the 3D camera's field of view, and in this respect too, there is a risk that accurate calibration will not be possible.

本開示は、かかる点に鑑みたものであり、その目的とするところは、ワークを使用してキャリブレーションを実行する場合に正確なキャリブレーションデータを取得できるようにすることにある。 The present disclosure has been made in consideration of these points, and its purpose is to make it possible to obtain accurate calibration data when performing calibration using a workpiece.

上記目的を達成するために、本開示の第1の側面では、ロボットハンドに固定された三次元カメラを用いてワークの形状を測定し、測定されたワークの形状データに基づいて、前記三次元カメラのカメラ座標を前記ロボットハンドのロボット座標に変換するためのキャリブレーションを実行する制御装置を前提とすることができる。制御装置は、通常キャリブレーション処理と、高精度キャリブレーション処理とを実行可能なキャリブレーション実行部を備えている。 To achieve the above object, a first aspect of the present disclosure can be based on a control device that measures the shape of a workpiece using a three-dimensional camera fixed to a robot hand, and performs calibration to convert the camera coordinates of the three-dimensional camera into the robot coordinates of the robot hand based on the measured shape data of the workpiece. The control device includes a calibration execution unit that can perform normal calibration processing and high-precision calibration processing.

前記通常キャリブレーション処理では、前記ロボットハンドをXYZ方向へ移動させる動作と、前記ロボットハンドを所定の軸周りに複数回回転させる動作とを繰り返し実行し、各動作後、前記ロボットハンドの停止位置で前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出することができる。 In the normal calibration process, the robot hand is moved in the XYZ directions and rotated multiple times around a predetermined axis. After each operation, the workpiece is measured by the three-dimensional camera at the stop position of the robot hand, and workpiece coordinates are detected based on the shape data obtained. The robot coordinates at the time the workpiece coordinates are obtained are also obtained. Based on the multiple pairs of workpiece coordinates and robot coordinates obtained, parameters for converting the position in the camera coordinates to a position in the robot coordinates can be calculated.

一方、前記高精度キャリブレーション処理では、前記通常キャリブレーション処理により求められた前記ロボットハンドのツール中心と前記三次元カメラの相対位置に基づいて、暫定回転中心を決定し、該暫定回転中心周りに前記ロボットハンドを複数回回転させた各位置で、前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記ロボットハンドの最終的な回転中心を決定することができる。 On the other hand, in the high-precision calibration process, a provisional rotation center is determined based on the relative position between the tool center of the robot hand and the three-dimensional camera obtained by the normal calibration process, and the robot hand is rotated multiple times around the provisional rotation center. At each position, the workpiece is measured by the three-dimensional camera to detect workpiece coordinates based on shape data obtained, and the robot coordinates at the time the workpiece coordinates are obtained are obtained. The final rotation center of the robot hand can be determined based on the multiple pairs of workpiece coordinates and robot coordinates obtained.

この構成では、ワークの三次元形状を測定する三次元カメラがロボットハンドに固定されたロボットシステムを前提とすることができるので、ロボットシステムの運用時には、ロボットハンドを大きく退避させることなく、三次元カメラによってワークの位置を測定することが可能になるとともに、測定対象のワークに近いところから当該ワークの三次元形状を測定することができ、測定精度が向上する。尚、本発明の対象は、ロボットシステムであってもよいし、ロボットの制御装置(ロボットコントローラ)であってもよい。 This configuration can be based on a robot system in which a three-dimensional camera that measures the three-dimensional shape of the workpiece is fixed to the robot hand. Therefore, when the robot system is in operation, the position of the workpiece can be measured by the three-dimensional camera without having to significantly retract the robot hand, and the three-dimensional shape of the workpiece can be measured from close to the workpiece to be measured, improving measurement accuracy. The subject of the present invention may be a robot system or a robot control device (robot controller).

三次元カメラがロボットハンドに固定されている場合には、三次元カメラのカメラ座標をロボットハンドのロボット座標に変換するためのキャリブレーションを実行する必要があり、本構成では、運用時にピッキングするワークを使用して複数段階のキャリブレーション処理を実行する。 When the three-dimensional camera is fixed to the robot hand, it is necessary to perform calibration to convert the camera coordinates of the three-dimensional camera into the robot coordinates of the robot hand. In this configuration, a multi-stage calibration process is performed using the work to be picked during operation.

すなわち、はじめに、通常キャリブレーション処理として、ロボットハンドをXYZ方向へ移動させる動作と、回転動作とを繰り返し、各動作後のワークを三次元カメラにより測定してワーク座標を検出するとともに、そのワーク座標を得た時のロボット座標も取得する。これにより取得した複数のワーク座標とロボット座標の組に基づいて、カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出し、ロボットハンドのツール中心と三次元カメラの相対位置関係が求められる。 That is, first, as a normal calibration process, the robot hand is repeatedly moved in the XYZ directions and rotated, and the workpiece after each operation is measured with a three-dimensional camera to detect the workpiece coordinates, and the robot coordinates at the time the workpiece coordinates are obtained are also obtained. Based on the multiple pairs of workpiece coordinates and robot coordinates obtained in this way, parameters are calculated to convert the position in the camera coordinates to a position in the robot coordinates, and the relative positional relationship between the tool center of the robot hand and the three-dimensional camera is found.

ロボットハンドのツール中心と三次元カメラの相対位置関係を求めた後、高精度キャリブレーション処理を実行する。まず、上記のようにして求めたロボットハンドのツール中心と三次元カメラの相対位置に基づいて、ロボットハンドの暫定回転中心を決定する。この暫定回転中心は、仮に設定した回転中心である。暫定回転中心周りにロボットハンドを複数回回転させることで、三次元カメラの視野の外にワークが出ないようにすること、ワークの全体が三次元カメラの視野に入るようにすること、及び三次元カメラの視野中央部近傍にワークを置くことが可能になる。そして、各位置で、ワークを三次元カメラにより測定してワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボットハンドの最終的な回転中心を高精度に決定することができる。 After determining the relative positional relationship between the tool center of the robot hand and the three-dimensional camera, a high-precision calibration process is performed. First, a provisional rotation center of the robot hand is determined based on the relative position between the tool center of the robot hand and the three-dimensional camera determined as described above. This provisional rotation center is a rotation center that is temporarily set. By rotating the robot hand multiple times around the provisional rotation center, it is possible to prevent the workpiece from going outside the field of view of the three-dimensional camera, to ensure that the entire workpiece is in the field of view of the three-dimensional camera, and to place the workpiece near the center of the field of view of the three-dimensional camera. Then, at each position, the workpiece is measured by the three-dimensional camera to detect the workpiece coordinates, and the robot coordinates when the workpiece coordinates are obtained are obtained. Based on the multiple pairs of workpiece coordinates and robot coordinates obtained, the final rotation center of the robot hand can be determined with high precision.

ワーク座標を得た時のロボット座標は、例えば、ロボットハンドの動作状態に基づいて取得することや、ロボットを制御するロボットコントローラなどから取得することが可能である。 The robot coordinates when the workpiece coordinates are obtained can be obtained, for example, based on the operating state of the robot hand, or from a robot controller that controls the robot.

本開示の第2の側面では、前記キャリブレーション実行部が、前記高精度キャリブレーション処理において前記暫定回転中心周りに回転させる前記ロボットハンドの回転角度を、前記通常キャリブレーション処理において所定の軸周りに回転させる前記ロボットハンドの回転角度よりも大きな回転角度とするものである。 In a second aspect of the present disclosure, the calibration execution unit rotates the robot hand around the provisional rotation center in the high-precision calibration process to a rotation angle that is greater than the rotation angle of the robot hand around a predetermined axis in the normal calibration process.

この構成によれば、高精度キャリブレーション処理でロボットハンドの回転角度を大きくすることで、得られるキャリブレーションデータの正確性が増す。高精度キャリブレーション処理では、ロボットハンドを暫定回転中心周りに回転させるので、上記のように回転角度を大きくしたとしても、ワークの全部または一部が三次元カメラの視野の外に出る可能性が低くなる。 According to this configuration, by increasing the rotation angle of the robot hand in the high-precision calibration process, the accuracy of the calibration data obtained is increased. In the high-precision calibration process, the robot hand is rotated around the temporary rotation center, so even if the rotation angle is increased as described above, there is a low possibility that all or part of the workpiece will fall outside the field of view of the 3D camera.

本開示の第3の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記複数のワーク座標と前記ロボット座標の組に基づいて前記ロボットハンドの回転中心を求める第1処理と、第1処理で求めた回転中心を次の回転中心として、前記ロボットハンドを複数回回転させた各位置で、前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記ロボットハンドの回転中心を求める第2処理とを実行してから、前記ロボットハンドの最終的な回転中心を決定することができる。 In a third aspect of the present disclosure, the calibration execution unit executes a first process in the high-precision calibration process to determine the center of rotation of the robot hand based on a set of the multiple workpiece coordinates and the robot coordinates, and a second process in which, using the center of rotation determined in the first process as the next center of rotation, the robot hand is rotated multiple times, and at each position, workpiece coordinates are detected based on shape data obtained by measuring the workpiece with the three-dimensional camera, and the robot coordinates at the time the workpiece coordinates were obtained are obtained, and the final center of rotation of the robot hand is determined, based on the obtained sets of multiple workpiece coordinates and robot coordinates.

すなわち、暫定回転中心は、最終的に回転中心とされるべき中心からずれている場合があるので、この暫定回転中心に基づいて最終的な回転中心を直接決定するのではなく、第1処理で求めた回転中心を次の回転中心としてロボットハンドの回転中心を新たに求める第2処理を実行し、第2処理で新たに求めた回転中心を次の回転中心としてロボットハンドを回転させてロボットハンドの最終的な回転中心を決定することで、最終的な回転中心の誤差を少なくすることができる。 In other words, since the provisional center of rotation may deviate from the center that should ultimately be the center of rotation, instead of directly determining the final center of rotation based on this provisional center of rotation, a second process is executed to determine a new center of rotation for the robot hand using the center of rotation determined in the first process as the next center of rotation, and the robot hand is rotated using the newly determined center of rotation in the second process as the next center of rotation to determine the final center of rotation for the robot hand, thereby reducing the error in the final center of rotation.

本開示の第4の側面では、前記第2処理で求めた回転中心を前記次の回転中心として前記ロボットハンドの回転中心を求める処理と、当該処理で求めた回転中心を前記次の回転中心として前記ロボットハンドの回転中心を求める処理とを繰り返し実行してから、前記ロボットハンドの最終的な回転中心を決定することができる。 In a fourth aspect of the present disclosure, a process of determining the rotation center of the robot hand using the rotation center determined in the second process as the next rotation center, and a process of determining the rotation center of the robot hand using the rotation center determined in the first process as the next rotation center are repeatedly performed, and then the final rotation center of the robot hand can be determined.

この構成によれば、最終的な回転中心を決定するまでに、回転中心を求める処理を複数回繰り返すことができるので、誤差が少ない回転中心に収束させることができる。 With this configuration, the process of finding the rotation center can be repeated multiple times before the final rotation center is determined, allowing the center to converge to a rotation center with less error.

本開示の第5の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理を繰り返し実行して前記ロボットハンドの回転中心を複数取得し、取得された複数の回転中心に基づいて、最終的な回転中心を決定することができる。 In a fifth aspect of the present disclosure, the calibration execution unit can repeatedly execute the high-precision calibration process to obtain multiple rotation centers of the robot hand, and determine a final rotation center based on the multiple rotation centers obtained.

すなわち、高精度キャリブレーション処理を1回だけで終了した場合、決定された最終的な回転中心が何らかの要因で正確でないおそれがあるが、本構成のように高精度キャリブレーション処理を複数回実行して取得した複数の回転中心に基づいて最終的な回転中心を決定することで、正確な回転中心を取得できる。最終的な回転中心を決定する際には、例えば複数の回転中心の平均処理などを実行すればよい。 In other words, if the high-precision calibration process is completed only once, there is a risk that the final rotation center determined may not be accurate due to some factor, but by determining the final rotation center based on multiple rotation centers obtained by performing the high-precision calibration process multiple times as in this configuration, an accurate rotation center can be obtained. When determining the final rotation center, for example, an averaging process of the multiple rotation centers may be performed.

本開示の第6の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が予め定められた所定の収束条件を満たすか否かを判定し、所定の収束条件を満たすと判定した場合には、前記高精度キャリブレーション処理を終了することができる。 In a sixth aspect of the present disclosure, the calibration execution unit determines whether the multiple rotation centers obtained by repeatedly executing the high-precision calibration process satisfy a predetermined convergence condition, and when it is determined that the predetermined convergence condition is satisfied, the high-precision calibration process can be terminated.

すなわち、高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が収束しなければ、取得した回転中心は正確でないおそれがある。本構成では、所定の収束条件を満たすまで高精度キャリブレーション処理を実行するので、正確な回転中心を取得できる。所定の収束条件としては、例えば高精度キャリブレーション処理によって取得された回転中心の誤差の変化分が一定以下であることを挙げることができる。 In other words, if the multiple rotation centers obtained by repeatedly executing the high-precision calibration process do not converge, the obtained rotation center may not be accurate. In this configuration, the high-precision calibration process is executed until a predetermined convergence condition is satisfied, so an accurate rotation center can be obtained. An example of the predetermined convergence condition is that the change in error of the rotation center obtained by the high-precision calibration process is equal to or less than a certain amount.

本開示の第7の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記ロボットハンドを暫定回転中心周りに所定角度回転させるとともに、当該所定角度回動後の前記ワークが前記三次元カメラの視野に入るように前記ロボットハンドを移動させることができる。 In a seventh aspect of the present disclosure, the calibration execution unit can rotate the robot hand by a predetermined angle around a temporary rotation center during the high-precision calibration process, and can move the robot hand so that the workpiece after the predetermined angle rotation is within the field of view of the three-dimensional camera.

すなわち、ロボットハンドを暫定回転中心周りに所定角度回転させる際に、ワークの位置や大きさによっては所定角度回動後にワークが三次元カメラの視野の外に出てしまうおそれがあるが、本構成では、所定角度回動後においてもワークが三次元カメラの視野に入っているので、正確なキャリブレーションデータを取得できる。 In other words, when the robot hand is rotated a specified angle around the temporary center of rotation, depending on the position and size of the workpiece, there is a risk that the workpiece will go out of the field of view of the 3D camera after the specified angle of rotation. However, with this configuration, the workpiece remains within the field of view of the 3D camera even after the specified angle of rotation, so accurate calibration data can be obtained.

本開示の第8の側面では、前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた三次元の形状データに基づいて前記ワークの代表点のXYZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とすることができる。 In an eighth aspect of the present disclosure, the calibration execution unit can determine the XYZ coordinates of a representative point of the work based on three-dimensional shape data obtained by measuring the work with the three-dimensional camera, and the determined XYZ coordinates of the representative point can be set as work coordinates.

本開示の第9の側面では、前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた二次元の形状データに基づいて前記ワークの代表点のXY座標を求めるとともに、平面式から前記代表点をZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とすることができる。 In a ninth aspect of the present disclosure, the calibration execution unit determines the XY coordinates of a representative point of the work based on two-dimensional shape data obtained by measuring the work using the three-dimensional camera, and determines the Z coordinate of the representative point from a plane equation, and can set the determined XYZ coordinates of the representative point as work coordinates.

本開示の第10の側面では、前記キャリブレーション実行部は、前記ロボットハンドを第1の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、前記ロボットハンドをZ座標が異なる第2の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出し、前記第1の位置で検出したワーク座標と、前記第2の位置で検出したワーク座標とを前記三次元カメラの画角に非依存の画素位置に換算することができる。 In a tenth aspect of the present disclosure, the calibration execution unit detects work coordinates based on shape data obtained by measuring the work with the three-dimensional camera after moving the robot hand to a first position, and detects work coordinates based on shape data obtained by measuring the work with the three-dimensional camera after moving the robot hand to a second position having a different Z coordinate, and converts the work coordinates detected at the first position and the work coordinates detected at the second position into pixel positions independent of the angle of view of the three-dimensional camera.

すなわち、ロボットハンドが第1の位置にあるときと、ロボットハンドが第2の位置にあるときとでは、三次元カメラのZ方向の位置が異なるので、カメラの画角によってワーク座標のX座標が異なり、正確なキャリブレーションデータが得られなくなることがある。本構成では、三次元カメラのZ方向の位置が異なっていても、ワーク座標を三次元カメラの画角に非依存の画素位置に換算することができるので、正確なキャリブレーションデータが得られる。 In other words, because the Z-direction position of the three-dimensional camera differs when the robot hand is in the first position from when it is in the second position, the X-coordinate of the workpiece coordinates differs depending on the camera's angle of view, and accurate calibration data may not be obtained. With this configuration, even if the Z-direction position of the three-dimensional camera differs, the workpiece coordinates can be converted into pixel positions that are independent of the three-dimensional camera's angle of view, so accurate calibration data can be obtained.

本開示の第11の側面では、キャリブレーションを実行するキャリブレーションモードの選択が可能に構成されており、前記キャリブレーション実行部は、前記キャリブレーションモードが選択されたことを検出すると、前記通常キャリブレーション処理と前記高精度キャリブレーション処理とを順に連続的に実行するものである。 In an eleventh aspect of the present disclosure, a calibration mode for performing calibration is configured to be selectable, and when the calibration execution unit detects that the calibration mode has been selected, the calibration execution unit sequentially executes the normal calibration process and the high-precision calibration process.

この構成によれば、例えば運用モードとキャリブレーションモードとが搭載されている場合、運用モードの前にキャリブレーションモードが選択されると、はじめに通常キャリブレーション処理が実行され、その後に高精度キャリブレーション処理が実行されるので、通常キャリブレーション処理から高精度キャリブレーション処理へのユーザによる切替操作が不要になる。 According to this configuration, for example, if an operational mode and a calibration mode are installed, when the calibration mode is selected before the operational mode, the normal calibration process is executed first, and then the high-precision calibration process is executed, eliminating the need for the user to switch from the normal calibration process to the high-precision calibration process.

本開示の第12の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理で検出された前記ワーク座標の検出結果と、回転中心の収束値とを更新表示可能な表示領域を有するユーザインタフェースを生成する。前記制御装置は、前記キャリブレーション実行部で生成された前記ユーザインタフェースを表示する表示部を備えているので、収束値の変化をユーザに提示することができる。 In a twelfth aspect of the present disclosure, the calibration execution unit generates a user interface having a display area capable of updating and displaying the detection results of the work coordinates detected in the high-precision calibration process and the convergence value of the rotation center. The control device includes a display unit that displays the user interface generated by the calibration execution unit, and is therefore capable of presenting the change in the convergence value to the user.

以上説明したように、通常キャリブレーション処理により求めたロボットハンドのツール中心と三次元カメラの相対位置に基づいて暫定回転中心を決定し、該暫定回転中心周りにロボットハンドを複数回回転させて取得した複数のワーク座標とロボット座標の組に基づいてロボットハンドの最終的な回転中心を高精度に決定することができる。これにより、ワークを使用してキャリブレーションを実行する場合に正確なキャリブレーションデータを取得できる。 As described above, a provisional rotation center is determined based on the relative position of the tool center of the robot hand and the three-dimensional camera obtained by normal calibration processing, and the final rotation center of the robot hand can be determined with high precision based on multiple pairs of work coordinates and robot coordinates obtained by rotating the robot hand multiple times around the provisional rotation center. This makes it possible to obtain accurate calibration data when performing calibration using a workpiece.

ロボットシステムを用いてワークを搬送する様子を示す模式図である。FIG. 1 is a schematic diagram showing a state in which a workpiece is transported using a robot system. ロボットシステムの構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a robot system. 三次元カメラの一例を示す斜視図である。FIG. 1 is a perspective view showing an example of a three-dimensional camera. ロボットハンドでワークを把持する例を示す模式図である。1 is a schematic diagram showing an example of gripping a workpiece with a robot hand; ロボットハンドで空洞を有するワークを内面から把持する例を示す模式図である。1A and 1B are schematic diagrams showing an example of gripping a workpiece having a cavity from the inside with a robot hand. ロボットハンドで板状のワークを吸引して把持する例を示す模式図である。1 is a schematic diagram showing an example of a robot hand suctioning and gripping a plate-shaped workpiece; FIG. サーチモデルの設定の手順を示すフローチャートである。13 is a flowchart showing a procedure for setting a search model. ハンドモデル及び把持位置の設定の手順を示すフローチャートである。11 is a flowchart showing a procedure for setting a hand model and a gripping position. ロボットの基本制御のフローチャートの一例を示す図である。FIG. 13 is a diagram showing an example of a flowchart of basic control of a robot. キャリブレーションの手順の一例を示すフローチャートである。11 is a flowchart showing an example of a calibration procedure. キャリブレーションの第1ステップの詳細手順を示すフローチャートである。10 is a flowchart showing a detailed procedure of a first step of calibration. キャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram illustrating an example of a user interface for calibration. 第1ステップでロボットハンドを平行移動させる様子を示す概略図である。FIG. 13 is a schematic diagram showing how the robot hand is translated in a first step. 第1ステップでロボットハンドを1点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。13A to 13C are diagrams illustrating an example of a calibration user interface that is displayed when the robot hand is moved to a first position in the first step. 第1ステップでロボットハンドを27点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a calibration user interface that is displayed when the robot hand is moved to the 27th position in the first step. 第1ステップでの測定中におけるワークと三次元カメラとの位置関係を示す側面図である。FIG. 11 is a side view showing the positional relationship between the workpiece and the three-dimensional camera during measurement in the first step. 第1ステップでの測定中におけるワークと三次元カメラの視野との関係を示す図である。FIG. 13 is a diagram showing the relationship between the workpiece and the field of view of the three-dimensional camera during measurement in the first step. 画角補正時に用いるカメラ中央からの代表点までの距離を示す表である。11 is a table showing distances from the center of the camera to representative points used when correcting the angle of view. 第1ステップの完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a calibration user interface that is displayed upon completion of the first step. キャリブレーションの第2ステップの詳細手順を示すフローチャートである。10 is a flowchart showing a detailed procedure of a second step of calibration. 第2ステップで表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a calibration user interface displayed in a second step. 第2ステップでロボットハンドの動作を大きくした場合の視野とワークとの位置関係を説明する図である。13A and 13B are diagrams illustrating the positional relationship between the field of view and the workpiece when the movement of the robot hand is enlarged in the second step. 第2ステップの完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a calibration user interface that is displayed upon completion of the second step. キャリブレーションの第3ステップの詳細手順を示すフローチャートである。13 is a flowchart showing a detailed procedure of a third step of calibration. 高精度キャリブレーション設定時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a calibration user interface displayed when high-precision calibration is set. 第3ステップにおいて暫定回転中心周りにロボットハンドを回転させる場合を説明する図である。13A to 13C are diagrams illustrating the case where the robot hand is rotated around the provisional center of rotation in the third step. 第3ステップにおいてワークを視野に入れつつ、ロボットハンドを回転させる場合を説明する図である。13A to 13C are diagrams illustrating a case where the robot hand is rotated while keeping the workpiece in view in the third step. 原回転中心と真の回転中心位置のずれを求める場合を説明する図である。11A and 11B are diagrams for explaining a case where a deviation between an original rotation center and a true rotation center position is obtained. 原回転中心を更新する場合を説明する図である。13A and 13B are diagrams illustrating a case where the original rotation center is updated. 高精度キャリブレーション処理完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。FIG. 13 is a diagram showing an example of a user interface for calibration that is displayed when high-precision calibration processing is completed.

以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。 The following describes in detail an embodiment of the present invention with reference to the drawings. Note that the following description of the preferred embodiment is essentially merely an example and is not intended to limit the present invention, its applications, or its uses.

図1は、本発明の実施形態に係る制御装置100を備えたロボットシステム1000の構成例を示す模式図である。この図1は、各種製品の製造工場等にある作業空間に配置された複数のワークWKを、ロボットRBTに1つずつ把持させ、所定の場所に設置されているステージSTGまで搬送して該ステージSTG上に載置するばら積みピッキングを行う例について示している。 Figure 1 is a schematic diagram showing an example of the configuration of a robot system 1000 equipped with a control device 100 according to an embodiment of the present invention. This Figure 1 shows an example of bulk picking in which a robot RBT grasps multiple workpieces WK arranged in a work space in a manufacturing plant for various products one by one, transports them to a stage STG installed in a predetermined location, and places them on the stage STG.

ロボットシステム1000は、ロボットRBTと、ロボットRBTを制御するロボットコントローラ6とを備えている。ロボットRBTは、産業用の汎用ロボットであり、ベース部が工場等の床面に対して固定されている。ロボットRBTは、例えばマニピュレータ等とも呼ばれており、6軸制御が可能に構成されている。このロボットRBTは、ベース部から延びるアーム部ARMと、アーム部ARMの先端部に設けられたロボットハンドHNDとを備えている。アーム部ARMは、可動部としての関節部を複数備えた多関節型に構成することができる。アーム部ARMの各関節部の動作及びアーム部ARM自体の回転動作によってロボットハンドHNDを可動範囲内の所望の位置まで移動させることができる。 The robot system 1000 includes a robot RBT and a robot controller 6 that controls the robot RBT. The robot RBT is a general-purpose industrial robot with a base portion fixed to the floor of a factory or the like. The robot RBT is also called a manipulator, for example, and is configured to be capable of six-axis control. This robot RBT includes an arm portion ARM extending from the base portion, and a robot hand HND provided at the tip of the arm portion ARM. The arm portion ARM can be configured as a multi-joint type having multiple joint portions as movable portions. The robot hand HND can be moved to a desired position within the movable range by the operation of each joint portion of the arm portion ARM and the rotational operation of the arm portion ARM itself.

ロボットハンドHNDは、ワークWKを把持することが可能に構成されており、その構造は特に限定されるものではない。例えば、ロボットハンドHNDは、図4Aに示すようにワークWKの外側を挟み込んで把持する構造のロボットハンドHND1、図4Bに示すように空洞部を有するワークWK2の内部に爪部を挿入して拡開させることによって保持する構造のロボットハンドHND2、図4Cに示すように板状のワークWK3を吸引して保持するロボットハンドHND3等があり、いずれのロボットハンドも使用することができる。また、本明細書で「把持」とは、図4Aに示すワークWKの外側を挟み込む方法、空洞部に爪部を挿入して拡開させる方法、吸引する方法等の全ての例を含む意味で使用する。 The robot hand HND is configured to be able to grasp the workpiece WK, and its structure is not particularly limited. For example, the robot hand HND may be a robot hand HND1 having a structure for pinching and grasping the outside of the workpiece WK as shown in FIG. 4A, a robot hand HND2 having a structure for holding the workpiece WK2 by inserting a claw into the inside of the workpiece WK2 having a hollow portion and spreading it as shown in FIG. 4B, or a robot hand HND3 for sucking and holding a plate-shaped workpiece WK3 as shown in FIG. 4C, and any of these robot hands may be used. In this specification, the term "hold" is used to include all examples, such as the method of pinching the outside of the workpiece WK shown in FIG. 4A, the method of inserting a claw into the hollow portion and spreading it, and the method of sucking.

ロボットコントローラ6はアーム部ARMの動作やロボットハンドHNDの開閉動作(把持動作)等を制御する。またロボットコントローラ6は図2に示す制御装置100から、ロボットRBTの制御に必要な情報を取得する。例えば、図1に示す容器BXに無作為に投入された多数の部品であるワークWKの位置姿勢を、三次元カメラ2を使用して取得し、制御装置100でワークWKの位置や姿勢を検出して、その情報をロボットコントローラ6が取得する。 The robot controller 6 controls the operation of the arm section ARM and the opening and closing operation (grasping operation) of the robot hand HND. The robot controller 6 also acquires information necessary for controlling the robot RBT from the control device 100 shown in FIG. 2. For example, the position and orientation of the workpiece WK, which is a number of parts randomly placed in the container BX shown in FIG. 1, is acquired using the three-dimensional camera 2, and the position and orientation of the workpiece WK are detected by the control device 100, and the robot controller 6 acquires this information.

ロボットシステム1000の機能ブロック図を図2に示す。この図に示すロボットシステム1000は、ロボットRBT及びロボットコントローラ6の他に、制御装置100と、操作部4と、ロボット操作具7とを備える。ロボットシステム1000は、表示部3も備えている。ロボットコントローラ6が制御装置100を備えていてもよいし、制御装置100が単独で構成されていて、ロボットコントローラ6に接続されていてもよい。また、制御装置100が操作部4やロボット操作具7を備えていてもよい。 A functional block diagram of the robot system 1000 is shown in FIG. 2. In addition to the robot RBT and the robot controller 6, the robot system 1000 shown in this figure includes a control device 100, an operation unit 4, and a robot operation tool 7. The robot system 1000 also includes a display unit 3. The robot controller 6 may include the control device 100, or the control device 100 may be configured independently and connected to the robot controller 6. The control device 100 may also include the operation unit 4 and the robot operation tool 7.

操作部4は各種設定を行うための部分である。また、制御装置100は、測定部20を備えており、測定部20は、ワークWKを撮像してワークWKの位置姿勢等を測定する。さらにユーザは、表示部3で、各種設定や、ロボットRBTの動作状態の確認、制御装置100の動作状態の確認、後述するキャリブレーションの確認等を行うことができる。表示部3は、制御装置100の一部とすることもできる。 The operation unit 4 is a section for performing various settings. The control device 100 also includes a measurement unit 20, which captures an image of the workpiece WK and measures the position, orientation, etc. of the workpiece WK. Furthermore, the user can use the display unit 3 to perform various settings, check the operating status of the robot RBT, check the operating status of the control device 100, check the calibration described below, and the like. The display unit 3 can also be part of the control device 100.

一方、ロボットコントローラ6は制御装置100から出力される信号に従い、ロボットRBTの制御を行うように構成された周知の部材である。またロボット操作具7は、ロボットRBTの動作設定を行う。なお、図2の例では操作部4とロボット操作具7を別個の部材としているが、これらを共通の部材としてもよい。 On the other hand, the robot controller 6 is a well-known component configured to control the robot RBT according to signals output from the control device 100. The robot operation tool 7 sets the operation of the robot RBT. Note that, although the operation unit 4 and the robot operation tool 7 are separate components in the example of FIG. 2, they may be a common component.

三次元カメラ2は、ロボットビジョンなどと呼ばれる、作業空間やワークWKを撮像する部材である。三次元カメラ2は、ロボットハンドHNDに固定されていて、三次元カメラ2とロボットハンドHNDとの相対的な位置関係が変化しないようになっている。従って、本実施形態のロボットシステム1000は、ハンドアイと呼ばれる方式のロボットシステムである。 The three-dimensional camera 2 is a component that captures images of the working space and the workpiece WK, and is called a robot vision or the like. The three-dimensional camera 2 is fixed to the robot hand HND, so that the relative positional relationship between the three-dimensional camera 2 and the robot hand HND does not change. Therefore, the robot system 1000 of this embodiment is a robot system of a type called a hand-eye.

三次元カメラ2の撮像対象物には、少なくともワークWKが含まれており、撮像対象物には容器BXが含まれていてもよい。ワークWKにもよるが、ロボットハンドHNDが下にあるワークWKをピッキングする位置姿勢となったときに、三次元カメラ2が下を撮像可能となるように当該三次元カメラ2の光軸の向きを設定することができる。 The objects to be imaged by the three-dimensional camera 2 include at least the workpiece WK, and may also include the container BX. Depending on the workpiece WK, the direction of the optical axis of the three-dimensional camera 2 can be set so that the three-dimensional camera 2 can image the area below when the robot hand HND is in a position and posture to pick up the workpiece WK below.

三次元カメラ2で撮像された画像から、ワークWKの三次元形状を示す三次元形状データ(画像データ)を取得することが可能になる。容器BXの三次元形状を示す三次元形状データも、三次元カメラ2で撮像された画像から取得することができる。また、三次元カメラ2で撮像された画像から、ワークWKの二次元形状を示す二次元形状データを取得することも可能である。三次元カメラ2は、ワークWKを撮像したカラー画像や白黒画像を出力することもできる。 It is possible to obtain three-dimensional shape data (image data) showing the three-dimensional shape of the workpiece WK from the images captured by the three-dimensional camera 2. Three-dimensional shape data showing the three-dimensional shape of the container BX can also be obtained from the images captured by the three-dimensional camera 2. It is also possible to obtain two-dimensional shape data showing the two-dimensional shape of the workpiece WK from the images captured by the three-dimensional camera 2. The three-dimensional camera 2 can also output color images or black and white images of the workpiece WK.

尚、ワークWKや容器BXの三次元形状を取得する方法は、例えば、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法(白色干渉法)、TOF方式などがあり、これらの方法のうち、どの方法を用いてもよい。各方法は、従来から周知であるため、詳細な説明は省略する。本実施形態においては、パターン投影法のうち、周期的な照度分布を有するパターン光を撮像対象物に照射し、撮像対象物の表面で反射した光を受光する位相シフト法を用いている。 Methods for acquiring the three-dimensional shape of the workpiece WK or container BX include, for example, the pattern projection method, stereo method, lens focusing method, light section method, optical radar method, interferometry (white light interferometry), and TOF method, and any of these methods may be used. Each method is well known in the art, so detailed explanations are omitted. In this embodiment, of the pattern projection methods, the phase shift method is used, in which pattern light having a periodic illuminance distribution is irradiated onto the object to be imaged and the light reflected from the surface of the object to be imaged is received.

三次元カメラ2と形状測定処理部200とにより、測定部20が構成されている。形状測定処理部200は三次元カメラ2の一部に含むこともできる。形状測定処理部200は、三次元カメラ2で取得した画像データに基づいてワークWKの位置姿勢、形状、各部の寸法だけでなく、容器BXの位置、形状や寸法も測定することができる。形状測定処理部200は、制御装置100の一部とすることができるが、別部材として構成することもできる。 The measurement unit 20 is made up of the three-dimensional camera 2 and the shape measurement processing unit 200. The shape measurement processing unit 200 can also be included as part of the three-dimensional camera 2. The shape measurement processing unit 200 can measure not only the position, posture, shape and dimensions of each part of the workpiece WK based on image data acquired by the three-dimensional camera 2, but also the position, shape and dimensions of the container BX. The shape measurement processing unit 200 can be part of the control device 100, but can also be configured as a separate component.

測定部20は、X方向及びY方向に加えてZ方向(高さ方向)を含む三次元の測定を行うことが可能な三次元測定部である。測定部20が備える三次元カメラ2の具体的な構成は、三次元形状の計測技術に応じて決定される。この例では、三次元カメラ2は、カメラ、照明又はプロジェクタ等を備えている。例えば位相シフト法でワークWKの三次元形状を計測する場合は、三次元カメラ2として図3に示すように、プロジェクタ(投光部)PRJと、複数のカメラ(受光部)CME1、CME2、CME3、CME4とを備える。プロジェクタPRJは、ワークWKに光を照射する部材である。カメラCME1、CME2、CME3、CME4は、プロジェクタPRJにより投光されてワークWKの表面で反射した光を受光する撮像素子を有する部材である。投光部の光源は、例えば複数の発光ダイオード、液晶パネル、有機ELパネル、デジタルマイクロミラーデバイス(DMD)等で構成することができる。三次元カメラ2が有するカメラや照明の数は、特に限定されない。また、三次元カメラ2やロボットRBT、ロボットコントローラ6との接続は、有線接続に限られず、周知の無線接続としてもよい。 The measuring unit 20 is a three-dimensional measuring unit capable of performing three-dimensional measurements including the Z direction (height direction) in addition to the X and Y directions. The specific configuration of the three-dimensional camera 2 equipped in the measuring unit 20 is determined according to the measurement technology of the three-dimensional shape. In this example, the three-dimensional camera 2 is equipped with a camera, lighting, projector, etc. For example, when measuring the three-dimensional shape of the workpiece WK by the phase shift method, the three-dimensional camera 2 is equipped with a projector (light-projecting unit) PRJ and multiple cameras (light-receiving units) CME1, CME2, CME3, and CME4 as shown in FIG. 3. The projector PRJ is a member that irradiates light onto the workpiece WK. The cameras CME1, CME2, CME3, and CME4 are members having image sensors that receive light projected by the projector PRJ and reflected on the surface of the workpiece WK. The light source of the light-projecting unit can be composed of, for example, multiple light-emitting diodes, a liquid crystal panel, an organic EL panel, a digital micromirror device (DMD), etc. The number of cameras and lights that the three-dimensional camera 2 has is not particularly limited. Furthermore, the connections between the three-dimensional camera 2, the robot RBT, and the robot controller 6 are not limited to wired connections, and may be well-known wireless connections.

三次元カメラ2は、カメラCME1、CME2、CME3、CME4やプロジェクタPRJといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラCME1、CME2、CME3、CME4やプロジェクタPRJを統合してヘッド状とした3D撮像ヘッドを、三次元カメラ2とすることができる。 The three-dimensional camera 2 may be composed of multiple components such as the cameras CME1, CME2, CME3, and CME4 and the projector PRJ, or may be composed of these as an integrated unit. For example, the three-dimensional camera 2 may be a 3D imaging head formed by integrating the cameras CME1, CME2, CME3, and CME4 and the projector PRJ into a head shape.

また三次元形状データの生成自体を三次元カメラ2で行うこともできる。この場合、三次元カメラ2に三次元形状データの生成機能を実現する画像処理IC等を設ける。あるいは、三次元形状データの生成を、形状測定処理部200側で行わず、三次元カメラ2で撮像した生画像を、制御装置100の別の部分で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。 The three-dimensional shape data itself can also be generated by the three-dimensional camera 2. In this case, the three-dimensional camera 2 is provided with an image processing IC or the like that realizes the function of generating three-dimensional shape data. Alternatively, the three-dimensional shape data may not be generated on the shape measurement processing unit 200 side, but rather the raw images captured by the three-dimensional camera 2 may be image-processed in another part of the control device 100 to generate three-dimensional shape data such as a three-dimensional image.

制御装置100は、測定部20で得られたワークWKの位置姿勢等の三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。この制御装置100は、専用の画像処理プログラムをインストールした汎用のコンピュータや、専用に設計された画像処理コントローラ、専用のハードウェアで構成することができる。また、グラフィックボードなどのハードウェアを画像検査処理に特化させた専用のコンピュータに、画像処理プログラムをインストールした構成とすることもできる。 The control device 100 performs three-dimensional searches, interference determination, gripping solution calculations, etc. based on three-dimensional shape data such as the position and orientation of the workpiece WK obtained by the measurement unit 20. This control device 100 can be configured with a general-purpose computer with a dedicated image processing program installed, a specially designed image processing controller, and dedicated hardware. It can also be configured with an image processing program installed on a dedicated computer with hardware such as a graphics board specialized for image inspection processing.

尚、図2の例では、測定部20が備える三次元カメラ2と形状測定処理部200とを別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えば三次元カメラ2と形状測定処理部200とを一体化したり、あるいは三次元カメラ2の一部を形状測定処理部200に組み込んだり、形状測定処理部200の一部を三次元カメラ2に組み込むこともできる。このように、図2に示す部材の区分けは一例であって、複数の部材を統合させたり、1つの部材を分けることもできる。例えば操作部4とロボット操作具7とを共通の部材としてもよい。 In the example of FIG. 2, the three-dimensional camera 2 and the shape measurement processing unit 200 provided in the measurement unit 20 are shown as separate components, but the present invention is not limited to this configuration. For example, the three-dimensional camera 2 and the shape measurement processing unit 200 can be integrated, or part of the three-dimensional camera 2 can be incorporated into the shape measurement processing unit 200, or part of the shape measurement processing unit 200 can be incorporated into the three-dimensional camera 2. In this way, the division of the components shown in FIG. 2 is only one example, and multiple components can be integrated or one component can be separated. For example, the operation unit 4 and the robot operation tool 7 can be a common component.

表示部3は、例えば、液晶モニタや有機ELディスプレイ、CRT等を利用できる。操作部4は、各種シミュレーションや画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部4と表示部3を一体化することもできる。 The display unit 3 can be, for example, an LCD monitor, an organic EL display, or a CRT. The operation unit 4 is a component for performing various settings such as various simulations and image processing, and can use input devices such as a keyboard and a mouse. The display unit 3 can also be integrated with the operation unit 4 by using a touch panel.

例えば制御装置100を、画像処理プログラムをインストールしたコンピュータで構成した場合、後述するように、表示部3上には画像処理プログラムを実行することによって生成されるグラフィカルユーザインターフェース(GUI)画面が表示される。表示部3上に表示されたGUI上から各種の設定を行うことができ、また処理結果等を表示させることができる。この場合、表示部3を各種の設定を行うための設定部や入力部としても利用でき、設定部や入力部には操作部4が含まれていてもよい。 For example, if the control device 100 is configured as a computer with an image processing program installed, a graphical user interface (GUI) screen generated by executing the image processing program is displayed on the display unit 3, as described below. Various settings can be made from the GUI displayed on the display unit 3, and processing results, etc. can be displayed. In this case, the display unit 3 can also be used as a setting unit or input unit for making various settings, and the setting unit and input unit may include the operation unit 4.

ロボットコントローラ6は、例えば三次元カメラ2で撮像した情報や制御装置100から出力される情報等に基づいてロボットの動作を制御する。またロボット操作具7は、ロボットRBTの動作設定を行うための部材であり、いわゆるペンダントなどが利用できる。 The robot controller 6 controls the robot's operation based on, for example, information captured by the three-dimensional camera 2 and information output from the control device 100. The robot operation tool 7 is a member for setting the operation of the robot RBT, and a pendant or the like can be used.

ロボットコントローラ6は、三次元カメラ2で得られたワークWKの三次元形状に基づいて、複数のワークWKの内から、把持対象のワークWKを特定して、このワークWKを把持するよう、ロボットRBTを制御する。そして、ワークWKを把持位置で把持したまま、アーム部ARMを動作させて予め定められた載置位置、例えばステージSTG上まで移動させ、所定の姿勢でワークWKを載置する。いいかえると、ロボットコントローラ6は、三次元カメラ2及び制御装置100で特定されたピッキング対象(把持対象)のワークWKをロボットハンドHNDで把持して、把持したワークWKを所定の基準姿勢にて、載置場所(ステージSTG)に載置してロボットハンドHNDを開放するようにロボットRBTの動作を制御する。ステージSTGは、例えばコンベアベルト上やパレット等を挙げることができる。また、把持動作のことをピッキングということもでき、把持位置はピッキング位置ということもできる。また、載置動作のことをプレースということもでき、載置位置はプレース位置ということもできる。 Based on the three-dimensional shape of the workpiece WK obtained by the three-dimensional camera 2, the robot controller 6 controls the robot RBT to identify the workpiece WK to be grasped from among the multiple workpieces WK and grasp the workpiece WK. Then, while grasping the workpiece WK at the grasping position, the arm unit ARM is operated to move the workpiece WK to a predetermined placement position, for example, on the stage STG, and place the workpiece WK in a predetermined posture. In other words, the robot controller 6 controls the operation of the robot RBT to grasp the workpiece WK to be picked (grasped) identified by the three-dimensional camera 2 and the control device 100 with the robot hand HND, place the grasped workpiece WK in a predetermined reference posture on a placement location (stage STG), and release the robot hand HND. The stage STG can be, for example, a conveyor belt or a pallet. The grasping operation can also be called picking, and the grasping position can also be called the picking position. Additionally, the act of placing can also be called "place," and the placement position can also be called "place position."

ここで、本実施形態が対象とするピッキングは、ばら積みピッキングに限られるものではなく、どのように載置されたワークWKであってもロボットRBTによって搬送することが可能である。本明細書において、ばら積みピッキングとは、容器BXに入れられて無作為に積み上げられたワークWKを、ロボットRBTで把持して、所定の位置に載置する他、容器を用いずに所定の領域に積み上げられたワークWKに対して把持、載置を行う例、あるいは所定の姿勢で並べられて積み上げられたワークWKを順次把持、載置する例も含む意味で使用する。また、必ずしもワークWK同士が積み重ねられている状態であることは要さず、ワークWK同士の重なりがない状態で平面上にランダムに置かれたワークWKについても、本明細書においてはばら積みと呼ぶ(順次ピッキングされていき、ピッキングの終盤でワークWK同士の重なりがない状態となった場合でも依然としてばら積みピッキングと呼ばれるのと同じ理由である)。なお、本発明はばら積みピッキングに必ずしも限定されるものでなく、ばら積みされていないワークWKをピックアップする用途にも適用できる。 Here, the picking targeted by this embodiment is not limited to bulk picking, and the robot RBT can transport the workpieces WK regardless of how they are placed. In this specification, bulk picking is used to mean not only the case where the workpieces WK that are randomly stacked in a container BX are grasped by the robot RBT and placed in a predetermined position, but also the case where the workpieces WK that are stacked in a predetermined area without using a container are grasped and placed, or the case where the workpieces WK that are arranged and stacked in a predetermined posture are grasped and placed one by one. In addition, the workpieces WK do not necessarily have to be stacked on top of each other, and the workpieces WK that are randomly placed on a plane without overlapping each other are also called bulk picking in this specification (this is the same reason why the workpieces WK are still called bulk picking even when they are picked one by one and there is no overlapping at the end of the picking). Note that the present invention is not necessarily limited to bulk picking, and can also be applied to the application of picking up workpieces WK that are not stacked.

ロボットシステム1000でばら積みピッキング動作を行うにあたり、予めばら積みピッキング動作を行わせるための設定を含めたティーチングを行うこともできる。具体的には、ワークWKのどの部位を、ロボットハンドHNDがどのような姿勢で把持するのか、把持位置及び把持時の姿勢などの登録や、載置位置及び載置時の姿勢などの登録を行うことができる。このような設定は、ペンダント等のロボット操作具7で行うことができる。また、実際のロボットRBTを操作せずに、ビジョン空間上で設定を行うこともできる。 When performing bulk picking operations with the robot system 1000, teaching can be performed in advance, including settings for performing the bulk picking operations. Specifically, it is possible to register which part of the workpiece WK the robot hand HND will grasp and in what posture, the grasping position and posture when grasping, and the placement position and posture when placing can be registered. Such settings can be performed with a robot operating tool 7 such as a pendant. It is also possible to perform settings in the vision space without operating the actual robot RBT.

表示部3は、ワークWKの三次元形状を仮想的に表現するワークモデルや、ロボットハンドHNDの三次元形状を仮想的に表現する、三次元CADデータで構成されたロボットハンドモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させる。さらにこの表示部3は、ワークモデルの基本方向画像を六面図として表示させることもできる。これにより、ワークモデルの各姿勢を六面図で表示させて把持位置の設定作業を行えるようになる。 The display unit 3 displays a work model that virtually represents the three-dimensional shape of the workpiece WK, and a robot hand model constructed from three-dimensional CAD data that virtually represents the three-dimensional shape of the robot hand HND, in three-dimensional form in a virtual three-dimensional space. Furthermore, the display unit 3 can also display a basic orientation image of the work model as a six-sided view. This makes it possible to display each posture of the work model in a six-sided view and perform the task of setting the gripping position.

(設定手順)
図5は、サーチモデルの設定の手順を示すフローチャートである。ステップSB1では、ワークWKのサーチモデルを登録する。ワークWKのサーチモデルとは、後述するサーチ処理を実行する際に使用されるワークWKの形状を表したモデルである。ステップSB1でワークWKのサーチモデルを登録する際には、ワークWKの三次元CADデータ(CADモデル)を読み込んで、制御装置100が有する記憶装置42に一旦記憶させておく。CADデータは、ワークWKのサーチモデルのデータであり、従来から一般的に用いられているフォーマットのデータを使用することができる。
(Settings Procedure)
5 is a flowchart showing the procedure for setting the search model. In step SB1, a search model of the workpiece WK is registered. The search model of the workpiece WK is a model that represents the shape of the workpiece WK used when performing the search process described later. When registering the search model of the workpiece WK in step SB1, three-dimensional CAD data (CAD model) of the workpiece WK is read and temporarily stored in the storage device 42 of the control device 100. The CAD data is data of the search model of the workpiece WK, and data in a format that has been commonly used in the past can be used.

また、ワークWKのサーチモデルとしては、例えばある面から見たサーフェス形状をもとに生成した干渉判定モデル(後述する干渉判定部25で使用される)であってもよい。また、ワークWKのサーチモデルとしては、CADデータのフォーマットとして最もシンプルなSTL形式を用いることができる。 The search model for the workpiece WK may be, for example, an interference detection model (used in the interference detection unit 25 described later) generated based on the surface shape seen from a certain side. The search model for the workpiece WK may be in the STL format, which is the simplest format for CAD data.

ステップSB1でワークWKのサーチモデルのCADデータを読み込んだ後、ステップSB2に進み、ワークWKのサーチモデルの確認及び登録を行う。 After loading the CAD data of the search model of the workpiece WK in step SB1, proceed to step SB2 to confirm and register the search model of the workpiece WK.

また、ステップSB1で読み込んだCADモデルの六面の各方向から見た高さ画像データをステップSB2で生成する。まず、CADモデルの平面図、底面図、左側面図、右側面図、正面図、背面図となるように、6つの高さ画像データを生成する。この高さ画像データから高さ画像が得られる。ワークWKのCADデータが無い場合には、ワークWKのサーチモデルを異なる方向から見た複数の高さ画像データをサーチモデルとして登録するようにしてもよい。すなわち、登録したい面を上向きにしたワークWKを平面上に置き、三次元計測を行う。この三次元計測は、ロボットシステム1000の三次元カメラ2及び形状測定処理部200を利用して行うことができる。形状測定処理部200による三次元計測で得られた計測データは形状測定処理部200から出力され、計測データに基づいて、ワークWKの登録したい面の高さ画像データを得ることができる。高さ画像を得た後、その高さ画像をサーチモデルとして登録する。 In addition, in step SB2, height image data viewed from each direction of the six faces of the CAD model read in step SB1 is generated. First, six height image data are generated so as to provide a plan view, bottom view, left side view, right side view, front view, and back view of the CAD model. A height image is obtained from this height image data. If there is no CAD data for the workpiece WK, multiple height image data viewed from different directions of the search model of the workpiece WK may be registered as a search model. That is, the workpiece WK is placed on a plane with the face to be registered facing up, and three-dimensional measurement is performed. This three-dimensional measurement can be performed using the three-dimensional camera 2 and shape measurement processing unit 200 of the robot system 1000. The measurement data obtained by the three-dimensional measurement by the shape measurement processing unit 200 is output from the shape measurement processing unit 200, and height image data of the face to be registered of the workpiece WK can be obtained based on the measurement data. After the height image is obtained, the height image is registered as a search model.

図5に示すフローチャートのステップSB3では、サーチ条件を設定する。サーチ条件には、例えば、サーチ時に検出可能なワークWKの数、サーチモデルとワークWKとの相関値の下限、特徴抽出条件(エッジ抽出の閾値等)等が含まれている。サーチ条件は使用者が設定することで、設定部21により受け付けられる。 In step SB3 of the flowchart shown in FIG. 5, search conditions are set. The search conditions include, for example, the number of workpieces WK that can be detected during a search, a lower limit of the correlation value between the search model and the workpieces WK, feature extraction conditions (edge extraction threshold value, etc.), etc. The search conditions are set by the user and are accepted by the setting unit 21.

次に、図6に示すハンドモデル及び把持位置の設定の手順を示すフローチャートについて説明する。開始後のステップSC1では、現場で使用されるロボットRBTに関する各種情報を規定するロボットモデルを登録する。 Next, the flowchart showing the procedure for setting the hand model and gripping position shown in FIG. 6 will be described. In step SC1 after the start, a robot model that specifies various information related to the robot RBT to be used at the site is registered.

ステップSC1でロボットモデルを登録した後、ステップSC2に進み、ロボットハンドモデルを登録する。ロボットハンドモデルとは、ロボットハンドの形状を表したモデルであり、例えばロボットハンドのポリゴンデータ(CADデータ)を読み込む。 After registering the robot model in step SC1, proceed to step SC2 to register the robot hand model. The robot hand model is a model that represents the shape of the robot hand, and for example, polygon data (CAD data) of the robot hand is read in.

その後、ステップSC3に進み、ステップSC2で登録したロボットハンドモデルと、そのロボットハンドモデルが装着されるロボットモデル(ステップSC1で登録済み)のフランジ面との相対的な位置及び姿勢を定義する。具体的には、ロボットハンドモデルにおける取付面と、ロボットモデルのフランジ面とが一致するように、両者の位置関係を定義しておく。 Then, proceed to step SC3, where you define the relative position and orientation between the robot hand model registered in step SC2 and the flange surface of the robot model (already registered in step SC1) to which the robot hand model will be attached. Specifically, you define the positional relationship between the mounting surface of the robot hand model and the flange surface of the robot model so that they coincide with each other.

ステップSC3に続くステップSC4では、ロボットモデルのフランジ面に装着された状態にあるロボットハンドモデルの先端座標を指定する。この先端座標は、ロボットコントローラ6から取得することも可能であるが、ユーザが設定することも可能である。その後、ステップSC5では、ロボットハンドモデルの登録完了確認を行う。 In step SC4 following step SC3, the tip coordinates of the robot hand model attached to the flange surface of the robot model are specified. These tip coordinates can be obtained from the robot controller 6, but can also be set by the user. Then, in step SC5, it is confirmed that the robot hand model has been registered.

その後、ステップSC6では、ハンドモデルで把持するサーチモデルの面を選択する。サーチモデルの面は、図5に示すフローチャートで登録した高さ画像で表すことができ、登録されている複数の高さ画像の中から、ロボットハンドモデルで把持することが可能な面に対応した高さ画像をユーザが選択する。 Then, in step SC6, a surface of the search model to be grasped by the hand model is selected. The surface of the search model can be represented by a height image registered in the flowchart shown in FIG. 5, and the user selects a height image corresponding to a surface that can be grasped by the robot hand model from among the multiple registered height images.

ステップSC6で高さ画像を選択した後、ステップSC7に進み、ステップSC6で選択した面を把持する時のロボットハンドHNDの位置及び姿勢を登録する。ワークWKの把持候補位置及びロボットハンドHNDの姿勢を示す把持情報は、サーチモデルと対応付けられた状態で制御装置100が有する記憶装置42の把持情報記憶部42a(図2に示す)に記憶することができる。 After selecting the height image in step SC6, proceed to step SC7 and register the position and posture of the robot hand HND when gripping the surface selected in step SC6. The gripping information indicating the candidate gripping positions of the workpiece WK and the posture of the robot hand HND can be stored in the gripping information storage unit 42a (shown in FIG. 2) of the storage device 42 of the control device 100 in a state associated with the search model.

実際のロボットハンドHNDでワークWKをピッキングする際には、三次元カメラ2でワークWKを撮像した三次元空間(ビジョン空間)の座標であるビジョン座標から、ロボットコントローラ6がロボットRBTを実際に動作させる際に用いるロボット座標に変換する必要がある。尚、座標はロボット座標(XYZ、RxRyRz)で与えることもできるが、アーム部ARMの軸角度(joint angle)で与えることもできる。また、制御装置100内で把持位置等のロボット座標から、軸角度を求め、その軸角度をロボットコントローラ6側に伝えることもできるようになっている。 When picking up the workpiece WK with the actual robot hand HND, it is necessary to convert the vision coordinates, which are the coordinates of the three-dimensional space (vision space) in which the workpiece WK is imaged by the three-dimensional camera 2, into the robot coordinates that the robot controller 6 uses when actually operating the robot RBT. The coordinates can be given in robot coordinates (XYZ, RxRyRz), but they can also be given in the axis angle (joint angle) of the arm section ARM. In addition, the axis angle can be calculated from the robot coordinates of the gripping position, etc. within the control device 100, and the axis angle can be transmitted to the robot controller 6.

具体的には、ワークWKのサーチモデルの位置及び姿勢は、ビジョン空間における位置と姿勢で求められる。また、これを把持するロボットハンドモデルの姿勢についても、同様に制御装置100の仮想三次元空間における位置と姿勢として求められる。このようなビジョン空間における位置及び姿勢に基づいて、ロボットコントローラ6がロボットRBTを動作させるには、これらをロボット空間における位置と姿勢に変換する必要がある。この表示される座標系で算出された位置及び姿勢を、ロボットコントローラ6がロボットハンドHNDを動作させる座標系の位置及び姿勢に座標変換するための変換式を算出する処理は、従来から周知の手法で行うことができる。 Specifically, the position and orientation of the search model of the workpiece WK are obtained as a position and orientation in the vision space. Similarly, the orientation of the robot hand model that grasps it is obtained as a position and orientation in the virtual three-dimensional space of the control device 100. In order for the robot controller 6 to operate the robot RBT based on the position and orientation in this vision space, these must be converted into a position and orientation in the robot space. The process of calculating a conversion equation for converting the position and orientation calculated in this displayed coordinate system into the position and orientation in the coordinate system in which the robot controller 6 operates the robot hand HND can be performed by a conventionally known method.

図6に示すフローチャートのステップSC8では、必要数の把持候補位置を登録できたか否かを判定する。ステップSC8でNOと判定して必要数の把持候補位置を登録できていない場合には、ステップSC6を経てステップSC7に進み、他の把持候補位置を設定し、登録する。一方、ステップSC8でYESと判定した場合には、ステップSC9に進む。 In step SC8 of the flowchart shown in FIG. 6, it is determined whether the required number of gripping candidate positions have been registered. If the determination in step SC8 is NO and the required number of gripping candidate positions have not been registered, the process proceeds to step SC7 via step SC6, where other gripping candidate positions are set and registered. On the other hand, if the determination in step SC8 is YES, the process proceeds to step SC9.

ステップSC9では、開始位置と、把持したワークWKを載置する載置位置とを登録する。ここでの開始位置は、ロボットハンドHNDによってワークWKの把持を行う位置であり、搬送開始位置に相当する。開始位置は、容器内にばら積みされているワークWKの把持候補位置とすることができる。開始位置は、ワークWKが容器内のどこに存在しているかによって異なることになるが、これは三次元サーチによって取得することができる。一方、載置位置は、ロボットハンドHNDによりワークWKが載置される位置であり、例えば図1に示すステージSTG上に設定することができる。 In step SC9, the start position and the placement position where the grasped workpiece WK is placed are registered. The start position here is the position where the robot hand HND grasps the workpiece WK, and corresponds to the transfer start position. The start position can be a candidate gripping position for the workpiece WK bulk-stacked in the container. The start position will differ depending on where the workpiece WK is located in the container, but this can be obtained by a three-dimensional search. On the other hand, the placement position is the position where the workpiece WK is placed by the robot hand HND, and can be set, for example, on the stage STG shown in FIG. 1.

ステップSC10では、ワークWKを把持位置から載置位置へ移動する間に経由する経由点を登録する。経由点が登録された場合、ロボットハンドHNDがワークWKを把持して開始位置から載置位置へ搬送する途中で、ロボットハンドHNDの一部またはワークWKの一部が経由点を通過するように、アーム部ARM及びロボットハンドHNDの動作が設定される。 In step SC10, the waypoints through which the workpiece WK will be moved from the gripping position to the placement position are registered. When the waypoints are registered, the operation of the arm unit ARM and the robot hand HND is set so that part of the robot hand HND or part of the workpiece WK passes through the waypoints while the robot hand HND grips the workpiece WK and transports it from the starting position to the placement position.

(ロボットの基本制御)
図7は、ロボットRBTの基本制御のフローチャートの一例を示す図である。スタート後のステップSD1では、測定部20がワークWKを撮像してワークWKの位置姿勢を測定し、ステップSD2で実行されるサーチ処理用データ(高さ画像データ)を生成する。測定部20によって三次元計測が可能であるため、サーチ処理用データには高さ情報を含むことができる。
(Basic robot control)
7 is a diagram showing an example of a flowchart of the basic control of the robot RBT. In step SD1 after starting, the measurement unit 20 captures an image of the workpiece WK to measure the position and orientation of the workpiece WK, and generates data for search processing (height image data) executed in step SD2. Since the measurement unit 20 is capable of three-dimensional measurement, the data for search processing can include height information.

その後、ステップSD2に進み、ステップSD1で生成されたサーチ処理用データに対し、ワークWKの位置及び姿勢を検出するサーチ処理を実行する。具体的には、登録されたワークWKのサーチモデルを用いて、ワークWKの姿勢と位置を特定するのであるが、まずサーチモデルの各特徴点が、最も一致する状態の位置及び姿勢を、サーチ処理用データの中から探索する。 Then, proceed to step SD2, and execute a search process to detect the position and orientation of the workpiece WK from the search process data generated in step SD1. Specifically, the registered search model of the workpiece WK is used to identify the position and orientation of the workpiece WK. First, the search process data is searched for the position and orientation that best matches each feature point of the search model.

登録されたサーチモデルが存在するか否かをサーチした結果、サーチ処理用データ中に、サーチモデルが存在しない場合、即ちワークWKを検出できない場合には、このフローチャートを終了する。 If, as a result of searching to see whether a registered search model exists, the search model does not exist in the search processing data, i.e., the work WK cannot be detected, this flowchart ends.

また、ステップSD2では、図2に示す位置決定処理部22が、測定部20による測定結果と、把持情報記憶部42aに記憶された把持情報とに基づいて、作業空間に配置されたワークWKのロボットハンドHNDによる把持位置を決定する。さらに、位置決定処理部22は、把持位置を決定した後、当該把持位置を把持するためのロボットハンドHNDの移動目標座標を算出するように構成されている。 In addition, in step SD2, the position determination processing unit 22 shown in FIG. 2 determines a gripping position of the workpiece WK arranged in the workspace by the robot hand HND based on the measurement results by the measurement unit 20 and the gripping information stored in the gripping information storage unit 42a. Furthermore, after determining the gripping position, the position determination processing unit 22 is configured to calculate a movement target coordinate of the robot hand HND for gripping the gripping position.

このとき図2に示す干渉判定部25の判定結果を使用することができる。干渉判定部25は、ロボットハンドHNDと障害物との干渉判定を行う部分である。例えば、図6に示すフローチャートに示す処理で登録されたロボットハンドHNDのモデルが容器BXの壁等の障害物に接触するか否かを判定することができる。 At this time, the judgment result of the interference judgment unit 25 shown in FIG. 2 can be used. The interference judgment unit 25 is a part that judges interference between the robot hand HND and an obstacle. For example, it can judge whether or not the model of the robot hand HND registered in the process shown in the flowchart in FIG. 6 will come into contact with an obstacle such as the wall of the container BX.

また、ステップSD3では、図2に示す経路生成部23が、ロボットハンドHNDで把持したワークWKをプレース位置まで搬送する搬送経路を生成する。ステップSD4では、出力部24が、把持位置、載置位置、経由点等の座標及びステップSD2で算出した移動目標座標をロボットコントローラ6に出力する。ロボットコントローラ6は、出力部24から出力された把持位置、載置位置、経由点等の座標を受け取って制御信号を生成し、生成した制御信号をロボットRBTに出力する。その後、ステップSD5では、ロボットRBTが制御信号に従って動作してワークWKを所定の経路で搬送する。 In addition, in step SD3, the path generation unit 23 shown in FIG. 2 generates a transport path for transporting the workpiece WK grasped by the robot hand HND to the placement position. In step SD4, the output unit 24 outputs the coordinates of the gripping position, placement position, waypoint, etc. and the movement target coordinates calculated in step SD2 to the robot controller 6. The robot controller 6 receives the coordinates of the gripping position, placement position, waypoint, etc. output from the output unit 24, generates a control signal, and outputs the generated control signal to the robot RBT. After that, in step SD5, the robot RBT operates in accordance with the control signal to transport the workpiece WK along a predetermined path.

(キャリブレーション)
図7に示すフローチャートに従ってロボットシステム1000を運用することができるが、本ロボットシステム1000は、ハンドアイ方式のロボットシステムであることから、運用前には、三次元カメラ2のカメラ座標をロボットハンドHNDのロボット座標に変換するためのキャリブレーション、いわゆるhand-eyeキャリブレーションを実行する必要がある。
(calibration)
The robot system 1000 can be operated according to the flowchart shown in FIG. 7. However, because the robot system 1000 is a hand-eye type robot system, before operation, it is necessary to perform calibration, known as hand-eye calibration, for converting the camera coordinates of the three-dimensional camera 2 into the robot coordinates of the robot hand HND.

キャリブレーションを実行する際には、上記特許文献1に開示されているようにキャリブレーション用マークやキャリブレーションボード等を使用する場合があるが、キャリブレーション用マークやキャリブレーションボードと、上記ワークWKとは、材質、形状、大きさなどが異なっているので、三次元カメラ2の撮像用パラメータや、ピント位置などを実際のワークWKの撮像時とは変えてキャリブレーション用マークやキャリブレーションボードの撮像を行う必要がある。つまり、ロボットシステム1000の運用時と異なる撮像用パラメータでキャリブレーションを行うことになるので、運用に最適な状態のキャリブレーション結果が得られるとは言い難い。 When performing calibration, calibration marks and a calibration board may be used as disclosed in the above-mentioned Patent Document 1. However, since the calibration marks and the calibration board differ from the workpiece WK in terms of material, shape, size, etc., it is necessary to change the imaging parameters and the focal position of the three-dimensional camera 2 from those used when imaging the actual workpiece WK when imaging the calibration marks and the calibration board. In other words, since calibration is performed with imaging parameters that are different from those used when the robot system 1000 is in operation, it is difficult to say that a calibration result that is optimal for operation can be obtained.

そこで、本実施形態では運用時に実際にピッキングされるワークWKをキャリブレーションに使用する。そして、制御装置100は、ロボットハンドHNDに固定された三次元カメラ2を用いてワークWKの形状を測定し、測定されたワークWKの形状データに基づいて複数段階のキャリブレーションを実行するように構成されている。 Therefore, in this embodiment, the workpiece WK that is actually picked during operation is used for calibration. The control device 100 is configured to measure the shape of the workpiece WK using a three-dimensional camera 2 fixed to the robot hand HND, and to perform multiple stages of calibration based on the measured shape data of the workpiece WK.

キャリブレーションの手順は、大きく分けると、図8に示すように第1~第3ステップSE1~SE3で構成されている。スタート後の第1ステップSE1では、ロボットハンドHNDと三次元カメラ2とをXYZ方向へ平行移動させ、ロボットハンドHNDと三次元カメラ2の移動を停止したときのカメラ座標とロボット座標を取得し、カメラ座標とロボット座標の対応関係を求める。第2ステップSE2では、ロボットハンドHNDと三次元カメラ2とを所定の軸周りに複数回回動させ、ロボットハンドHNDと三次元カメラ2の移動を停止したときのカメラ座標とロボット座標を取得し、回転中心と三次元カメラ2の位置との暫定的な対応関係を求める。第3ステップSE3では、第2ステップSE2で求めた暫定的な対応関係を元に、ロボットハンドHNDと三次元カメラ2と回転させ、回転中心の補正値を得る。得られた補正値を元に、第2ステップSE2で求めた暫定的な回転中心を補正する。 The calibration procedure is roughly divided into the first to third steps SE1 to SE3 as shown in FIG. 8. In the first step SE1 after starting, the robot hand HND and the three-dimensional camera 2 are translated in the XYZ directions, the camera coordinates and the robot coordinates are obtained when the movement of the robot hand HND and the three-dimensional camera 2 is stopped, and the correspondence between the camera coordinates and the robot coordinates is obtained. In the second step SE2, the robot hand HND and the three-dimensional camera 2 are rotated multiple times around a predetermined axis, the camera coordinates and the robot coordinates are obtained when the movement of the robot hand HND and the three-dimensional camera 2 is stopped, and a provisional correspondence between the rotation center and the position of the three-dimensional camera 2 is obtained. In the third step SE3, the robot hand HND and the three-dimensional camera 2 are rotated based on the provisional correspondence obtained in the second step SE2, and a correction value for the rotation center is obtained. Based on the obtained correction value, the provisional rotation center obtained in the second step SE2 is corrected.

図8に示すフローチャートでは、第1ステップSE1と第2ステップSE2とを分けて別ステップとして示しているが、これに限らず、第1ステップSE1における処理内容と、第2ステップSE2における処理内容とを1つのステップで実行してもよい。また、第2ステップSE2では、回転中心と三次元カメラ2の位置との暫定的な対応関係を求めているが、この関係が設計値で予め定まっている場合には、第2ステップSE2を省略し、設計値の読み込みで代用できる。 In the flowchart shown in FIG. 8, the first step SE1 and the second step SE2 are shown as separate steps, but this is not limiting, and the processing content in the first step SE1 and the processing content in the second step SE2 may be executed in a single step. Also, in the second step SE2, a provisional correspondence relationship between the center of rotation and the position of the three-dimensional camera 2 is obtained, but if this relationship is predetermined by a design value, the second step SE2 can be omitted and substituted by reading in the design value.

また、第1ステップSE1及び第2ステップSE2は、カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出し、回転中心と三次元カメラ2の位置との暫定的な対応関係を求めるためのステップであることから、通常キャリブレーション処理と定義する。第3ステップSE3は、第2ステップSE2で求めた暫定的な回転中心を補正して精度を高めるステップであることから、高精度キャリブレーション処理と定義する。通常キャリブレーション処理及び高精度キャリブレーション処理は、図2に示すキャリブレーション実行部26が実行する。 The first step SE1 and the second step SE2 are defined as normal calibration processes because they are steps for calculating parameters for converting a position in the camera coordinates to a position in the robot coordinates and for determining a provisional correspondence between the center of rotation and the position of the three-dimensional camera 2. The third step SE3 is defined as high-precision calibration processes because it is a step for correcting the provisional center of rotation determined in the second step SE2 to improve accuracy. The normal calibration process and the high-precision calibration process are performed by the calibration execution unit 26 shown in FIG. 2.

制御装置100は、上述したロボットシステム1000を運用する際に選択される運用モードと、キャリブレーションを実行する際に選択されるキャリブレーションモードとを実行可能に構成されている。ユーザがロボットシステム1000の運用前にキャリブレーションを実行するキャリブレーションモードを選択すると、キャリブレーション実行部26は、制御装置100でキャリブレーションモードが選択されたことを検出する。キャリブレーション実行部26は、キャリブレーションモードが選択されたことを検出すると、通常キャリブレーション処理と高精度キャリブレーション処理とを順に連続的に実行する。「連続的に実行する」とは、通常キャリブレーション処理の終了後に、ユーザが特別な操作を行わなくても、通常キャリブレーション処理の結果を用いて高精度キャリブレーション処理を開始することであり、これにより、ユーザの負担を軽減できる。尚、通常キャリブレーション処理と高精度キャリブレーション処理とを連続的に実行することなく、通常キャリブレーション処理の終了後に、ユーザからの指示を待って高精度キャリブレーション処理を開始するようにしてもよい。以下、第1~第3ステップSE1~SE3の各ステップの詳細について説明する。 The control device 100 is configured to be able to execute an operation mode selected when operating the robot system 1000 described above, and a calibration mode selected when performing calibration. When a user selects a calibration mode for performing calibration before operating the robot system 1000, the calibration execution unit 26 detects that the calibration mode has been selected in the control device 100. When the calibration execution unit 26 detects that the calibration mode has been selected, it executes the normal calibration process and the high-precision calibration process in sequence and continuously. "Executing continuously" means that after the normal calibration process is completed, the high-precision calibration process is started using the result of the normal calibration process without the user having to perform any special operation, thereby reducing the burden on the user. Note that the high-precision calibration process may be started after the normal calibration process is completed, waiting for an instruction from the user, without executing the normal calibration process and the high-precision calibration process continuously. Details of each of the first to third steps SE1 to SE3 are described below.

(第1ステップの詳細)
図9は、上記図8に示す第1ステップSE1の詳細手順を示すフローチャートである。第1ステップSE1が開始されると、キャリブレーション実行部26は、図10に示すような画像からなるキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させる。キャリブレーション用ユーザインタフェース50には、三次元カメラ2で撮像したワークWKのカラー画像を表示する二次元画像表示領域51と、三次元カメラ2で撮像された画像から取得した三次元形状データに基づく高さ画像を表示する三次元画像表示領域52とが設けられている。実際には、三次元画像表示領域52に、高さに応じて異なる色に着色されたワーク画像が表示されるが、本例の図では着色を省略している。
(Details of the first step)
9 is a flowchart showing a detailed procedure of the first step SE1 shown in FIG. 8. When the first step SE1 is started, the calibration execution unit 26 generates a calibration user interface 50 consisting of an image as shown in FIG. 10 and displays it on the display unit 3. The calibration user interface 50 is provided with a two-dimensional image display area 51 that displays a color image of the workpiece WK captured by the three-dimensional camera 2, and a three-dimensional image display area 52 that displays a height image based on three-dimensional shape data acquired from the image captured by the three-dimensional camera 2. In reality, the three-dimensional image display area 52 displays a workpiece image colored in different colors depending on the height, but coloring is omitted in the figure of this example.

さらに、キャリブレーション用ユーザインタフェース50には、キャリブレーションモードであるか否かを表示するモード表示領域53と、ロボットハンドHNDの移動量を表示する移動量表示領域54と、回転中心誤差を表示する誤差表示領域55と、通常キャリブレーション処理時におけるロボットハンドHNDの移動量を設定する移動量設定領域56とが設けられている。移動量表示領域54には、ロボットハンドHNDのX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)が表示される。X方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)の単位はmmであり、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)の単位はdegである。 The calibration user interface 50 further includes a mode display area 53 that displays whether or not the calibration mode is selected, a movement amount display area 54 that displays the movement amount of the robot hand HND, an error display area 55 that displays the rotation center error, and a movement amount setting area 56 that sets the movement amount of the robot hand HND during normal calibration processing. The movement amount display area 54 displays the movement amount (X) of the robot hand HND in the X direction, the movement amount (Y) of the Y direction, the movement amount (Z) of the robot hand HND, the rotation amount (Rx) around the X axis, the rotation amount (Ry) around the Y axis, and the rotation amount (Rz) around the Z axis. The units of the movement amount (X) in the X direction, the movement amount (Y) in the Y direction, and the movement amount (Z) in the Z direction are mm, and the units of the rotation amount (Rx) around the X axis, the rotation amount (Ry) around the Y axis, and the rotation amount (Rz) around the Z axis are deg.

移動量設定領域56にも移動量表示領域54と同様なX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)が表示されており、ユーザが各値を個別に入力することが可能になっている。移動量設定領域56の各値は、予め決められた値が入力されていてもよく、その入力されている値をユーザが変更可能であってもよい。各値の入力や変更は操作部4をユーザが操作することによって可能である。 The movement amount setting area 56 also displays the amount of movement in the X direction (X), the amount of movement in the Y direction (Y), the amount of movement in the Z direction (Z), the amount of rotation around the X axis (Rx), the amount of rotation around the Y axis (Ry), and the amount of rotation around the Z axis (Rz) similar to the movement amount display area 54, and the user can input each value individually. Each value in the movement amount setting area 56 may be a predetermined value input, or the input value may be changeable by the user. The user can input or change each value by operating the operation unit 4.

図9に示すフローチャートのステップSF1では、ロボットハンドHNDをキャリブレーションの開始位置に移動させる。開始位置に移動させると、ステップSF2に進み、図11に示すように、ロボットハンドHNDを、開始位置を中心に、縦3点×横3点×高さ3点(計27点)の格子状に平行移動させる。このときの移動量は、図10に示すキャリブレーション用ユーザインタフェース50の移動量設定領域56に入力されたX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)である。 In step SF1 of the flowchart shown in FIG. 9, the robot hand HND is moved to the start position of the calibration. After being moved to the start position, the process proceeds to step SF2, where the robot hand HND is translated in parallel in a grid pattern of 3 vertical points x 3 horizontal points x 3 vertical points (total of 27 points) with the start position as the center, as shown in FIG. 11. The amount of movement at this time is the amount of movement in the X direction (X), the amount of movement in the Y direction (Y), and the amount of movement in the Z direction (Z) input in the movement amount setting area 56 of the calibration user interface 50 shown in FIG. 10.

このステップSF1では、ロボットハンドHNDは回転させずに、X方向、Y方向、Z方向に沿う方向へのみ移動させる。つまり、ロボットハンドHNDの姿勢(θx,θy,θz)は変えずに、θx,θy,θzは一定の値を保ったままにする。これは、ツール中心と三次元カメラ2の位置との関係を崩さないようにするためである。尚、縦とはY方向であり、横とはX方向であり、高さとはZ方向である。X方向の複数点の間隔、Y方向の複数点の間隔、Z方向の複数点の間隔は全て同じにすることができる。また、本実施形態では、計27点移動させているが、これは一例であり、移動点の数は27より少なくてもよいし、多くてもよい。また、ロボットハンドHNDは、必ずしもX方向、Y方向、Z方向に沿う方向へ移動させなくてもよく、X方向に対して所定の傾斜角を持って直線移動させてもよいし、XY向に対して所定の傾斜角を持って直線移動させてもよいし、Z方向に対して所定の傾斜角を持って直線移動させてもよい。 In this step SF1, the robot hand HND is not rotated, but is moved only in the directions along the X, Y, and Z directions. In other words, the posture (θx, θy, θz) of the robot hand HND is not changed, and θx, θy, and θz are kept constant. This is to avoid breaking the relationship between the tool center and the position of the three-dimensional camera 2. Note that the vertical direction is the Y direction, the horizontal direction is the X direction, and the height is the Z direction. The intervals between multiple points in the X direction, the intervals between multiple points in the Y direction, and the intervals between multiple points in the Z direction can all be the same. In addition, in this embodiment, a total of 27 points are moved, but this is just one example, and the number of moving points may be less than or greater than 27. In addition, the robot hand HND does not necessarily have to be moved in the directions along the X, Y, and Z directions, and may be moved linearly with a predetermined inclination angle with respect to the X direction, may be moved linearly with a predetermined inclination angle with respect to the XY direction, or may be moved linearly with a predetermined inclination angle with respect to the Z direction.

各動作後、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。図12は、ロボットハンドHNDを1点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェース50の例を示す図である。また、図13は、ロボットハンドHNDを27点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェース50の例を示す図である。1点目と27点目とでは、三次元カメラ2のワークWKに対する位置が変わっているので、図12の三次元画像表示領域52と、図13に示す三次元画像表示領域52とには、異なる角度及び位置から見たワークWKの三次元画像が表示されている。1点目~27点目までの各点で撮像されたワークWKの三次元画像が三次元画像表示領域52に順次表示されるようにしてもよいし、ワークWKの三次元画像を表示しなくてもよい。図12及び図13に示すように、1点目~27点目までの各点で撮像を開始すると、キャリブレーション用ユーザインタフェース50には、オプション表示領域57が表示される。オプション表示領域57には、位置公差、法線公差、角度公差等が表示される。尚、公差は、キャリブレーション時には関係なく、運用時に適用されるものである。 After each operation, the workpiece WK is imaged by the three-dimensional camera 2 at the stop position of the robot hand HND. FIG. 12 is a diagram showing an example of a calibration user interface 50 displayed when the robot hand HND is moved to the position of the first point. FIG. 13 is a diagram showing an example of a calibration user interface 50 displayed when the robot hand HND is moved to the position of the 27th point. Since the position of the three-dimensional camera 2 relative to the workpiece WK is different between the first point and the 27th point, the three-dimensional image display area 52 in FIG. 12 and the three-dimensional image display area 52 shown in FIG. 13 display three-dimensional images of the workpiece WK viewed from different angles and positions. The three-dimensional images of the workpiece WK imaged at each of the first point to the 27th point may be displayed sequentially in the three-dimensional image display area 52, or the three-dimensional image of the workpiece WK may not be displayed. As shown in FIG. 12 and FIG. 13, when imaging is started at each of the first point to the 27th point, an option display area 57 is displayed in the calibration user interface 50. The option display area 57 displays position tolerances, normal tolerances, angle tolerances, etc. Note that tolerances are not relevant during calibration, but are applied during operation.

キャリブレーション実行部26は、三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。ワーク座標に対応するロボット座標とは、ワーク座標を得た時のロボット座標である。これを27点全て実行し、各点のワーク座標及びロボット座標を組(27の組)にして記憶装置42等に保持しておく。 The calibration execution unit 26 detects the work coordinates based on the three-dimensional shape data obtained by measurement using the three-dimensional camera 2, and obtains the robot coordinates corresponding to the work coordinates. The robot coordinates corresponding to the work coordinates are the robot coordinates when the work coordinates are obtained. This is performed for all 27 points, and the work coordinates and robot coordinates for each point are stored as pairs (27 pairs) in the storage device 42, etc.

各点でのワークWKの位置の特定方法としては、例えば、三次元カメラ2で取得された三次元の形状をサーチし、その代表点(中心位置など)のXYZを検出座標とする特定法法や、二次元の形状をサーチし、その代表点のXY座標を代表点とし、別途求めた平面式からその代表点のZを求める特定方法などがある。本実施形態では、後者の特定方法を採用しており、画角に依るワークWKの見え方の変化に追従するように、多点のエッジ検出した後、円の中心座標を最小二乗法で算出している。代表点の座標は、ワークWKの特徴的な部分の座標として求めてもよい。例えばワークWKの中央に穴がある場合、その穴の中心を代表点としてもよい。 Methods for identifying the position of the workpiece WK at each point include, for example, a method of searching the three-dimensional shape captured by the three-dimensional camera 2 and using the XYZ coordinates of its representative point (such as the center position) as the detection coordinates, and a method of searching the two-dimensional shape and using the XY coordinates of the representative point as the representative point and calculating the Z of the representative point from a separately calculated plane equation. In this embodiment, the latter identification method is adopted, and after detecting the edges of multiple points, the center coordinates of the circle are calculated using the least squares method so as to follow the changes in the appearance of the workpiece WK depending on the angle of view. The coordinates of the representative point may be found as the coordinates of a characteristic part of the workpiece WK. For example, if there is a hole in the center of the workpiece WK, the center of the hole may be used as the representative point.

その後、図9に示すフローチャートのステップSF3に進む。ステップSF3では、三次元カメラ2の画角を補正する補正処理を行う。三次元カメラ2の画角が補正されている場合には、このステップSF3は省略できる。また、本実施形態で使用される三次元カメラ2はレンズ交換式であり、画角補正がカメラ側ではなされないように構成されているが、レンズを交換した際に画角補正がカメラ側または制御装置100内でなされるように構成されていてもよい。本実施形態においてレンズ非交換式のカメラを用いてもよい。 Then, proceed to step SF3 in the flowchart shown in FIG. 9. In step SF3, a correction process is performed to correct the angle of view of the three-dimensional camera 2. If the angle of view of the three-dimensional camera 2 has been corrected, this step SF3 can be omitted. Furthermore, the three-dimensional camera 2 used in this embodiment is of an interchangeable lens type, and is configured so that angle of view correction is not performed on the camera side, but it may be configured so that angle of view correction is performed on the camera side or within the control device 100 when the lens is replaced. A camera with a non-interchangeable lens may also be used in this embodiment.

ここで、三次元カメラ2でワークWKを撮像した時の視野に対するワークWKの見え方について説明する。上記ステップSF1では三次元カメラ2が固定されているロボットハンドHNDを縦、横、高さ方向に平行移動させるため、ワークWKの位置が三次元カメラ2の視野に対し相対的にずれる。画角の補正がされない三次元カメラ2の場合は、三次元カメラ2からの距離が変わると、視野に占めるワークWKの面積も変わることになる。画角の補正がされない三次元カメラ2では、Z方向はmm単位、XY方向は画素単位ということができ、画角の補正がされる三次元カメラ2では、XY方向もmm単位といえる。 Here, we will explain how the workpiece WK appears in the field of view when the workpiece WK is imaged by the three-dimensional camera 2. In step SF1 above, the robot hand HND to which the three-dimensional camera 2 is fixed is translated in the vertical, horizontal, and height directions, so the position of the workpiece WK shifts relative to the field of view of the three-dimensional camera 2. In the case of a three-dimensional camera 2 that does not correct the angle of view, if the distance from the three-dimensional camera 2 changes, the area of the workpiece WK that appears in the field of view will also change. In a three-dimensional camera 2 that does not correct the angle of view, the Z direction can be said to be in mm units and the X and Y directions in pixel units, and in a three-dimensional camera 2 that does correct the angle of view, the X and Y directions can also be said to be in mm units.

このことを図14A及び図14Bに基づいて説明する。図14Aは、第1ステップで1点目~27点目まで測定している時のワークWKと三次元カメラ2とが取り得る位置関係を示す側面図である。面S1は、ワークWKの天面を水平方向に延長した面である。面S2は、三次元カメラ2が基準位置、即ち中段位置(第1の位置)にある時の受光素子(またはレンズの受光面)を通る水平面である。面S3は、三次元カメラ2が上段位置(第2の位置)にある時の受光素子(またはレンズの受光面)を通る水平面である。ワークWKの代表点を点P1とすると、点P1の物理的な座標は、基準位置では(X,Z)で表すことができ、上段位置では(X,Z’)で表すことができる。 This will be explained based on Figures 14A and 14B. Figure 14A is a side view showing the possible positional relationship between the workpiece WK and the three-dimensional camera 2 when measuring points 1 to 27 in the first step. Plane S1 is a plane extending horizontally from the top surface of the workpiece WK. Plane S2 is a horizontal plane passing through the light receiving element (or the light receiving surface of the lens) when the three-dimensional camera 2 is in the reference position, i.e., the middle position (first position). Plane S3 is a horizontal plane passing through the light receiving element (or the light receiving surface of the lens) when the three-dimensional camera 2 is in the upper position (second position). If the representative point of the workpiece WK is point P1, the physical coordinates of point P1 can be expressed as (X, Z) at the reference position and (X, Z') at the upper position.

直線L1は三次元カメラ2の光軸を示しており、Z方向に沿っている。2本の直線L2、L2は、三次元カメラ2が基準位置にある時の当該三次元カメラ2の視野範囲を示している。また、2本の直線L3、L3は、三次元カメラ2が上段位置にある時の当該三次元カメラ2の視野範囲を示している。 The straight line L1 indicates the optical axis of the three-dimensional camera 2 and is aligned along the Z direction. The two straight lines L2, L2 indicate the field of view of the three-dimensional camera 2 when the three-dimensional camera 2 is in the reference position. Furthermore, the two straight lines L3, L3 indicate the field of view of the three-dimensional camera 2 when the three-dimensional camera 2 is in the upper position.

図14Bにおける符号2Aで示す矩形は、三次元カメラ2で撮像した時の視野範囲を示している。三次元カメラ2が基準位置にある時に撮像されたワークWKを実線で、三次元カメラ2が上段位置にある時に撮像されたワークWKを破線でそれぞれ示している。三次元カメラ2が基準位置にある時に撮像されたワークWKの代表点P1の座標は(xp,Z)であり、三次元カメラ2が上段位置にある時に撮像されたワークWKの代表点P1の座標は(xp’,Z’)である。 The rectangle indicated by the symbol 2A in Figure 14B indicates the field of view range when imaged by the three-dimensional camera 2. The workpiece WK imaged when the three-dimensional camera 2 is in the reference position is indicated by a solid line, and the workpiece WK imaged when the three-dimensional camera 2 is in the upper position is indicated by a dashed line. The coordinates of the representative point P1 of the workpiece WK imaged when the three-dimensional camera 2 is in the reference position are (xp, Z), and the coordinates of the representative point P1 of the workpiece WK imaged when the three-dimensional camera 2 is in the upper position are (xp', Z').

図14Aと図14Bに示す関係を表で表すと図15に示すようになる。すなわち、三次元カメラ2の中央(光軸L1)からワークWKの代表点P1までの水平距離は、画素距離で示すと中段位置の時にxpとなり、上段位置の時にxp’となり、これらxp,xp’は検出された代表点であることから既知である。また、三次元カメラ2からワークWKの代表点P1までの垂直距離(Z方向の距離)は、物理距離で示すと中段位置の時にZとなり、上段位置の時にZ’となり、これらZ,Z’は検出された代表点であることから既知である。三次元カメラ2の中央(光軸L1)からワークWKの代表点P1までの水平距離のうち、物理距離Xは未知であるが、幾何関係Z’:Z=xp:xp’が成り立つ。 The relationship shown in FIG. 14A and FIG. 14B can be expressed in a table as shown in FIG. 15. That is, the horizontal distance from the center (optical axis L1) of the three-dimensional camera 2 to the representative point P1 of the workpiece WK is xp when it is in the middle position and xp' when it is in the upper position when it is in the upper position when it is in the middle position when it is in the upper position when it is in the upper position when it is in the upper position, and these xp and xp' are known because they are detected representative points. Also, the vertical distance (distance in the Z direction) from the three-dimensional camera 2 to the representative point P1 of the workpiece WK is Z when it is in the middle position and Z' when it is in the upper position when it is in the upper position when it is in the middle position when it is in the upper position, and these Z and Z' are known because they are detected representative points. Of the horizontal distances from the center (optical axis L1) of the three-dimensional camera 2 to the representative point P1 of the workpiece WK, the physical distance X is unknown, but the geometric relationship Z':Z = xp:xp' holds.

三次元カメラ2が上段位置にあるときの画素位置xp’は、画角によって、物理的な大きさ(位置)Xと三次元カメラ2からの距離Z’との関係で求まるが、このままでは、カメラ座標自体が高さに依存してしまうため、キャリブレーションに使いにくい。そこで、本実施形態のキャリブレーション実行部26は、上記関係を、カメラの画角に非依存の(すなわちテレセントリックレンズを使った場合の)画素位置に換算する。xcpとXとは比例関係、すなわち、補正後画素位置xcpはXに依存する関係にある。この関係から以下の式1(基準面での相当画素位置を求める式)でxcpを求めることができる。尚、レンズの歪みを考慮する場合などでは、他の算出方法を採用することもできるので、式1を使った算出方法に限定されるものではない。 When the three-dimensional camera 2 is in the upper position, the pixel position xp' is calculated from the relationship between the physical size (position) X and the distance Z' from the three-dimensional camera 2 depending on the angle of view. However, if this is left as it is, the camera coordinates themselves depend on the height, making it difficult to use for calibration. Therefore, the calibration execution unit 26 of this embodiment converts the above relationship into a pixel position that is independent of the camera's angle of view (i.e., when a telecentric lens is used). xcp and X are in a proportional relationship, that is, the corrected pixel position xcp depends on X. From this relationship, xcp can be calculated using the following formula 1 (a formula for calculating the equivalent pixel position on the reference surface). Note that, when considering lens distortion, other calculation methods can also be adopted, so the calculation method is not limited to the method using formula 1.

xcp=xp’*(Z’/Z) … 式1 xcp=xp’*(Z’/Z) … Formula 1

以上が図9に示すフローチャートのステップSF3で実行される補正処理である。その後、ステップSF4に進み、カメラ座標からロボット座標への対応関係をAffine変換行列として最小二乗法で求める。具体的には、本例では27点でワークWKの測定を行っているので、27点のロボット位置Prと、カメラ座標の位置Pcとの関係から、最小二乗法によりAffine変換行列を求めることができる。ここで、Pcは補正後のカメラ位置となる。補正後のカメラ位置Pcは、XYZがmm単位でなくともよい。本例ではXYが画素単位座標、Zがmm座標としており、XYZ座標が均等な空間であれば、計算に使用することが可能である。 The above is the correction process executed in step SF3 of the flowchart shown in FIG. 9. Then, proceed to step SF4, where the correspondence from the camera coordinates to the robot coordinates is found as an affine transformation matrix using the least squares method. Specifically, in this example, the workpiece WK is measured at 27 points, so the affine transformation matrix can be found using the least squares method from the relationship between the 27 robot positions Pr and the camera coordinate position Pc. Here, Pc is the corrected camera position. The corrected camera position Pc does not need to have X, Y and Z in mm units. In this example, X and Y are pixel unit coordinates, and Z is mm coordinates, and as long as the X, Y and Z coordinates are in a uniform space, they can be used for calculation.

ステップSF4を経ることで図8に示すフローチャートの第1ステップSE1が完了する。図16は、第1ステップSE1が完了した時に表示部3に表示されるキャリブレーション用ユーザインタフェース50である。このキャリブレーション用ユーザインタフェース50には、キャリブレーション結果表示領域58が設けられている。キャリブレーション結果表示領域58には、第1ステップSE1によって求められた三次元カメラ2の視野、画素分解能、座標軸角度、座標軸回転角度、回転中心位置等が表示される。 Through step SF4, the first step SE1 of the flowchart shown in FIG. 8 is completed. FIG. 16 shows a calibration user interface 50 that is displayed on the display unit 3 when the first step SE1 is completed. This calibration user interface 50 is provided with a calibration result display area 58. The calibration result display area 58 displays the field of view, pixel resolution, coordinate axis angles, coordinate axis rotation angles, rotation center position, etc. of the three-dimensional camera 2 determined in the first step SE1.

(第2ステップの詳細)
図17は、上記図8に示す第2ステップSE2の詳細手順を示すフローチャートである。第2ステップSE2が開始されると、キャリブレーション実行部26は、図18に示すキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させる。第2ステップSE2で表示されるキャリブレーション用ユーザインタフェース50には、モード表示領域53に回転中心算出モードであることが表示される。
(Details of the second step)
Fig. 17 is a flow chart showing the detailed procedure of the second step SE2 shown in Fig. 8. When the second step SE2 is started, the calibration execution unit 26 generates a calibration user interface 50 shown in Fig. 18 and displays it on the display unit 3. The calibration user interface 50 displayed in the second step SE2 displays in the mode display area 53 that it is in the rotation center calculation mode.

図17に示すフローチャートのステップSG1では、ロボットハンドHNDをキャリブレーションの開始位置に移動させる。開始位置に移動させると、ステップSG2に進み、ツール中心座標に対し、開始位置、±θx,±θy,±θzだけずらした各点(計7点)でロボットハンドHNDを停止させ、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。各点のワーク座標及びロボット座標を組にして記憶装置42等に保持しておく。その後、ステップSG3に進み、ロボット座標を基準とした暫定的な回転中心を求める。 In step SG1 of the flowchart shown in FIG. 17, the robot hand HND is moved to the start position of the calibration. After being moved to the start position, the process proceeds to step SG2, where the robot hand HND is stopped at each point (seven points in total) that is shifted by the start position, ±θx, ±θy, and ±θz relative to the tool center coordinates, and the workpiece WK is imaged by the three-dimensional camera 2 at the stop position of the robot hand HND. The workpiece coordinates are detected based on the three-dimensional shape data obtained by measurement with the three-dimensional camera 2, and the robot coordinates corresponding to the workpiece coordinates are obtained. The workpiece coordinates and robot coordinates of each point are paired and stored in the storage device 42 or the like. After that, the process proceeds to step SG3, where a provisional center of rotation is determined based on the robot coordinates.

具体的には、7点の検出座標から回転中心を求める際には、球面の方程式を利用した最小二乗法を採用することができる。本例では点の数を7つとしているが、4つ以上であれば三次元で回転中心を求めることは可能である。点数が多い方が求めた結果が良好になる。 Specifically, when finding the center of rotation from the detected coordinates of seven points, the least squares method using the equation of a sphere can be used. In this example, the number of points is seven, but it is possible to find the center of rotation in three dimensions if there are four or more points. The more points there are, the better the results will be.

球面の方程式を利用することなく、回転中心を幾何的に求めることもできる。例えば、ズレベクトルの二等分線・二等分面を複数求め、それら交点から回転中心を推定でき、また、ズレの距離とずらした角度の関係からarctanで中心位置の距離が分かり、これらの複数の関係から、中央座標を求めることも可能である。 The center of rotation can also be found geometrically without using the equation of a sphere. For example, multiple bisectors and bisectors of the displacement vector can be found, and the center of rotation can be estimated from their intersection point. The distance to the center can be found using arctan from the relationship between the displacement distance and the angle of the displacement, and the central coordinates can be found from these multiple relationships.

以上がキャリブレーションの第2ステップSE2であるが、原理的に、ロボットハンドHNDの回転動作を大きくしないと回転中心が正確に求まりにくい。ところが、図19に示すように、ロボットハンドHNDの回転動作を大きくすると、ワークWKが視野に収まりきらず、代表点P1の検出が不安定になる。図19における3つの符号2Aは、三次元カメラ2の視野を示しており、右の視野2Aは回転前の視野、中央の視野2A及び左の視野2Aは回転後の視野をそれぞれ示している。 The above is the second calibration step SE2, but in principle, it is difficult to accurately determine the center of rotation unless the rotational movement of the robot hand HND is large. However, as shown in FIG. 19, if the rotational movement of the robot hand HND is large, the workpiece WK does not fit into the field of view, and detection of the representative point P1 becomes unstable. The three symbols 2A in FIG. 19 indicate the field of view of the three-dimensional camera 2, with the right field of view 2A indicating the field of view before rotation, and the center field of view 2A and the left field of view 2A indicating the field of view after rotation.

第2ステップが完了すると、図20に示すようなキャリブレーション用ユーザインタフェース50が表示され、上記図8に示す第3ステップSE3が開始される。 When the second step is completed, a calibration user interface 50 as shown in FIG. 20 is displayed, and the third step SE3 shown in FIG. 8 above is started.

(第3ステップの詳細)
図21は、上記図8に示す第3ステップSE3の詳細手順を示すフローチャートである。第3ステップSE3では、図22に示すキャリブレーション用ユーザインタフェース50に設けられている高精度キャリブレーション設定領域60で設定された移動量でロボットハンドHNDを移動させる。図22に示すキャリブレーション用ユーザインタフェース50は、第1ステップSE1を開始する前に表示部3に表示させて各値を入力可能にしてもよいし、第2ステップSE2が完了した後に表示部3に表示させて各値を入力可能にしてもよい。高精度キャリブレーション設定領域60で設定される移動量は、予め所定決定された値であってもよい。
(Details of the third step)
Fig. 21 is a flow chart showing a detailed procedure of the third step SE3 shown in Fig. 8. In the third step SE3, the robot hand HND is moved by a movement amount set in a high-precision calibration setting area 60 provided in the calibration user interface 50 shown in Fig. 22. The calibration user interface 50 shown in Fig. 22 may be displayed on the display unit 3 before the start of the first step SE1 so that each value can be input, or may be displayed on the display unit 3 after the second step SE2 is completed so that each value can be input. The movement amount set in the high-precision calibration setting area 60 may be a predetermined value.

図21に示すフローチャートのステップSH1では、上記通常キャリブレーション処理により求められたロボットハンドHNDのツール中心と三次元カメラ2の相対位置に基づいて、暫定的な回転中心(暫定回転中心)を決定する。決定した暫定回転中心を原回転中心として記憶装置42等に保持する。その後、ステップSH2に進み、ワークWKの代表点P1が安定的に求まる位置(開始位置)にロボットハンドHNDを移動させる。 In step SH1 of the flowchart shown in FIG. 21, a provisional rotation center (provisional rotation center) is determined based on the relative position of the tool center of the robot hand HND and the three-dimensional camera 2 obtained by the normal calibration process. The determined provisional rotation center is stored in the storage device 42 or the like as the original rotation center. Then, the process proceeds to step SH2, where the robot hand HND is moved to a position (start position) where the representative point P1 of the workpiece WK can be stably obtained.

次いで、ステップSH3に進み、カメラ位置と原回転中心位置との関係を用い、開始位置でロボットハンドHND(三次元カメラ3)を回転させ、開始位置、±θx,±θy,±θzだけずらした各点(計7点)でロボットハンドHNDを停止させ、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標(代表点P1の座標)を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。各点のワーク座標及びロボット座標を組にして記憶装置42等に保持しておく。 Next, proceed to step SH3, and using the relationship between the camera position and the original rotation center position, rotate the robot hand HND (three-dimensional camera 3) at the starting position, stop the robot hand HND at each point (seven points in total) shifted from the starting position by ±θx, ±θy, ±θz, and capture an image of the workpiece WK with the three-dimensional camera 2 at the stopping position of the robot hand HND. Based on the three-dimensional shape data obtained by measurement with the three-dimensional camera 2, the workpiece coordinates (coordinates of representative point P1) are detected, and the robot coordinates corresponding to the workpiece coordinates are obtained. The workpiece coordinates and robot coordinates of each point are paired and stored in a storage device 42, etc.

回転角度を設定する際、キャリブレーション実行部26は、高精度キャリブレーション処理において暫定回転中心周りに回転させるロボットハンドHNDの回転角度(θx,θy,θz)を、通常キャリブレーション処理においてXYZ軸周りに回転させるロボットハンドHNDの回転角度よりも大きな回転角度とする。尚、高精度キャリブレーション処理と、通常キャリブレーション処理とで、ロボットハンドHNDの回転角度を同じにしてもよい。 When setting the rotation angle, the calibration execution unit 26 sets the rotation angle (θx, θy, θz) of the robot hand HND rotated around the temporary rotation center in the high-precision calibration process to a rotation angle greater than the rotation angle of the robot hand HND rotated around the XYZ axes in the normal calibration process. Note that the rotation angle of the robot hand HND may be the same in the high-precision calibration process and the normal calibration process.

ステップSH3では、上記通常キャリブレーション処理によりツール中心とカメラ位置との暫定的な位置関係を求めているので、その位置関係を利用してワークWKの代表点P1が安定的に求まるようにワークWKを視野に入れつつ、ロボットハンドHNDを回転させることができる。すなわち、図23Aに示すように、単純に暫定回転中心周りにロボットハンドHNDを回転させると、回転後の視野2AからワークWKの一部が出てしまい、その結果、代表点P1が視野2A外に位置し、測定不可になる。一方、図23Bに示すように、キャリブレーション実行部26が、本高精度キャリブレーション処理においてロボットハンドHNDを暫定回転中心周りに所定角度回転させるとともに、当該所定角度回動後のワークWKが三次元カメラ2の視野2Aに入るようにロボットハンドHNDを移動させるので、ワークWKの全体が視野2A内に位置し、その結果、代表点P1を視野2A内に位置付けることができる。 In step SH3, the provisional positional relationship between the tool center and the camera position is obtained by the normal calibration process, and the robot hand HND can be rotated while the workpiece WK is in the field of view so that the representative point P1 of the workpiece WK can be stably obtained by using the provisional positional relationship. That is, as shown in FIG. 23A, if the robot hand HND is simply rotated around the provisional rotation center, a part of the workpiece WK will be out of the field of view 2A after the rotation, and as a result, the representative point P1 will be located outside the field of view 2A and will not be measurable. On the other hand, as shown in FIG. 23B, in this high-precision calibration process, the calibration execution unit 26 rotates the robot hand HND around the provisional rotation center by a predetermined angle and moves the robot hand HND so that the workpiece WK after the predetermined angle rotation is in the field of view 2A of the three-dimensional camera 2, so that the entire workpiece WK is located within the field of view 2A, and as a result, the representative point P1 can be positioned within the field of view 2A.

つまり、所定角度回転させた場合に予想される移動量を、原回転中心に基づき計算し、その移動量を使ってロボットハンドHNDを移動または回転させて三次元カメラ2で撮像する。そこから求めた代表点から、本来求めたかった代表点の位置を求めることができる。具体的には、通常キャリブレーション処理で暫定回転中心が求まっていて、回転による移動後の位置を推定できるので、その移動ベクトルの逆方向にツール中心を移動させる制御を行うことで、カメラ位置の移動を相殺することができる。これにより、ワークWKの代表点を安定的に検出しつつ、ロボットハンドHNDを大きく回転させることが可能となる。 In other words, the expected amount of movement when rotated a specified angle is calculated based on the original center of rotation, and the robot hand HND is moved or rotated using this amount of movement to capture an image with the three-dimensional camera 2. From the representative point found from this, the position of the representative point that was originally desired can be found. Specifically, since a provisional center of rotation is found in the normal calibration process and the position after movement due to rotation can be estimated, the movement of the camera position can be offset by controlling the tool center to move in the opposite direction of that movement vector. This makes it possible to rotate the robot hand HND by a large amount while stably detecting the representative point of the workpiece WK.

例えば、図24に示すように原回転中心と真の回転中心位置のずれが生じている場合、以下のようにしてずれを求めることができる。尚、p,c,dはベクトル、Qは回転行列である。原点回転中心をcとし、代表点pの検出ズレをdとすると以下の関係が成立する。 For example, if there is a deviation between the original rotation center and the true rotation center position as shown in Figure 24, the deviation can be found as follows. Note that p, c, and d are vectors, and Q is a rotation matrix. If the origin rotation center is c and the detected deviation of the representative point p is d, the following relationship holds.

Q(p-c)+d+c … 式2
Q(p-(c+x))+(c+x) … 式3
Q(pc)+d+c...Formula 2
Q(p-(c+x))+(c+x)...Equation 3

式2と式3とは等価であるという関係から、中心のズレx、真の回転中心c+xを求めることができる。尚、Iは単位ベクトルである。 Since Equation 2 and Equation 3 are equivalent, the center deviation x and the true center of rotation c+x can be calculated. Note that I is a unit vector.

d=-Qx+x
d=(I-Q)x
x=(I-Q)^-1d
d = -Qx + x
d = (I-Q) x
x=(I-Q)^-1d

二次元の場合は、(I-Q)の逆行列が安定的に求まる。また、三次元の場合は、上記の関係だけではランク落ちするため、関係式を増やし、最小二乗法で求める。そのために、θx,θy,θzをそれぞれ±方向で振る。 In the case of two dimensions, the inverse matrix (I-Q) can be found reliably. In the case of three dimensions, the above relationship alone will result in a rank loss, so the number of equations is increased and the solution is found using the least squares method. To achieve this, θx, θy, and θz are each deflected in the ± direction.

その後、図21に示すフローチャートのステップSH4~SH6に進み、ステップSH3で保持した各点のワーク座標及びロボット座標の組に基づいてロボットハンドHNDの最終的な回転中心を決定する。具体的に説明すると、まず、ステップSH4では、ステップSH3で保持した各点のワーク座標及びロボット座標の組に基づいて回転中心を再計算(補正)する。再計算後の値を保存し、この値を次の原回転中心として上書きする。ステップSH2~SH4は、N回繰り返し、各回の回転中心の値を保存する。例えば、1回目のループを第1処理、2回目のループを第2処理と呼ぶことができ、キャリブレーション実行部26は、少なくとも第1処理と第2処理とを経た後に、ロボットハンドHNDの最終的な回転中心を決定することができる。 Then, proceed to steps SH4 to SH6 of the flowchart shown in FIG. 21, and determine the final rotation center of the robot hand HND based on the pair of work coordinates and robot coordinates of each point held in step SH3. To be more specific, first, in step SH4, the rotation center is recalculated (corrected) based on the pair of work coordinates and robot coordinates of each point held in step SH3. The recalculated value is saved, and this value is overwritten as the next original rotation center. Steps SH2 to SH4 are repeated N times, and the value of the rotation center for each loop is saved. For example, the first loop can be called the first process, and the second loop can be called the second process, and the calibration execution unit 26 can determine the final rotation center of the robot hand HND after at least the first process and the second process.

ステップSH2~SH4をN回繰り返した後、ステップSH5に進む。ステップSH5では、N個の回転中心の値の平均を算出する。そして、平均から所定の閾値以上離れた回転中心を異常値除去するためにマークしておく。 After steps SH2 to SH4 are repeated N times, proceed to step SH5. In step SH5, the average of the N rotation center values is calculated. Rotation centers that deviate from the average by a predetermined threshold or more are marked in order to remove outliers.

その後、ステップSH6に進み、ステップSH5でマークされなかった回転中心のみを使って平均算出し、得られた平均を最終の回転中心とする。 Then, proceed to step SH6, calculate the average using only the rotation centers that were not marked in step SH5, and use the resulting average as the final rotation center.

このフローチャートでは、原回転中心をループ(ステップSH2~4で構成されるループ)ごとに更新している。原回転中心をループごとに更新する場合の概念図を図25に示す。図25では、最初の原回転中心を通常キャリブレーション処理で求めた暫定回転中心としており、矢印で示すように、上記ループを経るごとに回転中心が更新される。この例に示すように、回転中心が平均から大きく外れることもある。回転中心が大きく外れた場合、その回転中心は異常値であると推定できるので、原回転中心を更新する際には、異常値を除去する処理を実行してもよい。具体的には、このフローでは、上記ループをN回経ることで回転中心をN個算出した後で、算出した回転中心の中で平均から所定の閾値以上ずれているものを省いているが、他の方法として、ループごとの補正量に対し、閾値を引き、誤差の多い回転中心を省くこともできる。この処理もキャリブレーション実行部26で行うことができる。 In this flow chart, the original rotation center is updated for each loop (a loop consisting of steps SH2 to SH4). A conceptual diagram of updating the original rotation center for each loop is shown in FIG. 25. In FIG. 25, the initial original rotation center is the provisional rotation center obtained by the normal calibration process, and as shown by the arrow, the rotation center is updated for each loop. As shown in this example, the rotation center may deviate significantly from the average. If the rotation center deviates significantly, it can be estimated that the rotation center is an abnormal value, so when updating the original rotation center, a process of removing the abnormal value may be performed. Specifically, in this flow, after calculating N rotation centers by going through the above loop N times, those calculated rotation centers that deviate from the average by a predetermined threshold value or more are eliminated. Alternatively, a threshold value can be subtracted from the correction amount for each loop to eliminate rotation centers with a large error. This process can also be performed by the calibration execution unit 26.

原回転中心をループごとに更新していくと、得られた回転中心が次第に真の回転中心に近づいていき、得られた回転中心が収束していく。本実施形態では、例えば図20に示すキャリブレーション用ユーザインタフェース50に収束値表示領域62を設けている。収束値表示領域62には、回転中心が収束していく様子を表示することができる。その表示の一例として、回転中心の収束値(単位mm)を表示している。例えば、3回目のループで得られた回転中心の収束値は2回目で得られた回転中心の収束値よりも小さな値が表示され、ループの回数が増えるごとに収束値表示領域62に表示される収束値が小さくなっていく。したがって、ユーザは、収束値表示領域62に表示される収束値を見ることで、得られた回転中心が次第に真の回転中心に近づいていっていることを把握できる。ループの回数は2回であってもよい。 When the original rotation center is updated for each loop, the obtained rotation center gradually approaches the true rotation center, and the obtained rotation center converges. In this embodiment, for example, a convergence value display area 62 is provided in the calibration user interface 50 shown in FIG. 20. The convergence value display area 62 can display the state in which the rotation center converges. As an example of the display, the convergence value (unit: mm) of the rotation center is displayed. For example, the convergence value of the rotation center obtained in the third loop is displayed as a smaller value than the convergence value of the rotation center obtained in the second loop, and the convergence value displayed in the convergence value display area 62 becomes smaller with each increase in the number of loops. Therefore, by looking at the convergence value displayed in the convergence value display area 62, the user can understand that the obtained rotation center is gradually approaching the true rotation center. The number of loops may be two.

ループの回数を増やしても収束値が所定以上変化しなければ、その時点で高精度キャリブレーション処理を終了させることができる。具体的には、キャリブレーション実行部26は、高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が予め定められた所定の収束条件を満たすか否かを判定する。キャリブレーション実行部26は、所定の収束条件を満たすと判定した場合には、高精度キャリブレーション処理を終了する一方、所定の収束条件を満たさないと判定した場合には、高精度キャリブレーション処理を継続するように構成できる。所定の収束条件としては、例えば高精度キャリブレーション処理によって取得された回転中心の誤差の変化分が一定以下であることを挙げることができる。回転中心の誤差の変化分が一定以下である場合が、複数回(例えば3回)続いたら、所定の収束条件を満たすと判定してもよい。所定の収束条件は、予め決められていてもよいし、ユーザが任意に設定できるようにしてもよい。 If the convergence value does not change by a predetermined amount even if the number of loops is increased, the high-precision calibration process can be terminated at that point. Specifically, the calibration execution unit 26 determines whether the multiple rotation centers acquired by repeatedly executing the high-precision calibration process satisfy a predetermined convergence condition. The calibration execution unit 26 can be configured to terminate the high-precision calibration process when it is determined that the predetermined convergence condition is satisfied, and to continue the high-precision calibration process when it is determined that the predetermined convergence condition is not satisfied. An example of the predetermined convergence condition is that the change in the error of the rotation center acquired by the high-precision calibration process is equal to or less than a certain amount. If the change in the error of the rotation center is equal to or less than a certain amount for multiple consecutive times (for example, three times), it may be determined that the predetermined convergence condition is satisfied. The predetermined convergence condition may be determined in advance, or may be set arbitrarily by the user.

高精度キャリブレーション処理が完了して最終の回転中心が決定されると、キャリブレーション実行部26は、図26に示すキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させるとともに、ユーザに対して高精度キャリブレーション処理が完了したことを報知する。高精度キャリブレーション処理完了後に表示されるキャリブレーション用ユーザインタフェース50には、キャリブレーション結果表示領域61が設けられている。キャリブレーション結果表示領域61には、通常キャリブレーション処理及び高精度キャリブレーション処理の両処理を経て取得された三次元カメラ2の視野、画素分解能、座標軸角度、座標軸回転角度、最終の回転中心位置等が表示される。 When the high-precision calibration process is completed and the final center of rotation is determined, the calibration execution unit 26 generates a calibration user interface 50 shown in FIG. 26 and displays it on the display unit 3, while notifying the user that the high-precision calibration process is completed. The calibration user interface 50 displayed after the high-precision calibration process is completed has a calibration result display area 61. The calibration result display area 61 displays the field of view, pixel resolution, coordinate axis angles, coordinate axis rotation angles, final rotation center position, etc. of the three-dimensional camera 2 acquired through both the normal calibration process and the high-precision calibration process.

(実施形態の作用効果)
以上説明したように、この実施形態によれば、三次元カメラ2がロボットハンドHNDに固定されているので、ロボットシステム1000の運用時には、ロボットハンドHNDを大きく退避させることなく、三次元カメラ2によってワークWKの位置を測定することが可能になるとともに、測定対象のワークWKに近いところから当該ワークWKの三次元形状を測定することができ、測定精度が向上する。
(Effects of the embodiment)
As described above, according to this embodiment, the three-dimensional camera 2 is fixed to the robot hand HND, so that when the robot system 1000 is in operation, it is possible to measure the position of the workpiece WK using the three-dimensional camera 2 without significantly retracting the robot hand HND, and it is also possible to measure the three-dimensional shape of the workpiece WK to be measured from a location close to the workpiece WK, thereby improving measurement accuracy.

また、キャリブレーション時には、キャリブレーション用マークやキャリブレーションボード等を使用することなく、ワークWKを使用することができる。このとき、はじめに通常キャリブレーション処理によってカメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出することができるので、ロボットハンドHNDのツール中心と三次元カメラ2の相対位置関係を求めることができる。その後、ロボットハンドHNDの暫定回転中心を決定し、暫定回転中心周りにロボットハンドHNDを複数回回転させることで、三次元カメラ2の視野の外にワークWKが出ないようにすること、ワークWKの全体が三次元カメラ2の視野に入るようにすること、及び三次元カメラ2の視野中央部近傍にワークWKを置くことが可能になる。そして、各位置で、ワークWKを三次元カメラ2により測定してワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボットハンドHNDの最終的な回転中心を高精度に決定することができる。 In addition, during calibration, the workpiece WK can be used without using a calibration mark or a calibration board. At this time, since the parameters for converting the position in the camera coordinates to the position on the robot coordinates can be calculated by the normal calibration process first, the relative positional relationship between the tool center of the robot hand HND and the three-dimensional camera 2 can be obtained. After that, the provisional rotation center of the robot hand HND is determined, and the robot hand HND is rotated around the provisional rotation center multiple times, so that the workpiece WK does not go out of the field of view of the three-dimensional camera 2, the entire workpiece WK is placed in the field of view of the three-dimensional camera 2, and the workpiece WK is placed near the center of the field of view of the three-dimensional camera 2. Then, at each position, the workpiece WK is measured by the three-dimensional camera 2 to detect the workpiece coordinates, and the robot coordinates when the workpiece coordinates are obtained are obtained, and the final rotation center of the robot hand HND can be determined with high accuracy based on the obtained pairs of the multiple workpiece coordinates and the robot coordinates.

上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。 The above-described embodiments are merely illustrative in all respects and should not be interpreted as limiting. Furthermore, all modifications and variations within the scope of the claims are within the scope of the present invention.

以上説明したように、本発明に係る制御装置は、ロボットシステムに適用することができる。 As described above, the control device according to the present invention can be applied to a robot system.

2 三次元カメラ
3 表示部
26 キャリブレーション実行部
50 キャリブレーション用ユーザインタフェース
100 制御装置
HND ロボットハンド
RBT ロボット
WK ワーク
2 Three-dimensional camera 3 Display unit 26 Calibration execution unit 50 Calibration user interface 100 Control device HND Robot hand RBT Robot WK Workpiece

Claims (10)

ロボットハンドに固定された三次元カメラを用いてワークの形状を測定し、測定されたワークの形状データに基づいて、前記三次元カメラのカメラ座標を前記ロボットハンドのロボット座標に変換するためのキャリブレーションを実行する制御装置であって、
前記ロボットハンドをXYZ方向へ移動させる動作を実行し、前記ロボットハンドの停止位置で前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出する第1の通常キャリブレーション処理と、
前記ロボットハンドを所定の軸周りに回転させる動作を実行し、前記ロボットハンドの停止位置で前記ロボットハンドの回転に伴って回転した前記三次元カメラにより前記ワークを測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボット座標を基準とした前記ロボットハンドの暫定回転中心を決定する第2の通常キャリブレーション処理と、
前記暫定回転中心を前記ロボットハンドの原回転中心とし、当該原回転中心周りに前記ロボットハンドを回転させる動作を実行し、前記ロボットハンドの回転に伴って回転した前記三次元カメラにより前記ロボットハンドの停止位置で前記ワークを測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて次の回転中心を求め、前記ロボットハンドの原回転中心を当該次の回転中心に更新し、更新された各原回転中心周りに前記ロボットハンドを回転させる動作を繰り返し、前記ロボットハンドの最終的な回転中心を決定する高精度キャリブレーション処理と、
を実行するキャリブレーション実行部を備え
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において、原回転中心に基づいて推定した前記ロボットハンドが回転した後のワーク座標と、前記三次元カメラによる測定に基づいて検出した前記ロボットハンドが回転した後のワーク座標とのずれに基づいて当該原回転中心に対応する前記次の回転中心を求める制御装置。
A control device that measures a shape of a workpiece using a three-dimensional camera fixed to a robot hand, and performs calibration to convert camera coordinates of the three-dimensional camera into robot coordinates of the robot hand based on measured shape data of the workpiece,
a first normal calibration process for executing an operation of moving the robot hand in X, Y and Z directions, detecting workpiece coordinates based on shape data obtained by measuring the workpiece with the three-dimensional camera at a stop position of the robot hand, acquiring robot coordinates at the time when the workpiece coordinates are obtained, and calculating parameters for converting a position in the camera coordinates to a position on the robot coordinates based on a plurality of pairs of the acquired workpiece coordinates and robot coordinates;
a second normal calibration process for executing an operation of rotating the robot hand around a predetermined axis, detecting workpiece coordinates based on shape data obtained by measuring the workpiece with the three-dimensional camera rotated in conjunction with the rotation of the robot hand at a stop position of the robot hand, acquiring robot coordinates at the time when the workpiece coordinates were obtained, and determining a provisional rotation center of the robot hand based on the robot coordinates based on the acquired pairs of multiple workpiece coordinates and robot coordinates;
a high-precision calibration process in which the provisional rotation center is set as the original rotation center of the robot hand, an operation is performed to rotate the robot hand around the original rotation center, work coordinates are detected based on shape data obtained by measuring the work at the stop position of the robot hand using the three-dimensional camera that rotates in conjunction with the rotation of the robot hand, the robot coordinates at the time the work coordinates are obtained are obtained, a next rotation center is determined based on the obtained pairs of multiple work coordinates and robot coordinates, the original rotation center of the robot hand is updated to the next rotation center, and the operation of rotating the robot hand around each updated original rotation center is repeated to determine a final rotation center of the robot hand;
A calibration execution unit that executes the following :
The calibration execution unit is a control device that, during the high-precision calibration process, determines the next rotation center corresponding to the original rotation center based on the deviation between the work coordinates after the robot hand has rotated, which are estimated based on the original rotation center, and the work coordinates after the robot hand has rotated, which are detected based on measurements by the three-dimensional camera.
請求項1に記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記回転中心周りに回転させる前記ロボットハンドの回転角度を、前記第2の通常キャリブレーション処理において前記所定の軸周りに回転させる前記ロボットハンドの回転角度よりも大きな回転角度とする制御装置。
2. The control device according to claim 1,
The calibration execution unit is a control device that sets the rotation angle of the robot hand rotated around the original rotation center in the high-precision calibration process to a rotation angle larger than the rotation angle of the robot hand rotated around the specified axis in the second normal calibration process.
請求項1または2に記載の制御装置において、
前記キャリブレーション実行部は、前記更新された各原回転中心に対応する次の回転中心を求める処理を繰り返し実行して前記ロボットハンドの回転中心を複数取得し、取得された複数の回転中心に基づいて、前記最終的な回転中心を決定する制御装置。
3. The control device according to claim 1 ,
The calibration execution unit repeatedly executes a process of determining a next rotation center corresponding to each of the updated original rotation centers to obtain multiple rotation centers of the robot hand, and determines the final rotation center based on the multiple rotation centers obtained.
請求項に記載の制御装置において、
前記キャリブレーション実行部は、前記繰り返しを実行して取得された複数の前記回転中心が予め定められた所定の収束条件を満たすか否かを判定し、前記所定の収束条件を満たすと判定した場合には、前記繰り返しを終了する制御装置。
4. The control device according to claim 3 ,
The calibration execution unit determines whether the multiple rotation centers obtained by executing the repetition satisfy a predetermined convergence condition, and terminates the repetition when it is determined that the predetermined convergence condition is satisfied.
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記ロボットハンドを前記原回転中心周りに所定角度回転させるとともに、当該所定角度回転後の前記ワークが前記三次元カメラの視野に入るように前記ロボットハンドを移動させる制御装置。
5. The control device according to claim 1,
The calibration execution unit is a control device that rotates the robot hand a predetermined angle around the original rotation center during the high-precision calibration process and moves the robot hand so that the workpiece after rotation by the predetermined angle is within the field of view of the three-dimensional camera.
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた三次元の形状データに基づいて前記ワークの代表点のXYZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とする制御装置。
6. The control device according to claim 1,
The calibration execution unit is a control device that calculates the XYZ coordinates of a representative point of the work based on three-dimensional shape data obtained by measuring the work using the three-dimensional camera, and defines the calculated XYZ coordinates of the representative point as work coordinates.
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた二次元の形状データに基づいて前記ワークの代表点のXY座標を求めるとともに、平面式から前記代表点Z座標を求め、求めた前記代表点のXYZ座標をワーク座標とする制御装置。
7. The control device according to claim 1,
The calibration execution unit is a control device that calculates the XY coordinates of a representative point of the work based on two-dimensional shape data obtained by measuring the work using the three-dimensional camera, and calculates the Z coordinate of the representative point from a planar equation, and sets the calculated XYZ coordinates of the representative point as work coordinates.
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ロボットハンドを第1の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、前記ロボットハンドを前記第1の位置とZ座標が異なる第2の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出し、前記第1の位置で検出したワーク座標と、前記第2の位置で検出したワーク座標と、を前記三次元カメラの画角に非依存の画素位置に換算する制御装置。
8. The control device according to claim 1,
The calibration execution unit detects work coordinates based on shape data obtained by moving the robot hand to a first position and measuring the work with the three-dimensional camera, and detects work coordinates based on shape data obtained by moving the robot hand to a second position having a Z coordinate different from the first position and measuring the work with the three-dimensional camera, and converts the work coordinates detected at the first position and the work coordinates detected at the second position into pixel positions independent of the angle of view of the three-dimensional camera.
請求項1からのいずれか1つに記載の制御装置において、
キャリブレーションを実行するキャリブレーションモードの選択が可能に構成されており、
前記キャリブレーション実行部は、前記キャリブレーションモードが選択されたことを検出すると、前記第1の通常キャリブレーション処理と前記第2の通常キャリブレーション処理と前記高精度キャリブレーション処理とを順に連続的に実行する制御装置。
9. The control device according to claim 1,
It is configured to allow selection of the calibration mode in which calibration is performed,
The calibration execution unit is a control device that, when detecting that the calibration mode has been selected, successively executes the first normal calibration process, the second normal calibration process, and the high-precision calibration process in that order.
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理で検出された前記ワーク座標の検出結果と、前記回転中心の収束値とを更新表示可能な表示領域を有するユーザインタフェースを生成し、前記キャリブレーション実行部で生成された前記ユーザインタフェースを表示する表示部を備えている制御装置。
10. The control device according to claim 1,
The calibration execution unit generates a user interface having a display area capable of updating and displaying the detection results of the work coordinates detected in the high-precision calibration process and the convergence value of the rotation center, and is equipped with a display unit that displays the user interface generated by the calibration execution unit.
JP2021020016A 2021-02-10 2021-02-10 Control device Active JP7591938B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021020016A JP7591938B2 (en) 2021-02-10 2021-02-10 Control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021020016A JP7591938B2 (en) 2021-02-10 2021-02-10 Control device

Publications (2)

Publication Number Publication Date
JP2022122648A JP2022122648A (en) 2022-08-23
JP7591938B2 true JP7591938B2 (en) 2024-11-29

Family

ID=82939629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021020016A Active JP7591938B2 (en) 2021-02-10 2021-02-10 Control device

Country Status (1)

Country Link
JP (1) JP7591938B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115488878B (en) * 2022-08-29 2025-08-29 上海智能制造功能平台有限公司 Hand-eye calibration method, system, terminal and medium for robot vision system
CN115713563B (en) * 2022-11-21 2026-01-02 杭州海康机器人股份有限公司 A method, apparatus, electronic device, and storage medium for camera calibration.
WO2024202042A1 (en) * 2023-03-31 2024-10-03 株式会社ニコン Computing device, robot control method, processing method, display method, computer program, recording medium, path generation method, and conveyance method
DE102023116771B3 (en) * 2023-06-26 2024-06-06 Neura Robotics GmbH Method for operating a collaborative robot and collaborative robot for carrying out this method
CN121925331A (en) * 2023-09-28 2026-04-24 株式会社尼康 Control device, control system, robot system, control method, and computer program
KR102726140B1 (en) * 2024-05-31 2024-11-05 엔케이알 주식회사 Calibration system and method using the same
CN119567315B (en) * 2024-11-26 2026-03-31 广州晓云智慧科技有限公司 A robotic arm operation and positioning method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015136770A (en) 2014-01-23 2015-07-30 ファナック株式会社 Data creation system of visual sensor, and detection simulation system
JP2015174191A (en) 2014-03-17 2015-10-05 株式会社安川電機 Robot system, calibration method of robot system and position correction method of robot system
JP2019028773A (en) 2017-07-31 2019-02-21 株式会社キーエンス Robot simulation device and robot simulation method
JP2019217571A (en) 2018-06-15 2019-12-26 オムロン株式会社 Robot control system
JP2020040796A (en) 2018-09-12 2020-03-19 富士電機株式会社 Picking system
WO2020121399A1 (en) 2018-12-11 2020-06-18 株式会社Fuji Robot control system and robot control method
JP2022065714A (en) 2020-10-16 2022-04-28 オムロン株式会社 Calibration device and automatic setting method for calibration

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015136770A (en) 2014-01-23 2015-07-30 ファナック株式会社 Data creation system of visual sensor, and detection simulation system
JP2015174191A (en) 2014-03-17 2015-10-05 株式会社安川電機 Robot system, calibration method of robot system and position correction method of robot system
JP2019028773A (en) 2017-07-31 2019-02-21 株式会社キーエンス Robot simulation device and robot simulation method
JP2019217571A (en) 2018-06-15 2019-12-26 オムロン株式会社 Robot control system
JP2020040796A (en) 2018-09-12 2020-03-19 富士電機株式会社 Picking system
WO2020121399A1 (en) 2018-12-11 2020-06-18 株式会社Fuji Robot control system and robot control method
JP2022065714A (en) 2020-10-16 2022-04-28 オムロン株式会社 Calibration device and automatic setting method for calibration

Also Published As

Publication number Publication date
JP2022122648A (en) 2022-08-23

Similar Documents

Publication Publication Date Title
JP7591938B2 (en) Control device
JP5922572B2 (en) Practical 3D vision system apparatus and method
JP6180087B2 (en) Information processing apparatus and information processing method
US12002240B2 (en) Vision system for a robotic machine
JP6970551B2 (en) Shape measuring device and shape measuring method
JP6685199B2 (en) System and method for combining machine vision coordinate spaces in a guided assembly environment
JP4976402B2 (en) Method and apparatus for practical 3D vision system
JP6427972B2 (en) Robot, robot system and control device
US20210291376A1 (en) System and method for three-dimensional calibration of a vision system
EP2636493A2 (en) Information processing apparatus and information processing method
JP7535400B2 (en) Image Processing Device
JP7180783B2 (en) CALIBRATION METHOD FOR COMPUTER VISION SYSTEM AND 3D REFERENCE OBJECT USED FOR CALIBRATION METHOD
CN102294695A (en) Robot calibration method and calibration system
US11230011B2 (en) Robot system calibration
US11826919B2 (en) Work coordinate generation device
JP7519222B2 (en) Image Processing Device
JP7202966B2 (en) Three-dimensional measuring device and three-dimensional measuring method
US20240246237A1 (en) Robot control device, robot control system, and robot control method
JP7660686B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROL SYSTEM, AND ROBOT CONTROL METHOD
JP7583942B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROL SYSTEM, AND ROBOT CONTROL METHOD
JP7164451B2 (en) Three-dimensional measuring device
Wieghardt et al. Self-calibration of a mobile manipulator using structured light
JP2005186193A (en) Robot calibration method and three-dimensional position measurement method
JP2017170552A (en) Position control system
US20250001594A1 (en) Robot control device, robot control system, and robot control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241119

R150 Certificate of patent or registration of utility model

Ref document number: 7591938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150