JP7437343B2 - Calibration device for robot control - Google Patents
Calibration device for robot control Download PDFInfo
- Publication number
- JP7437343B2 JP7437343B2 JP2021055774A JP2021055774A JP7437343B2 JP 7437343 B2 JP7437343 B2 JP 7437343B2 JP 2021055774 A JP2021055774 A JP 2021055774A JP 2021055774 A JP2021055774 A JP 2021055774A JP 7437343 B2 JP7437343 B2 JP 7437343B2
- Authority
- JP
- Japan
- Prior art keywords
- posture
- robot
- marker
- unit
- 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
Links
- 230000036544 posture Effects 0.000 claims description 465
- 239000003550 marker Substances 0.000 claims description 187
- 238000003384 imaging method Methods 0.000 claims description 153
- 238000000605 extraction Methods 0.000 claims description 127
- 230000009466 transformation Effects 0.000 claims description 95
- 238000011156 evaluation Methods 0.000 claims description 79
- 239000000284 extract Substances 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 230000007613 environmental effect Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 84
- 238000000034 method Methods 0.000 description 44
- 238000012545 processing Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 28
- 238000013461 design Methods 0.000 description 22
- 238000009434 installation Methods 0.000 description 17
- 238000010276 construction Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 6
- 208000006440 Open Bite Diseases 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/04—Viewing devices
Description
本発明は、ロボット制御用のキャリブレーション装置に関する。 The present invention relates to a calibration device for controlling a robot.
近年の労働力不足を解消するため、従来は人が行ってきた作業、たとえば物流分野におけるピッキング作業や、産業分野における組み立て作業など、何らかのワーク(作業対象物)を取り扱う各種作業を、自律ロボットによって自動化するニーズが高まっている。この自動化を実現するにあたって、適切な自律作業をロボットに実行させるには、ワークなどの周辺環境を高精度に認識するための撮像部が必要となる。 In order to resolve the labor shortage in recent years, autonomous robots are now using autonomous robots to perform various tasks that previously were performed by humans, such as picking in the logistics field and assembly in the industrial field. The need for automation is increasing. To achieve this automation, an imaging unit is required to accurately recognize the surrounding environment of the workpiece, in order for the robot to perform appropriate autonomous tasks.
撮像部が撮影した画像に基づいて周辺環境を認識し、この認識結果に応じてロボットが自律的に作業するには、ロボットに対する撮像部の相対的な配置(位置、姿勢)を決定するキャリブレーションの実施が必要である。このキャリブレーションには、たとえば、形状が既知のターゲットマーカ(以下、「マーカ」ともいう。)をロボットに取り付け、様々な姿勢に変更したロボットを撮像部によって撮影し、その撮影画像とロボットの姿勢との関係を対応付けた複数の組のデータを用いて、ロボットと撮像部との間の相対的な位置および姿勢を推定する方法がある。 In order for the robot to recognize the surrounding environment based on the images taken by the imaging unit and to work autonomously according to the recognition results, calibration is required to determine the relative placement (position, posture) of the imaging unit with respect to the robot. It is necessary to implement For this calibration, for example, a target marker (hereinafter also referred to as a "marker") with a known shape is attached to the robot, the robot is photographed in various postures by an imaging unit, and the photographed images and the robot's posture are There is a method of estimating the relative position and orientation between the robot and the imaging unit using a plurality of sets of data associated with each other.
しかしながら、上記のキャリブレーション方法では、工数の肥大化が懸念される。たとえば、キャリブレーション時に必要とされるロボットの複数の姿勢(以下、「姿勢集合」ともいう。)を教示するには、ロボットシステムの導入先の周辺環境に応じて専門家が試行錯誤する必要がある。このため、キャリブレーションに多くの工数を要する。また、ピッキング作業など不定形な作業をロボットに実行させる場合は、周辺環境に存在する物品に応じて撮像部の配置を変更する可能性がある。そして、実際に撮像部の配置を変更する場合は、その都度、ロボットの姿勢集合を教示する必要がある。したがって、キャリブレーションに必要な工数(以下、「キャリブレーション工数」ともいう。)が膨大になる恐れがある。このような背景から、近年ではキャリブレーション工数を削減するための仕組み、あるいは試作への注目度が高くなっている。 However, with the above calibration method, there is a concern that the number of steps will increase. For example, in order to teach multiple robot postures (hereinafter also referred to as a "posture set") required during calibration, experts need to perform trial and error depending on the surrounding environment where the robot system is installed. be. Therefore, many man-hours are required for calibration. Furthermore, when a robot performs an amorphous task such as a picking task, the arrangement of the imaging unit may be changed depending on the items existing in the surrounding environment. When actually changing the arrangement of the imaging unit, it is necessary to teach the robot's posture set each time. Therefore, the number of man-hours required for calibration (hereinafter also referred to as "calibration man-hours") may become enormous. Against this background, in recent years, there has been increasing attention to mechanisms and prototypes for reducing calibration man-hours.
ロボット制御用のキャリブレーションに関して、たとえば特許文献1には、「キャリブレーションを容易に実施する」ための解決手段として、「ロボット制御システムは、撮像部により撮像された画像に基づいて、当該撮像部の視野内に存在する任意の対象物の三次元座標を計測する計測部と、計測された三次元座標とロボットの作用部の位置および姿勢との間の予め算出された対応関係に従って、ロボットの作用部を位置決めするための指令を生成する指令生成部と、対応関係を算出するためのキャリブレーションを実行するキャリブレーション実行部と、キャリブレーションにおいて、ロボットの作用部に関連付けられた基準物体を配置すべき領域であるキャリブレーション領域の設定を受付ける設定受付部とを含む。」と記載されている。
Regarding calibration for robot control, for example,
すなわち、特許文献1に記載された技術では、撮像部が撮影したロボットの情報などから、キャリブレーション時にマーカを移動させる空間(キャリブレーション領域)を規定し、その空間内でマーカの配置を自動で生成し、姿勢集合を教示することで、キャリブレーション工数を削減している。特許文献1に記載された技術によれば、設定受付部で設定を受け付けたキャリブレーション領域の範囲内でマーカを移動させるため、ロボットの姿勢集合の教示に要する工数を削減しつつ、キャリブレーションを実行することができる。
In other words, the technology described in
しかしながら、特許文献1に記載された技術では、ロボットを様々な姿勢に変更した際に生じる可能性がある、マーカの遮蔽(以下、「オクルージョン」ともいう。)については考慮されていない。このため、次のような課題を有する。
一般に、ロボットの周辺や撮像部の周辺にロボット以外のものが存在する場合、あるいは、ロボットに付随する部品のうちマーカ以外の部分がマーカと撮像部との間に介在する場合は、撮像部から見てマーカが遮蔽される可能性がある。また、マーカの遮蔽が生じないようにマーカの移動空間を規定し、ロボットの姿勢集合を教示するには膨大な工数を要する。
However, the technique described in
Generally, if there are objects other than the robot around the robot or around the imaging unit, or if there are parts attached to the robot other than the marker between the marker and the imaging unit, the imaging unit Markers may be obscured when viewed. Furthermore, it takes a huge amount of man-hours to define the movement space of the markers so that the markers are not blocked and to teach the robot a set of postures.
本発明の目的は、マーカの遮蔽を考慮してロボットの姿勢集合を教示するとともに、ロボットの姿勢集合の教示に要する工数を削減することができるロボット制御用のキャリブレーション装置を提供することにある。 SUMMARY OF THE INVENTION An object of the present invention is to provide a calibration device for controlling a robot that is capable of teaching a set of robot postures in consideration of marker occlusion and reducing the number of man-hours required for teaching the set of robot postures. .
上記課題を解決するために、たとえば、特許請求の範囲に記載された構成を採用する。 本願は、上記課題を解決する手段を複数含んでいるが、その一つを挙げるならば、予め定められた位置から撮像する撮像部と、ロボットに取り付けられ、ロボットの動作にしたがって変位するマーカと、撮像部によってマーカを撮像可能とするためのロボットの複数の姿勢を含む姿勢集合を生成する姿勢集合生成部と、姿勢集合生成部によって生成された姿勢集合の中から、マーカの遮蔽が生じない複数の姿勢を抽出する非遮蔽姿勢抽出部と、非遮蔽姿勢抽出部によって抽出された複数の姿勢に基づいて、ロボットの座標系と撮像部の座標系を変換するための第1の座標変換パラメータを推定するキャリブレーション実行部と、を備えるロボット制御用キャリブレーション装置である。
そして、本願のロボット制御用キャリブレーション装置において、キャリブレーション実行部は、非遮蔽姿勢抽出部によって抽出された複数の姿勢の各姿勢について、当該姿勢へロボットを移動させ、ロボットの作業空間を撮像部によって撮影し、撮影により得られる撮影画像を解析することにより、当該姿勢におけるマーカの座標系と撮像部の座標系を変換するための第2の座標変換パラメータを推定し、キャリブレーション実行部は、さらに、複数の姿勢の各姿勢における第2の座標変換パラメータを使用して、数値計算を行うことにより、第1の座標変換パラメータを推定する。
In order to solve the above problems, for example, the configurations described in the claims are adopted. The present application includes a plurality of means for solving the above problems, but to name one, it includes an imaging section that captures an image from a predetermined position, and a marker that is attached to a robot and is displaced according to the robot's movements. , a posture set generation unit that generates a posture set including a plurality of postures of the robot so that the marker can be imaged by the imaging unit, and a posture set that does not cause occlusion of the marker from among the posture set generated by the posture set generation unit. a non-occluded posture extraction section that extracts a plurality of postures; and a first coordinate transformation parameter for converting the coordinate system of the robot and the coordinate system of the imaging section based on the plurality of postures extracted by the non-occluded posture extraction section. This is a calibration device for robot control, comprising: a calibration execution unit for estimating .
In the robot control calibration device of the present application, the calibration execution unit moves the robot to each of the plurality of postures extracted by the non-obstructed posture extraction unit, and moves the robot's work space to the imaging unit. The calibration execution unit estimates a second coordinate transformation parameter for transforming the coordinate system of the marker and the coordinate system of the imaging unit in the posture by analyzing the photographed image obtained by the photographing, and the calibration execution unit: Furthermore, the first coordinate transformation parameters are estimated by performing numerical calculations using the second coordinate transformation parameters for each of the plurality of orientations.
本発明によれば、マーカの遮蔽を考慮してロボットの姿勢集合を教示するとともに、ロボットの姿勢集合の教示に要する工数を削減することができる。
上記した以外の課題、構成および効果は、以下の実施形態の説明によって明らかにされる。
According to the present invention, it is possible to teach a set of robot postures in consideration of marker occlusion, and to reduce the number of man-hours required for teaching the set of robot postures.
Problems, configurations, and effects other than those described above will be made clear by the following description of the embodiments.
以下、本発明の実施形態について図面を参照して詳細に説明する。本明細書および図面において、実質的に同一の機能または構成を有する要素については、同一の符号を付し、重複する説明は省略する。 Embodiments of the present invention will be described in detail below with reference to the drawings. In this specification and the drawings, elements having substantially the same functions or configurations are designated by the same reference numerals, and redundant description will be omitted.
<第1実施形態>
図1は、第1実施形態に係るロボット制御用のキャリブレーション装置の構成例を示す図である。本実施形態では、ロボットが行う作業内容の一例として、ワークを所定の位置へと移動させるピッキング作業を想定する。また、本実施形態では、制御対象のロボットの一例として、関節型ロボットであるロボットアーム(以下、単に「ロボット」ともいう。)を想定する。また、本実施形態では、ロボットに取り付けられるマーカの一例として、平面上の治具に寸法が既知の模様を印刷したキャリブレーションボードを想定する。また、本実施形態では、撮像部の一例として、単眼カメラを想定する。また、本実施形態では、ロボットの周辺や撮像部の周辺に設置される環境設置物の一例として、壁およびコンベアを想定する。ただし、本実施形態で想定する内容は、あくまで一例であって、ロボット制御用のキャリブレーション装置の構成は、本実施形態で想定した例に限定されない。
<First embodiment>
FIG. 1 is a diagram showing a configuration example of a calibration device for robot control according to a first embodiment. In this embodiment, as an example of the work performed by the robot, a picking work in which a workpiece is moved to a predetermined position is assumed. Further, in this embodiment, a robot arm (hereinafter also simply referred to as a "robot") that is an articulated robot is assumed as an example of a robot to be controlled. Further, in this embodiment, as an example of a marker attached to a robot, a calibration board is assumed, in which a pattern with known dimensions is printed on a flat jig. Further, in this embodiment, a monocular camera is assumed as an example of the imaging unit. Furthermore, in this embodiment, a wall and a conveyor are assumed as examples of environmental installations installed around the robot or around the imaging unit. However, the content assumed in this embodiment is just an example, and the configuration of the calibration device for robot control is not limited to the example assumed in this embodiment.
図1に示すように、キャリブレーション装置2は、制御装置1と、現実装置2Aと、キャリブレーション制御装置2Bと、を備えている。
制御装置1は、キャリブレーション装置2全体を統括的に制御する。また、制御装置1は、現実装置2Aにおけるロボット30の動作や撮像部32の動作を制御する。なお、図1においては、制御装置1とキャリブレーション制御装置2Bを別々に表記しているが、キャリブレーション制御装置2Bの機能は、制御装置1のコンピュータハードウェア資源によって実現することが可能である。
As shown in FIG. 1, the
The
現実装置2Aは、ロボットアームによって構成されたロボット30と、ロボット30に取り付けられたマーカ31と、ロボット30の作業空間と周辺を計測する撮像部32と、を有する。また、現実装置2Aは、ロボット30の周辺や撮像部32の周辺に設置される環境設置物33の一例として、壁33Aおよびコンベア33Bを有する。
The
キャリブレーション制御装置2Bは、事前知識21と、生成パラメータ22と、事前知識21および生成パラメータ22を用いてロボット30の姿勢集合を生成する姿勢集合生成部23と、事前知識21を用いて三次元シミュレータ(以下、単に「シミュレータ」ともいう。)を構築するシミュレータ構築部24と、姿勢集合生成部23が生成した姿勢集合の中から、ロボット30やマーカ31が現実装置2A内のいずれの部分にも物理干渉しない複数の姿勢(姿勢集合)を抽出する非物理干渉姿勢抽出部25と、非物理干渉姿勢抽出部25が抽出した姿勢集合の中から、マーカ31の遮蔽が生じない複数の姿勢(姿勢集合)を抽出する非遮蔽姿勢抽出部26と、非遮蔽姿勢抽出部26が抽出した姿勢集合をキャリブレーション精度の観点から評価する姿勢集合評価部27と、姿勢集合評価部27による評価が低い場合に生成パラメータ22を更新するパラメータ更新部28と、姿勢集合評価部27による評価が高い場合にキャリブレーションを実行するキャリブレーション実行部29と、を備えている。ロボット30の姿勢集合とは、ロボット30の複数の姿勢(姿勢データ)の集合である。
The
事前知識21は、現実装置2Aの形状等を含む設計情報と、ロボット30が作業を行う空間(以下、「作業空間」ともいう。)を特定可能な情報と、撮像部32の評価値と、各機能部で用いる閾値などのパラメータ情報と、を有するデータベースである。現実装置2Aの設計情報は、現実装置2Aの三次元モデルなどの形状、仕様および配置を含む情報である。撮像部32の評価値は、撮像部32の受け入れ、もしくは出荷時に行う検査で得られる評価値であって、撮像部32の製品スペックに対する実性能や、画像歪みの程度を表す値である。生成パラメータ22は、ロボット30の姿勢集合に含まれる姿勢の数と密度を決定するパラメータを有するデータベースである。
The
姿勢集合生成部23は、事前知識21と生成パラメータ22とを入力として、ロボット30の姿勢集合を生成するとともに、生成した姿勢集合を制御装置1に保存する。姿勢集合生成部23が生成する姿勢集合に含まれるロボット30の姿勢は、撮像部32によってマーカ31を撮像可能(撮影可能)とするための姿勢である。シミュレータ構築部24は、事前知識21を用いて、仮想的にロボット30の動作および撮像部32を用いた撮影を可能とする三次元シミュレータを構築する。非物理干渉姿勢抽出部25は、姿勢集合生成部23が生成した姿勢集合を制御装置1から読み込むとともに、シミュレータ構築部24が構築した三次元シミュレータ上でロボットを各姿勢に移動することにより、ロボット30やマーカ31が、ロボット30および環境設置物33のいずれとも物理干渉しない複数の姿勢を抽出する。また、非物理干渉姿勢抽出部25は、抽出した複数の姿勢を、物理干渉しない姿勢集合として制御装置1に保存する。非遮蔽姿勢抽出部26は、非物理干渉姿勢抽出部25が抽出した姿勢集合を制御装置1から読み込むとともに、シミュレータ構築部24が構築した三次元シミュレータ上でロボットを各姿勢に移動することにより、撮像部32とマーカ31との間でマーカ31の遮蔽が生じない複数の姿勢を抽出する。また、非遮蔽姿勢抽出部26は、抽出した複数の姿勢を、姿勢集合として制御装置1に保存する。なお、本実施形態においては、姿勢集合生成部23が生成した姿勢集合の保存先や、非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26がそれぞれ抽出した姿勢集合の保存先を制御装置1としているが、姿勢集合の保存先は制御装置1に限らず、たとえばキャリブレーション制御装置2Bが備える記憶部であってもよい。
The posture set
姿勢集合評価部27は、非遮蔽姿勢抽出部26が抽出した姿勢集合を制御装置1から読み込むとともに、その姿勢集合を用いたキャリブレーションの推定精度が事前に設定された所定値以上であるか否かを判定し、この判定結果を基に姿勢集合を評価する。パラメータ更新部28は、姿勢集合評価部27で所定値以上に高精度なキャリブレーションが見込めない場合に、生成パラメータ22を更新する。キャリブレーション実行部29は、姿勢集合評価部27で所定以上に高精度なキャリブレーションが見込めると判定された姿勢集合(複数の姿勢)に基づいて、ロボット30と撮像部32とを制御し、ロボット30の座標系と撮像部32の座標系を変換するための座標変換パラメータを推定する。
The pose set
以降では、制御装置1、現実装置2A、事前知識21、姿勢集合生成部23、シミュレータ構築部24、非物理干渉姿勢抽出部25、非遮蔽姿勢抽出部26、姿勢集合評価部27、パラメータ更新部28、キャリブレーション実行部29について詳細に説明する。
Hereinafter, the
(制御装置1)
図2は、本実施形態における制御装置1の構成例を示すブロック図である。
図2に示すように、制御装置1は、キャリブレーション装置2全体を統括的に制御するためのコンピュータハードウェア資源として、CPU11と、CPU11の指令を伝達するバス12と、ROM13と、RAM14と、記憶装置15と、ネットワークI/F(I/Fはインターフェースの略、以下同じ)16と、撮像部32を接続するための撮像I/F17と、画面出力を行うための画面表示I/F18と、外部入力を行うための入力I/F19と、を有する。すなわち、制御装置1は、一般的なコンピュータ装置によって構成することができる。
(Control device 1)
FIG. 2 is a block diagram showing a configuration example of the
As shown in FIG. 2, the
記憶装置15には、各機能を実行するためのプログラム15Aと、OS(オペレーティングシステム)15Bと、三次元モデル15Cと、データベースなどのパラメータ15Dとが記憶されている。ネットワークI/F16にはロボット制御装置16Aが接続されている。ロボット制御装置16Aは、ロボット30を制御して動作させる装置である。
The
(現実装置2A)
本実施形態において、ロボット30は、ピッキング作業を行うピッキングロボットである。一般に、ピッキングロボットは多関節ロボットによって構成される。ただし、ロボット30は、複数の関節を有するロボットであれば、ロボットの種類を問わない。また、ロボット30は、単軸スライダー上に設置し、この単軸スライダーによってロボット30の移動の自由度を増加させることで、広い空間を対象に作業を実行することができる。
マーカ31としては、平面上の治具に、寸法が既知の模様を印刷したキャリブレーションボードを使用する。このようなマーカ31を使用した場合は、撮像部32によって計測したデータを解析することで、三次元空間におけるマーカ31の位置を特定することができる。ただし、撮像部32によって計測したデータにより、マーカ31の三次元位置を特定可能であれば、たとえば球状の治具や特殊な形状の治具などをマーカ31として使用することができる。
マーカ31は、ロボットアームからなるロボット30のアーム先端に取り付けられている。ただし、マーカ31の取り付け位置は、ロボット30の動作にしたがってマーカ31が変位するという条件を満たす位置であれば、アーム先端に限らず、ロボットアーム上であればよい。
(
In this embodiment, the
As the
The
また、本実施形態では、撮像部32として単眼カメラを用いている。ただし、撮像部32は、単眼カメラに限らず、たとえばToF(Time of Flight)方式のカメラや、ステレオカメラなどによって構成してもよい。つまり、撮像部32によって得られるデータは、マーカ31の三次元位置を特定可能な画像や点群などのデータである。撮像部32は、予め定められた位置からロボット30の作業空間などを撮影する。撮像部32の取り付け位置は、たとえば、ロボット30が作業を行う建物の天井や壁など、任意の場所に設定することができる。
Furthermore, in this embodiment, a monocular camera is used as the
ここで、現実装置2Aの座標系と座標変換について説明する。
図3は、本実施形態における現実装置2Aの座標系と座標変換を示す図である。
現実装置2Aの座標系には、ロボット30のアーム基部を原点とする基部座標系C1と、ロボット30のアーム先端を原点とするアーム座標系C2と、マーカ31の中心を原点とするマーカ座標系C3と、撮像部32の光学中心を原点とするカメラ座標系C4とがある。各々の座標系は、それぞれ三次元の座標系である。
Here, the coordinate system and coordinate transformation of the
FIG. 3 is a diagram showing the coordinate system and coordinate transformation of the
The coordinate system of the
現実装置2Aの座標変換には、基部座標系C1とカメラ座標系C4との座標変換を表す基部・カメラ変換行列M1と、マーカ座標系C3とカメラ座標系C4との座標変換を表すマーカ・カメラ変換行列M2と、アーム座標系C2と基部座標系C1との座標変換を表すアーム・基部変換行列M3と、アーム座標系C2とマーカ座標系C3との座標変換を表すアーム・マーカ変換行列M4とがある。このうち、基部座標系C1は、ロボット30の座標系に相当し、カメラ座標系C4は、撮像部32の座標系に相当する。また、基部・カメラ変換行列M1は、ロボット30の座標系と撮像部32の座標系を変換するための座標変換パラメータに相当する。座標変換の一例を挙げると、基部・カメラ変換行列M1のうち、回転行列をRca、並進行列をtcaとしたとき、カメラ座標系C4における座標C(Xc,Yc,Zc)は、下記の数式に示すように基部座標系C1の点P(Xr,Yr,Zr)に変換することができる。
The coordinate transformation of the
次に、現実装置2Aの座標変換パラメータ(M1,M2,M3,M4)の取得方法について説明する。
基部・カメラ変換行列M1は、現実装置2Aにおける設計値の1つとして求めることができる。ただし、設計値として求めた基部・カメラ変換行列M1を適用してロボット30を動作させた場合に、ロボット30の位置に誤差が生じることがある。このような誤差が生じる原因の1つとして、たとえば、現実装置2Aにおける撮像部32の取り付け位置のズレが考えられる。具体的には、撮像部32の光軸(z軸)が鉛直方向と平行になるように撮像部32の取り付け位置が設計されていても、実際の取り付け時には僅かな位置ズレが生じることがある。キャリブレーションは、このような位置ズレによってロボット30の位置に誤差が生じないよう、基部・カメラ変換行列M1を正確に求めるために行われる。
Next, a method for acquiring the coordinate transformation parameters (M1, M2, M3, M4) of the
The base/camera conversion matrix M1 can be obtained as one of the design values in the
基部・カメラ変換行列M1の設計値は事前知識21に含まれている。このため、事前知識21から基部・カメラ変換行列M1の設計値を取得することができる。また、キャリブレーションを実行することにより、上記の位置ズレ等を反映した基部・カメラ変換行列M1の実際の値を取得することができる。本実施形態におけるキャリブレーションとは、ある姿勢へとロボット30を移動したときのマーカ・カメラ変換行列M2とアーム・基部変換行列M3の複数の組のデータから、基部・カメラ変換行列M1を推定することをいう。基部・カメラ変換行列M1の推定は演算によって行われる。
The design value of the base/camera transformation matrix M1 is included in the
マーカ・カメラ変換行列M2は、撮像部32によりマーカ31を撮影して得た画像を解析することにより取得することができる。アーム・基部変換行列M3は、ロボット30のエンコーダ値から計算することで取得することができる。ロボット30の関節部分には、図示しない関節駆動用のモータと、このモータの回転角を検出するエンコーダとが設けられ、エンコーダ値は、エンコーダの出力値を意味する。アーム・マーカ変換行列M4は未知、もしくは事前知識21より設計値を取得することができる。本実施形態では、アーム・マーカ変換行列M4の設計値は事前知識21に含まれているため、この事前知識21からアーム・マーカ変換行列M4の設計値を取得することができる。なお、本実施形態においては、各座標系の原点、座標系の向き、座標変換を上述のように設定しているが、この例に限定されるものではない。
The marker-camera conversion matrix M2 can be obtained by analyzing an image obtained by photographing the
(事前知識21)
事前知識21は、下記(1)~(11)のパラメータを有するデータベースである。
(1)基部・カメラ変換行列M1の設計値。
(2)アーム・マーカ変換行列M4の設計値。
(3)ロボット30の形状情報を含む三次元モデル。
(4)ロボット30の関節角の上限値などを規定する仕様データ。
(5)マーカ31の種類やサイズを含む形状データ。
(6)撮像部32のカメラパラメータや光学ブラー、解像度、画角などの情報を含む仕様データ。
(7)撮像部32の歪み評価値。
(8)ロボット30の作業空間を規定する情報。
(9)現実装置2Aの設計情報。
(10)環境設置物33の形状と配置を規定する情報。
(11)各機能部で用いる閾値。
なお、本実施形態では、上記の事前知識21を用いた機能について説明するが、一部のみを使用し機能を実装してもよい。
(prior knowledge 21)
The
(1) Design value of base/camera transformation matrix M1.
(2) Design value of arm marker conversion matrix M4.
(3) A three-dimensional model containing shape information of the
(4) Specification data that defines the upper limit value of the joint angle of the
(5) Shape data including the type and size of the
(6) Specification data including information such as camera parameters, optical blur, resolution, and angle of view of the
(7) Distortion evaluation value of the
(8) Information defining the work space of the
(9) Design information of the
(10) Information that defines the shape and arrangement of the
(11) Threshold value used in each functional unit.
Note that in this embodiment, a function using the above-mentioned
(姿勢集合生成部23)
姿勢集合生成部23は、事前知識21から取得したパラメータと生成パラメータ22から取得したパラメータとに基づいてロボット30の姿勢集合を生成する。また、姿勢集合生成部23は、生成した姿勢集合を制御装置1に保存する。
(Posture set generation unit 23)
The posture set
図4は、姿勢集合生成部23の機能ブロック図である。
図4に示すように、姿勢集合生成部23は、パラメータ取得部231と、教示空間生成部232と、教示位置生成部233と、教示姿勢生成部234と、座標系変換部235と、姿勢集合保存部236と、を備えている。
FIG. 4 is a functional block diagram of the pose set
As shown in FIG. 4, the posture set
パラメータ取得部231は、姿勢集合の生成に必要なパラメータを、事前知識21と生成パラメータ22から取得する。教示空間生成部232は、キャリブレーション時にマーカ31を配置する空間を決定し、この空間を複数の小空間に分割する。また、教示空間生成部232は、各小空間にインデックスを付与する。教示位置生成部233は、各小空間においてマーカ31を配置する位置、すなわち教示位置を、カメラ座標系C4を基準に生成する。教示姿勢生成部234は、教示位置生成部233が生成した各教示位置においてマーカ31の姿勢、すなわち教示姿勢を生成する。座標系変換部235は、カメラ座標系C4を基準としたマーカ31の姿勢集合を、事前知識21に含まれる基部・カメラ変換行列M1の設計値に基づいて、基部座標系C1を基準としたロボット30の姿勢集合へと変換する。姿勢集合保存部236は、教示姿勢生成部234が生成した姿勢集合と座標系変換部235が変換した姿勢集合とを、制御装置1に保存する。以下、姿勢集合生成部23の各部の構成についてさらに詳しく説明する。
The
図5は、パラメータ取得部231が取得するパラメータの一覧を示す図である。
図5に示すように、パラメータ取得部231が取得するパラメータには、基部・カメラ変換行列M1の設計値(回転行列Rca、並進行列tca)、撮像部32の計測範囲(画角、解像度、光学ブラー)、撮像部32の歪み情報(歪み評価)、ロボット30の作業空間(三次元空間情報)、マーカ31の形状(ボード、球体、サイズ)、姿勢集合の各軸方向の分解能(X1,Y1,Z1)が含まれる。
FIG. 5 is a diagram showing a list of parameters acquired by the
As shown in FIG. 5, the parameters acquired by the
図6は、パラメータ取得部231によるパラメータの取得手順を示すフローチャートである。
まず、パラメータ取得部231は、基部・カメラ変換行列M1の設計値を事前知識21から取得する(ステップS1)。このとき、パラメータ取得部231は、基部・カメラ変換行列M1の設計値として、回転行列Rcaおよび並進行列tcaを取得する。
FIG. 6 is a flowchart showing a parameter acquisition procedure by the
First, the
次に、パラメータ取得部231は、撮像部32の計測範囲と撮像部32の歪み情報とを事前知識21から取得する(ステップS2)。このとき、パラメータ取得部231は、撮像部32の計測範囲として画角、解像度および光学ブラーを取得するとともに、撮像部32の歪み情報として歪み評価値を取得する。
Next, the
次に、パラメータ取得部231は、ロボット30の作業空間を規定する情報を事前知識21から取得する(ステップS3)。このとき、パラメータ取得部231は、ロボット30の作業空間を規定する情報として、その作業空間を示す三次元空間情報を取得する。
次に、パラメータ取得部231は、マーカ31の形状データを取得する(ステップS4)。このとき、パラメータ取得部231は、マーカ31の形状データとして、マーカ31の種類(ボード、球体)とサイズのデータを取得する。
次に、パラメータ取得部231は、姿勢集合の各軸方向の分解能(X1,Y1,Z1)を生成パラメータ22から取得する(ステップS5)。具体的には、カメラ座標系C4を基準に、各軸において姿勢を作る個数(X1,Y1,Z1)を、各軸方向の分解能を定めるパラメータとして取得する。この場合、各軸において姿勢を作る個数が多いほど(X1,Y1,Z1の各値が大きいほど)、各軸方向の分解能が高くなる。つまり、パラメータX1,Y1,Z1は、姿勢集合に含まれる姿勢の数と密度を決定するパラメータに相当する。
Next, the
Next, the
Next, the
図7は、教示空間生成部232、教示位置生成部233、教示姿勢生成部234および座標系変換部235によって姿勢集合を生成し、この姿勢集合を姿勢集合保存部236によって保存する手順を示すフローチャートである。
図7に示すように、まず、教示空間生成部232は、マーカ31を配置する教示空間を生成する(ステップS6)。このとき、教示空間生成部232が生成する教示空間は、カメラ座標系C4を基準とする三次元空間である。
FIG. 7 is a flowchart showing a procedure for generating a posture set by the teaching
As shown in FIG. 7, first, the teaching
次に、教示空間生成部232は、先ほど生成した教示空間を複数の小空間に分割し、各小空間にインデックスを付与する(ステップS7)。このとき、教示空間生成部232は、教示空間をX1×Y1×Z1の小空間に分割する。たとえば、X1=3、Y1=3、Z1=3であれば、教示空間生成部232は、教示空間を各軸方向で3つに分解することにより、教示空間を合計27個の小空間に分割する。また、教示空間生成部232は、小空間ごとにインデックス(X,Y,Z)を付与する。
Next, the teaching
次に、教示位置生成部233は、各小空間内でマーカ31を配置する位置を教示位置として設定する(ステップS8)。これにより、小空間の個数分だけマーカ31の教示位置が生成される。
次に、教示姿勢生成部234は、マーカ31が撮像部32に正対するように、各教示位置におけるマーカ31の教示姿勢を初期設定する(ステップS9)。以降の説明では、初期設定したマーカ31の教示姿勢を初期姿勢という。
次に、教示姿勢生成部234は、各小空間に付与されたインデックスに基づくルールベースもしくはランダムに、初期姿勢からカメラ座標系C4の各軸方向に0度から±θ(閾値)度だけマーカ31の姿勢を回転させることにより、マーカ31の教示姿勢を生成する(ステップS10)。これにより、マーカ31の教示姿勢が小空間の個数分だけ生成される。
Next, the teaching
Next, the teaching
Next, the teaching
次に、座標系変換部235は、ステップS10で教示姿勢生成部234が生成した、カメラ座標系C4を基準とするマーカ31の教示姿勢の座標を、基部・カメラ変換行列M1の設計値を用いて、基部座標系C1の座標へと変換する(ステップS11)。これにより、カメラ座標系C4を基準とするマーカ31の教示姿勢が、基部座標系C1を基準とするロボット30の教示姿勢に変換される。また、ロボット30の教示姿勢は小空間の個数分だけ生成される。
次に、姿勢集合保存部236は、上記ステップS10で教示姿勢生成部234により生成されたマーカ31の姿勢集合(複数の教示姿勢)、および、上記ステップS11で座標系変換部235により生成されたロボット30の姿勢集合(複数の教示姿勢)を、制御装置1に保存する(ステップS12)。これにより、制御装置1には、カメラ座標系C4を基準とするマーカ31の姿勢集合と、基部座標系C1を基準とするロボット30の姿勢集合とが保存される。
Next, the coordinate
Next, the posture set
図8は、教示空間生成部232による教示空間の生成方法を説明する図である。図示した生成方法は、上記図7のステップS6に適用される。
まず、教示空間は、ロボット30が作業する空間と撮像部32が精度よく撮影可能(計測可能)な空間とが重なり合う、両空間の共通領域とする。
図8においては、カメラ座標系C4を基準にロボット30の作業空間を決定している。作業空間の決定方法としては、たとえば、ロボット30が行う作業がピッキング作業である場合は、ロボット30がワーク(図示せず)を把持する作業を行うときにマーカ31が位置する空間として事前に定めることができる。ロボット30の作業空間を教示空間T1に用いる理由は次の通りである。ロボット30を移動させる場合は、ロボット30の製造誤差などに伴う移動誤差が系統的に生じる。ただし、移動誤差の出方は空間の位置によって異なる。そのため、キャリブレーション時にロボット30が取る姿勢を作業時の姿勢と同様にすることにより、移動誤差の出方が作業時と同じデータをキャリブレーションに使用することができる。
FIG. 8 is a diagram illustrating a method of generating a teaching space by the teaching
First, the teaching space is a common area where the space where the
In FIG. 8, the work space of the
撮像部32が撮影可能な空間は、撮像部32の画角によって決まるが、撮像部32が精度よく撮影可能な空間は、撮影可能な空間よりも狭い範囲に制限される。図8においては、撮像部32が精度よく撮影可能な空間として、カメラ座標系C4におけるZ軸方向の空間の広さは、撮像部32の光学ブラーの値が閾値以下の空間となるよう指定する。図8の例では、光学ブラーの値が1px以下となる範囲で、Z軸方向の空間の広さを指定している。また、撮像部32が精度よく撮影可能な空間として、カメラ座標系C4におけるX軸方向およびY軸方向の空間の広さは、撮像部32が撮像した画像(以下、「撮像画像」ともいう。)に対して歪み補正を実施し、歪み補正前の画像と歪み補正後の画像との輝度差が閾値以下の範囲となるよう指定する。これにより、撮像画像の歪みが生じにくい空間にマーカ31が配置されるように制御することができる。このため、後述するキャリブレーションの誤差を低減することができる。
The space that can be photographed by the
図8の例では、カメラ座標系C4におけるZ軸方向の空間の広さは、ロボット30の作業空間によって規定されている。これは、Z軸方向の空間の広さを比較した場合に、ロボット30の作業空間が、光学ブラーの値が1px以下の空間よりも狭いためである。一方、カメラ座標系C4におけるX軸方向およびY軸方向の空間の広さは、撮像部32が精度よく撮影可能な空間によって規定されている。これは、X軸方向およびY軸方向の空間の広さを比較した場合に、撮像部32が精度よく撮影可能な空間である、歪み評価による輝度差が閾値以下の空間が、ロボット30の作業空間よりも狭いためである。
以上の方法により、教示空間T1が生成される。
In the example of FIG. 8, the size of the space in the Z-axis direction in the camera coordinate system C4 is defined by the work space of the
The teaching space T1 is generated by the above method.
図9は、教示空間生成部232による教示空間の分割方法を説明する図である。図示した分割方法は、上記図7のステップS7に適用される。
教示空間を分割する場合は、姿勢集合の各軸方向の分解能として与えられるパラメータX1,Y1,Z1を用いる。具体的には、上記ステップS6で生成した教示空間T1を、カメラ座標系C4を基準として、x軸方向ではX1個に分割し、y軸方向ではY1個に分割し、z軸方向ではZ1個に分割する。図9の例では、X1=3、Y1=3、Z1=3として、教示空間T1を分割している。このため、教示空間T1は、合計27個の小空間に分割される。このように教示空間T1を複数の小空間に分割したら、各小空間にインデックス(X,Y,Z)を割り振る。インデックス(X,Y,Z)は、座標軸に基づいて割り振られる。たとえば、x軸については図9の右側から左側に向かってX=1、X=2、X=3のインデックスが割り振られ、y軸については図9の手前から奥側に向かってY=1、Y=2、Y=3のインデックスが割り振られ、z軸については図9の上側から下側に向かってZ=1、Z=2、Z=3のインデックスが割り振られる。そうした場合、図9の右下に位置する小空間には、インデックス(X,Y,Z)=(1,1,3)が付与される。
FIG. 9 is a diagram illustrating a method of dividing the teaching space by the teaching
When dividing the teaching space, parameters X1, Y1, and Z1 given as the resolution in each axis direction of the posture set are used. Specifically, the teaching space T1 generated in step S6 above is divided into X1 pieces in the x-axis direction, Y1 pieces in the y-axis direction, and Z1 pieces in the z-axis direction, with the camera coordinate system C4 as a reference. Divide into. In the example of FIG. 9, the teaching space T1 is divided into X1=3, Y1=3, and Z1=3. Therefore, the teaching space T1 is divided into a total of 27 small spaces. After the teaching space T1 is divided into a plurality of small spaces in this way, an index (X, Y, Z) is assigned to each small space. Indexes (X, Y, Z) are assigned based on the coordinate axes. For example, for the x-axis, indexes of X=1, X=2, and X=3 are assigned from the right side to the left side of FIG. Indexes of Y=2 and Y=3 are assigned, and for the z-axis, indexes of Z=1, Z=2, and Z=3 are assigned from the top to the bottom of FIG. In such a case, the index (X, Y, Z)=(1, 1, 3) is given to the small space located at the lower right of FIG.
図10は、教示位置生成部233による教示位置の生成方法を説明する図である。図示した生成方法は、上記図7のステップS8に適用される。
まず、1つの例として、インデックス(X,Y,Z)=(1,1,3)が付与された小空間における教示位置については、この小空間の上面の中心位置から、法線方向に小空間の高さの半分だけ移動した位置、すなわちインデックス(1,1,3)が付与された小空間の中心位置を教示位置として生成することができる。この点は、他のインデックスが付与された小空間についても同様である。
FIG. 10 is a diagram illustrating a method of generating a taught position by the taught
First, as an example, the teaching position in a small space given the index (X, Y, Z) = (1, 1, 3) is a small distance in the normal direction from the center position of the top surface of this small space. A position moved by half the height of the space, that is, the center position of the small space given the index (1, 1, 3) can be generated as the teaching position. This point also applies to small spaces assigned other indexes.
続いて、教示姿勢生成部234による教示姿勢の生成方法について説明する。教示姿勢は、上記図7のステップS9およびステップS10の処理によって生成される。
まず、ステップS9の処理内容について説明すると、教示姿勢生成部234は、マーカ31が撮像部32に正対するように、教示姿勢の初期値を設定する。
図11は、各小空間の教示位置にマーカを初期姿勢で配置した場合のマーカの見え方を示す図である。
図11においては、教示空間生成部232で生成した複数の小空間のうち、インデックス(X,Y,Z)=(1,1,1)(1,2,1)(1,3,1)(2,1,1)(2,2,1)(2,3,1)(3,1,1)(3,2,1)(3,3,1)の各小空間について、教示位置生成部233が生成した教示位置に仮にマーカ31を配置し、かつ撮像部32に対してマーカ31が正対するように配置した場合の、マーカ31の見え方を示している。初期姿勢のもとでは、いずれの小空間においても、カメラ座標系C4のZ軸がマーカ座標系C3のZ軸に対して真逆を向くように、マーカ31が配置される。したがって、すべての小空間でマーカ31の見え方は同じである。
Next, a method of generating a taught posture by the taught
First, the processing content of step S9 will be described. The taught
FIG. 11 is a diagram showing how the markers appear when they are placed in the initial posture at the teaching position of each small space.
In FIG. 11, among the plurality of small spaces generated by the teaching
次に、ステップS10の処理について説明する。
教示姿勢生成部234は、上記ステップS9で設定した初期姿勢から、マーカ31の姿勢をマーカ座標系C3の各軸方向に回転させることで、教示姿勢を生成する。
図12は、教示姿勢生成部234が生成したマーカ31の教示姿勢を示す図である。なお、図12における各小空間のインデックス(X,Y,Z)は、上記図11における各小空間のインデックス(X,Y,Z)に対応している。例として、インデックス(3,3,1)の小空間におけるマーカ31の教示姿勢は、初期姿勢に対してマーカ座標系C3のx軸まわりにマーカ31を回転させることで生成される。各軸の回転角の大きさは、0度から±θ(閾値)度までとし、インデックスに基づきルールベースもしくはランダムに決定する。本実施形態では、インデックスが(1,1,1)(1,3,1)(3,1,1)の小空間では初期姿勢と同様の姿勢を教示姿勢として用い、他のインデックスの小空間では軸まわりに回転させた姿勢を教示姿勢として用いる。このように、教示姿勢生成部234が生成する複数の姿勢である姿勢集合は、マーカ31が様々な向きとなるよう回転させた姿勢と、マーカ31の向きは同じで並進のみが異なる姿勢との組み合わせによって構成されている。これにより、マーカ31の姿勢をすべてランダムに変えた場合(マーカ31の向きがすべてのインデックスで異なる場合)に比べて、キャリブレーションの推定時の精度を向上させることができる。
Next, the process of step S10 will be explained.
The teaching
FIG. 12 is a diagram showing the teaching posture of the
以上述べた姿勢集合生成部23の各部(231~236)の処理より、ロボット30の作業空間と撮像部32が精度よく撮影可能な空間の両方を満たす教示空間にて、姿勢集合を自動的に生成することが可能である。
Through the processing of each part (231 to 236) of the posture set
なお、本実施形態では、基部・カメラ変換行列M1の回転を回転行列Rcaの形式で取得しているが、四元数などを使用してもよい。また、教示空間生成部232が生成する教示空間T1の形状は、図8に示す形状に限らない。たとえば、撮像部32が精度よく撮影可能な空間に比べてロボット30の作業空間が狭い場合などは、教示空間T1は直方体などの形状となる。また、教示空間T1を生成するパラメータとして、本実施形態で使用した撮像部32の歪み評価の値が得られない場合は、歪み評価の値を使用せずに画角のみ、もしくは画角のうち予め定めた一部の空間を使うよう決定してもよい。また、教示空間の決定方法として、予めユーザが教示空間の形状や広さを指定してもよい。また、本実施形態では、教示空間の分割方法として、カメラ座標系C4を基準に教示空間T1を分割しているが、任意の座標系を基準として教示空間T1を分割してもよい。また、教示位置生成部233が生成する教示位置は、小空間内であれば任意の位置、たとえば小空間の頂点などを教示位置に設定してもよい。また、教示姿勢生成部234では、マーカ31を高精度に検出するため、各軸まわりのマーカ31の回転角を閾値以内として教示姿勢を生成しているが、マーカ31の種類によっては、閾値を設定しなくてもよい。また、本実施形態では、姿勢集合保存部236が姿勢集合を制御装置1に保存しているが、これに限らず、図示しないメモリ上に保持してもよく、後段の処理は該メモリから姿勢集合を読み込んでもよい。
Note that in this embodiment, the rotation of the base/camera transformation matrix M1 is obtained in the form of a rotation matrix Rca, but a quaternion or the like may also be used. Further, the shape of the teaching space T1 generated by the teaching
続いて、シミュレータ構築部24の処理内容について詳しく説明する。
シミュレータ構築部24は、事前知識21に基づきシミュレータを構築することで、仮想的にロボット30を動作させ、撮像部32による撮像画像(撮影画像)を生成する機能を有する。
図13は、シミュレータ構築部24によって構築されるシミュレータの一例を示す図である。
図13においては、現実装置2Aの設計情報を含む三次元モデル、仕様、配置などの情報を事前知識21から取得し、取得した情報を基にロボット30、マーカ31、撮像部32および環境設置物33を仮想的にシミュレータ上に配置している。
ロボット30については、事前知識21から取得した情報である、ロボット30の形状情報として各リンクの長さや仕様として得られる関節の情報を用いることで、仮想的にロボット30を動作させることが可能である。また、仮想的にロボット30を動作させることで、実機にて使用する軌道計画のアルゴリズムを適用することが可能である。
Next, the processing contents of the
The
FIG. 13 is a diagram showing an example of a simulator constructed by the
In FIG. 13, information such as a three-dimensional model, specifications, and layout including design information of the
Regarding the
撮像部32については、事前知識21から取得した情報である、撮像部32の画角や解像度、カメラパラメータなどの仕様データを用いることで、撮像部32がシミュレータ上で画像を撮影した際の各画素の値を生成することが可能である。また、シミュレータ上において、ロボット30や環境設置物33の色情報は容易に変更可能である。たとえば、ロボット30や環境設置物33の色を表すRGB値を(255,0,0)などに変更し、シミュレータ上で撮影した画像として生成することも可能である。
Regarding the
以上述べたシミュレータ構築部24の処理により、マーカ31を姿勢集合に基づき教示位置に移動させたときに、撮像部32によって撮影される画像を仮想的に生成することが可能である。また、ロボット30の三次元モデルが得られる場合は、仮想的にロボット30の軌道計画および制御が可能であり、事前知識21の設計上の配置情報により、ロボット30が動作したときに撮像部32が撮影した画像を仮想的に生成することが可能である。
Through the processing of the
なお、本実施形態では、基部・カメラ変換行列M1の設計値などを含む配置情報を事前知識21から取得し、取得した配置情報に基づいてシミュレータ上に物体を配置しているが、これに限らない。たとえば、撮像部32が撮影した画像などから、現実装置2Aの物体の大きさや配置を示す大まかな値を推定し、この推定結果に基づいてシミュレータ上に物体を配置してもよい。
Note that in this embodiment, placement information including design values of the base/camera transformation matrix M1, etc. is acquired from the
また、本実施形態では、現実装置2Aをシミュレータに仮想的に配置する際に、現実装置2Aの三次元モデルを使用して形状を再現しているが、三次元モデルが得られない場合は、各座標系の設計値情報のみをシミュレータが保持してもよい。
Furthermore, in this embodiment, when the
また、撮像部32が、三次元計測可能なステレオカメラやToFカメラの場合、もしくは単眼カメラによる画像を機械学習することで三次元形状を得られる場合などは、撮像部32によって取得した現実装置2Aの三次元形状を、シミュレータの構築に活用してもよい。
In addition, in the case where the
続いて、非物理干渉姿勢抽出部25の処理内容について詳しく説明する。
図14は、非物理干渉姿勢抽出部25の処理手順を示すフローチャートである。
非物理干渉姿勢抽出部25は、姿勢集合生成部23が生成した姿勢集合の中から、現実装置2Aの各部が互いに物理干渉しない姿勢(非物理干渉姿勢)を抽出する。また、非物理干渉姿勢抽出部25は、シミュレータ構築部24が構築するシミュレータを活用することにより、上記物理干渉しない姿勢を抽出する。物理干渉とは、現実装置2Aにおいて、ロボット30やマーカ31が、ロボット30や撮像部32、環境設置物33等に接触することをいう。
Next, the processing contents of the non-physical interference
FIG. 14 is a flowchart showing the processing procedure of the non-physical interference
The non-physical interference
まず、非物理干渉姿勢抽出部25は、姿勢集合生成部23が生成した姿勢集合を制御装置1のメモリ上にロードする(ステップS13)。
次に、非物理干渉姿勢抽出部25は、上記の姿勢集合に含まれる姿勢の数N1を取得する(ステップS14)。
次に、非物理干渉姿勢抽出部25は、変数iを初期値(i=1)に設定する(ステップS15)。
次に、非物理干渉姿勢抽出部25は、シミュレータ上でロボット30をi番目の姿勢へと移動するよう軌道計画を指示する(ステップS16)。
次に、非物理干渉姿勢抽出部25は、上記ステップS16で指示した軌道計画が成功したか否かを判定する(ステップS17)。具体的には、非物理干渉姿勢抽出部25は、指示した軌道計画でロボット30を動作させたときに、ロボット30とマーカ31が現実装置2A内のいずれの部分にも物理干渉しない場合は軌道計画が成功したと判定し、物理干渉する場合は軌道計画が失敗したと判定する。
First, the non-physical interference
Next, the non-physical interference
Next, the non-physical interference
Next, the non-physical interference
Next, the non-physical interference
次に、非物理干渉姿勢抽出部25は、上記ステップS17で軌道計画が成功したと判定した場合は、i番目の姿勢を成功パターンとして上記メモリ上に保持した後、(ステップS18)、i番目の姿勢が生成された小空間のインデックスに対する成功/失敗情報を保持する(ステップS19)。小空間のインデックスに対する成功情報を保持する場合は、i番目の姿勢が生成された小空間のインデックスに成功フラグを紐付けて保持する。また、小空間のインデックスに対する失敗情報を保持する場合は、i番目の姿勢が生成された小空間のインデックスに失敗フラグを紐付けて保持する。
Next, if it is determined that the trajectory planning is successful in step S17, the non-physical interference
一方で、非物理干渉姿勢抽出部25は、上記ステップS17で軌道計画が失敗したと判定した場合は、ステップS18,S19の処理をパスする。ここで、軌道計画が失敗した場合は、物理干渉が有りと判定される場合に相当し、軌道計画が成功した場合は、物理干渉が無しと判定される場合に相当する。
On the other hand, if the non-physical interference
次に、非物理干渉姿勢抽出部25は、変数iの値がi=N1を満たすか否かを判定する(ステップS20)。そして、非物理干渉姿勢抽出部25は、変数iの値がN1未満である場合は、変数iの値を1だけインクリメントした後(ステップS21)、上記ステップS16の処理に戻る。また、非物理干渉姿勢抽出部25は、変数iの値がN1に達した場合は、成功パターンの姿勢集合とインデックスごとの成功/失敗情報を制御装置1に保存した後(ステップS22)、一連の処理を終える。
以上述べた非物理干渉姿勢抽出部25の処理により、姿勢集合のうち、現実装置2Aが互いに物理干渉しない姿勢のみを抽出することができる。
Next, the non-physical interference
Through the processing of the non-physical interference
続いて、非物理干渉姿勢抽出部25が軌道計画の成否を判定する例について説明する。
図15は、ロボット30が実際にピッキング作業を行うときの姿勢を上から俯瞰した図である。
図15に示すように、マーカ31を移動先1に移動させる場合は、ロボット30が現実装置2Aのいずれの部分にも物理干渉しない。このため、マーカ31を移動先1に移動させるよう軌道計画を指示した場合は、軌道計画が成功して成功パターンの姿勢となる。これに対して、マーカ31を移動先2に移動させる場合は、ロボット30が環境設置物33(壁33A)に物理干渉するため、軌道計画が失敗する。
物理干渉の有無を判定する方法については、たとえば、軌道計画により生成された軌道の候補について、その軌道に従いロボット30が動作した際に、環境設置物33等とロボット30との三次元上の位置が重なるか否かで判定することができる。
Next, an example in which the non-physical interference
FIG. 15 is an overhead view of the posture when the
As shown in FIG. 15, when moving the
Regarding the method of determining the presence or absence of physical interference, for example, when the
図16は、ロボット30が実際にピッキング作業を行うときの姿勢を側面から俯瞰した図である。
図16に示すように、マーカ31を移動先3に移動させる場合は、ロボット30が現実装置2Aのいずれの部分にも物理干渉しない。このため、マーカ31を移動先3に移動させるよう軌道計画を指示した場合は、軌道計画が成功して成功パターンの姿勢となる。これに対して、マーカ31を移動先4に移動させる場合は、ロボット30が環境設置物33(コンベア33B)に物理干渉するため、軌道計画が失敗する。
FIG. 16 is a side view of the posture when the
As shown in FIG. 16, when moving the
本実施形態においては、軌道計画が成功であるか失敗であるかを、ロボット30と環境設置物33との物理干渉の有無で判定しているが、これに限らず、たとえば判定条件の1つとしてロボット30の関節角の制約などをユーザが加えることで判定させてもよい。具体的には、ロボット30を移動先に移動させる場合に、ロボット30の関節角が上限値以下の場合は軌道計画が成功と判定させ、上限値を超える場合は軌道計画が失敗と判定させてもよい。
In this embodiment, whether the trajectory planning is successful or unsuccessful is determined based on the presence or absence of physical interference between the
続いて、非遮蔽姿勢抽出部26の処理内容について詳しく説明する。
図17は、非遮蔽姿勢抽出部26の処理手順を示すフローチャートである。
非遮蔽姿勢抽出部26は、姿勢集合生成部23が生成し、且つ、非物理干渉姿勢抽出部25が抽出した姿勢集合の中から、マーカ31と撮像部32との間でマーカ31の遮蔽が発生しない姿勢(非遮蔽姿勢)を抽出する。また、非遮蔽姿勢抽出部26は、シミュレータ構築部24が構築するシミュレータを活用することにより、マーカ31の遮蔽が発生しない姿勢を抽出する。
Next, the processing contents of the non-obstructed
FIG. 17 is a flowchart showing the processing procedure of the non-shielding
The non-obstructed
まず、非遮蔽姿勢抽出部26は、姿勢集合生成部23が生成し、且つ、非物理干渉姿勢抽出部25が抽出した姿勢集合を制御装置1のメモリ上にロードする(ステップS23)。
次に、非遮蔽姿勢抽出部26は、上記の姿勢集合に含まれる姿勢の数N2を取得する(ステップS24)。
次に、非遮蔽姿勢抽出部26は、変数iを初期値(i=1)に設定する(ステップS25)。
次に、非遮蔽姿勢抽出部26は、シミュレータ上でロボット30をi番目の姿勢へと移動するよう軌道計画を指示する(ステップS26)。
次に、非遮蔽姿勢抽出部26は、シミュレータ上の撮像部32による仮想的な撮影画像を生成する(ステップS27)。
すなわち、非遮蔽姿勢抽出部26は、i番目の姿勢にロボット30を移動させたときに撮像部32によって得られる撮影画像を仮想的に生成する。
First, the non-obstructed
Next, the non-obstructed
Next, the non-shielding
Next, the non-shielded
Next, the non-shielding
That is, the non-shielded
次に、非遮蔽姿勢抽出部26は、生成した撮影画像を解析することにより、マーカ・カメラ変換行列M2を推定する(ステップS28)。撮影画像の解析方法としては、たとえば、マーカ31上にサイズと位置が既知の複数の黒丸の模様が印刷されている場合は、この黒丸の既知のサイズおよび位置と、上記仮想的な撮影画像上での黒丸のサイズおよび位置とを対応付けることにより、マーカ・カメラ変換行列M2を推定することができる。マーカ・カメラ変換行列M2を推定することは、実質的に、三次元のカメラ座標系C4においてマーカ31の位置姿勢、すなわちマーカ31の三次元位置を推定することを意味する。
Next, the non-obstructed
次に、非遮蔽姿勢抽出部26は、マーカ・カメラ変換行列M2の推定に成功したか否かを判定する(ステップS29)。そして、非遮蔽姿勢抽出部26は、マーカ・カメラ変換行列M2の推定に成功した場合は、推定の信頼度を算出した後(ステップS30)、その信頼度が閾値以上であるか否かを判定する(ステップS31)。また、非遮蔽姿勢抽出部26は、算出した推定の信頼度が閾値以上である場合は、i番目の姿勢を成功パターンとして上記メモリ上に保持した後(ステップS32)、i番目の姿勢が生成された小空間のインデックスに対する成功/失敗情報を保持する(ステップS33)。小空間のインデックスに対する成功情報を保持する場合は、i番目の姿勢が生成された小空間のインデックスに成功フラグを紐付けて保持する。また、小空間のインデックスに対する失敗情報を保持する場合は、i番目の姿勢が生成された小空間のインデックスに失敗フラグを紐付けて保持する。
Next, the non-occluded
一方で、非遮蔽姿勢抽出部26は、上記ステップS29でマーカ・カメラ変換行列M2の推定に失敗したと判定した場合は、ステップS30~S33の処理をパスし、上記ステップS31で信頼度が閾値以上ではないと判定した場合はステップS32,S33の処理をパスする。ここで、マーカ・カメラ変換行列M2の推定に失敗した場合や、推定の信頼度が閾値以上ではない場合は、マーカ31の遮蔽が有りと判定される場合に相当する。これに対して、マーカ・カメラ変換行列M2の推定に成功した場合や、推定の信頼度が閾値以上である場合は、マーカ31の遮蔽が無しと判定される場合に相当する。
On the other hand, if the non-occluded
次に、非遮蔽姿勢抽出部26は、変数iの値がi=N2を満たすか否かを判定する(ステップS34)。そして、非遮蔽姿勢抽出部26は、変数iの値がN2未満である場合は、変数iの値を1だけインクリメントした後(ステップS35)、上記ステップS26の処理に戻る。また、非遮蔽姿勢抽出部26は、変数iの値がN2に達した場合は、成功パターンの姿勢集合と、インデックスごとの成功/失敗情報とを制御装置1のメモリに保存した後(ステップS36)、一連の処理を終える。
以上述べた非遮蔽姿勢抽出部26の処理により、姿勢集合のうち、マーカ31と撮像部32との間でマーカ31の遮蔽が発生しない姿勢のみを抽出することができる。
Next, the non-shielding
Through the processing of the non-occluded
続いて、非遮蔽姿勢抽出部26による信頼度の算出方法(ステップS30の処理内容)と評価方法(ステップS31の処理内容)について説明する。
まず、ステップS28においては、マーカ31の一部が遮蔽により隠れた場合でも、マーカ・カメラ変換行列M2を推定可能な場合がある。しかし、この場合は、マーカ31の全部が撮影画像に映っている場合に比べて、マーカ・カメラ変換行列M2の推定精度が低い可能性がある。マーカ・カメラ変換行列M2の推定精度が低い姿勢をキャリブレーションに使用することは望ましくない。
Next, a reliability calculation method (processing content of step S30) and an evaluation method (processing content of step S31) by the non-shielding
First, in step S28, even if a portion of the
そこで、非遮蔽姿勢抽出部26は、各教示姿勢におけるマーカ31と撮像部32との相対的な姿勢がシミュレータ上で既知であることを利用し、たとえば、マーカ31が遮蔽なく撮影画像に映ったときのマーカ31の面積と、シミュレータ上で撮像部32の撮影画像上に実際に映っているマーカ31の面積との比率を、推定の信頼度として算出する。また、これ以外にも、たとえば、撮影画像を解析したときに得られるマーカ31上の特徴点の個数と、特徴点の総数との割合などを信頼度として算出する。そして、非遮蔽姿勢抽出部26は、上述のように算出した信頼度が、事前にマーカ31の種類により定めた閾値に比べて高いか否かを判定する。
Therefore, the non-obscured
図18は、非遮蔽姿勢抽出部26の動作例を示す模式図である。
図18の左側に一点鎖線で示す枠線内には、上記ステップS23で制御装置1のメモリ上にロードした姿勢集合の一部を示している。また、図18の右側に一点鎖線で示す枠線内には、非遮蔽姿勢抽出部26によって抽出された、遮蔽(オクルージョン)判定後の姿勢集合の一部を示している。本例では、シミュレータ上で撮像部32が撮影した画像の上下および左を覆うように環境設置物33が配置されている。
FIG. 18 is a schematic diagram showing an example of the operation of the non-shielding
A part of the posture set loaded onto the memory of the
まず、図18の撮影画像I1に示す姿勢では、ロボット30によってマーカ31の一部が遮蔽されており、マーカ31の位置姿勢の推定が失敗する可能性がある。仮に、撮影画像I1に映っているマーカ31の一部から、マーカ31の位置姿勢の推定が可能であった場合は、非遮蔽姿勢抽出部26は、たとえば上述したようにマーカ31が遮蔽なく撮影画像に映ったときのマーカ31の面積と、シミュレータ上で撮像部32の撮影画像上に実際に映っているマーカ31の面積との比率を、推定の信頼度として算出する。この信頼度を算出するにあたって、あるロボット30の姿勢における、カメラ座標系C4とマーカ31の位置姿勢は、姿勢集合生成部23により既知である。したがって、マーカ31の位置姿勢の情報と、撮像部32の画角、解像度、カメラパラメータなどの情報とを用いて、マーカ31が遮蔽なく画像に映った場合の、画像上でのマーカ31のピクセル位置の集合(以下、「ピクセル集合」という。)を特定することができる。
First, in the posture shown in the photographed image I1 of FIG. 18, a portion of the
続いて、非遮蔽姿勢抽出部26は、シミュレータでロボット30や環境設置物33の色情報を、マーカ31に含まれない色、たとえばRGB値が(255,0,0)の色に変更するとともに、ロボット30の姿勢を変更して、撮像部32による撮影画像を仮想的に生成する。撮影画像におけるマーカ31の位置はピクセル集合と一致し、遮蔽が生じたピクセルの色は(255,0,0)となる。このため、非遮蔽姿勢抽出部26は、ピクセル集合のうち、(255,0,0)の色ではないピクセルの割合を、推定の信頼度として算出する。したがって、撮影画像I1の場合は、マーカ31がロボット30によって半分ほど遮蔽されているため、推定の信頼度は約50%と算出される。また、信頼度と比較される閾値を予め90%と設定した場合は、撮影画像I1における信頼度は閾値未満となる。
Next, the non-shielding
一方、図18の撮影画像I2に示す姿勢では、マーカ31の遮蔽が生じておらず、マーカ31全体が画像上に映っている。このため、撮影画像I2の場合は、マーカ31の位置姿勢の推定が可能であり、推定の信頼度も閾値以上に高くなるため、成功パターンとなる。
また、図18の撮影画像I3に示す姿勢では、撮像部32の画角内にマーカ31が配置されているが、環境設置物33によってマーカ31の一部が遮蔽されている。このため、マーカ31の位置姿勢の推定が失敗する可能性がある。また、撮影画像I3にはマーカ31上の黒丸の総数12個のうち9個が映っているため、仮にマーカ31の位置姿勢の推定が可能であった場合は、信頼度の計算が行われる。その際、非遮蔽姿勢抽出部26は、たとえば上述したように、撮影画像を解析したときに得られるマーカ31上の特徴点の個数と、特徴点の総数との割合を、推定の信頼度として算出する。黒丸の中心を特徴点とする場合は、総数12個の特徴点のうち、画像解析で得られる特徴点の個数は9個となり、推定の信頼度は75%と算出される。また、信頼度と比較される閾値を予め90%と設定した場合は、撮影画像I3における信頼度は閾値未満となる。
On the other hand, in the posture shown in the photographed image I2 of FIG. 18, the
Furthermore, in the posture shown in the captured image I3 of FIG. 18, the
以上述べた非遮蔽姿勢抽出部26の処理により、マーカ31の遮蔽の有無が判定され、且つ、マーカ31の遮蔽が無しと判定された姿勢集合(撮影画像I2、I4、I5…に示す姿勢)が生成される。その結果、撮影画像の右と中央部分にマーカ31が映るような姿勢のみが生成される。
また、非遮蔽姿勢抽出部26は、ロボット30を各姿勢(変数i=1~N2に対応する姿勢)へと移動させたときに撮像部32によって得られる撮影画像を仮想的に生成するとともに、生成した撮影画像を解析することによってマーカ31の三次元位置を推定し、推定に成功したか否かによってマーカ31の遮蔽の有無を判断する。具体的には、推定に成功した場合はマーカ31の遮蔽が無しと判定し、推定に失敗した場合はマーカ31の遮蔽が有りと判定する。これにより、マーカ31の遮蔽が生じない姿勢を抽出することができる。
また、非遮蔽姿勢抽出部26は、マーカ31の三次元位置の推定に成功した場合に、推定の信頼度を求め、信頼度が閾値以上であるか否かによってマーカ31の遮蔽の有無を判定する。具体的には、推定の信頼度が閾値以上であれば、マーカ31の遮蔽が無しと判定し、推定の信頼度が閾値未満であれば、マーカ31の遮蔽が有りと判定する。これにより、マーカ31の三次元位置の推定に成功した姿勢のうち、推定の信頼度が閾値以上に高い姿勢のみを、マーカ31の遮蔽が生じない姿勢として抽出することができる。
Through the processing of the non-shielding
In addition, the non-obstructed
Furthermore, when the three-dimensional position of the
なお、本実施形態において、非遮蔽姿勢抽出部26は、推定の信頼度を算出しているが、マーカ31の形状や模様によっては推定の信頼度を算出しなくてもよい。すなわち、推定の信頼度は、必要に応じて算出すればよい。また、信頼度の計算は、上述した面積比率や特徴点比率に限らず、たとえば機械学習などを用いてマーカ31の位置姿勢を推定する場合は、推定の信頼度自体を推定させてもよい。
Note that in the present embodiment, the non-obscured
続いて、姿勢集合評価部27の処理内容について詳しく説明する。
姿勢集合評価部27は、姿勢集合生成部23により生成され、且つ、非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26により抽出された姿勢集合を用いて、所定値以上に高精度なキャリブレーションが見込めるか否かを判定する。また、姿勢集合評価部27は、所定値以上に高精度なキャリブレーションが見込める場合は、キャリブレーション実行部29にキャリブレーションの実行を指示する。また、姿勢集合評価部27は、所定値以上に高精度なキャリブレーションが見込めない場合は、姿勢集合生成部23に対して、姿勢集合を追加する指示、および/または、生成パラメータの値を変更して姿勢集合を再度生成する指示を行う。
Next, the processing contents of the posture set
The posture set
図19は、姿勢集合評価部27の機能ブロック図である。
図19に示すように、姿勢集合評価部27は、姿勢数評価部271と、姿勢集合抽出部272と、キャリブレーション評価部273と、インデックス評価部274と、を備えている。
FIG. 19 is a functional block diagram of the posture set
As shown in FIG. 19, the posture set
姿勢数評価部271は、姿勢集合生成部23により生成され、且つ、非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26により抽出された姿勢集合に含まれる姿勢の数を評価する。具体的には、姿勢数評価部271は、姿勢集合に含まれる姿勢の数が、予め設定された所定数以内に収まっているか否かを判別する。
姿勢集合抽出部272は、姿勢集合に含まれる姿勢の数が所定数以内に収まっていないと姿勢数評価部271が判定した場合に、姿勢集合に含まれる複数の姿勢のうち、一部の姿勢であるサブセットを抽出する。たとえば、姿勢集合に合計100個の姿勢が含まれる場合は、100個の姿勢のうち20個の姿勢をサブセットとして抽出する。
The pose
When the posture
キャリブレーション評価部273は、上記の姿勢集合を用いて、シミュレータ上で仮想的にキャリブレーションに用いるマーカ・カメラ変換行列M2とアーム・基部変換行列M3などのデータを生成し、キャリブレーションにて推定するマーカ・カメラ変換行列M2の推定精度を評価する。すなわち、キャリブレーション評価部273は、キャリブレーションの精度を評価する。
インデックス評価部274は、たとえば姿勢数の不足などにより、所定値以上に高いキャリブレーション精度が見込めないとキャリブレーション評価部273が判定した場合に、姿勢集合生成部23に対して姿勢集合を追加もしくは再度生成するよう指示する。
The
When the
以下に、姿勢集合評価部27の各部の処理内容について詳しく説明する。
まず、姿勢数評価部271は、姿勢集合に含まれる姿勢の数が事前知識21などで定めた閾値より多い場合に、その姿勢集合の中から一部の姿勢、すなわちサブセットを抽出するよう姿勢集合抽出部272に指示する。また、姿勢数評価部271は、姿勢集合抽出部272が抽出したサブセットにて所定値以上の高いキャリブレーション精度が見込めるか否かをキャリブレーション評価部273に判定させる。このように、姿勢集合の中から姿勢の一部をサブセットとして取り出すことにより、姿勢集合に含まれる姿勢の数が多い場合に、キャリブレーションの所要時間が長くなることを抑制し、効率よくキャリブレーション精度を評価することができる。
The processing contents of each part of the posture set
First, when the number of postures included in the posture set is greater than a threshold determined by the
姿勢集合抽出部272は、複数の姿勢の集合である姿勢集合から、予め決められたルールに基づき、一部の姿勢を抽出する。ルールは、たとえば、各姿勢が生成された小空間に付与されたインデックスが平均的に出現するように抽出する方法がある。具体例を挙げると、姿勢集合抽出部272は、抽出する姿勢の上限個数が21個と設定されている場合、次のようなルールに基づき、一部の姿勢を抽出する。
The posture set
まず、上記図9に示すように教示空間T1を分割して得られる合計27個の小空間に対応する姿勢(教示姿勢)のうち、Z=1のインデックスが付与された小空間の姿勢が9個、Z=2のインデックスが付与された小空間の姿勢が7個、Z=3のインデックスが付与された小空間の姿勢が7個、つまり合計23個の姿勢が、前段の非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26によって抽出された場合は、姿勢の抽出数が最も多い、Z=1のインデックスが付与された小空間の姿勢を2つ削減する。これにより、インデックスが平均的に出現するように、一部の姿勢を抽出することができる。
First, among the postures (teaching postures) corresponding to a total of 27 small spaces obtained by dividing the teaching space T1 as shown in FIG. , 7 small space poses with an index of Z = 2, and 7 small space poses with an index of Z = 3, that is, a total of 23 poses are the non-physical interference poses of the previous stage. When extracted by the extracting
キャリブレーション評価部273は、シミュレータ上で仮想的にキャリブレーションする際に用いるマーカ・カメラ変換行列M2とアーム・基部変換行列M3を生成し、最適化処理(後述)によって基部・カメラ変換行列M1の推定値を求める。さらに、キャリブレーション評価部273は、基部・カメラ変換行列M1の推定値とシミュレータ設計時の正解値とを比較し、ロボット作業の実行に必要なキャリブレーション精度、すなわち所定値以上に高いキャリブレーション精度が出ているか否かを判定する。基部・カメラ変換行列M1の推定値を求める方法は、キャリブレーション実行部29の処理内容とあわせて後段で説明する。
The
キャリブレーション評価部273は、生成したマーカ・カメラ変換行列M2とアーム・基部変換行列M3に誤差を加えることにより、基部・カメラ変換行列M1の推定値を求めてもよい。その理由は次のとおりである。
実際に現実装置2Aでキャリブレーションを実行する場合は、ノイズなどによる誤差が観測データに乗る。このため、上述したようにマーカ・カメラ変換行列M2とアーム・基部変換行列M3に誤差を加えることにより、実機に近い条件でキャリブレーション評価を行うことができる。
The
When actually performing calibration with the
その場合、マーカ・カメラ変換行列M2とアーム・基部変換行列M3に加える誤差は、たとえば、正規分布に従う誤差を採用すればよい。このときの正規分布の標準偏差は、事前知識21などで指定するか、マーカ・カメラ変換行列M2とアーム・基部変換行列M3の値に対して一定の割合を有する値で指定してもよい。
In that case, the error added to the marker/camera transformation matrix M2 and the arm/base transformation matrix M3 may be, for example, an error that follows a normal distribution. The standard deviation of the normal distribution at this time may be specified by the
なお、観測データに乗るノイズは、たとえば、観測データがロボット30のエンコーダ値である場合はロボット機構の誤差に起因するノイズであり、観測データが撮像部32による撮影画像である場合は、信号ノイズや画像歪みに起因するノイズである。また、観測データは、撮像部32による撮像画像を解析して得られるマーカ31の位置姿勢であってもよい。
Note that the noise in the observation data is, for example, noise caused by errors in the robot mechanism when the observation data is an encoder value of the
キャリブレーション評価部273は、所定値以上に高精度なキャリブレーションが見込めると判定した場合は、キャリブレーション実行部29に対してキャリブレーションの実行を指示する。キャリブレーション実行部29は、キャリブレーション評価部273からの指示を受けてキャリブレーションを実行することにより、基部・カメラ変換行列M1を推定する。また、キャリブレーション評価部273は、所定値以上に高精度なキャリブレーションが見込めないと判定した場合は、インデックス評価部274に対してインデックス評価の実行を指示する。
If the
インデックス評価部274は、キャリブレーション評価部273からインデックス評価の実行指示を受けた場合(所定値以上に高精度なキャリブレーションが見込めない場合)に、追加で姿勢を生成するよう姿勢集合生成部23に指示する、および/または、生成パラメータ22の値を変更するようパラメータ更新部28に指示する。このようなフィードバックを行うことにより、姿勢集合生成部23では、再度、姿勢集合を生成することが可能になるとともに、追加の姿勢を含む姿勢集合、または、更新後の生成パラメータ22に基づく姿勢集合を生成することが可能となる。これにより、姿勢集合生成部23が再度、姿勢集合を生成した場合に、所定値以上に高精度なキャリブレーションが見込める可能性を高めることができる。
When the
インデックス評価部274は、キャリブレーション評価部273で評価した姿勢集合を取得し、その姿勢集合に含まれる姿勢の数が事前に定めた閾値よりも少ない場合は、各姿勢に割り振られたインデックス(X,Y,Z)のうち、全姿勢集合をサーチした際に登場頻度が最も少ないインデックスをインクリメントするようパラメータ更新部28に指示する。もしくは、インデックス評価部274は、取得した姿勢集合に含まれる姿勢の数が事前に定めた閾値よりも少ない場合は、追加の姿勢を生成するよう姿勢集合生成部23に指示する。生成方法の例として、取得した姿勢集合の中から複数の姿勢をランダムに抽出し、その姿勢のインデックスに対応する小空間の中で、教示位置と教示姿勢を生成する方法などがあるが、これに限らない。
The
以上述べた姿勢集合評価部27の処理により、姿勢集合の評価結果を、姿勢集合生成部23やパラメータ更新部28にフィードバックすることができる。また、所定値以上に高精度なキャリブレーションが見込める場合にのみ、キャリブレーション実行部29にキャリブレーションを実行させることができる。このため、姿勢数の不足などによってキャリブレーションの精度が低下することを抑制できる。また、所定値以上に高精度なキャリブレーションが見込めない場合は、姿勢集合生成部23に再度、姿勢集合を生成させることができる。
Through the processing of the posture set
なお、本実施形態において、姿勢集合評価部27は、姿勢数評価部271および姿勢集合抽出部272を有しているが、これに限らず、キャリブレーション評価部273およびインデックス評価部274のみを有する構成でもよい。また、キャリブレーション評価部273の機能とインデックス評価部274の機能を、1つの機能部に統合してもよい。
また、本実施形態においては、姿勢集合抽出部272の処理に適用するルールとして、各小空間に付与されたインデックスが平均的に出現するルールを例示したが、これに限らず、たとえば姿勢集合からランダムに一部の姿勢を抽出してもよい。
Note that in the present embodiment, the posture set
In addition, in the present embodiment, as a rule applied to the processing of the posture
パラメータ更新部28は、姿勢集合の分解能を定めるパラメータX1,Y1,Z1の値を、姿勢集合評価部27からの指示に基づいてインクリメントする。これにより、生成パラメータ22が更新される。このため、姿勢集合生成部23は、更新後の生成パラメータ22を用いて姿勢集合を生成することになる。
The
図20は、キャリブレーション実行部29の処理手順を示すフローチャートである。
キャリブレーション実行部29は、現実装置2Aが有するロボット30と撮像部32を制御し、姿勢集合の各姿勢へとロボット30を移動させたときのマーカ・カメラ変換行列M2とアーム・基部変換行列M3とを取得する。さらに、キャリブレーション実行部29は、取得したマーカ・カメラ変換行列M2とアーム・基部変換行列M3との座標変換パラメータにより、基部・カメラ変換行列M1を推定する。
FIG. 20 is a flowchart showing the processing procedure of the
The
まず、キャリブレーション実行部29は、姿勢集合評価部27が所定値以上に高精度なキャリブレーションが見込めると判断(評価)した姿勢集合を制御装置1のメモリ上にロードする(ステップS37)。
次に、キャリブレーション実行部29は、上記の姿勢集合に含まれる姿勢の数N3を取得する(ステップS38)。
次に、キャリブレーション実行部29は、変数iを初期値(i=1)に設定する(ステップS39)。
次に、キャリブレーション実行部29は、現実装置2Aにおいて実際にロボット30をi番目の姿勢へと移動させる(ステップS40)。
次に、キャリブレーション実行部29は、ロボット30の作業空間を撮像部32によって撮影する(ステップS41)。
次に、キャリブレーション実行部29は、撮像部32によって得られる撮影画像を解析することにより、マーカ・カメラ変換行列M2を推定する(ステップS42)。
First, the
Next, the
Next, the
Next, the
Next, the
Next, the
次に、キャリブレーション実行部29は、マーカ・カメラ変換行列M2の推定に成功したか否かを判定する(ステップS43)。このステップS43においては、現実装置2Aにおける実際の照明環境、あるいは現実装置2Aが有する撮像部32の設計値との仕様・配置ズレなどにより、マーカ・カメラ変換行列M2の推定に失敗する可能性がある。
Next, the
次に、キャリブレーション実行部29は、マーカ・カメラ変換行列M2の推定に成功した場合は、i番目のロボット30の姿勢値を示すアーム・基部変換行列M3と、i番目のロボット30の姿勢に対応するマーカ31の位置姿勢を示すマーカ・カメラ変換行列M2とを、制御装置1のメモリ上に格納する(ステップS44)。
Next, if the estimation of the marker/camera transformation matrix M2 is successful, the
次に、キャリブレーション実行部29は、変数iの値がi=N3を満たすか否かを判定する(ステップS45)。そして、キャリブレーション実行部29は、変数iの値がN3未満である場合は、変数iの値を1だけインクリメントした後(ステップS46)、上記ステップS40の処理に戻る。
Next, the
一方で、キャリブレーション実行部29は、上記ステップS43でマーカ・カメラ変換行列M2の推定に失敗したと判定した場合は、ステップS44の処理をパスする。
On the other hand, if the
その後、キャリブレーション実行部29は、変数iの値がN3に達した場合は、上記メモリ上のデータから最適化問題を解き、基部・カメラ変換行列M1を推定した後(ステップS47)、一連の処理を終える。
ステップS47において最適化問題を解くことが、最適化処理に相当する。この最適化処理によって基部・カメラ変換行列M1を推定する手法としては、下記の参考文献に示す公知技術を用いることができる。
Thereafter, when the value of the variable i reaches N3, the
Solving the optimization problem in step S47 corresponds to optimization processing. As a method for estimating the base/camera transformation matrix M1 through this optimization process, the known techniques shown in the following references can be used.
(参考文献)
「Simultaneous Robot-World and Hand-Eye Calibration」F.Dornaika,R.Horaud,Aug1998.
この参考文献に開示された公知技術を概説すると、次のようになる。
ロボット基部とアーム先端の座標変換パラメータ(変換行列)をAA、アーム先端とマーカの座標変換パラメータをBBとすると、ロボット基部からマーカへの座標変換はAA×BBとなる。一方、ロボット基部とカメラの座標変換パラメータをCC、カメラとマーカの座標変換パラメータをDDとすると、ロボット基部からマーカへの座標変換はCC×DDとなる。つまり、AA×BB=CC×DDの条件が成立する。ここで、座標変換パラメータAAはロボットエンコーダ値により既知のパラメータ、座標変換パラメータBBおよびCCはそれぞれ未知のパラメータ、座標変換パラメータDDは画像解析によって既知のパラメータとなる。そこで最適化処理では、それぞれ既知のパラメータである多数の座標変換パラメータAAおよびDDから、AA×BB=CC×DDの条件を満たす座標変換パラメータBBおよびCCを数値計算によって推定する。
以上述べたキャリブレーション実行部29の処理により、現実装置2Aにおける基部・カメラ変換行列M1を推定することができる。
(References)
"Simultaneous Robot-World and Hand-Eye Calibration" F. Dornaika, R. Horaud, Aug1998.
An overview of the known technology disclosed in this reference is as follows.
Assuming that the coordinate transformation parameter (transformation matrix) between the robot base and the arm tip is AA, and the coordinate transformation parameter between the arm tip and marker is BB, the coordinate transformation from the robot base to the marker is AA×BB. On the other hand, if CC is the coordinate transformation parameter between the robot base and the camera, and DD is the coordinate transformation parameter between the camera and the marker, then the coordinate transformation from the robot base to the marker is CC×DD. In other words, the condition AA×BB=CC×DD is satisfied. Here, the coordinate transformation parameter AA is a known parameter based on the robot encoder value, the coordinate transformation parameters BB and CC are unknown parameters, and the coordinate transformation parameter DD is a known parameter based on image analysis. Therefore, in the optimization process, coordinate transformation parameters BB and CC that satisfy the condition AA×BB=CC×DD are estimated by numerical calculation from a large number of coordinate transformation parameters AA and DD, each of which is a known parameter.
Through the processing of the
また、本実施形態に係るキャリブレーション装置2によれば、撮像部32によってマーカ31を撮像(撮影)可能とするためのロボット30の姿勢集合を姿勢集合生成部23が生成し、その姿勢集合の中から、マーカ31の遮蔽が発生しない姿勢を非遮蔽姿勢抽出部26が抽出する。このため、マーカ31の遮蔽が発生しない姿勢集合を自動で生成することができる。したがって、マーカ31の遮蔽を考慮してロボット30の姿勢集合を教示するとともに、ロボット30の姿勢集合の教示に要する工数を削減することができる。
Further, according to the
また、本実施形態に係るキャリブレーション装置2によれば、姿勢集合生成部23が生成した姿勢集合の中から、ロボット30やマーカ31が物理干渉しない姿勢を非物理干渉姿勢抽出部25が抽出する。このため、ロボット30やマーカ31が物理干渉しない姿勢集合を自動で生成することができる。したがって、現実装置2Aにおける物理干渉を考慮してロボット30の姿勢集合を教示するとともに、ロボット30の姿勢集合の教示に要する工数を削減することができる。
Further, according to the
なお、上記実施形態においては、姿勢集合生成部23が生成した姿勢集合の中から非物理干渉姿勢抽出部25が非物理干渉姿勢を抽出し、該抽出した非物理干渉姿勢の姿勢集合の中から非遮蔽姿勢抽出部26が非遮蔽姿勢を抽出する構成になっているが、これに限らない。たとえば、姿勢集合生成部23が生成した姿勢集合の中から非遮蔽姿勢抽出部26が非遮蔽姿勢を抽出し、該抽出した非遮蔽姿勢の姿勢集合の中から非物理干渉姿勢抽出部25が非物理干渉姿勢を抽出する構成になっていてもよい。また、非物理干渉姿勢抽出部25は、姿勢集合生成部23が生成した姿勢集合の中から非物理干渉姿勢を抽出し、非遮蔽姿勢抽出部26は、姿勢集合生成部23が生成した姿勢集合の中から非物理干渉姿勢を抽出し、非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26がそれぞれに抽出した姿勢集合のうち、共通の姿勢を対象に姿勢集合評価部27が評価する構成であってもよい。また、非物理干渉姿勢抽出部25および非遮蔽姿勢抽出部26のうち、非遮蔽姿勢抽出部26のみを備えた構成であってもよい。以上の点は、後述する第2実施形態についても同様である。
In the above embodiment, the non-physical interference
<第2実施形態>
図21は、第2実施形態に係るロボット制御用のキャリブレーション装置の構成例を示す図である。
図21に示すように、キャリブレーション装置2-1は、制御装置1と、現実装置2Cと、キャリブレーション制御装置2Dと、を備えている。
<Second embodiment>
FIG. 21 is a diagram illustrating a configuration example of a calibration device for robot control according to the second embodiment.
As shown in FIG. 21, the calibration device 2-1 includes a
現実装置2Cは、ロボットアームからなるロボット30と、ロボット30に取り付けられたマーカ31と、ロボット30の作業空間と周辺を計測する撮像部32-1と、を有する。現実装置2Cは、撮像部32-1以外の構成は、上記第1実施形態の場合と共通である。撮像部32-1は、複数(図例では2つ)の撮像装置32A,32Bによって構成されている。各々の撮像装置32A,32Bは、たとえば、単眼カメラ、ToF(Time of Flight)方式のカメラ、ステレオカメラなどによって構成される。
The
キャリブレーション制御装置2Dは、事前知識21-1と、生成パラメータ22-1と、姿勢集合生成部23-1と、シミュレータ構築部24-1と、非物理干渉姿勢抽出部25-1と、非遮蔽姿勢抽出部26-1と、姿勢集合評価部27-1と、パラメータ更新部28-1と、キャリブレーション実行部29-1とに加えて、共通姿勢抽出部201を備えている。共通姿勢抽出部201以外の構成は基本的に上記第1実施形態の場合と共通である。
The
ただし、本実施形態においては、撮像部32-1が複数の撮像装置32A,32Bによって構成されている。このため、事前知識21-1と、生成パラメータ22-1と、姿勢集合生成部23-1と、シミュレータ構築部24-1と、非物理干渉姿勢抽出部25-1と、非遮蔽姿勢抽出部26-1と、姿勢集合評価部27-1と、パラメータ更新部28-1と、キャリブレーション実行部29-1は、それぞれ複数の撮像装置32A,32Bに対して上記第1実施形態の場合と同様の処理動作を行う。たとえば、姿勢集合生成部23-1は、撮像装置32Aによってマーカ31を撮影可能とするためのロボット30の姿勢集合と、撮像装置32Bによってマーカ31を撮影可能とするためのロボット30の姿勢集合とを、個別に生成する。撮像装置32A,32Bごとの個別処理は、姿勢集合生成部23-1だけでなく、シミュレータ構築部24―1、非物理干渉姿勢抽出部25-1、非遮蔽姿勢抽出部26―1、姿勢集合評価部27―1、パラメータ更新部28―1、およびキャリブレーション実行部29―1でも行われる。
However, in this embodiment, the imaging section 32-1 is configured by a plurality of
共通姿勢抽出部201は、姿勢集合生成部23-1が撮像装置32A,32Bごとに生成し、且つ、非物理干渉姿勢抽出部25-1および非遮蔽姿勢抽出部26-6が撮像装置32A,32Bごとに抽出した姿勢集合の中から、複数の撮像装置32A,32Bで共通に使用可能な複数の姿勢を抽出する。また、共通姿勢抽出部201は、抽出した複数の姿勢が残るように、各撮像装置32A,32Bの姿勢集合を変更する。以下、詳しく説明する。
The common
共通姿勢抽出部201は、ある撮像装置32Aに対応して生成した姿勢集合に含まれる各々の姿勢が、別の撮像装置32Bにも適用可能であるか否かを判定し、同様の判定処理をすべての撮像装置32A,32Bの組み合わせに対して実施する。例として、ある撮像装置32Aに対応して生成した姿勢集合に含まれる各々の姿勢が、別の撮像装置32Bにも適用可能であるか否かは、シミュレータ構築部24-1が構築するシミュレータ上でロボット30を制御し、各姿勢へとマーカ31を移動した際に、下記(1)~(3)の条件を満たすか否かによって判定可能である。
(1)マーカ31が撮像装置32Bの教示空間内に含まれていること。
(2)マーカ31と撮像装置32Bの回転行列が、事前に設定した閾値の範囲内に収まっていること。
(3)非遮蔽姿勢抽出部26-1の機能にてオクルージョンが発生しないと判定できること。
The common
(1) The
(2) The rotation matrices of the
(3) The function of the non-occlusion posture extraction unit 26-1 can determine that occlusion does not occur.
上記の判定結果において、複数の撮像装置32A,32Bで共通に使用可能な姿勢(以下、「共通姿勢」ともいう。)は、その姿勢を適用可能な撮像装置32A,32Bの姿勢集合を構成する姿勢の1つとして追加する。この処理により、事前に定めた姿勢数の上限を超える場合は、いずれかの撮像装置(32Aまたは32B)でのみ使用可能な姿勢は、撮像装置32A,32Bの姿勢集合から除去することで、キャリブレーション実行部29によるキャリブレーションに適用する姿勢の数を調整(削減)する。姿勢を除去する際の優先度は、たとえば、追加された姿勢が位置する小空間と同様の小空間にある姿勢を優先的に除去する方法がある。
In the above determination result, the postures that can be commonly used by the plurality of
本実施形態に係るキャリブレーション装置2-1によれば、上記第1実施形態と同様の効果に加えて、次のような効果が得られる。
本実施形態においては、複数の撮像装置32A,32Bで共通に使用可能な複数の姿勢を共通姿勢抽出部201が抽出し、抽出した複数の姿勢を適用してキャリブレーション実行部29-1がキャリブレーションを実行する。このため、撮像部32を複数の撮像装置32A,32Bによって構成した場合でも、ロボット30の姿勢集合の教示およびキャリブレーションに要する工数を削減しつつ、キャリブレーションを実行することが可能となる。
According to the calibration device 2-1 according to the present embodiment, in addition to the same effects as in the first embodiment, the following effects can be obtained.
In this embodiment, the common
なお、本実施形態において、共通姿勢抽出部201は、姿勢集合生成部23-1が撮像装置32A,32Bごとに生成し、且つ、非物理干渉姿勢抽出部25-1および非遮蔽姿勢抽出部26-6が撮像装置32A,32Bごとに抽出した姿勢集合の中から、共通姿勢を抽出する構成になっているが、これに限らない。たとえば、共通姿勢抽出部201は、姿勢集合生成部23-1が撮像装置32A,32Bごとに生成した姿勢集合の中から、共通姿勢を抽出してもよい。また、共通姿勢抽出部201は、非物理干渉姿勢抽出部25-1が撮像装置32A,32Bごとに抽出した姿勢集合の中から、共通姿勢を抽出してもよい。また、共通姿勢抽出部201は、非遮蔽姿勢抽出部26-6が撮像装置32A,32Bごとに抽出した姿勢集合の中から、共通姿勢を抽出してもよい。
In this embodiment, the common
また、本実施形態において、共通姿勢抽出部201は、シミュレータ上でロボット30を制御し、共通で使用可能な姿勢を判定したが、これに限らず、たとえば、撮像部32の設計上の配置情報と、マーカ31の教示位置および姿勢のみから判定してもよい。また、各々の撮像装置32A,32Bの姿勢集合に含まれる姿勢数の上限を定めず、キャリブレーション時の姿勢を増やすことで、精度の向上が見込める場合がある。その場合は、事前に姿勢数の上限を定めなくてもよい。
Further, in the present embodiment, the common
<変形例等>
なお、本発明は、上述した実施形態に限定されるものではなく、様々な変形例を含む。たとえば、上述した実施形態では、本発明の内容を理解しやすいように詳細に説明しているが、本発明は、上述した実施形態で説明したすべての構成を必ずしも備えるものに限定されない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能である。また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、これを削除し、または他の構成を追加し、あるいは他の構成に置換することも可能である。
<Modified examples, etc.>
Note that the present invention is not limited to the embodiments described above, and includes various modifications. For example, in the embodiments described above, the content of the present invention is explained in detail to make it easier to understand, but the present invention is not necessarily limited to having all the configurations described in the embodiments described above. Further, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment. Furthermore, it is also possible to add the configuration of another embodiment to the configuration of one embodiment. It is also possible to delete some of the configurations of each embodiment, add other configurations, or replace them with other configurations.
2,2-1…キャリブレーション装置、2A,2C…現実装置、23,23-1…姿勢集合生成部、25,25-1…非物理干渉姿勢抽出部、26,26-1…非遮蔽姿勢抽出部、27,27-1…姿勢集合評価部、28,28-1…パラメータ更新部、29,29-1…キャリブレーション実行部、30…ロボット(ロボットアーム)、31…マーカ、32…撮像部、32A,32B…撮像装置、33…環境設置物、201…共通姿勢抽出部、M1…基部・カメラ変換行列(座標変換パラメータ)
2, 2-1... Calibration device, 2A, 2C... Actual device, 23, 23-1... Posture set generation unit, 25, 25-1... Non-physical interference attitude extraction unit, 26, 26-1... Non-shielding attitude Extraction unit, 27, 27-1... Posture set evaluation unit, 28, 28-1... Parameter update unit, 29, 29-1... Calibration execution unit, 30... Robot (robot arm), 31... Marker, 32...
Claims (8)
ロボットに取り付けられ、前記ロボットの動作にしたがって変位するマーカと、
前記撮像部によって前記マーカを撮像可能とするための前記ロボットの複数の姿勢を含む姿勢集合を生成する姿勢集合生成部と、
前記姿勢集合生成部によって生成された前記姿勢集合の中から、前記マーカの遮蔽が生じない複数の姿勢を抽出する非遮蔽姿勢抽出部と、
前記非遮蔽姿勢抽出部によって抽出された前記複数の姿勢に基づいて、前記ロボットの座標系と前記撮像部の座標系を変換するための第1の座標変換パラメータを推定するキャリブレーション実行部と、
を備え、
前記キャリブレーション実行部は、前記非遮蔽姿勢抽出部によって抽出された前記複数の姿勢の各姿勢について、当該姿勢へ前記ロボットを移動させ、前記ロボットの作業空間を前記撮像部によって撮影し、撮影により得られる撮影画像を解析することにより、当該姿勢における前記マーカの座標系と前記撮像部の座標系を変換するための第2の座標変換パラメータを推定し、
前記キャリブレーション実行部は、さらに、前記複数の姿勢の各姿勢における前記第2の座標変換パラメータを使用して、数値計算を行うことにより、前記第1の座標変換パラメータを推定する
ロボット制御用のキャリブレーション装置。 an imaging unit that captures an image from a predetermined position;
a marker attached to a robot and displaced according to the movement of the robot;
a posture set generation unit that generates a posture set including a plurality of postures of the robot to enable the imaging unit to image the marker;
a non-obscuring posture extracting unit that extracts a plurality of postures in which the marker is not occluded from the posture set generated by the posture set generating unit;
a calibration execution unit that estimates a first coordinate conversion parameter for converting the coordinate system of the robot and the coordinate system of the imaging unit based on the plurality of postures extracted by the non-obstructed posture extraction unit;
Equipped with
The calibration execution unit is configured to move the robot to each of the plurality of postures extracted by the non-obstructed posture extraction unit, photograph the working space of the robot using the imaging unit, and perform image capture by photographing the robot. Estimating a second coordinate transformation parameter for transforming the coordinate system of the marker and the coordinate system of the imaging unit in the posture by analyzing the obtained captured image,
The calibration execution unit further estimates the first coordinate transformation parameter by performing numerical calculation using the second coordinate transformation parameter in each of the plurality of orientations.
Calibration device for robot control.
前記姿勢集合生成部は、前記複数の撮像装置の各々について、前記撮像装置によって前記マーカを撮像可能とするための前記ロボットの姿勢集合を個別に生成し、
前記姿勢集合生成部が前記撮像装置ごとに個別に生成した前記ロボットの姿勢集合の中から、前記複数の撮像装置で共通に使用可能な複数の姿勢を抽出する共通姿勢抽出部をさらに備え、
前記キャリブレーション実行部は、前記共通姿勢抽出部によって抽出された複数の姿勢を適用して前記第1の座標変換パラメータを推定する
請求項1に記載のロボット制御用のキャリブレーション装置。 The imaging unit is configured by a plurality of imaging devices,
The posture set generation unit individually generates a posture set of the robot for each of the plurality of imaging devices to enable the imaging device to image the marker,
further comprising a common posture extraction section that extracts a plurality of postures that can be commonly used by the plurality of imaging devices from among the posture sets of the robot that are individually generated for each of the imaging devices by the posture set generation section;
The calibration device for robot control according to claim 1, wherein the calibration execution section estimates the first coordinate transformation parameter by applying a plurality of postures extracted by the common posture extraction section.
前記非遮蔽姿勢抽出部は、前記非物理干渉姿勢抽出部によって抽出された前記複数の姿勢を含む姿勢集合の中から、前記マーカの遮蔽が生じない姿勢を抽出する
請求項1に記載のロボット制御用のキャリブレーション装置。 A plurality of postures in which the robot and the marker do not physically interfere with any part of the actual device including the robot and environmental objects are extracted from the posture set generated by the posture set generation unit. Furthermore, it is equipped with a physical interference pose extraction section,
The robot control according to claim 1, wherein the non-obstructed posture extraction section extracts a posture in which the marker is not occluded from a posture set including the plurality of postures extracted by the non-physical interference posture extraction section. Calibration device for.
前記キャリブレーション実行部は、前記所定値以上に高精度なキャリブレーションが見込めると前記姿勢集合評価部が判定した場合に、前記第1の座標変換パラメータを推定する
請求項1に記載のロボット制御用のキャリブレーション装置。 further comprising a posture set evaluation unit that determines whether or not a highly accurate calibration of a predetermined value or higher can be expected using the posture set including the plurality of postures extracted by the non-obscured posture extraction unit;
2. The robot control system according to claim 1 , wherein the calibration execution unit estimates the first coordinate transformation parameter when the posture set evaluation unit determines that highly accurate calibration greater than or equal to the predetermined value is expected. calibration equipment.
請求項4に記載のロボット制御用のキャリブレーション装置。 5. The robot control system according to claim 4, wherein the posture set evaluation section instructs the posture set generation section to additionally generate postures when a highly accurate calibration higher than the predetermined value cannot be expected. Calibration device.
請求項4に記載のロボット制御用のキャリブレーション装置。 The apparatus further includes a parameter updating section that changes the value of a parameter used by the posture set generation section to generate the posture set when the posture set evaluation section determines that highly accurate calibration higher than the predetermined value is not expected. The calibration device for robot control according to claim 4.
請求項1に記載のロボット制御用のキャリブレーション装置。 The non-obstructed posture extraction section virtually generates a photographed image obtained by the imaging section when the robot is moved to each posture, and analyzes the generated photographed image to obtain a three-dimensional image of the marker. The calibration device for robot control according to claim 1, wherein the original position is estimated, and whether or not the marker is occluded is determined based on whether or not the estimation is successful.
請求項7に記載のロボット制御用のキャリブレーション装置。 8. The non-occluded posture extracting unit determines the reliability of the estimation when the estimation is successful, and determines whether or not the marker is occluded based on whether the reliability is equal to or higher than a threshold value. Calibration device for robot control.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021055774A JP7437343B2 (en) | 2021-03-29 | 2021-03-29 | Calibration device for robot control |
PCT/JP2021/040394 WO2022208963A1 (en) | 2021-03-29 | 2021-11-02 | Calibration device for controlling robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021055774A JP7437343B2 (en) | 2021-03-29 | 2021-03-29 | Calibration device for robot control |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022152845A JP2022152845A (en) | 2022-10-12 |
JP7437343B2 true JP7437343B2 (en) | 2024-02-22 |
Family
ID=83458339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021055774A Active JP7437343B2 (en) | 2021-03-29 | 2021-03-29 | Calibration device for robot control |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7437343B2 (en) |
WO (1) | WO2022208963A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014161603A1 (en) | 2013-04-05 | 2014-10-09 | Abb Technology Ltd | A robot system and method for calibration |
JP2015182144A (en) | 2014-03-20 | 2015-10-22 | キヤノン株式会社 | Robot system and calibration method of robot system |
JP2019217571A (en) | 2018-06-15 | 2019-12-26 | オムロン株式会社 | Robot control system |
JP2020172017A (en) | 2019-03-05 | 2020-10-22 | ザ・ボーイング・カンパニーThe Boeing Company | Automatic calibration for a robot optical sensor |
JP2021000678A (en) | 2019-06-20 | 2021-01-07 | オムロン株式会社 | Control system and control method |
-
2021
- 2021-03-29 JP JP2021055774A patent/JP7437343B2/en active Active
- 2021-11-02 WO PCT/JP2021/040394 patent/WO2022208963A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014161603A1 (en) | 2013-04-05 | 2014-10-09 | Abb Technology Ltd | A robot system and method for calibration |
JP2015182144A (en) | 2014-03-20 | 2015-10-22 | キヤノン株式会社 | Robot system and calibration method of robot system |
JP2019217571A (en) | 2018-06-15 | 2019-12-26 | オムロン株式会社 | Robot control system |
JP2020172017A (en) | 2019-03-05 | 2020-10-22 | ザ・ボーイング・カンパニーThe Boeing Company | Automatic calibration for a robot optical sensor |
JP2021000678A (en) | 2019-06-20 | 2021-01-07 | オムロン株式会社 | Control system and control method |
Also Published As
Publication number | Publication date |
---|---|
JP2022152845A (en) | 2022-10-12 |
WO2022208963A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9616569B2 (en) | Method for calibrating an articulated end effector employing a remote digital camera | |
CN106873550B (en) | Simulation device and simulation method | |
US9727053B2 (en) | Information processing apparatus, control method for information processing apparatus, and recording medium | |
JP5835926B2 (en) | Information processing apparatus, information processing apparatus control method, and program | |
US8135209B2 (en) | Articulated object position and posture estimation device, method and program | |
US9639942B2 (en) | Information processing apparatus, information processing method, and storage medium | |
WO2021218542A1 (en) | Visual perception device based spatial calibration method and apparatus for robot body coordinate system, and storage medium | |
DE102014000982A1 (en) | Position and orientation measuring device, information processing device and information processing method | |
JP7128933B2 (en) | Image processing device | |
CN111360821A (en) | Picking control method, device and equipment and computer scale storage medium | |
DE102018113336A1 (en) | A method of using a machine to set an augmented reality display environment | |
WO2019059343A1 (en) | Workpiece information processing device and recognition method of workpiece | |
CN114310901B (en) | Coordinate system calibration method, device, system and medium for robot | |
JP6973444B2 (en) | Control system, information processing device and control method | |
JP2730457B2 (en) | Three-dimensional position and posture recognition method based on vision and three-dimensional position and posture recognition device based on vision | |
CN114494312A (en) | Apparatus and method for training a machine learning model for identifying object topology of an object from an image of the object | |
CN116018599A (en) | Apparatus and method for training a machine learning model to identify an object topology of an object from an image of the object | |
JP7437343B2 (en) | Calibration device for robot control | |
CN114187312A (en) | Target object grabbing method, device, system, storage medium and equipment | |
JP7249221B2 (en) | SENSOR POSITION AND POSTURE CALIBRATION DEVICE AND SENSOR POSITION AND POSTURE CALIBRATION METHOD | |
CN114494426A (en) | Apparatus and method for controlling a robot to pick up an object in different orientations | |
CN114902281A (en) | Image processing system | |
KR102585332B1 (en) | Device and method executing calibration between robot hand and camera separated from robot hand | |
US20230154162A1 (en) | Method For Generating Training Data Used To Learn Machine Learning Model, System, And Non-Transitory Computer-Readable Storage Medium Storing Computer Program | |
CN111971529A (en) | Method and apparatus for managing robot system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230511 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240105 |
|
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: 20240130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7437343 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |