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
JP7797664B2 - Robot system having a robot and method for calibrating the robot - Google Patents
[go: Go Back, main page]

JP7797664B2 - Robot system having a robot and method for calibrating the robot - Google Patents

Robot system having a robot and method for calibrating the robot

Info

Publication number
JP7797664B2
JP7797664B2 JP2024542167A JP2024542167A JP7797664B2 JP 7797664 B2 JP7797664 B2 JP 7797664B2 JP 2024542167 A JP2024542167 A JP 2024542167A JP 2024542167 A JP2024542167 A JP 2024542167A JP 7797664 B2 JP7797664 B2 JP 7797664B2
Authority
JP
Japan
Prior art keywords
joint
marker
images
robot
servo motor
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
JP2024542167A
Other languages
Japanese (ja)
Other versions
JP2025502318A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2025502318A publication Critical patent/JP2025502318A/en
Application granted granted Critical
Publication of JP7797664B2 publication Critical patent/JP7797664B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1679Program controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39016Simultaneous calibration of manipulator and camera
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39035Screw axis measurement, each joint moved in circle, cpa circle point analysis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39057Hand eye calibration, eye, camera on hand, end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40527Modeling, identification of link parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Description

本開示は、概してロボットの分野に、より具体的には、ロボットを有するロボットシステム、及びロボットのキャリブレーション方法に関する。 The present disclosure relates generally to the field of robotics, and more specifically to a robotic system having a robot and a method for calibrating a robot.

今日の世界では、技術の成長が急速に進んでいる。技術のこの急速な進歩により、ほとんどの手動作業は今や自動的に、例えばロボットによって行われており、故に、ロボットの製造は猛烈に成長してきた。様々なパラメータはロボットの利用中にキャリブレーションを必要とし、これらのパラメータのうちの1つは運動パラメータである。ロボットの運動パラメータは、ロボットの動きのジオメトリを記述し、ロボットのエンドエフェクタの位置をジョイント値を介してロボットのベースの位置と関連付けるために使用される。運動パラメータがキャリブレーションされていない場合、それらには、ロボットの製造欠陥、使用中の継続的な摩耗、及びジョイントの蓄積されたゼロポジションオフセットによる大きい誤差が生じる。結果として、正確なキャリブレーション方法がロボットのために望まれている。広く使用されている運動パラメータの集合は、ロボットのエンドエフェクタのポジションがジョイント値に基づき計算されることを可能にするデナビット・ハーテンバーグ(DH)パラメータである。他の運動パラメータの組には、カメラと、ロボットベース座標系と、ロボットのギア減速比との間の遷移がある。 In today's world, technology is growing at a rapid pace. Due to this rapid advancement in technology, most manual tasks are now performed automatically, for example by robots, and therefore, robot manufacturing has grown tremendously. Various parameters require calibration during the use of a robot, and one of these parameters is the kinematic parameters. The kinematic parameters of a robot describe the geometry of the robot's motion and are used to relate the position of the robot's end-effector to the position of the robot's base via joint values. If the kinematic parameters are not calibrated, they will have large errors due to robot manufacturing defects, continuous wear during use, and accumulated zero-position offsets of the joints. As a result, an accurate calibration method is desired for robots. A widely used set of kinematic parameters are the Denavit-Hartenberg (DH) parameters, which allow the position of the robot's end-effector to be calculated based on the joint values. Other sets of kinematic parameters include the transitions between the camera, the robot base coordinate system, and the robot's gear reduction ratio.

従来、キャリブレーションはレーザートラッカーシステムによって行われていたが、レーザートラッカーシステムの一部はロボットの本体位置を測定し、レーザートラッカーシステムの他の一部は、ロボットのエンドエフェクタ位置を測定する。しかし、かようなキャリブレーションは、その手動性質により複雑かつ非効率的であり、不要な装備はコストが高い。他のアプローチには、ロボットへのカメラの導入があり、カメラはロボットの複数の位置で使用される。更に、ロボットの位置ごとに正確なベクトルを計算するために、カメラの光線の十分近くにマーカが配置される。しかし、キャリブレーションに使用されるロボットの全ての位置は、カメラの光線に十分近い必要がある。これは、運動パラメータがロボットの限られた構成空間内でのみキャリブレーションの対象となることを意味し、これは技術的な問題である。 Traditionally, calibration has been performed using laser tracker systems, where one part of the laser tracker system measures the robot's body position and another part of the laser tracker system measures the robot's end-effector position. However, such calibration is complex and inefficient due to its manual nature, and unnecessary equipment is costly. Another approach involves the introduction of cameras onto the robot, which are used at multiple positions on the robot. Furthermore, markers are placed close enough to the camera's beam to calculate accurate vectors for each robot position. However, all robot positions used for calibration must be close enough to the camera's beam. This means that motion parameters can only be calibrated within the robot's limited configuration space, which is a technical challenge.

上記の議論に照らして、ロボットのキャリブレーションに関連した上記の欠点に対処することが望まれている。 In light of the above discussion, it is desirable to address the above shortcomings associated with robot calibration.

本開示は、ロボットを有するロボットシステム、及びロボットのキャリブレーション方法に関係がある。本開示の目的は、ロボットを有する改善されたロボットシステム、及びロボットの運動パラメータを自動的にキャリブレーションする改善された方法を提供することによって、先行技術で遭遇した問題を少なくとも部分的に解消することである。例えば、ロボットのエンドエフェクタの位置及び向きの誤差を減らすため、並びにロボットの操作実行精度を高めるためである。 The present disclosure relates to a robotic system having a robot, and a method for calibrating the robot. It is an object of the present disclosure to at least partially overcome problems encountered in the prior art by providing an improved robotic system having a robot, and an improved method for automatically calibrating the robot's motion parameters, for example, to reduce errors in the position and orientation of the robot's end effector and to increase the accuracy of the robot's manipulation execution.

本開示の1つ以上の目的は、添付の独立請求項により達成される。本開示の任意又は代替の実施は、従属請求項で更に定義される。 One or more objects of the present disclosure are achieved by the accompanying independent claims. Optional or alternative implementations of the present disclosure are further defined in the dependent claims.

1つの側面で、本開示はロボットシステムを提供する。ロボットシステムは、可動部を更に含むロボットを含み、可動部は、その上に少なくとも1つのキャリブレーションマーカを設けられている。ロボットシステムは、少なくとも1つのリンクの一端に配置されている少なくとも第1ジョイント及び第2ジョイントを更に含み、第1ジョイント及び第2ジョイントは、計算ユニットによって制御されている可動部で動きを発生させるよう構成される。ロボットシステムは、複数のポジションで少なくとも1つのキャリブレーションマーカの画像を捕捉するよう構成されるカメラを更に含む。ロボットシステムは、ロボット制御レイヤと、画像処理レイヤと、軸及び減速比推定レイヤと、運動パラメータ更新レイヤとを含む計算ユニットを更に含む。ロボット制御レイヤは、ロボットの運動モデルに基づき第1ジョイント及び第2ジョイントの回転を制御するよう構成される。更に、ロボット制御レイヤは、複数のポジションにおける少なくとも1つのキャリブレーションマーカのポジションに第1ジョイント及び/又は第2ジョイントの回転を制御するよう構成される。画像処理レイヤは、画像ごとに、マーカポジションデータとして出力すべき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカポジションを決定するように、カメラから受け取られた画像を処理するよう構成される。軸及び減速比推定レイヤは、マーカポジションデータに基づき第1エラー関数を確立し、第1エラー関数に基づき第1ジョイントの第1回転軸を決定するよう構成される。運動パラメータ更新レイヤは、少なくとも第1回転軸に基づき第2エラー関数を確立し、第2エラー関数に基づき運動モデルについて運動パラメータの組を決定するよう構成される。 In one aspect, the present disclosure provides a robotic system. The robotic system includes a robot further including a movable part, the movable part having at least one calibration marker provided thereon. The robotic system further includes at least a first joint and a second joint disposed at one end of at least one link, the first joint and the second joint configured to generate movement in the movable part controlled by a computing unit. The robotic system further includes a camera configured to capture images of the at least one calibration marker at multiple positions. The robotic system further includes a computing unit including a robot control layer, an image processing layer, an axis and reduction ratio estimation layer, and a motion parameter update layer. The robot control layer is configured to control rotation of the first joint and the second joint based on a kinematic model of the robot. The robot control layer is further configured to control rotation of the first joint and/or the second joint to the position of the at least one calibration marker at multiple positions. The image processing layer is configured to process images received from the camera to determine, for each image, a marker position of the at least one calibration marker in three-dimensional space, to be output as marker position data. The axis and reduction ratio estimation layer is configured to establish a first error function based on the marker position data and determine a first rotation axis of the first joint based on the first error function. The motion parameter update layer is configured to establish a second error function based on at least the first rotation axis and determine a set of motion parameters for the motion model based on the second error function.

ロボットシステムはロボットの可動部を含む。ロボットの可動部には少なくとも1つのキャリブレーションマーカが設けられている。キャリブレーションマーカは、ロボットの可動部のポジションを解析するのに役立ち、カメラは、キャリブレーションマーカの複数のポジションを捕捉するために使用される。更に、可動部での動きは第1ジョイント及び第2ジョイントによって生成され、1つのジョイント値はゼロポジションとは異なっており、他のジョイント値は、全ての収集プロシージャの間、ゼロポジションにある。更に、回転軸パラメータの計算及び運動パラメータの計算には、エラー関数の最小化が含まれる。更に、第1ジョイント及び第2ジョイントは計算ユニットによって制御される。計算ユニットは、キャリブレーションマーカの1つのポジションを変更するよう第1ジョイント及び/又は第2ジョイントの回転を制御するロボット制御レイヤを含む。計算ユニットは、カメラによって捕捉された画像を解析することによってマーカポジションデータを供給するのに役立つ画像処理レイヤを更に含む。計算ユニットは、第1エラー関数を確立し、第1エラー関数に基づき第1ジョイントの第1回転軸を決定するようマーカポジションデータを解析する軸及び減速比推定レイヤを更に含む。計算ユニットは、第2エラー関数を確立し、第2エラー関数に基づき運動モデルについて運動パラメータの組を決定するよう第1回転軸を解析する運動パラメータ更新レイヤを更に含む。有利なことに、ロボットシステムは、ロボットリンク長さ、ジョイントの位置及び向き、ロボットジョイントのゼロポジション、ジョイントごとの減速比を含むロボットの運動パラメータをキャリブレーションする。キャリブレーションされたパラメータを用いて、ロボットは、動作実行中にエンドエフェクタの位置及び向きのより良い精度を達成することができる。
The robot system includes a moving part of the robot. The moving part of the robot is provided with at least one calibration marker. The calibration marker serves to analyze the position of the moving part of the robot, and a camera is used to capture multiple positions of the calibration marker. Furthermore, a movement of the moving part is generated by a first joint and a second joint, one joint value being different from a zero position, and the other joint value being at the zero position during the entire collection procedure. Furthermore, the calculation of the rotation axis parameters and the calculation of the motion parameters include minimizing an error function. Furthermore, the first joint and the second joint are controlled by a computing unit. The computing unit includes a robot control layer that controls the rotation of the first joint and/or the second joint to change the position of one of the calibration markers. The computing unit further includes an image processing layer that serves to provide marker position data by analyzing images captured by the camera. The computing unit further includes an axis and reduction ratio estimation layer that establishes a first error function and analyzes the marker position data to determine a first rotation axis of the first joint based on the first error function. The computation unit further includes a motion parameter update layer configured to analyze the first rotation axis to establish a second error function and determine a set of motion parameters for the motion model based on the second error function. Advantageously, the robot system calibrates the robot's motion parameters, including robot link lengths, joint positions and orientations, robot joint zero positions, and joint-by-joint reduction ratios. Using the calibrated parameters, the robot can achieve better accuracy in the position and orientation of the end effector during operation execution.

実施形態において、可動部は、第1ギアシステムを介して第1ジョイントに結合される第1サーボモータと、第2ギアシステムを介して第2ジョイントに結合されている第2サーボモータと、第1サーボモータに設けられている第1エンコーダと、第2サーボモータに設けられている第2エンコーダとを更に含み、第1エンコーダ及び第2エンコーダは、夫々第1サーボモータ及び第2サーボモータのサーボ値を収集するよう構成される。更に、計算ユニットは、カメラによって捕捉された画像にタイムスタンプを付すようにカメラを第1エンコーダ及び第2エンコーダと、及び任意に、エンコーダによって提供される回転角度と同期させるよう構成されるクロック同期レイヤを有する。 In an embodiment, the movable part further includes a first servo motor coupled to the first joint via a first gear system, a second servo motor coupled to the second joint via a second gear system, a first encoder provided on the first servo motor, and a second encoder provided on the second servo motor, the first encoder and the second encoder configured to collect servo values of the first servo motor and the second servo motor, respectively. Furthermore, the computing unit includes a clock synchronization layer configured to synchronize the camera with the first encoder and the second encoder, and optionally with the rotation angle provided by the encoder, so as to timestamp images captured by the camera.

サーボモータは、時計及び反時計方向に回転することができる。更に、ギアシステムは、サーボモータの動きをジョイントに伝えるのに役立つ。 Servomotors can rotate in both clockwise and counterclockwise directions. Additionally, gear systems help transmit the servomotor's movement to the joints.

他の側面には、可動部を含み、可動部がその上に少なくとも1つのキャリブレーションマーカを設けられているロボットのキャリブレーション方法がある。更に、少なくとも第1ジョイント及び第2ジョイントが少なくとも1つのリンクの一端に配置されており、第1ジョイント及び第2ジョイントは、計算ユニットによって制御されている可動部で動きを発生させるよう構成される。方法は、第1ジョイント及び/又は第2ジョイントを回転させることによって複数のポジションで少なくとも1つのキャリブレーションマーカを位置決めすることを含むデータ収集プロシージャを含む。更に、少なくとも1つのキャリブレーションマーカの複数の画像を取得する。これにおいて、複数の画像は、少なくとも1つのキャリブレーションマーカが複数のポジションにあるときにカメラによって捕捉される。更に、データ処理プロシージャは、複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカポジション(及び任意に、向き)を決定するように、複数の画像を処理することに関して開示する。方法は、マーカポジションデータに基づき第1エラー関数を確立することに関して更に開示する。その後に、第1エラー関数に基づき第1ジョイントの第1回転軸及び第2ジョイントの第2回転軸を決定する。更に、少なくとも第1回転軸及び第2回転軸に基づき第2エラー関数を確立する。更に、第2エラー関数に基づきロボットの運動モデルについて運動パラメータの組を決定する。 Another aspect is a method for calibrating a robot including a movable part, the movable part having at least one calibration marker disposed thereon. Furthermore, at least a first joint and a second joint are disposed at one end of at least one link, the first joint and the second joint configured to generate motion in the movable part controlled by a computing unit. The method further includes a data collection procedure including positioning the at least one calibration marker at multiple positions by rotating the first joint and/or the second joint. The method further includes acquiring multiple images of the at least one calibration marker, where the multiple images are captured by a camera while the at least one calibration marker is in multiple positions. A data processing procedure is further disclosed for processing the multiple images to determine, for each image of the multiple images, a marker position (and optionally, an orientation) of the at least one calibration marker in three-dimensional space, which is output as marker position data. The method further discloses establishing a first error function based on the marker position data. Thereafter, determining a first axis of rotation of the first joint and a second axis of rotation of the second joint based on the first error function. Further, a second error function is established based on at least the first rotation axis and the second rotation axis. Further, a set of motion parameters for a motion model of the robot is determined based on the second error function.

方法は、本開示のロボットシステムの利点及び技術的効果の少なくとも一部を達成する。 The method achieves at least some of the advantages and technical effects of the robotic system of the present disclosure.

なお、本願で記載される全てのデバイス、要素、回路、ユニット及び手段は、ソフトウェア若しくはハードウェア要素又はそれらのあらゆる種類の組み合わせで実施され得ることが留意されるべきである。本願で記載される様々なエンティティによって実行されるステップ、及び様々なエンティティによって実行されるよう記載されている機能は、各々のエンティティが各々のステップ又は機能を実行するよう適応されているか又は実行するよう構成されていることを意味するよう意図される。たとえ具体的な実施形態の以下の記載で、外部エンティティによって実行される具体的な機能又はステップが、その具体的なステップ又は機能を実行する当該エンティティの具体的な詳細な要素の記載において反映されていないとしても、これらの方法及び機能が各々のソフトウェア若しくはハードウェア要素、又はそれらのあらゆる種類の組み合わせで実施され得ることは当業者にとって明らかであろう。本開示の特徴は、添付の特許請求の範囲で定義されている本願の範囲から逸脱せずに、様々な組み合わせで組み合わされる余地があることが理解されるだろう。 It should be noted that all devices, elements, circuits, units, and means described herein may be implemented with software or hardware elements, or any combination thereof. The steps performed by various entities described herein, and the functions described as being performed by various entities, are intended to mean that each entity is adapted to or configured to perform the respective step or function. Even if, in the following description of specific embodiments, specific functions or steps performed by external entities are not reflected in the description of specific detailed elements of the entities that perform the specific steps or functions, it will be apparent to those skilled in the art that these methods and functions may be implemented with each software or hardware element, or any combination thereof. It will be understood that features of the present disclosure may be combined in various combinations without departing from the scope of the present application, as defined by the appended claims.

本開示の更なる側面、利点、特徴及び対象は、続く添付の特許請求の範囲とともに解釈される例示的な実施の詳細な説明及び図面から明らかにされるだろう。 Further aspects, advantages, features, and objects of the present disclosure will become apparent from the following detailed description of exemplary implementations and drawings, taken in conjunction with the accompanying claims.

上記の概要及び例示的な実施形態の以下の詳細な説明は、添付の図面とともに読まれる場合により良く理解される。本開示を説明するために、開示の模範的な構造が図面に示されている。ただし、本開示は、ここで開示されている具体的な方法及び手段に限定されない。更に、当業者であれば、図面が実寸通りでないことを理解するだろう。可能な限り、同じ要素は同じ番号によって指示されている。 The foregoing summary and the following detailed description of exemplary embodiments will be better understood when read in conjunction with the accompanying drawings. For the purpose of illustrating the disclosure, exemplary structures of the disclosure are shown in the drawings. However, the disclosure is not limited to the specific methods and instrumentalities disclosed therein. Moreover, those skilled in the art will appreciate that the drawings are not to scale. Wherever possible, like elements are designated by like numerals.

本開示の実施形態が、これより、単なる一例として、以下の図面を参照して説明される。 Embodiments of the present disclosure will now be described, by way of example only, with reference to the following drawings:

本開示の種々の実施形態に従うロボットシステムのアーキテクチャの模式図である。FIG. 1 is a schematic diagram of the architecture of a robotic system according to various embodiments of the present disclosure. 本開示の種々の実施形態に従うロボットシステムのアーキテクチャの模式図である。FIG. 1 is a schematic diagram of the architecture of a robotic system according to various embodiments of the present disclosure. 本開示の実施形態に従うロボットシステムのブロック図である。FIG. 1 is a block diagram of a robotic system according to an embodiment of the present disclosure. 本開示の実施形態に従うロボットのキャリブレーション方法のフローチャートである。1 is a flowchart of a method for calibrating a robot according to an embodiment of the present disclosure.

添付の図面において、下線付きの番号は、その下線付きの番号が上にあるアイテム、又はその下線付きの番号が隣にあるアイテムを表すために用いられている。下線なしの番号は、その下線なしの番号をアイテムと結び付ける線によって特定されているアイテムに関係がある。番号に下線が付されておらず、関連する矢印が付いている場合は、その下線なしの番号は、矢印が指している一般的なアイテムを特定するために使用されている。 In the accompanying drawings, underlined numbers are used to identify the item the underlined number is above or next to. Non-underlined numbers refer to the item identified by the line connecting the non-underlined number to the item. When a number is not underlined and has an associated arrow, the non-underlined number is used to identify the general item to which the arrow is pointing.

以下の詳細な説明は、本開示の実施形態、及びそれらが実施され得る方法を説明している。本開示を実行するいくつかのモードが開示されているが、当業者であれば、本開示の実行又は実施する他の実施形態も可能であることを認識するだろう。 The following detailed description describes embodiments of the present disclosure and how they may be practiced. Although several modes of carrying out the present disclosure are disclosed, those skilled in the art will recognize that other embodiments of carrying out or practicing the present disclosure are possible.

図1A及び図1Bは、本開示の種々の実施形態に従うロボットシステムのロボットのアーキテクチャの模式図である。図1A及び図1Bは集合的に説明されており、図1Bは図1Aの実施形態である。図1Aを参照して、(図1Aの)ロボット100A及び(図1Bの)ロボット100Bなどのロボットが示されている。ロボット100Aは、ベース102、可動部104、キャリブレーションマーカ106A、計算ユニット108、カメラ110、第1サーボモータ112A及び第2サーボモータ112B、並びに第1エンコーダ114A及び第2エンコーダ114Bを含む。ロボット100Bは、ロボット100Aと同じ全ての要素(計算ユニット108は図示せず)を含み、加えて、ロボット100Bは、キャリブレーションマーカ106B及び106Cを更に含む。 1A and 1B are schematic diagrams of the architecture of a robot of a robotic system according to various embodiments of the present disclosure. 1A and 1B are collectively described, with 1B being an embodiment of 1A. Referring to 1A, robots such as robot 100A (of 1A) and robot 100B (of 1B) are shown. Robot 100A includes a base 102, a movable part 104, a calibration marker 106A, a computing unit 108, a camera 110, a first servo motor 112A and a second servo motor 112B, and a first encoder 114A and a second encoder 114B. Robot 100B includes all the same elements as robot 100A (computing unit 108 not shown), and additionally, robot 100B further includes calibration markers 106B and 106C.

開示されているロボット100A及びロボット100Bは、カメラ110などの工業用カメラ、及びキャリブレーションマーカ106Aなどの少なくとも1つの基準マーカを使用することによって、ロボットシステムの運動パラメータを自動的にキャリブレーションするために使用される基本的なロボットに対応する。ロボット100Bはキャリブレーションマーカ106B及び106Cを更に含む。 The disclosed robots 100A and 100B correspond to basic robots used to automatically calibrate the motion parameters of a robotic system by using an industrial camera, such as camera 110, and at least one reference marker, such as calibration marker 106A. Robot 100B further includes calibration markers 106B and 106C.

ロボット100Aのベース102は、ロボット100Aの可動部104にバランスをもたらすために使用される。可動部104はロボット100Aのアームである。 The base 102 of the robot 100A is used to provide balance to the moving part 104 of the robot 100A. The moving part 104 is the arm of the robot 100A.

キャリブレーションマーカ106A、106B、及び106Cは、マーカポジションデータを供給するために使用される。キャリブレーションマーカ106A、106B、及び106Cは、ロボット100Aのエンドエフェクタに取り付けられている。少なくとも1つのキャリブレーションマーカがキャリブレーション目的で使用される。 Calibration markers 106A, 106B, and 106C are used to provide marker position data. Calibration markers 106A, 106B, and 106C are attached to the end effector of robot 100A. At least one calibration marker is used for calibration purposes.

計算ユニット108は、ロボット100Aを制御するよう構成される適切なロジック、回路、インターフェース、及び/又はコードを含み得る。計算ユニット108の実施の例には、中央データ処理デバイス、マイクロプロセッサ、マイクロコントローラ、複数命令セットコンピューティング(CISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、縮小命令セット(RISC)プロセッサ、超長命令語(VLIW)プロセッサ、状態機械、及び他のプロセッサ又は制御回路が含まれ得るが、これらに限られない。 Computing unit 108 may include suitable logic, circuitry, interfaces, and/or code configured to control robot 100A. Example implementations of computing unit 108 may include, but are not limited to, a central data processing device, a microprocessor, a microcontroller, a multiple instruction set computing (CISC) processor, an application specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a state machine, and other processors or control circuits.

カメラ110は、キャリブレーションマーカ106Aのポジションの画像を捕捉するよう構成される適切なロジック、回路、インターフェース、及び/又はコードを含み得る。 Camera 110 may include appropriate logic, circuitry, interfaces, and/or code configured to capture an image of the position of calibration marker 106A.

第1サーボモータ112A及び第2サーボモータ112Bは、ロボット100Aのアームに動きをもたらすために使用される。第1サーボモータ112A及び第2サーボモータ112Bは、時計及び反時計方向に動くことができる。更に、第1エンコーダ114A及び第2エンコーダ114Bは、夫々第1サーボモータ112A及び第2サーボモータ112Bの回転を(例えば、回転角度を計算することによって)求めるために使用される。
The first and second servo motors 112A, 112B are used to provide movement to the arms of the robot 100A . The first and second servo motors 112A, 112B are capable of moving in clockwise and counterclockwise directions. Additionally, the first and second encoders 114A, 114B are used to determine the rotation of the first and second servo motors 112A, 112B, respectively (e.g., by calculating the angle of rotation).

1つの側面では、ロボットシステムが提供される。ロボットシステムは、可動部104を更に含むロボット100Aを含む。可動部104は、その上に少なくとも1つのキャリブレーションマーカを設けられている。ロボットシステムは、少なくとも1つのリンクの一端に配置されている少なくとも第1ジョイント及び第2ジョイントを更に含み、第1ジョイント及び第2ジョイントは、計算ユニット108によって制御されている可動部104で動きを発生させるよう構成される。言い換えれば、可動部104はロボット100Aのアームに対応する。可動部104は、少なくとも1つのリンクの端部の1つに配置されている任意数のジョイントを備えている。少なくとも1つのリンクの動きは、少なくとも1つの前置ジョイントの回転によって実行される。更に、計算ユニット108は、可動部104に動きをもたらすために少なくとも第1ジョイント及び第2ジョイントを制御し、これは、キャリブレーションマーカ106Aの動きなどの少なくとも1つのキャリブレーションマーカの動きにとって更に有益である。実施において、計算ユニット108は、第1ジョイント及び第2ジョイントの動きのための所定のコマンドの組を記憶するロボット制御レイヤを含む。なお、ロボット制御レイヤ及び計算ユニット108は、分散システムにおける同じデバイス又は別個のデバイスであることができる。更に、ロボット制御レイヤは、所定のコマンドの組を第1サーボモータ112A及び第2サーボモータ112Bへ、それらにおいて動きを生じさせるために送信する。 In one aspect, a robotic system is provided. The robotic system includes a robot 100A further including a movable part 104. The movable part 104 has at least one calibration marker provided thereon. The robotic system further includes at least a first joint and a second joint disposed at one end of at least one link, the first joint and the second joint configured to generate movement in the movable part 104 controlled by a computing unit 108. In other words, the movable part 104 corresponds to an arm of the robot 100A. The movable part 104 includes any number of joints disposed at one end of the at least one link. The movement of the at least one link is performed by rotating at least one pre-joint. Furthermore, the computing unit 108 controls at least the first joint and the second joint to cause movement in the movable part 104, which is further beneficial for the movement of at least one calibration marker, such as the movement of the calibration marker 106A. In an implementation, the computing unit 108 includes a robot control layer that stores a set of predetermined commands for the movement of the first joint and the second joint. It should be noted that the robot control layer and the computing unit 108 can be the same device or separate devices in a distributed system. Furthermore, the robot control layer sends a set of predetermined commands to the first servo motor 112A and the second servo motor 112B to cause movement therein.

実施形態に従って、第1サーボモータ112Aは、第1ギアシステムを介して第1ジョイントに結合され、第2サーボモータ112Bは、第2ギアシステムを介して第2ジョイントに結合されている。更に、第1エンコーダ114Aは第1サーボモータ112Aに設けられ、第2エンコーダ114Bは第2サーボモータ112Bに設けられている。更に、第1エンコーダ114A及び第2エンコーダ114Bは、夫々第1サーボモータ112A及び第2サーボモータ112Bのサーボ値(例えば、角度)を収集するよう構成される。更に、計算ユニット108は、カメラ110によって捕捉された画像及びサーボ値にタイムスタンプを付すように、カメラ110を第1エンコーダ114A及び第2エンコーダ114Bと同期させるよう構成されるクロック同期レイヤを更に含む。言い換えれば、少なくとも第1ジョイント及び第2ジョイントは、システムパラメータとしてジョイントごとの減速比を持ったギアシステムを介して夫々、第1サーボモータ112A及び第2サーボモータ112Bに接続されている。第1サーボモータ112A及び第2サーボモータ112Bの動きは、何らかの減速比係数を有して少なくとも第1ジョイント及び第2ジョイントに伝えられる。更に、計算ユニット108に存在するクロック同期レイヤは、タイムスタンプのための同期を実行する。更に、クロック同期レイヤは、カメラ110を第1エンコーダ114A及び第2エンコーダ114Bと同期させる。 According to the embodiment, the first servo motor 112A is coupled to the first joint via a first gear system, and the second servo motor 112B is coupled to the second joint via a second gear system. Furthermore, a first encoder 114A is provided on the first servo motor 112A, and a second encoder 114B is provided on the second servo motor 112B. Furthermore, the first encoder 114A and the second encoder 114B are configured to collect servo values (e.g., angles) of the first servo motor 112A and the second servo motor 112B, respectively. Furthermore, the calculation unit 108 further includes a clock synchronization layer configured to synchronize the camera 110 with the first encoder 114A and the second encoder 114B so as to timestamp the images and servo values captured by the camera 110. In other words, at least the first joint and the second joint are connected to the first servo motor 112A and the second servo motor 112B, respectively, via a gear system having a reduction ratio for each joint as a system parameter. The movements of the first servo motor 112A and the second servo motor 112B are transmitted to at least the first joint and the second joint with some reduction ratio coefficient. Furthermore, a clock synchronization layer present in the calculation unit 108 performs synchronization for time stamps. Furthermore, the clock synchronization layer synchronizes the camera 110 with the first encoder 114A and the second encoder 114B.

更に、ロボットシステムは、複数のポジションで少なくとも1つのキャリブレーションマーカの画像を捕捉するよう構成されるカメラ110を有する。実施において、カメラ110は知覚レイヤを含む。更に、カメラ110と第1エンコーダ114A及び第2エンコーダ114Bとの同期は、カメラ110によって捕捉された画像及びエンコーダデータにタイムスタンプを付すことによって実行される。例えば、運動Mの間、カメラ110は、キャリブレーションマーカ106Aなどの少なくとも1つのキャリブレーションマーカの複数の画像を捕捉する。例えば、カメラ110は複数の画像I~Iを捕捉し、このとき、Tは、運動Mについてのフレームの総数である。その後、画像は、更なる処理のために計算ユニット108へ送られる。更に、運動(例えば、運動M及びMJ+1)の間、第1エンコーダ114A及び第2エンコーダ114Bは、ジョイントJの第1サーボモータ112A及びジョイントJ+1の第2サーボモータ112Bから情報を集め、情報を計算ユニット108へ送る。更に、同期がエンコーダクロックとカメラクロックとの間で行われる。例において、角度値(例えば、値a~a)が、如何なる同期によらずとも利用可能である。実施において、同期は実行され、その結果、画像ごと及び角度ごとの時間タグが、第1エラー関数を確立するために、取得される。 The robotic system further includes a camera 110 configured to capture images of at least one calibration marker at multiple positions. In an implementation, the camera 110 includes a perception layer. Furthermore, synchronization between the camera 110 and the first and second encoders 114A and 114B is performed by time-stamping the images and encoder data captured by the camera 110. For example, during movement M 1 J , the camera 110 captures multiple images of at least one calibration marker, such as calibration marker 106A. For example, the camera 110 captures multiple images I 1 through I T , where T is the total number of frames for movement M 1 J. The images are then sent to the computation unit 108 for further processing. Furthermore, during movements (e.g., movements M 1 J and M 1 J+1 ), the first and second encoders 114A and 114B collect information from the first servo motor 112A of joint J and the second servo motor 112B of joint J+1 and send the information to the computation unit 108. Furthermore, synchronization is performed between the encoder clock and the camera clock. In the example, the angle values (e.g., values a1 to aT ) are available without any synchronization. In implementation, synchronization is performed so that a time tag for each image and each angle is obtained to establish the first error function.

図1Aの計算ユニット108は、ロボット制御レイヤ、画像処理レイヤ、軸及び減速比推定レイヤ、運動パラメータ更新レイヤ、及びクロック同期レイヤを更に含む。ロボット制御レイヤは、ロボット100Aの運動モデルに基づき第1ジョイント及び第2ジョイントの回転を制御するよう構成され、ロボット制御レイヤは、複数のポジションで少なくとも1つのキャリブレーションマーカを位置決めするように第1ジョイント及び/又は第2ジョイントの回転を制御するよう構成される。言い換えれば、計算ユニット108には、ロボットシステムにおいてキャリブレーションプロセスを実行するために使用される種々のレイヤが存在する。更に、ロボット制御レイヤは、キャリブレーションマーカ106Aなどの少なくとも1つのキャリブレーションマーカのポジションを変えるために、ロボット100Aのアームに動きをもたらす。例えば、いくつかの基準マーカΔ(例えば、i∈[1,2])が、ロボットアームのエンドエフェクタに任意の位置及び向きで静的に取り付けられている。更に、キャリブレーションマーカ106Aなどの少なくとも1つのキャリブレーションマーカは、例えばカメラ110の固有パラメータ及び現実世界のマーカ寸法を考慮してその画像に基づいて、3次元(3D)空間でのロボット100Aのポジション及び向きのキャリブレーションを可能にする。 1A further includes a robot control layer, an image processing layer, an axis and reduction ratio estimation layer, a motion parameter update layer, and a clock synchronization layer. The robot control layer is configured to control the rotation of the first joint and the second joint based on a motion model of the robot 100A, and the robot control layer is configured to control the rotation of the first joint and/or the second joint to position at least one calibration marker at a plurality of positions. In other words, the computation unit 108 includes various layers used to perform a calibration process in the robot system. Furthermore, the robot control layer provides motion to the arm of the robot 100A to change the position of at least one calibration marker, such as the calibration marker 106A. For example, several fiducial markers Δ i (e.g., i∈[1, 2]) are statically attached to the end effector of the robot arm at arbitrary positions and orientations. Furthermore, at least one calibration marker, such as calibration marker 106A, allows for calibration of the position and orientation of robot 100A in three-dimensional (3D) space based on its images, for example, taking into account the intrinsic parameters of camera 110 and real-world marker dimensions.

画像処理レイヤは、カメラ110から受け取った画像を処理して、画像ごとに、マーカポジションデータとして出力すべき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカポジション及び(任意に)向きを決定するよう構成される。言い換えれば、画像処理は、カメラ110からデータを取得することによって実行され、観測されたマーカごとに対応するタイムスタンプとともに一連のポジション/向きデータを出力する。計算ユニット108の画像処理レイヤは、例えば画像データI~Iを使用することによって、カメラ110に対するキャリブレーションマーカ106A、106B、106Cのポジション及び向きの計算に関与する。例えば、一般性を損なわずに、基準マーカΔなどのキャリブレーションマーカ106A、106B、106Cは、全ての画像I~Iで視認可能かつ検出可能である。他の場合には、画像処理レイヤは、Δがカメラ110によって検出されるフレームIi1~IiTのサブセットを選択する。更に、カメラ110の固有パラメータは、正確であり知られていると仮定され得る。実施において、カメラキャリブレーションプロシージャも、カメラ110の固有パラメータに対して実行される。その後、画像I~Iでの基準マーカ検出が実行される。検出プロシージャの結果はシーケンスC ~C であり、このとき、C は、フレームIでのマーカΔのコーナーの(x,y)座標の集合である。例において、カメラ110の事前計算された固有パラメータ及びコーナー座標C は、perspective-n-point(PnP)法によりカメラ110に対してマーカ中心の3DポジションP 及び3Dマーカ向きO を計算するために使用される。更に、P の表現は3次元ベクトルによって実行され、O の表現は3×3正規直交基底行列によって実行される。
The image processing layer is configured to process images received from the camera 110 to determine, for each image, the marker position and (optionally) the orientation of at least one calibration marker in three-dimensional space, which are to be output as marker position data. In other words, image processing is performed by acquiring data from the camera 110 and outputting a series of position/orientation data for each observed marker along with a corresponding timestamp. The image processing layer of the computation unit 108 is responsible for calculating the positions and orientations of the calibration markers 106A, 106B, 106C relative to the camera 110, for example, by using the image data I 1 -I 1 T. For example, without loss of generality, it is assumed that the calibration markers 106A, 106B, 106C, such as the reference marker Δ i , are visible and detectable in all images I 1 -I 1 T. In other cases, the image processing layer selects a subset of frames I i1 -I 1 T in which Δ i is detected by the camera 110. Furthermore, the intrinsic parameters of the camera 110 may be assumed to be accurate and known. In implementation, a camera calibration procedure is also performed on the intrinsic parameters of the camera 110. Then, fiducial marker detection in images I 1 to I T is performed. The result of the detection procedure is a sequence C 1 I to C T i , where C t i is the set of (x, y) coordinates of the corners of marker Δ i in frame I t . In the example, the pre-computed intrinsic parameters of the camera 110 and the corner coordinates C t I are used to calculate the 3D position P t i of the marker center and the 3D marker orientation O t i with respect to the camera 110 by the perspective-n-point (PnP) method. Furthermore, the representation of P t i is performed by a three-dimensional vector, and the representation of O t i is performed by a 3x3 orthonormal basis matrix.

更に、軸及び減速比推定レイヤは、マーカポジションデータに基づき第1エラー関数を確立し、第1エラー関数に基づき第1ジョイントの第1回転軸を決定するよう構成される。言い換えれば、軸及び減速比推定レイヤは、マーカのポジション/向きのデータ、更にはエンコーダデータを処理することに関与し、ジョイントごとの推定された回転軸を出力する。例えば、回転の幾何学的性質から、夫々のiについて、3Dマーカ座標P ,・・・,P が、Qに中心がある円に、Vに直交する面に、及び角度rα,・・・,rαに従って配置され、方向基底O ,・・・,O は、角度rα,・・・,rαに従ってVの周りを回転する。更に、回転軸ベクトルV、回転軸点Q及び回転率rが推定される。例えば、3DベクトV、3D点Q、及びスカラーrの所与の組について上記の幾何学的特性がどの程度満足されないかの大きさを反映する損失関数L(V、Q,r)に最適化法が適用され得る。適化問題:(V,Q,r)=argminL(V,Q,r)を解くことによって、所望の値が求められる。 Further, the axis and reduction ratio estimation layer is configured to establish a first error function based on the marker position data and determine a first rotation axis of the first joint based on the first error function. In other words, the axis and reduction ratio estimation layer is responsible for processing the marker position/orientation data and also the encoder data, and outputs an estimated rotation axis for each joint. For example, from the geometric properties of rotation, for each i, the 3D marker coordinates P1i , ..., PTi are arranged on a circle centered at Qj , on a plane orthogonal to Vj , and according to angles rjα1 , ... , rjαT , and the direction basis O1i , ... , OTi rotates around Vj according to angles rjα1, ..., rjαT . Further , the rotation axis vector Vj , the rotation axis point Qj , and the rotation rate rj are estimated. For example, an optimization method can be applied to a loss function L(V, Q, r) that reflects the magnitude to which the above geometric properties are not satisfied for a given set of 3D vectors V, 3D points Q, and a scalar r. The desired value is found by solving the optimization problem: ( Vj , Qj , rj ) = argminL(V, Q, r).

更に、運動パラメータ更新レイヤは、少なくとも第1回転軸に基づき第2エラー関数を確立し、第2エラー関数に基づき運動モデルについて運動パラメータの組を決定するよう構成される。言い換えれば、運動パラメータ更新レイヤは、ジョイントごとの推定された回転軸を処理することに関与し、キャリブレーションされた運動パラメータを出力する。例えば、Lは、キャリブレーションを受ける運動パラメータの集合を表す。実施において、各ジョイントの推定された回転軸A~A及び運動パラメータの初期値Lを考えると、運動パラメータ更新レイヤは、実際のパラメータの推定
を求め、これは、更新されたパラメータ値
に対応する実際の回転軸
と推定された軸A~Aとの間の差を最小限にするものである。2つの異なる軸の組、つまり、推定された軸A~Aと実際の軸
との間の差は、
として定義され、このとき、Tは、特定の回転及び平行移動を軸ポジション及び向きパラメータに適用する変換演算子である。例において、変換演算子は、カメラ110と世界座標系との間の変換に対応する。更に、エラー関数
は、
として定義され、このとき、d(A,B)は、A軸に属する任意の点とB軸に属する任意の点との間の最小距離であり、d(A,B)は、軸A及びBの方向ベクトルの間の差である。更に、D及びD’の最小化は、最適化アルゴリズム、例えば勾配降下法を使用することによって実行される。なお、本開示は、エラー関数D及びD’の特定の定義に限定されない。更新された運動パラメータ
及び変換演算子Tは、運動パラメータキャリブレーションプロシージャを完了し、これは、従来のアプローチと比べて有益である。例において、ゼロポジションでのマーカフレームとロボットベースフレームとの間の変換T は、キャリブレーションされた運動パラメータにより取得され、画像処理により取得されたカメラフレームとゼロポジションでのマーカフレームとの間の変換T とともに、カメラ110とベース102との間の変換T を形成し、このようにしてハンド-アイ・キャリブレーションを完了する。
Furthermore, the motion parameter update layer is configured to establish a second error function based on at least the first rotation axis, and determine a set of motion parameters for the motion model based on the second error function. In other words, the motion parameter update layer is responsible for processing the estimated rotation axis for each joint, and outputs calibrated motion parameters. For example, L represents the set of motion parameters to be calibrated. In implementation, given the estimated rotation axis A 1 -A j of each joint and the initial value L 0 of the motion parameters, the motion parameter update layer calculates the actual parameter estimates.
This is the updated parameter value
The actual rotation axis corresponding to
and the estimated axes A 1 to A j . Two different sets of axes, that is, the estimated axes A 1 to A j and the actual axes A 1 to A j, are used.
The difference between
where T is a transformation operator that applies a specific rotation and translation to the axis position and orientation parameters. In the example, the transformation operator corresponds to the transformation between the camera 110 and the world coordinate system. Furthermore, the error function
teeth,
where d 1 (A, B) is the minimum distance between any point belonging to the A axis and any point belonging to the B axis, and d 2 (A, B) is the difference between the direction vectors of the A and B axes. Furthermore, the minimization of D and D' is performed by using an optimization algorithm, for example, gradient descent. Note that the present disclosure is not limited to a specific definition of the error functions D and D'. The updated motion parameters
and the transformation operator T completes the motion parameter calibration procedure, which is beneficial compared to conventional approaches. In the example, the transformation T m b between the marker frame at the zero position and the robot base frame is obtained by the calibrated motion parameters, and together with the transformation T m c between the camera frame obtained by image processing and the marker frame at the zero position, forms the transformation T c b between the camera 110 and the base 102, thus completing the hand-eye calibration.

ロボットシステムは、ロボットリンク長さ、ジョイントのポジション及び向き、ロボットジョイントのゼロポジション、ジョイントのポジション及び向きごとの減速比、ジョイントごとの減速比を含むロボット100Aの運動パラメータをキャリブレーションする。キャリブレーションされたパラメータを用いて、ロボット100Aは、運動実行中にエンドエフェクタのポジション及び向きの改善された精度を達成することができる。実施形態に従って、キャリブレーションプロシージャは、エンコーダデータなしで実行されてもよい。マーカを含む複数の画像があれば、運動モデルパラメータ及びハンドーアイ・キャリブレーションを提供するのに十分である。 The robot system calibrates the motion parameters of the robot 100A, including robot link lengths, joint positions and orientations, robot joint zero positions, reduction ratios for each joint position and orientation, and reduction ratios for each joint. Using the calibrated parameters, the robot 100A can achieve improved accuracy in the position and orientation of the end effector during motion execution. According to an embodiment, the calibration procedure may be performed without encoder data; multiple images containing markers are sufficient to provide the motion model parameters and hand-eye calibration.

実施形態に従って、特別な基準マーカタイプ、例えば、3×3ChArUcoマーカが、マーカのキーポイントからの動き情報を用いてカメラ110の固有パラメータを自動的に求めるためにエンドエフェクタに取り付けられ得る。実施形態において、マーカのキーポイントは画像データI~Iから抽出される。更に、マーカのキーポイントの相対位置に関するグラウンド・トゥルース情報を知ることで、カメラ110の固有カメラパラメータは取得される。更に、取得されたカメラパラメータ及び画像上のマーカのキーポイントのポジションを使用することによって、カメラ110に対するマーカ中心の3DポジションP 及び3Dマーカ向きO がPnP法により計算される。 According to an embodiment, a special reference marker type, for example, a 3x3 ChArUco marker, can be attached to the end effector to automatically determine the intrinsic parameters of the camera 110 using motion information from the marker's keypoints. In an embodiment, the marker's keypoints are extracted from the image data I1 - It . Furthermore, by knowing ground truth information about the relative positions of the marker's keypoints, the intrinsic camera parameters of the camera 110 are obtained. Furthermore, by using the obtained camera parameters and the positions of the marker's keypoints on the image, the 3D position Pt i of the marker center and the 3D marker orientation Ot i with respect to the camera 110 are calculated by the PnP method.

他の実施形態に従って、少なくとも1つのマーカはロボットの各リンクに取り付けられる。このセットアップは、キャリブレーション中のロボットの任意の動き及びオンラインの運動パラメータキャリブレーションを可能にする。任意の動きが適用される場合は、エンコーダ値がゼロポジションキャリブレーションのために必要とされることがある。本実施形態は、任意のリンク結合を可能にする回転ジョイントを備えた任意のロボットアーキテクチャに適用され得る。実施形態と主な開示との間の違いは、ロボットアームの動きが任意であることができる点である。この実施形態では、カメラ110は画像I,・・・,Iを捕捉し、このとき、Tはフレームの総数である。その後、ジョイントj=1,・・・,Jについてのロータリーエンコーダデータα ,・・・,α の収集が実行される。更に、リンクj=1,・・・,Jに取り付けられているマーカのポジションP ,・・・PTj及び向きO ,・・・,O が取得される。更に、回転軸及び減速比推定が、第1ジョイントのV、Q、rを求めるために、第1ジョイントからのデータP ,・・・,P ;O ,・・・,O ;α ,・・・,α によって実行される。夫々のt=1,・・・,Tについて、角度値(-rα )による軸A=(V,Q)の周りの3D空間の回転に対応する3Dアフィン変換τ を計算する。更に、t=1,・・・,Tについて、
を表す。新しいポジション
は、あたかも第1ジョイントが静止してゼロポジションにあるかのように、第2ジョイントマーカのポジションに対応する。その後に、回転軸及び減速比推定は、V、Q、rを求めるために、第2ジョイントの変換されたデータ
について実行される。次に、角度値(-rα )による軸A=(V,Q)の周りの3D空間の回転に対応するτ が求められる。次に、ジョイント3のポジション及び向き:
が変換される。同じ一連の動作が、ゼロポジションでの回転軸A,・・・,Aが取得されるまで残りのジョイントについて繰り返される。更に、上述されたように第2エラー関数を使用して回転軸A,・・・,Aに基づき運動パラメータを決定する調整プロシージャが実行される。
According to another embodiment, at least one marker is attached to each link of the robot. This setup allows arbitrary movement of the robot during calibration and online motion parameter calibration. If arbitrary movement is applied, encoder values may be required for zero-position calibration. This embodiment can be applied to any robot architecture with rotary joints that allow arbitrary link connection. The difference between this embodiment and the main disclosure is that the movement of the robot arm can be arbitrary. In this embodiment, the camera 110 captures images I 1 , ..., I T , where T is the total number of frames. Then, collection of rotary encoder data α 1 j , ..., α T j for joints j = 1, ..., J is performed. Furthermore, the positions P 1 j , ..., P T j and orientations O 1 j , ... , O T j of the markers attached to links j = 1 , ..., J are obtained. Furthermore, rotation axis and reduction ratio estimation is performed with data P 1 1 , ..., P T 1 ; O 1 1 , ..., O T 1 ; α 1 1 , ..., α T 1 from the first joint to determine V 1 , Q 1 , r 1 of the first joint. For each t= 1 , ..., T, a 3D affine transformation τ t 1 is calculated, which corresponds to a rotation in 3D space around the axis A 1 = (V 1 , Q 1 ) by an angle value (-r 1 α t 1 ). Furthermore, for t=1, ..., T,
Represents a new position.
corresponds to the position of the second joint marker as if the first joint were stationary and in its zero position. The rotation axis and reduction ratio estimation is then performed using the transformed data of the second joint to find V 2 , Q 2 , r 2 .
Next, τ t 2 is found, which corresponds to a rotation in 3D space around axis A 2 =(V 2 ,Q 2 ) by an angle value (-r 2 α t 2 ). Next, the position and orientation of joint 3:
The same sequence of operations is repeated for the remaining joints until the rotation axes A 1 , ..., A J at the zero position are obtained. Further, a tuning procedure is performed to determine the motion parameters based on the rotation axes A 1 , ..., A J using the second error function as described above.

他の実施形態では、カメラ110はエンドエフェクタに取り付けられ、基準マーカは、エンドエフェクタではなく、カメラ110に視認可能な固定作業空間に取り付けられる。この実施形態では、画像処理は、一連のマーカポジションP,・・・,P及び一連のマーカ方向基底O,・・・,Oを取得するよう実行される。その後に、回転軸及び減速比推定が、-P,・・・,-P及びO -1,・・・,O -1などのカメラ110のポジション-向きデータを使用することによって実行され、最後に、運動パラメータ調整が実行される。 In another embodiment, the camera 110 is attached to the end effector, and the reference markers are not attached to the end effector, but to a fixed workspace visible to the camera 110. In this embodiment, image processing is performed to obtain a series of marker positions P 1 , ..., P T and a series of marker orientation bases O 1 , ..., O T. Then, rotation axis and reduction ratio estimation is performed by using the position-orientation data of the camera 110, such as -P 1 , ..., -P T and O 1 -1 , ..., O T -1 , and finally, motion parameter adjustment is performed.

他の実施形態では、空間障害物によってマーカを撮影できない場合に備えて、複数のカメラが使用される。カメラ110は、好ましくは、静止位置にある。他の実施形態では、複数のカメラを使用する代わりに、空間障害物がある場合に備えて、カメラ110は、事前に定義された軌道を持つことができる。 In other embodiments, multiple cameras are used in case a marker cannot be captured due to spatial obstructions. Camera 110 is preferably in a stationary position. In other embodiments, instead of using multiple cameras, camera 110 can have a predefined trajectory in case a spatial obstruction is present.

図2は、本開示の実施形態に従うロボットシステムのブロック図である。図2は、図1A及び図1Bからの要素とともに記載される。図2を参照して、ロボットをキャリブレーションするロボットシステム200が示されている。ロボットシステム200は、ロボットコントロール204、ロボットサーボ206、エンコーダレイヤ208、感知210、画像処理212、クロック同期214、軸及び減速比推定216、並びに運動パラメータ更新218を含む。ロボットシステム200は、ロボット100A(又は100B)、計算ユニット108、及びカメラ110を更に含む。図2は、ステップ202A~202Kまで段階的に説明される。 Figure 2 is a block diagram of a robotic system according to an embodiment of the present disclosure. Figure 2 is described with elements from Figures 1A and 1B. Referring to Figure 2, a robotic system 200 for calibrating a robot is shown. The robotic system 200 includes a robot control 204, a robot servo 206, an encoder layer 208, sensing 210, image processing 212, clock synchronization 214, axis and reduction ratio estimation 216, and motion parameter update 218. The robotic system 200 further includes a robot 100A (or 100B), a computing unit 108, and a camera 110. Figure 2 is described step by step from steps 202A to 202K.

ロボットシステム200のロボットコントロール204は、夫々の動きのための命令を供給することによってロボット100Aを制御するために使用される。ロボットシステム200内のエンコーダレイヤ208は、角度及び動きを捕捉するために使用される。感知210は、視覚情報を集めるためのカメラ110を含み得る。画像処理212は、カメラ110によって捕捉された画像を解析するために計算ユニット108内に存在するレイヤである。クロック同期214は、カメラ110をエンコーダレイヤ208と同期させるために計算ユニット108内に存在するレイヤである。更に、軸及び減速比推定216は、各ジョイントの推定された回転軸を供給すべきである。更に、運動パラメータ更新218は、キャリブレーションされた運動パラメータを供給するために使用される。 The robot control 204 of the robot system 200 is used to control the robot 100A by providing commands for each movement. The encoder layer 208 in the robot system 200 is used to capture angles and movements. Sensing 210 may include the camera 110 for gathering visual information. Image processing 212 is a layer present in the computation unit 108 for analyzing images captured by the camera 110. Clock synchronization 214 is a layer present in the computation unit 108 for synchronizing the camera 110 with the encoder layer 208. Furthermore, axis and reduction ratio estimation 216 should provide estimated rotation axes for each joint. Furthermore, motion parameter update 218 is used to provide calibrated motion parameters.

ステップ202Aで、計算ユニット108内のロボットコントロール204は、動きのためのコマンドを供給する。ロボットコントロール204は、少なくとも第1ジョイント及び第2ジョイントの動きのための所定のコマンドの組を記憶している。なお、ロボットコントロール204及び計算ユニット108は同じデバイスであってもよいことに留意されたい。 In step 202A, the robot control 204 in the computing unit 108 provides commands for movement. The robot control 204 stores a set of predetermined commands for movement of at least the first joint and the second joint. Note that the robot control 204 and the computing unit 108 may be the same device.

ステップ202Bで、ロボットコントロール204は、ロボットサーボ206において動きを生じさせるためにロボットサーボ206に所定のコマンドの組を送る。 In step 202B, the robot control 204 sends a set of predetermined commands to the robot servo 206 to cause movement in the robot servo 206.

ステップ202Cで、ロボットサーボ206の角度がエンコーダレイヤ208によって捕捉される。言い換えれば、少なくとも第1ジョイント及び第2ジョイントは、システムパラメータとしてジョイントごとのギア減速比を持ったギアシステムを介してロボットサーボ206に接続されている。ロボットサーボ206の動きは、何らかの減速比係数を有して少なくとも第1ジョイント及び第2ジョイントに伝えられる。更に、クロック同期214は、タイムスタンプのために同期を実行する。 In step 202C, the angle of the robot servo 206 is captured by the encoder layer 208. In other words, at least the first joint and the second joint are connected to the robot servo 206 via a gear system with a gear reduction ratio for each joint as a system parameter. The movement of the robot servo 206 is transmitted to at least the first joint and the second joint with some reduction ratio coefficient. Furthermore, the clock synchronization 214 performs synchronization for time stamps.

ステップ202Dで、視覚方法が感知210によって収集される。ステップ202Eで、クロック同期214はカメラ110をエンコーダレイヤ208と同期させる。言い換えれば、知覚レイヤ112はカメラ110内にある。カメラ110とエンコーダレイヤ208との同期は、カメラ110によって捕捉された画像にタイムスタンプを付すことによって実行される。例えば、運動Mの間、カメラは、少なくとも1つのキャリブレーションマーカの複数の画像I~Iを捕捉し、このとき、Tは、運動Mについてのフレームの総数である。画像は処理のために計算ユニット108へ送られる。運動Mの間、エンコーダレイヤ208は、ジョイントJのロボットサーボ206から情報を集め、情報を計算ユニット108へ送る。クロック同期214は、サーボ角度a~aを取得するためにエンコーダクロックとカメラクロックとを同期させる。
In step 202D, vision methods are collected by sensing 210. In step 202E, clock synchronization 214 synchronizes the camera 110 with the encoder layer 208. In other words, the perception layer 112 is within the camera 110. Synchronization between the camera 110 and the encoder layer 208 is performed by time-stamping images captured by the camera 110. For example, during movement M 1 J , the camera captures multiple images I 1 through I 1 T of at least one calibration marker, where T is the total number of frames for movement M 1 J. The images are sent to the computation unit 108 for processing. During movement M 1 J , the encoder layer 208 collects information from the robot servo 206 of joint J and sends the information to the computation unit 108. Clock synchronization 214 synchronizes the encoder clock and the camera clock to obtain the servo angles a 1 through a 1 T.

ステップ202Fで、画像処理212が実行され、このとき、画像処理212は、カメラ110からデータを取得することに関与し、観測されたマーカごとに対応するタイムスタンプとともに一連のポジション/向きデータを出力する。計算ユニット108の画像処理は、画像データI~Iを使用してカメラ110に対するマーカのポジション及び向きの計算に関与する。一般性を損なわずに、基準マーカΔは、全ての画像I~Iで視認可能かつ検出可能である。他の場合には、画像処理レイヤは、Δが検出されるフレームIi1~IiTのサブセットを選択する。カメラ110の固有パラメータは、正確であり知られていると仮定され得る。そうでない場合には、カメラキャリブレーションプロシージャが実行される。更に、画像I~Iでの基準マーカ検出が実行される。検出プロシージャの結果はシーケンスC ~C であり、このとき、C は、フレームIでのマーカΔのコーナーの(x,y)座標の集合である。更に、カメラ110の事前計算された固有パラメータ及びコーナー座標C は、perspective-n-point(PnP)法によりカメラ110に対してマーカ中心の3DポジションP 及び3Dマーカ向きO を計算するために使用される。例において、マーカ中心P の表現は3次元ベクトルによって実行され、O の表現は3×3正規直交基底行列によって実行される。 In step 202F, image processing 212 is performed, which involves acquiring data from the camera 110 and outputs a sequence of position/orientation data with a corresponding timestamp for each observed marker. The image processing of the computation unit 108 involves calculating the position and orientation of the markers relative to the camera 110 using the image data I 1 -I T. Without loss of generality, the reference marker Δ i is visible and detectable in all images I 1 -I T. In other cases, the image processing layer selects a subset of frames I i1 -I i T in which Δ i is detected. The intrinsic parameters of the camera 110 may be assumed to be accurate and known. If not, a camera calibration procedure is performed. Furthermore, reference marker detection in the images I 1 -I T is performed. The result of the detection procedure is a sequence C 1 I -C T i , where C t i is the set of (x,y) coordinates of the corners of marker Δ i in frame I t . Furthermore, the pre-computed intrinsic parameters and corner coordinates C t i of the camera 110 are used to calculate the 3D positions P t i and 3D marker orientations O t i of the marker centers with respect to the camera 110 by the perspective-n-point (PnP) method. In the example, the representation of the marker centers P t i is performed by a three-dimensional vector, and the representation of O t i is performed by a 3×3 orthonormal basis matrix.

ステップ202Gで、感知210によって収集された視覚情報は、クロック同期214によってタイムスタンプを付される。ステップ202H及び202Iで集合的に、軸及び減速比の推定が、カメラ110に対してキャリブレーションマーカ106A、106B、106Cのポジション及び向きを計算した後に実行される。軸及び減速比推定216は、キャリブレーションマーカのポジション/向きのデータ及びエンコーダデータを処理することに関与し、ジョイントごとの推定された回転軸を出力する。 In step 202G, the visual information collected by sensing 210 is time-stamped by clock synchronization 214. Collectively in steps 202H and 202I, axis and reduction ratio estimation is performed after calculating the position and orientation of the calibration markers 106A, 106B, 106C relative to the camera 110. Axis and reduction ratio estimation 216 involves processing the calibration marker position/orientation data and encoder data to output estimated rotation axes for each joint.

ステップ202Jで、ジョイントごとの推定された回転軸は、運動パラメータ更新218によって処理される。運動パラメータ更新218は、ジョイントごとの推定された回転軸を処理することに関与し、キャリブレーションされた運動パラメータを出力する。
In step 202J, the estimated rotation axes for each joint are processed by motion parameter update 218. Motion parameter update 218 is responsible for processing the estimated rotation axes for each joint and outputs calibrated motion parameters.

ステップ202Kで、運動パラメータのキャリブレーションプロシージャは完了される。更新された運動パラメータ及び変換演算子は、運動パラメータキャリブレーションプロシージャを完了する。ゼロポジションでのマーカフレームとキャリブレーションされた運動パラメータにより取得されたロボットベースフレームとの間の変換は、画像処理により取得されたカメラフレームとゼロポジションでのマーカフレームとの間の変換とともに、カメラ110とベース102との間の変換を形成し、このようにしてハンド-アイ・キャリブレーションを完了する。 In step 202K, the motion parameter calibration procedure is completed. The updated motion parameters and transformation operators complete the motion parameter calibration procedure. The transformation between the marker frame at the zero position and the robot base frame obtained using the calibrated motion parameters, together with the transformation between the camera frame obtained by image processing and the marker frame at the zero position, forms the transformation between the camera 110 and the base 102, thus completing the hand-eye calibration.

ロボットシステム200は、ロボットリンク長さ、ジョイントのポジション及び向き、ロボットジョイントのゼロポジション、ジョイントのポジション及び向きごとの減速比、ロボットジョイントのゼロポジションを含むロボット100の運動パラメータをキャリブレーションする。キャリブレーションされたパラメータを用いて、ロボットシステム200は、運動実行中にエンドエフェクタのポジション及び向きの改善された精度を達成することができる。 The robot system 200 calibrates the motion parameters of the robot 100, including robot link lengths, joint positions and orientations, robot joint zero positions, reduction ratios for each joint position and orientation, and robot joint zero positions. Using the calibrated parameters, the robot system 200 can achieve improved accuracy in the position and orientation of the end effector during motion execution.

図3は、本開示の実施形態に従う、ロボットのキャリブレーション方法のフローチャートである。図3は、図1A、図1B、及び図2からの要素とともに記載される。図3は、ステップ302から304まで段階的に説明される。 Figure 3 is a flowchart of a method for calibrating a robot according to an embodiment of the present disclosure. Figure 3 is described in conjunction with elements from Figures 1A, 1B, and 2. Figure 3 is explained step by step from steps 302 to 304.

方法300は、可動部104を有し、可動部104がその上に少なくとも1つのキャリブレーションマーカを設けられており、少なくとも1つのリンクの一端に配置されている少なくとも第1ジョイント及び第2ジョイントを有し、第1ジョイント及び第2ジョイントが、計算ユニット108によって制御される可動部104での動きを生成するよう構成されるロボット100Aをキャリブレーションするために使用される。言い換えれば、可動部104はロボット100Aのアームを形成する。可動部104は任意数のジョイントを備えている。ジョイントは、少なくとも1つのリンクのいずれかの端部に配置されている。少なくとも1つのリンクの動きは、隣接するジョイントの回転によって実行される。計算ユニット108は、可動部104に動きをもたらすように第1ジョイント及び第2ジョイントを制御し、データは、少なくとも1つのキャリブレーションマーカの動きの評価によって収集される。例えば、図3において、ステップ302で、方法300は、データ収集プロシージャを実行することから始まる。データ収集プロシージャ302は、ステップ302Aで、第1ジョイント及び/又は第2ジョイントを回転させることによって、複数のポジションで少なくとも1つのキャリブレーションマーカを位置決めすることを含む。言い換えれば、データは、キャリブレーションマーカ106Aなどの少なくとも1つのキャリブレーションマーカのポジションを変えることによって収集される。更に、第1ジョイント及び/又は第2ジョイントは、ジョイントごとのギア減速比を含むシステムパラメータを持ったギアシステムを介して第1サーボモータ112A及び第2サーボモータ112Bに接続され得る。第1サーボモータ112A及び第2サーボモータ112Bの動きは、第1ジョイント及び/又は第2ジョイントに伝えられ、次いで、動きは少なくとも1つのキャリブレーションマーカに伝えられる。 The method 300 is used to calibrate a robot 100A having a movable part 104, the movable part 104 having at least one calibration marker thereon, and at least a first joint and a second joint disposed at one end of at least one link, the first joint and the second joint configured to generate a movement in the movable part 104 controlled by a computing unit 108. In other words, the movable part 104 forms an arm of the robot 100A. The movable part 104 may have any number of joints. The joints may be disposed at either end of at least one link. The movement of at least one link is performed by rotating an adjacent joint. The computing unit 108 controls the first joint and the second joint to impart movement to the movable part 104, and data is collected by evaluating the movement of the at least one calibration marker. For example, in FIG. 3, the method 300 begins at step 302 by performing a data collection procedure. The data collection procedure 302 includes, in step 302A, positioning at least one calibration marker at multiple positions by rotating the first joint and/or the second joint. In other words, data is collected by changing the position of at least one calibration marker, such as calibration marker 106A. Furthermore, the first joint and/or the second joint may be connected to the first servo motor 112A and the second servo motor 112B via a gear system with system parameters including a gear reduction ratio for each joint. The movement of the first servo motor 112A and the second servo motor 112B is imparted to the first joint and/or the second joint, which in turn imparts the movement to the at least one calibration marker.

データ収集プロシージャ302は、ステップ302Bで、少なくとも1つのキャリブレーションマーカの複数の画像を取得することを更に含む。実施において、複数の画像は、少なくとも1つのキャリブレーションマーカが複数のポジションにある場合にカメラ110によって捕捉される。言い換えれば、カメラ110と第1エンコーダ114A及び第2エンコーダ114Bとの同期が、カメラ110によって捕捉された画像にタイムスタンプを付すことによって実行される。例えば、運動Mの間、カメラ110は、少なくとも1つのキャリブレーションマーカの複数の画像I~Iを捕捉し、このとき、Tは、運動Mについてのフレームの総数である。画像は処理のために計算ユニット108へ送られる。運動Mの間、第1エンコーダ114A及び第2エンコーダ114Bは、ジョイントJの第1サーボモータ112A及び第2サーボモータ112Bから情報を集め、情報を計算ユニット108へ送る。 The data collection procedure 302 further includes acquiring multiple images of the at least one calibration marker at step 302B. In implementation, the multiple images are captured by the camera 110 when the at least one calibration marker is in multiple positions. In other words, synchronization between the camera 110 and the first and second encoders 114A, 114B is performed by time-stamping the images captured by the camera 110. For example, during movement M 1 J , the camera 110 captures multiple images I 1 through I 1 T of the at least one calibration marker, where T is the total number of frames for movement M 1 J. The images are sent to the computation unit 108 for processing. During movement M 1 J , the first and second encoders 114A, 114B collect information from the first and second servo motors 112A, 112B of joint J and send the information to the computation unit 108.

方法300は、ステップ304で、データ処理プロシージャを実行することを更に有する。言い換えれば、少なくとも1つのキャリブレーションマーカの動きを評価することによって収集されたデータが更に処理される。プロシージャ304は、ステップ304A、304B、304C、304D、及び304Eなどの様々なステップに更に分けられる。 The method 300 further comprises performing a data processing procedure at step 304. In other words, the collected data is further processed by evaluating the movement of at least one calibration marker. The procedure 304 is further divided into various steps, such as steps 304A, 304B, 304C, 304D, and 304E.

データ処理プロシージャ304は、304Aで、複数の画像を処理して、複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカポジションを決定することを有する。言い換えれば、画像処理は、カメラ110からデータを取得することによって実行され、観測されたマーカごとに対応するタイムスタンプとともに一連のポジション/向きデータを出力する。実施において、計算ユニット108の画像処理レイヤは、例えば画像データI~Iを使用することによって、カメラ110に対するマーカのポジション及び向きの計算に関与する。実施において、一般性を損なわずに、基準マーカΔは、全ての画像I~Iで視認可能かつ検出可能である。他の実施では、画像処理レイヤは、Δが検出されるフレームIi1~IiTのサブセットを選択する。カメラ110の固有パラメータは、正確であり知られていると仮定され得る。そうでない場合には、カメラキャリブレーションプロシージャが実行される。更に、画像I~Iでの基準マーカ検出が実行される。検出プロシージャの結果はシーケンスC ~C であり、このとき、C は、フレームIでのマーカΔのコーナーの(x,y)座標の集合である。更に、カメラの事前計算された固有パラメータ及びコーナー座標C は、perspective-n-point(PnP)法によりカメラに対してマーカ中心の3DポジションP 及び3Dマーカ向きO を計算するために使用される。例において、マーカ中心P の表現は3次元ベクトルによって実行され、O の表現は3×3正規直交基底行列によって実行される。
The data processing procedure 304 includes, at 304A, processing the plurality of images to determine, for each image of the plurality of images, a marker position of at least one calibration marker in three-dimensional space, to be output as marker position data. In other words, the image processing is performed by acquiring data from the camera 110 and outputting a series of position/orientation data with a corresponding timestamp for each observed marker. In an implementation, the image processing layer of the computation unit 108 is responsible for calculating the position and orientation of the marker relative to the camera 110, for example, by using the image data I 1 -I 1 T. In an implementation, without loss of generality, the reference marker Δ i is visible and detectable in all images I 1 -I 1 T. In another implementation, the image processing layer selects a subset of frames I 11 -I 1 T in which Δ i is detected. The intrinsic parameters of the camera 110 may be assumed to be accurate and known. If not, a camera calibration procedure is performed. Furthermore, reference marker detection in the images I 1 -I 1 T is performed. The result of the detection procedure is a sequence C 1 I to C T i , where C t i is the set of (x,y) coordinates of the corners of marker Δ i at frame I t . Furthermore, the pre-computed intrinsic parameters of the camera and the corner coordinates C t I are used to calculate the 3D positions P t i and 3D marker orientations O t i of the marker centers with respect to the camera by the perspective-n-point (PnP) method. In the example, the representation of marker center P t i is performed by a 3D vector, and the representation of O t i is performed by a 3x3 orthonormal basis matrix.

データ処理プロシージャ304は、ステップ304Bで、マーカポジションデータに基づき第1エラー関数を確立することを更に有する。言い換えれば、マーカポジションデータは、基本的に、画像処理によって取得されたデータである。画像処理中に、カメラ110によって捕捉された画像内の少なくとも1つのキャリブレーションマーカのポジションはマークされる。少なくとも1つのキャリブレーションマーカのこれらのマークされたポジションは、マーカポジションデータと呼ばれる。更に、軸及び減速比推定レイヤは、マーカのポジション/向きのデータ及びエンコーダデータを処理することに関与し、ジョイントごとの推定された回転軸を出力する。例えば、回転の幾何学的性質から、夫々のiについて、3Dマーカ座標P ,・・・,P が、Qに中心がある円に、Vに直交する面に、及び角度rα,・・・,rαに従って配置され、方向基底O ,・・・,O は、角度rα,・・・,rαに従ってVの周りを回転する。更に、回転軸ベクトルV、回転軸点Q及び回転率rが推定される。例えば、3DベクトV、3D点Q、及びスカラーrの所与の組について上記の幾何学的特性がどの程度満足されないかの大きさを反映する損失関数L(V、Q,r)に最適化法が適用され得る。適化問題:(V,Q,r)=argminL(V,Q,r)を解くことによって、所望の値が求められる。 The data processing procedure 304 further includes, in step 304B, establishing a first error function based on the marker position data. In other words, the marker position data is essentially data obtained by image processing. During image processing, the positions of at least one calibration marker in the image captured by the camera 110 are marked. These marked positions of the at least one calibration marker are referred to as marker position data. Furthermore, the axis and reduction ratio estimation layer is responsible for processing the marker position/orientation data and encoder data, and outputs estimated rotation axes for each joint. For example, from the geometric properties of rotation, for each i, the 3D marker coordinates P1i , ..., PTi are arranged on a circle centered at Qj , on a plane orthogonal to Vj, and according to angles rjα1, ..., rjαT , and the directional basis O1i , ..., OTi rotates around Vj according to angles rjα1 , ... , rjαT . Furthermore, the rotation axis vector Vj , the rotation axis point Qj , and the rotation rate rj are estimated. For example, an optimization method can be applied to a loss function L(V, Q, r) that reflects the extent to which the above geometric properties are not satisfied for a given set of 3D vector V, 3D point Q, and scalar r. The desired value is found by solving the optimization problem: ( Vj , Qj , rj ) = argminL(V, Q, r).

データ処理プロシージャ304は、ステップ304Cで、第1エラー関数に基づき第1ジョイントの第1回転軸及び第2ジョイントの第2回転軸を決定することを更に有する。言い換えれば、計算されたマーカのポジション/向きのデータと、第1エンコーダ114A及び第2エンコーダ114Bによって収集されたサーボモータ回転データとに基づき、情報は、ジョイントごとの回転軸及びジョイント後の減速比を決定するよう処理される。 The data processing procedure 304 further includes, in step 304C, determining a first rotation axis for the first joint and a second rotation axis for the second joint based on the first error function. In other words, based on the calculated marker position/orientation data and the servo motor rotation data collected by the first encoder 114A and the second encoder 114B, the information is processed to determine the rotation axis for each joint and the reduction ratio after the joint.

データ処理プロシージャ304は、ステップ304Dで、少なくとも第1回転軸及び第2回転軸に基づき第2エラー関数を確立することを更に有する。第1ジョイントの第1回転軸及び第2ジョイントの第2回転軸を第1エラー関数に基づき決定した後、第2エラー関数は、第1回転軸及び第2回転軸を用いて確立される。特に、1つ又は複数のエラー関数が、マーカの計算された複数の3Dポジションに基づき確立されてよい。更に、パラメータは、エラー関数に基づきロボットシステム200の回転軸の組を定義するよう計算される。 The data processing procedure 304 further includes, in step 304D, establishing a second error function based on at least the first and second rotational axes. After determining the first and second rotational axes of the first and second joints based on the first error function, a second error function is established using the first and second rotational axes. In particular, one or more error functions may be established based on the calculated 3D positions of the marker. Furthermore, parameters are calculated to define a set of rotational axes of the robot system 200 based on the error function.

データ処理プロシージャ304は、ステップ304Fで、第2エラー関数に基づきロボット100Aの運動モデルについて運動パラメータの組を決定することを更に有する。言い換えれば、第2エラー関数を決定した後、運動パラメータの組は、第2エラー関数を用いて決定される。特に、運動パラメータ更新レイヤは、ジョイントごとの推定された回転軸を処理することに関与し、キャリブレーションされた運動パラメータを出力する。 The data processing procedure 304 further includes, at step 304F, determining a set of motion parameters for the motion model of the robot 100A based on the second error function. In other words, after determining the second error function, the set of motion parameters is determined using the second error function. In particular, the motion parameter update layer is responsible for processing the estimated rotation axis for each joint and outputs calibrated motion parameters.

実施形態に従って、方法300は、決定された運動パラメータの組を用いてロボット100Aの運動モデルをキャリブレーションすることを有する。言い換えれば、運動パラメータの組は、ロボット100Aの運動モデルをキャリブレーションするために使用される。更に、キャリブレーションは、ロボットリンク長さ、ジョイントのポジション及び向き、ロボットジョイントのゼロポジション、ジョイントごとの減速比を含め、実行される。 According to an embodiment, the method 300 includes calibrating a kinematic model of the robot 100A using the determined set of kinematic parameters. In other words, the set of kinematic parameters is used to calibrate the kinematic model of the robot 100A. Further calibration is performed, including the robot link lengths, joint positions and orientations, robot joint zero positions, and reduction ratios for each joint.

実施形態に従って、可動部104は、第1ジョイントを動かすよう構成される第1サーボモータ112Aと、第2ジョイントを動かすよう構成される第2サーボモータ112Bと、第1サーボモータ112Aに設けられている第1エンコーダ114Aと、第2サーボモータ112Bに設けられている第2エンコーダ114Bとを更に有する。更に、カメラ110は第1エンコーダ114A及び第2エンコーダ114Bと同期され、データ収集プロシージャは、複数の画像の各画像にタイムスタンプを付すことを更に有する。更に、タイムスタンプは、一連の時間ステップ内の時間ステップに対応する。言い換えれば、各ジョイントの連続した円運動が実行される。ジョイントの運動中に、モータロータリーエンコーダデータが集められ、マーカの画像がエンドエフェクタに配される。更に、画像処理並びにマーカのポジション及び向きの計算が実行される。更に、計算されたマーカのポジション/向きのデータと、第1エンコーダ114A及び第2エンコーダ114Bによって収集されたモータ回転データとに基づく。更に、情報は、ジョイントごとの回転軸及びジョイントごとの減速比を決定するよう処理される。 According to the embodiment, the movable part 104 further includes a first servo motor 112A configured to move the first joint, a second servo motor 112B configured to move the second joint, a first encoder 114A provided on the first servo motor 112A, and a second encoder 114B provided on the second servo motor 112B. Furthermore, the camera 110 is synchronized with the first encoder 114A and the second encoder 114B, and the data collection procedure further includes time-stamping each image of the plurality of images. Furthermore, the time-stamp corresponds to a time step within the series of time steps. In other words, a continuous circular movement of each joint is performed. During the joint movement, motor rotary encoder data is collected, and images of markers are placed on the end effector. Further, image processing and calculation of the marker position and orientation are performed. Furthermore, the calculated marker position/orientation data is based on the motor rotation data collected by the first encoder 114A and the second encoder 114B. The information is then processed to determine the rotation axis for each joint and the reduction ratio for each joint.

実施形態に従って、第1エンコーダ114A及び第2エンコーダ114Bは、夫々第1サーボモータ112A及び第2サーボモータ112Bのサーボ値を収集するよう構成される。データ処理プロシージャは、第1サーボモータ112A及び第2サーボモータ112Bの夫々について、夫々第1エンコーダ114A及び第2エンコーダ114Bによって収集されたサーボ値に基づき各々のサーボモータについて複数のサーボモータ角度を決定することを更に有する。言い換えれば、少なくとも第1ジョイント及び第2ジョイントは、システムパラメータとしてジョイントごとのギア減速比を持ったギアシステムを介して第1サーボモータ112A及び第2サーボモータ112Bに接続される。第1サーボモータ112A及び第2サーボモータ112Bの動きは、何らかの減速比係数を有して少なくとも第1ジョイント及び第2ジョイントに伝えられる。 According to an embodiment, the first encoder 114A and the second encoder 114B are configured to collect servo values of the first servo motor 112A and the second servo motor 112B, respectively. The data processing procedure further includes determining, for each of the first servo motor 112A and the second servo motor 112B, a plurality of servo motor angles for each servo motor based on the servo values collected by the first encoder 114A and the second encoder 114B, respectively. In other words, at least the first joint and the second joint are connected to the first servo motor 112A and the second servo motor 112B via a gear system having a gear reduction ratio for each joint as a system parameter. The movement of the first servo motor 112A and the second servo motor 112B is transmitted to at least the first joint and the second joint with some reduction ratio coefficient.

実施形態に従って、マーカポジションは、複数の画像の各画像について、当該画像から少なくとも1つのキャリブレーションマーカの複数のコーナー座標を抽出することによって決定される。更に、複数のコーナー座標の夫々は、少なくとも1つのキャリブレーションマーカのコーナーに略あるポジションに対応する。言い換えれば、計算ユニット108の画像処理レイヤは、画像データI~Iを用いてカメラ110に対するキャリブレーションマーカのポジション及び向きの計算に関与する。更に、一般性を損なわずに、基準マーカΔは、全ての画像I~Iで視認可能かつ検出可能である。 According to an embodiment, the marker positions are determined for each image of the plurality of images by extracting from the image a plurality of corner coordinates of at least one calibration marker. Further, each of the plurality of corner coordinates corresponds to a position that is approximately at a corner of the at least one calibration marker. In other words, the image processing layer of the computation unit 108 is responsible for calculating the position and orientation of the calibration markers relative to the camera 110 using the image data I 1 -I T. Furthermore, without loss of generality, it is assumed that the reference marker Δ i is visible and detectable in all images I 1 -I T.

実施形態に従って、マーカポジションは、複数の画像の各画像について、当該画像上の少なくとも1つのキャリブレーションマーカの複数のコーナー座標と、1つ以上の固有カメラパラメータとを用いて、マーカ中心座標を計算することによって決定される。言い換えれば、少なくとも1つのキャリブレーションマーカは、ジョイントが回転する間、円運動を行う。更に、ジョイントの角軌跡は、カメラ110がマーカΔの複数の区別可能なポジションを捕捉するために十分に大きい必要がある。更に、夫々のj=1,・・・,Jについて、データ収集、画像処理、回転軸及び減速比推定の連続が、タプル(V,Q)によって定義される、各ジョイントAについての回転軸のポジション及び向きの推定を取得するように繰り返され、このとき、Vは、j番目の回転軸の向きを定義する3D回転ベクトルであり、Qは、回転軸のポジション及び減速比rを定義する3Dポイントである。 According to an embodiment, the marker positions are determined for each image of the multiple images by calculating the marker center coordinates using multiple corner coordinates of at least one calibration marker on that image and one or more intrinsic camera parameters. In other words, the at least one calibration marker undergoes a circular motion while the joint rotates. Furthermore, the angular trajectory of the joint needs to be large enough for the camera 110 to capture multiple distinguishable positions of the marker Δ i . Furthermore, for each j = 1, ..., J, the sequence of data collection, image processing, and rotation axis and reduction ratio estimation is repeated to obtain an estimate of the rotation axis position and orientation for each joint A j defined by a tuple (V j , Q j ), where V j is a 3D rotation vector defining the orientation of the j-th rotation axis, and Q j is a 3D point defining the rotation axis position and reduction ratio r j .

実施形態に従って、方法300は複数の画像を処理することを有し、複数の画像を処理することは、マーカポジションデータとして出力するよう、複数の画像の各画像について、当該画像上の少なくとも1つのキャリブレーションマーカの複数のコーナー座標と、1つ以上の固有カメラパラメータとに基づき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカ向きを決定することを更に有する。例えば、一般性を損なわずに、基準マーカΔは、全ての画像I~Iで視認可能かつ検出可能である。実施において、画像処理レイヤは、Δが検出されるフレームIi1~IiTのサブセットを選択する。カメラ110の固有パラメータは、正確であり知られていると仮定され得る。そうでない場合には、カメラキャリブレーションプロシージャが実行される。更に、画像I~Iでの基準マーカ検出が実行される。検出プロシージャの結果はシーケンスC ~C であり、このとき、C は、フレームIでのマーカΔのコーナーの(x,y)座標の集合である。更に、カメラの事前計算された固有パラメータ及びコーナー座標C は、perspective-n-point(PnP)法によりカメラに対してマーカ中心の3DポジションP 及び3Dマーカ向きO を計算するために使用される。例において、マーカ中心P の表現は3次元ベクトルによって実行され、O の表現は3×3正規直交基底行列によって実行される。 According to an embodiment, the method 300 includes processing a plurality of images, which further includes determining, for each image of the plurality of images, a marker orientation of at least one calibration marker in three-dimensional space based on a plurality of corner coordinates of the at least one calibration marker on the image and one or more intrinsic camera parameters, to output as marker position data. For example, without loss of generality, a fiducial marker Δ i is visible and detectable in all images I 1 to I t . In implementation, the image processing layer selects a subset of frames I i1 to I t in which Δ i is detected. The intrinsic parameters of the camera 110 may be assumed to be accurate and known. If not, a camera calibration procedure is performed. Further, fiducial marker detection in the images I 1 to I t is performed. The result of the detection procedure is a sequence C 1 I to C t i , where C t i is the set of (x, y) coordinates of the corners of marker Δ i in frame I t . Furthermore, the pre - computed intrinsic parameters of the camera and the corner coordinates CtI are used to calculate the 3D positions PtI and 3D marker orientations OtI of the marker centers with respect to the camera by the perspective- n -point (PnP ) method. In the example, the representation of the marker center PtI is performed by a 3D vector, and the representation of OtI is performed by a 3x3 orthonormal basis matrix.

実施形態に従って、方法300は、マーカ中心座標と、カメラ110の座標系に対する少なくとも1つのマーカの円運動に対応する少なくとも1つのキャリブレーションマーカのマーカ向きとの円弧フィッティングを含む第1エラー関数を確立することを有する。言い換えれば、エラー関数は、マーカの3Dポジションと、他のマーカ又はカメラ座標系に対する少なくとも1つのキャリブレーションマーカの円運動に対応する3Dマーカ方向との円弧フィッティングに基づき、また、任意に、エンコーダデータと、少なくとも1つのキャリブレーションマーカの3D方向へのエンコーダデータのフィッティングとに基づく。 According to an embodiment, the method 300 comprises establishing a first error function comprising an arc-fit between a marker center coordinate and a marker orientation of at least one calibration marker corresponding to a circular movement of the at least one marker relative to the coordinate system of the camera 110. In other words, the error function is based on an arc-fit between a 3D position of the marker and a 3D marker orientation corresponding to a circular movement of the at least one calibration marker relative to another marker or the camera coordinate system, and optionally also based on encoder data and a fitting of the encoder data to the 3D orientation of the at least one calibration marker.

実施形態に従って、可動部は、ギア減速比を有する第1ギアシステムを介して第1ジョイントに結合されている第1サーボモータ112Aを有する。更に、方法300は、第1ジョイントの第1回転軸を決定することを有し、第1ジョイントの第1回転軸を決定することは、マーカ中心座標と、複数の画像から決定された少なくとも1つのキャリブレーションマーカのマーカ向きとに基づき第1エラー関数を確立し、第1エラー関数に最適化関数を適用して、ジョイント回転軸原点Q、回転軸ベクトルV、及びギア減速比rを決定することを有する。言い換えれば、可動部104は少なくとも2つのジョイントを備えている。ジョイントは、少なくとも1つのリンクの端部の一方に配置されており、少なくとも1つのリンク動きは、少なくとも1つの前置ジョイントの回転によって行われる。更に、少なくとも第1ジョイント及び第2ジョイントは、システムパラメータとしてジョイントごとのギア減速比を持ったギアシステムを介して第1サーボモータ112A及び第2サーボモータ112Bに接続されている。第1サーボモータ112A及び第2サーボモータ112Bの動きは、何らかの減速比係数を有して少なくとも第1ジョイント及び第2ジョイントに伝えられる。更に、軸及び減速比推定レイヤは、マーカのポジション/向きのデータ及びエンコーダデータを処理することに関与し、ジョイントごとの推定された回転軸を出力する。更に、運動パラメータ更新レイヤは、ジョイントごとの推定された回転軸を処理することに関与し、キャリブレーションされた運動パラメータを出力する。 According to the embodiment, the movable part 104 includes a first servo motor 112A coupled to a first joint via a first gear system having a gear reduction ratio. The method 300 further includes determining a first rotation axis of the first joint, which includes establishing a first error function based on marker center coordinates and marker orientations of at least one calibration marker determined from the multiple images, and applying an optimization function to the first error function to determine a joint rotation axis origin Q, a rotation axis vector V, and a gear reduction ratio r. In other words, the movable part 104 includes at least two joints. The joints are located at one end of at least one link, and at least one link movement is achieved by rotation of at least one pre-joint. Furthermore, at least the first joint and the second joint are connected to the first servo motor 112A and the second servo motor 112B via a gear system having a gear reduction ratio for each joint as a system parameter. The motion of the first servo motor 112A and the second servo motor 112B is transmitted to at least the first joint and the second joint with some reduction ratio coefficient. Furthermore, the axis and reduction ratio estimation layer is responsible for processing the marker position/orientation data and encoder data, and outputs an estimated rotation axis for each joint. Furthermore, the motion parameter update layer is responsible for processing the estimated rotation axis for each joint, and outputs calibrated motion parameters.

実施形態に従って、第1エンコーダ114Aは、第1サーボモータ112Aのサーボ値を含むエンコーダデータを出力するよう構成されている第1サーボモータ112Aに設けられ、ギア減速比は、複数の画像から決定された少なくとも1つのキャリブレーションマーカのマーカ向きと、第1サーボモータ112Aの前記エンコーダデータとに基づき決定される。言い換えれば、システムパラメータとしてジョイントごとのギア減速比を持ったギアシステムが、少なくとも第1ジョイント及び第2ジョイントを第1サーボモータ112A及び第2サーボモータ112Bと結び付けるために使用される。少なくとも第1ジョイント及び第2ジョイントは、第1サーボモータ112A及び第2サーボモータ112Bの動きによって動かされる。更に、何らかの減速比係数も動きとともに加えられる。 According to an embodiment, a first encoder 114A is provided to the first servo motor 112A, configured to output encoder data including a servo value of the first servo motor 112A, and a gear reduction ratio is determined based on the marker orientation of at least one calibration marker determined from multiple images and the encoder data of the first servo motor 112A. In other words, a gear system having a gear reduction ratio for each joint as a system parameter is used to connect at least the first joint and the second joint with the first servo motor 112A and the second servo motor 112B. At least the first joint and the second joint are moved by the movement of the first servo motor 112A and the second servo motor 112B. Furthermore, any reduction ratio coefficient is also applied along with the movement.

実施形態に従って、少なくとも1つのキャリブレーションマーカは1つ以上のマーカーキーポイントを含む。更に、マーカーキーポイントは、少なくとも1つのキャリブレーションマーカ上の一意に識別可能なポイントに対応し、データ処理プロシージャは、複数の画像から1つ以上のマーカーキーポイントを抽出することを更に含む。例えば、特別な基準マーカタイプ、例えば、3×3ChArUcoマーカが、マーカのキーポイントからの動き情報を用いてカメラ110の固有パラメータを自動的に求めるようエンドエフェクタに取り付けられ得る。 According to an embodiment, at least one calibration marker includes one or more marker keypoints. Further, the marker keypoints correspond to uniquely identifiable points on the at least one calibration marker, and the data processing procedure further includes extracting the one or more marker keypoints from the multiple images. For example, a special fiducial marker type, e.g., a 3x3 ChArUco marker, may be attached to the end effector to automatically determine the intrinsic parameters of the camera 110 using motion information from the marker keypoints.

実施形態に従って、方法は、1つ以上のマーカーキーポイントの相対位置に基づき1つ以上の固有カメラパラメータを決定することを有する。例えば、画像データI,・・・,Iからマーカのキーポイントを抽出する。更に、マーカのキーポイントの相対位置に関するグラウンド・トゥルース情報を知ることで、カメラ110の固有カメラパラメータは取得される必要がある。更に、取得されたカメラパラメータ及び画像上のマーカのキーポイントのポジションを使用することによって、カメラ110に対するマーカ中心の3DポジションP 及び3Dマーカ向きO をPnP法により計算する。 According to an embodiment, the method includes determining one or more intrinsic camera parameters based on the relative positions of one or more marker keypoints. For example, by extracting the marker keypoints from the image data I 1 , ..., I T. Furthermore, by knowing ground truth information about the relative positions of the marker keypoints, the intrinsic camera parameters of the camera 110 need to be obtained. Furthermore, by using the obtained camera parameters and the positions of the marker keypoints on the image, the 3D position P t i of the marker center and the 3D marker orientation O t i are calculated with a PnP method.

実施形態に従って、可動部104は、対応する複数J個のサーボモータによって回転されるよう配置される複数J個のジョイントを含む。更に、少なくとも1つのキャリブレーションマーカを位置決めすることは、複数J個のジョイントを回転させるように動きM,M,・・・,Mの組を実行するよう複数J個のサーボモータを制御することを含む。言い換えれば、計算ユニット108に記憶されている事前定義されたコマンドの組が第1サーボモータ112A及び第2サーボモータ112Bに送られる。第1サーボモータ112A及び第2サーボモータ112Bは動きM,・・・,Mの組を実行し、このとき、Jは可動部104でのジョイントの数であり、Mは、j番目のロボットジョイントを、他のジョイントがそれらのゼロポジションで静止している間に動かすことによって決定される。ジョイントは動き、キャリブレーションマーカ106Aなどの少なくとも1つのキャリブレーションマーカは、ロボットの可動部に対して任意のポジション及び向きで静的に取り付けられる。その結果、少なくとも1つのキャリブレーションマーカは、ジョイントが回転している間、円運動を行う。ジョイントの角軌跡は、カメラ110がマーカΔの複数の区別可能なポジションを捕捉するために十分に大きい必要がある。更に、夫々のj=1,・・・,Jについて、データ収集、画像処理、回転軸及び減速比推定の連続が、タプル(V,Q)によって定義される、各ジョイントAについての回転軸のポジション及び向きの推定を取得するように繰り返される。更に、Vは、j番目の回転軸の向きを定義する3D回転ベクトルであり、Qは、回転軸のポジション及び減速比rを定義する3Dポイントである。 According to an embodiment, the movable part 104 includes a plurality of J joints arranged to be rotated by a corresponding plurality of J servo motors. Furthermore, positioning the at least one calibration marker includes controlling the plurality of J servo motors to execute a set of motions M1 , M2 , ..., MJ to rotate the plurality of J joints. In other words, a set of predefined commands stored in the computing unit 108 is sent to the first servo motor 112A and the second servo motor 112B. The first servo motor 112A and the second servo motor 112B execute the set of motions M1 , ..., MJ , where J is the number of joints in the movable part 104 and Mj is determined by moving the jth robot joint while the other joints remain stationary at their zero positions. The joints move, and at least one calibration marker, such as calibration marker 106A, is statically attached to the movable part of the robot at an arbitrary position and orientation. As a result, the at least one calibration marker performs a circular motion while the joints rotate. The angular trajectory of the joints needs to be large enough for the camera 110 to capture multiple distinct positions of the marker Δ i . Furthermore, for each j = 1,...,J, the sequence of data collection, image processing, and rotation axis and reduction ratio estimation is repeated to obtain an estimate of the rotation axis position and orientation for each joint A j , defined by the tuple (V j ,Q j ). Furthermore, V j is a 3D rotation vector defining the orientation of the j-th rotation axis, and Q j is a 3D point defining the rotation axis position and reduction ratio r j .

実施形態に従って、1≦n≦Jの場合に、n番目のジョイントの動きMは、複数J個のジョイントのうちの残りのジョイントを各々のゼロポジションに保ちながら、n番目のジョイントを回転させるようn番目のサーボモータを制御することによって決定される。言い換えれば、ジョイントの数はサーボモータの数と等しく、サーボモータが動くにつれて、動きはジョイントに伝えられる。この動きは計算ユニット108によって制御される。ただ1つのサーボモータが回転している場合に、ただ1つのジョイントが動いており、この場合に、残りのジョイントはゼロポジションにあると見なされる。 According to an embodiment, the movement Mn of the nth joint, where 1≦n≦J, is determined by controlling the nth servo motor to rotate the nth joint while keeping the remaining joints of the plurality of J joints at their zero positions. In other words, the number of joints is equal to the number of servo motors, and as the servo motors move, movement is imparted to the joints. This movement is controlled by the calculation unit 108. If only one servo motor is rotating, then only one joint is moving, and in this case, the remaining joints are considered to be at their zero positions.

実施形態に従って、少なくとも1つのキャリブレーションマーカは、複数J個のジョイントのうちの2つの隣接するジョイントを夫々接続する1つ以上のリンクに設けられ、エンコーダは、複数J個のサーボモータの各サーボモータに設けられ、複数のエンコーダの夫々は、複数J個のジョイントの各々のジョイントに対応するエンコーダデータを出力するよう構成される。更に、エンコーダデータは、対応するサーボモータのサーボ値(例えば、角度)を含む。サーボモータの動きは、対応するジョイントの回転に変わる。動きを表示するとき、エンコーダはエンコーダデータを生成する。ここで、エンコーダはジョイントの動きの回転の角度を評価し、これはサーボ値に対応する。 According to an embodiment, at least one calibration marker is provided on one or more links each connecting two adjacent joints of the plurality of J joints, and an encoder is provided on each servo motor of the plurality of J servo motors, each of the plurality of encoders configured to output encoder data corresponding to each joint of the plurality of J joints. Further, the encoder data includes a servo value (e.g., an angle) of the corresponding servo motor. The movement of the servo motor translates into a rotation of the corresponding joint. When representing the movement, the encoder generates encoder data, where the encoder estimates the angle of rotation of the joint movement, which corresponds to the servo value.

実施形態に従って、動きM,M,・・・,Mの組は任意であり、複数の画像を処理することは、複数J個のジョイントの各n番目のジョイントについて、複数の画像の各画像について、(n-1)番目のジョイントとn番目のジョイントとの間の少なくとも1つのキャリブレーションマーカのポジションを、(n-1)番目のジョイントの運動フレームから、(n-1)番目のジョイントが静止しておりゼロポジションにある(n-1)番目のジョイントの静止フレームへ、(n-1)番目のジョイントのエンコーダデータを用いて変換することを有する。 According to an embodiment, the set of motions M 1 , M 2 , ..., M J is arbitrary, and processing the plurality of images includes, for each n-th joint of the plurality of J joints, for each image of the plurality of images, transforming a position of at least one calibration marker between the (n-1)-th joint and the n-th joint from the motion frame of the (n-1)-th joint to a stationary frame of the (n-1)-th joint in which the (n-1)-th joint is stationary and at a zero position, using the encoder data of the (n-1)-th joint.

実施形態に従って、方法300は、運動パラメータの組を決定することを有し、運動パラメータの組を決定することは、第1ジョイントと第2ジョイントとの間のリンク長さを決定することを有する。言い換えれば、リンク長さは、計算ユニット108で実行されるプロセスによって、第1ジョイントと第2ジョイントとの間で決定される。更に、ロボットベースと少なくとも1つのキャリブレーションマーカの位置との間に位置しているあらゆるリンク及びジョイントに関係がある運動パラメータは、最初及び最後のリンク長さを夫々除いて、キャリブレーションを受ける。 According to an embodiment, the method 300 includes determining a set of motion parameters, where determining the set of motion parameters includes determining a link length between a first joint and a second joint. In other words, the link length is determined between the first joint and the second joint by a process executed by the computation unit 108. Furthermore, motion parameters associated with all links and joints located between the robot base and the position of the at least one calibration marker are calibrated, except for the first and last link lengths, respectively.

実施形態に従って、運動パラメータの組を決定することは、ゼロポジションにある少なくとも1つのキャリブレーションマーカのフレームとロボット110Aのベース102のフレームとの間のマーカ-ベース変換を、運動パラメータの組を用いて決定することと、ゼロポジションにある少なくとも1つのキャリブレーションマーカのフレームとカメラ110のフレームとの間のマーカ-カメラ変換を、複数の画像を処理することによって決定することと、カメラ110のフレームとロボットのベースのフレームとの間のカメラ-ベース変換を、決定されたマーカ-ベース変換及び決定されたマーカ-カメラ変換に基づき計算することとを含む。言い換えれば、運動パラメータ更新レイヤは、ジョイントごとの推定された回転軸を処理することに関与し、キャリブレーションされた運動パラメータを出力する。例えば、キャリブレーションを受ける運動パラメータの集合をLと表す。更に、各ジョイントの推定された回転軸A~A及び運動パラメータの初期値Lを考えると、運動パラメータ更新レイヤは、実際のパラメータの推定
を求め、これは、更新されたパラメータ値
に対応する実際の回転軸
と推定された軸A~Aとの間の差を最小限にするものである。2つの異なる軸の組、つまり、推定された回転軸A~Aと実際の回転軸
との間の差は、
として定義され、このとき、Tは、特定の回転及び平行移動を軸ポジション及び向きパラメータに適用する変換演算子である。
According to an embodiment, determining the set of motion parameters includes: determining a marker-based transformation between the frame of at least one calibration marker at the zero position and the frame of the base 102 of the robot 110A using the set of motion parameters; determining a marker-camera transformation between the frame of the at least one calibration marker at the zero position and the frame of the camera 110 by processing a plurality of images; and calculating a camera-based transformation between the frame of the camera 110 and the frame of the base of the robot based on the determined marker-based transformation and the determined marker-camera transformation. In other words, the motion parameter update layer is responsible for processing the estimated rotation axis for each joint and outputs calibrated motion parameters. For example, the set of motion parameters to be calibrated is denoted as L. Furthermore, given the estimated rotation axis A 1 to A j of each joint and the initial value of the motion parameters L 0 , the motion parameter update layer calculates the actual parameter estimates.
This is the updated parameter value
The actual rotation axis corresponding to
and the estimated axes A 1 to A j . Two different sets of axes, that is, the estimated rotation axes A 1 to A j and the actual rotation axes A 1 to A j, are used.
The difference between
where T is a transformation operator that applies a particular rotation and translation to the axis position and orientation parameters.

方法300は、ロボットリンク長さ、ジョイントのポジション及び向き、ロボットジョイントのゼロポジション、ジョイントのポジション及び向きごとの減速比、ロボットジョイントのゼロポジション、ジョイントごとの減速比を含むロボットの運動パラメータをキャリブレーションする。キャリブレーションされたパラメータを用いて、方法300は、運動実行中にエンドエフェクタのポジション及び向きの改善された精度を達成することができる。 Method 300 calibrates robot motion parameters, including robot link lengths, joint positions and orientations, robot joint zero positions, reduction ratios for each joint position and orientation, robot joint zero positions, and reduction ratios for each joint. Using the calibrated parameters, method 300 can achieve improved accuracy of the end effector position and orientation during motion execution.

ステップ302及び304は単なる例示であり、他の代替案も提供でき、このとき、ここでの特許請求の範囲の適用範囲から外れずに、1つ以上のステップが追加されるか、1つ以上のステップが削除されるか、あるいは、1つ以上のステップが異なる順序で提供される。 Steps 302 and 304 are merely exemplary, and other alternatives may be provided, in which one or more steps are added, one or more steps are removed, or one or more steps are provided in a different order, without departing from the scope of the claims herein.

マシン読み出し可能なコードを有し、マシン読み出し可能なコードは、プロセッサによって実行されると、プロセッサに、第1ジョイント及び/又は第2ジョイントを回転させることによって複数のポジションで少なくとも1つのキャリブレーションマーカを位置決めさせる、非一時的なコンピュータ可読記憶媒体が更に提供される。プロセッサは更に、少なくとも1つのキャリブレーションマーカの複数の画像を取得し、少なくとも1つのキャリブレーションマーカが前記複数のポジションにあるときにカメラ110によって前記複数の画像が捕捉される。プロセッサは更に、複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の少なくとも1つのキャリブレーションマーカのマーカポジション(及び任意に、向き)を決定するように、複数の画像を処理する。プロセッサは更に、マーカポジションデータに基づき第1エラー関数を確立する。プロセッサは更に、第1エラー関数に基づき第1ジョイントの第1回転軸及び第2ジョイントの第2回転軸を決定する。プロセッサは更に、少なくとも第1回転軸及び第2回転軸に基づき第2エラー関数を確立する。プロセッサは更に、第2エラー関数に基づきロボット110Aの運動モデルについて運動パラメータの組を決定する。例において、命令がコンピュータ可読媒体で実装され、コンピュータ可読媒体は、電気的消去可能なプログラム可能読み出し専用メモリ(EEPROM)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスクドライブ(HDD)、フラッシュメモリ、セキュアデジタル(SD)カード、ソリッドステートドライブ(SSD)、コンピュータ可読記憶媒体、及び/又はCPUキャッシュメモリを含むが、これらに限られない。例において、命令はコンピュータプログラムによって生成され、コンピュータプログラムは、方法300を鑑み、プロセッサで方法300を実装する際に使用されるよう実施される。 A non-transitory computer-readable storage medium is further provided having machine-readable code that, when executed by a processor, causes the processor to position at least one calibration marker at a plurality of positions by rotating a first joint and/or a second joint. The processor further acquires a plurality of images of the at least one calibration marker, the plurality of images being captured by the camera 110 when the at least one calibration marker is in the plurality of positions. The processor further processes the plurality of images to determine, for each image of the plurality of images, a marker position (and optionally, an orientation) of the at least one calibration marker in three-dimensional space to be output as marker position data. The processor further establishes a first error function based on the marker position data. The processor further determines a first rotation axis of the first joint and a second rotation axis of the second joint based on the first error function. The processor further establishes a second error function based on at least the first rotation axis and the second rotation axis. The processor further determines a set of motion parameters for a motion model of the robot 110A based on the second error function. In examples, the instructions are embodied in a computer-readable medium, including, but not limited to, an electrically erasable programmable read-only memory (EEPROM), a random access memory (RAM), a read-only memory (ROM), a hard disk drive (HDD), flash memory, a secure digital (SD) card, a solid-state drive (SSD), a computer-readable storage medium, and/or a CPU cache memory. In examples, the instructions are generated by a computer program, and the computer program is executed in view of method 300 for use in implementing method 300 by a processor.

上記で説明されている本開示の実施形態に対する変更は、添付の特許請求の範囲によって定義されている本開示の範囲から逸脱せずに可能である。本開示を記載及び請求するために使用されている「含む」、「有する」、「組み込む」、「持っている」、「である」などの表現は、本開示が非包括的な様態で解釈されるよう意図されており、つまり、明示的に記載されていないアイテム、コンポーネント又は要素も存在する可能性がある。「例示的な」という語は、「例、事例、又は実例となる」との意味でここでは使用されている。「例示的」であるものとして記載されている如何なる実施形態も、必ずしも、他の実施形態に対して好ましい又は有利であるとして解釈されたり、あるいは、他の実施形態からの特徴の組み込みを排除したりすべきでない。「任意に」という語は、「いくつかの実施形態では提供されるが他の実施形態では提供されない」との意味でここでは使用されている。本開示の特定の特徴は、明りょうさのために別個の実施形態に関連して記載されているが、単一の実施形態で組み合わせて設けられてもよいことが理解される。逆に、本発明の様々な特徴は、簡潔さのために単一の実施形態に関連して記載されているが、別々に又は任意の適切な組み合わせで、あるいは、本開示の任意の他の記載されている実施形態で適切に設けられてもよい。 Changes to the embodiments of the present disclosure described above are possible without departing from the scope of the present disclosure, as defined by the appended claims. The terms "comprising," "having," "incorporating," "having," "being," and the like, used to describe and claim the present disclosure, are intended to interpret the disclosure in a non-exhaustive manner, meaning that there may be items, components, or elements not expressly described. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described as "exemplary" should not necessarily be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "provided in some embodiments but not in other embodiments." While certain features of the present disclosure are described in the context of separate embodiments for clarity, it will be understood that they may also be provided in combination in a single embodiment. Conversely, various features of the invention, while described in the context of a single embodiment for brevity, may also be provided separately or in any suitable combination or with any other described embodiment of the present disclosure, as appropriate.

Claims (20)

可動部を有し、前記可動部が、その上に少なくとも1つのキャリブレーションマーカを設けられており、少なくとも1つのリンクの一端に配置されている少なくとも第1ジョイント及び第2ジョイントを有し、前記第1ジョイント及び前記第2ジョイントが、計算ユニットによって制御されている前記可動部で動きを発生させるよう構成されるロボットと、
複数のポジションで前記少なくとも1つのキャリブレーションマーカの複数の画像を捕捉するよう構成されるカメラと、
ロボット制御レイヤ、画像処理レイヤ、軸及び減速比推定レイヤ、並びに運動パラメータ更新レイヤを含む前記計算ユニットと、を有し、
前記ロボット制御レイヤは、前記ロボットの運動モデルに基づき前記第1ジョイント及び前記第2ジョイントの回転を制御するよう構成され、前記ロボット制御レイヤは、前記複数のポジションにおいて前記少なくとも1つのキャリブレーションマーカを位置決めするように前記第1ジョイント及び/又は前記第2ジョイントの回転を制御するよう構成され、
前記画像処理レイヤは、前記複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の前記少なくとも1つのキャリブレーションマーカのマーカポジションを決定するように、前記カメラから受け取られた前記複数の画像を処理するよう構成され、
前記軸及び減速比推定レイヤは、前記マーカポジションデータに基づき第1エラー関数を確立し、前記第1エラー関数に基づき前記第1ジョイントの第1回転軸を決定するよう構成され、
前記運動パラメータ更新レイヤは、少なくとも前記第1回転軸に基づき第2エラー関数を確立し、前記第2エラー関数に基づき前記運動モデルについて運動パラメータの組を決定するよう構成され、
前記画像処理レイヤは、前記複数の画像の各画像について、当該画像から前記少なくとも1つのキャリブレーションマーカの複数のコーナー座標を抽出することによって前記マーカポジションを決定するよう更に構成され、前記複数のコーナー座標の夫々は、前記少なくとも1つのキャリブレーションマーカのコーナーに略あるポジションに対応する、
ロボットシステム。
a robot having a movable part, the movable part having at least one calibration marker thereon, and at least a first joint and a second joint disposed at one end of at least one link, the first joint and the second joint configured to generate a movement in the movable part controlled by a computing unit;
a camera configured to capture a plurality of images of the at least one calibration marker at a plurality of positions;
the computation unit including a robot control layer, an image processing layer, an axis and reduction ratio estimation layer, and a motion parameter update layer;
the robot control layer is configured to control rotations of the first joint and the second joint based on a kinematic model of the robot, and the robot control layer is configured to control rotations of the first joint and/or the second joint to position the at least one calibration marker at the plurality of positions;
the image processing layer is configured to process the plurality of images received from the camera to determine, for each image of the plurality of images, a marker position of the at least one calibration marker in three-dimensional space to be output as marker position data;
the axis and reduction ratio estimation layer is configured to establish a first error function based on the marker position data and determine a first axis of rotation of the first joint based on the first error function;
the motion parameter update layer is configured to establish a second error function based on at least the first rotation axis, and determine a set of motion parameters for the motion model based on the second error function;
the image processing layer is further configured to, for each image of the plurality of images, determine the marker position by extracting from the image a plurality of corner coordinates of the at least one calibration marker, each of the plurality of corner coordinates corresponding to a position that is approximately at a corner of the at least one calibration marker.
Robot system.
前記可動部は、第1ギアシステムを介して前記第1ジョイントに結合される第1サーボモータと、第2ギアシステムを介して前記第2ジョイントに結合されている第2サーボモータと、前記第1サーボモータに設けられている第1エンコーダと、前記第2サーボモータに設けられている第2エンコーダとを更に有し、前記第1エンコーダ及び前記第2エンコーダは、夫々前記第1サーボモータ及び前記第2サーボモータのサーボ値を収集するよう構成され、前記計算ユニットは、前記カメラによって捕捉された前記複数の画像の各画像にタイムスタンプを付すように前記カメラを前記第1エンコーダ及び前記第2エンコーダと同期させるよう構成されるクロック同期レイヤを更に有する、
請求項1に記載のロボットシステム。
the movable part further comprises a first servo motor coupled to the first joint via a first gear system, a second servo motor coupled to the second joint via a second gear system, a first encoder provided on the first servo motor, and a second encoder provided on the second servo motor, the first encoder and the second encoder being configured to collect servo values of the first servo motor and the second servo motor, respectively; and the calculation unit further comprises a clock synchronization layer configured to synchronize the camera with the first encoder and the second encoder so as to timestamp each image of the plurality of images captured by the camera.
The robot system of claim 1 .
可動部を有し、前記可動部が、その上に少なくとも1つのキャリブレーションマーカを設けられており、少なくとも1つのリンクの一端に配置されている少なくとも第1ジョイント及び第2ジョイントを有し、前記第1ジョイント及び前記第2ジョイントが、計算ユニットによって制御されている前記可動部で動きを発生させるよう構成されるロボットのキャリブレーション方法であって、
データ収集プロシージャにおいて、
前記第1ジョイント及び/又は前記第2ジョイントを回転させることによって複数のポジションで前記少なくとも1つのキャリブレーションマーカを位置決めし、
前記少なくとも1つのキャリブレーションマーカの複数の画像を取得し、前記少なくとも1つのキャリブレーションマーカが前記複数のポジションにあるときにカメラによって前記複数の画像が捕捉され、
データ処理プロシージャにおいて、
前記複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の前記少なくとも1つのキャリブレーションマーカのマーカポジションを決定するように、前記複数の画像を処理し、
前記マーカポジションデータに基づき第1エラー関数を確立し、
前記第1エラー関数に基づき前記第1ジョイントの第1回転軸及び前記第2ジョイントの第2回転軸を決定し、
少なくとも前記第1回転軸及び前記第2回転軸に基づき第2エラー関数を確立し、
前記第2エラー関数に基づき前記ロボットの運動モデルについて運動パラメータの組を決定し、
前記マーカポジションは、前記複数の画像の各画像について、当該画像から前記少なくとも1つのキャリブレーションマーカの複数のコーナー座標を抽出することによって決定され、前記複数のコーナー座標の夫々は、前記少なくとも1つのキャリブレーションマーカのコーナーに略あるポジションに対応する、
方法。
1. A method for calibrating a robot having a movable part, the movable part having at least one calibration marker provided thereon, and at least a first joint and a second joint arranged at one end of at least one link, the first joint and the second joint being configured to generate a movement in the movable part controlled by a computing unit, the method comprising:
In the data collection procedure,
positioning the at least one calibration marker at a plurality of positions by rotating the first joint and/or the second joint;
acquiring a plurality of images of the at least one calibration marker, the plurality of images being captured by a camera when the at least one calibration marker is in the plurality of positions;
In the data processing procedure,
processing the plurality of images to determine, for each image of the plurality of images, a marker position of the at least one calibration marker in three-dimensional space to be output as marker position data;
establishing a first error function based on the marker position data;
determining a first axis of rotation of the first joint and a second axis of rotation of the second joint based on the first error function;
establishing a second error function based on at least the first axis of rotation and the second axis of rotation;
determining a set of motion parameters for a motion model of the robot based on the second error function;
the marker positions are determined by, for each image of the plurality of images, extracting from the image a plurality of corner coordinates of the at least one calibration marker, each of the plurality of corner coordinates corresponding to a position approximately at a corner of the at least one calibration marker.
method.
前記決定された運動パラメータの組を用いて前記ロボットの前記運動モデルをキャリブレーションすることを更に有する、
請求項3に記載の方法。
calibrating the kinematic model of the robot using the determined set of kinematic parameters.
The method of claim 3.
前記可動部は、前記第1ジョイントを動かすよう構成される第1サーボモータと、前記第2ジョイントを動かすよう構成される第2サーボモータと、前記第1サーボモータに設けられている第1エンコーダと、前記第2サーボモータに設けられている第2エンコーダとを更に有し、前記カメラは、前記第1エンコーダ及び前記第2エンコーダと同期し、前記データ収集プロシージャは、前記複数の画像の各画像にタイムスタンプを付すことを更に有し、タイムスタンプは、一連の時間ステップ内の時間ステップに対応する、
請求項3又は4に記載の方法。
the movable part further comprises a first servo motor configured to move the first joint, a second servo motor configured to move the second joint, a first encoder provided on the first servo motor, and a second encoder provided on the second servo motor, the camera is synchronized with the first encoder and the second encoder, and the data collection procedure further comprises assigning a time stamp to each image of the plurality of images, the time stamp corresponding to a time step within a series of time steps.
The method according to claim 3 or 4.
前記第1エンコーダ及び前記第2エンコーダは、夫々前記第1サーボモータ及び前記第2サーボモータのサーボ値を収集するよう構成され、前記データ処理プロシージャは、前記第1サーボモータ及び前記第2サーボモータの夫々について、夫々前記第1エンコーダ及び前記第2エンコーダによって収集された前記サーボ値に基づき各々のサーボモータについて複数のサーボモータ角度を決定することを更に有する、
請求項5に記載の方法。
the first encoder and the second encoder are configured to collect servo values of the first servo motor and the second servo motor, respectively, and the data processing procedure further comprises, for each of the first servo motor and the second servo motor, determining a plurality of servo motor angles for each servo motor based on the servo values collected by the first encoder and the second encoder, respectively.
The method of claim 5.
前記マーカポジションは、前記複数の画像の各画像について、当該画像上の前記少なくとも1つのキャリブレーションマーカの前記複数のコーナー座標と、1つ以上の固有カメラパラメータとを用いて、マーカ中心座標を計算することによって決定される、
請求項5に記載の方法。
the marker positions are determined by calculating, for each image of the plurality of images, a marker center coordinate using the plurality of corner coordinates of the at least one calibration marker on that image and one or more intrinsic camera parameters.
The method of claim 5.
前記複数の画像を処理することは、前記マーカポジションデータとして出力するよう、前記複数の画像の各画像について、当該画像上の前記少なくとも1つのキャリブレーションマーカの前記複数のコーナー座標と、1つ以上の固有カメラパラメータとに基づき3次元空間内の前記少なくとも1つのキャリブレーションマーカのマーカ向きを決定することを更に有する、
請求項7に記載の方法。
and processing the plurality of images further comprises determining, for each image of the plurality of images, a marker orientation of the at least one calibration marker in three-dimensional space based on the plurality of corner coordinates of the at least one calibration marker on that image and one or more intrinsic camera parameters, to output as the marker position data.
The method of claim 7.
前記第1エラー関数を確立することは、前記マーカ中心座標と、前記カメラの座標系に対する前記少なくとも1つのキャリブレーションマーカの円運動に対応する前記少なくとも1つのキャリブレーションマーカの前記マーカ向きとの円弧フィッティングを含む、
請求項8に記載の方法。
establishing the first error function includes arc-fitting the marker center coordinates and the marker orientation of the at least one calibration marker corresponding to a circular motion of the at least one calibration marker relative to a coordinate system of the camera.
The method of claim 8.
前記可動部は、ギア減速比を有する第1ギアシステムを介して前記第1ジョイントに結合されている第1サーボモータを有し、前記第1ジョイントの前記第1回転軸を決定することは、前記マーカ中心座標と、前記複数の画像から決定された前記少なくとも1つのキャリブレーションマーカの前記マーカ向きとに基づき前記第1エラー関数を確立し、前記第1エラー関数に最適化関数を適用して、ジョイント回転軸原点、回転軸ベクトル、及び前記ギア減速比を決定することを有する、
請求項8又は9に記載の方法。
the movable part includes a first servo motor coupled to the first joint via a first gear system having a gear reduction ratio, and determining the first rotation axis of the first joint includes establishing the first error function based on the marker center coordinates and the marker orientation of the at least one calibration marker determined from the plurality of images, and applying an optimization function to the first error function to determine a joint rotation axis origin, a rotation axis vector, and the gear reduction ratio .
10. The method according to claim 8 or 9.
第1エンコーダが、前記第1サーボモータのサーボ値を含むエンコーダデータを出力するよう構成されている前記第1サーボモータに設けられ、前記ギア減速比は、前記複数の画像から決定された前記少なくとも1つのキャリブレーションマーカの前記マーカ向きと、前記第1サーボモータの前記エンコーダデータとに基づき決定される、
請求項10に記載の方法。
a first encoder is provided on the first servo motor configured to output encoder data including a servo value of the first servo motor, and the gear reduction ratio is determined based on the marker orientation of the at least one calibration marker determined from the plurality of images and the encoder data of the first servo motor.
The method of claim 10.
前記少なくとも1つのキャリブレーションマーカは1つ以上のマーカーキーポイントを含み、マーカーキーポイントは、前記少なくとも1つのキャリブレーションマーカ上の一意に識別可能なポイントに対応し、前記データ処理プロシージャは、
前記複数の画像から前記1つ以上のマーカーキーポイントを抽出することと、
前記1つ以上のマーカーキーポイントの相対位置に基づき1つ以上の固有カメラパラメータを決定することと
を更に有する、
請求項3乃至11のうちいずれか一項に記載の方法。
the at least one calibration marker includes one or more marker keypoints, the marker keypoints corresponding to uniquely identifiable points on the at least one calibration marker, and the data processing procedure comprises:
extracting the one or more marker keypoints from the plurality of images;
determining one or more intrinsic camera parameters based on the relative positions of the one or more marker keypoints.
12. The method according to any one of claims 3 to 11.
前記可動部は、対応する複数J個のサーボモータによって回転されるよう配置される複数J個のジョイントを有し、前記少なくとも1つのキャリブレーションマーカを位置決めすることは、前記複数J個のジョイントを回転させるように動きM,M,・・・,Mの組を実行するよう前記複数J個のサーボモータを制御することを有する、
請求項3乃至12のうちいずれか一項に記載の方法。
the movable part has a plurality of J joints arranged to be rotated by a corresponding plurality of J servo motors, and positioning the at least one calibration marker comprises controlling the plurality of J servo motors to perform a set of movements M 1 , M 2 , ..., M J to rotate the plurality of J joints.
13. The method according to any one of claims 3 to 12.
1≦n≦Jの場合に、n番目のジョイントの動きMは、前記複数J個のジョイントのうちの残りのジョイントを各々のゼロポジションに保ちながら、前記n番目のジョイントを回転させるようn番目のサーボモータを制御することによって決定される、
請求項13に記載の方法。
where 1≦n≦J, the movement Mn of an n-th joint is determined by controlling an n-th servo motor to rotate the n-th joint while keeping the remaining joints of the plurality of J joints at their respective zero positions.
The method of claim 13.
少なくとも1つのキャリブレーションマーカが、前記複数J個のジョイントのうちの2つの隣接するジョイントを夫々接続する1つ以上のリンクに設けられ、複数のエンコーダの夫々が、前記複数J個のサーボモータのうちの対応するサーボモータに設けられ、前記複数のエンコーダの夫々は、前記複数J個のジョイントの各々のジョイントに対応するエンコーダデータを出力するよう構成され、前記エンコーダデータは、前記対応するサーボモータのサーボ値を含む、
請求項13又は14に記載の方法。
at least one calibration marker is provided on one or more links connecting two adjacent joints of the plurality of J joints, and a plurality of encoders are provided on corresponding servo motors of the plurality of J servo motors, each of the plurality of encoders being configured to output encoder data corresponding to each joint of the plurality of J joints, the encoder data including a servo value of the corresponding servo motor;
15. The method of claim 13 or 14.
動きM,M,・・・,Mの組は任意であり、前記複数の画像を処理することは、前記複数J個のジョイントの各n番目のジョイントについて、前記複数の画像の各画像について、(n-1)番目のジョイントと前記n番目のジョイントとの間の前記少なくとも1つのキャリブレーションマーカのポジションを、前記(n-1)番目のジョイントの運動フレームから、前記(n-1)番目のジョイントが静止しておりゼロポジションにある前記(n-1)番目のジョイントの静止フレームへ、前記(n-1)番目のジョイントの前記エンコーダデータを用いて変換することを有する、
請求項15に記載の方法。
The set of motions M 1 , M 2 , ..., M J is arbitrary, and processing the plurality of images includes, for each n-th joint of the plurality of J joints, transforming, for each image of the plurality of images, a position of the at least one calibration marker between the (n-1)-th joint and the n-th joint from a motion frame of the (n-1)-th joint to a stationary frame of the (n-1)-th joint in which the (n-1)-th joint is stationary and at a zero position, using the encoder data of the (n-1)-th joint.
16. The method of claim 15.
前記運動パラメータの組を決定することは、前記第1ジョイントと前記第2ジョイントとの間のリンク長さを決定することを有する、
請求項3乃至16のうちいずれか一項に記載の方法。
determining the set of motion parameters includes determining a link length between the first joint and the second joint;
17. The method according to any one of claims 3 to 16.
前記運動パラメータの組を決定することは、ゼロポジションにある前記少なくとも1つのキャリブレーションマーカのフレームと前記ロボットのベースのフレームとの間のマーカ-ベース変換を、前記運動パラメータの組を用いて決定し、前記ゼロポジションにある前記少なくとも1つのキャリブレーションマーカの前記フレームと前記カメラのフレームとの間のマーカ-カメラ変換を、前記複数の画像を処理することによって決定し、前記カメラの前記フレームと前記ロボットのベースの前記フレームとの間のカメラ-ベース変換を、前記決定されたマーカ-ベース変換及び前記決定されたマーカ-カメラ変換に基づき計算することを有する、
請求項3乃至17のうちいずれか一項に記載の方法。
determining the set of motion parameters includes determining a marker-based transformation between a frame of the at least one calibration marker at a zero position and a frame of a base of the robot using the set of motion parameters, determining a marker-to-camera transformation between the frame of the at least one calibration marker at the zero position and a frame of the camera by processing the plurality of images, and calculating a camera-based transformation between the frame of the camera and the frame of the base of the robot based on the determined marker-based transformation and the determined marker-to-camera transformation.
18. The method according to any one of claims 3 to 17.
マシン読み出し可能なコードを有し、前記マシン読み出し可能なコードは、プロセッサによって実行されると、前記プロセッサに、
ロボットの可動部に設けられている少なくとも1つのキャリブレーションマーカを、第1ジョイント及び/又は第2ジョイントを回転させることによって複数のポジションで位置決めすることであり、前記可動部は、少なくとも1つのリンクの一端に配置されている少なくとも前記第1ジョイント及び前記第2ジョイントを有し、前記第1ジョイント及び前記第2ジョイントは、前記プロセッサによって制御される前記可動部において動きを生じさせるよう構成される、ことと、
前記少なくとも1つのキャリブレーションマーカの複数の画像を取得し、前記少なくとも1つのキャリブレーションマーカが前記複数のポジションにあるときにカメラによって前記複数の画像が捕捉されることと、
前記複数の画像の各画像について、マーカポジションデータとして出力すべき3次元空間内の前記少なくとも1つのキャリブレーションマーカのマーカポジションを決定するように、前記複数の画像を処理することと、
前記マーカポジションデータに基づき第1エラー関数を確立することと、
前記第1エラー関数に基づき前記第1ジョイントの第1回転軸及び前記第2ジョイントの第2回転軸を決定することと、
少なくとも前記第1回転軸及び前記第2回転軸に基づき第2エラー関数を確立することと、
前記第2エラー関数に基づき前記ロボットの運動モデルについて運動パラメータの組を決定すること
を実行させ、
前記マーカポジションは、前記複数の画像の各画像について、当該画像から前記少なくとも1つのキャリブレーションマーカの複数のコーナー座標を抽出することによって決定され、前記複数のコーナー座標の夫々は、前記少なくとも1つのキャリブレーションマーカのコーナーに略あるポジションに対応する、
非一時的なコンピュータ可読記憶媒体。
a processor that executes the program; and a program that executes the program. The program includes machine-readable code that, when executed by a processor, causes the processor to:
positioning at least one calibration marker provided on a movable part of a robot at a plurality of positions by rotating a first joint and/or a second joint, the movable part having at least the first joint and the second joint disposed at one end of at least one link, the first joint and the second joint configured to produce a movement in the movable part controlled by the processor;
acquiring a plurality of images of the at least one calibration marker, the plurality of images being captured by a camera when the at least one calibration marker is in the plurality of positions;
processing the plurality of images to determine, for each image of the plurality of images, a marker position of the at least one calibration marker in three-dimensional space to be output as marker position data;
establishing a first error function based on the marker position data;
determining a first axis of rotation of the first joint and a second axis of rotation of the second joint based on the first error function;
establishing a second error function based on at least the first axis of rotation and the second axis of rotation;
determining a set of motion parameters for a motion model of the robot based on the second error function;
the marker positions are determined by, for each image of the plurality of images, extracting from the image a plurality of corner coordinates of the at least one calibration marker, each of the plurality of corner coordinates corresponding to a position approximately at a corner of the at least one calibration marker.
A non-transitory computer-readable storage medium.
プロセッサによって実行されると、前記プロセッサに、請求項3乃至18のうちいずれか一項に記載の方法を実行させるプログラム。 A program that, when executed by a processor, causes the processor to perform the method of any one of claims 3 to 18.
JP2024542167A 2022-01-17 2022-01-17 Robot system having a robot and method for calibrating the robot Active JP7797664B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2022/000015 WO2023136743A1 (en) 2022-01-17 2022-01-17 Robot system comprising robot and method of calibrating robot

Publications (2)

Publication Number Publication Date
JP2025502318A JP2025502318A (en) 2025-01-24
JP7797664B2 true JP7797664B2 (en) 2026-01-13

Family

ID=80738857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024542167A Active JP7797664B2 (en) 2022-01-17 2022-01-17 Robot system having a robot and method for calibrating the robot

Country Status (4)

Country Link
EP (1) EP4452569A1 (en)
JP (1) JP7797664B2 (en)
CN (1) CN117715732A (en)
WO (1) WO2023136743A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008012604A (en) 2006-07-03 2008-01-24 Fanuc Ltd Measuring apparatus and method of its calibration
JP2021013985A (en) 2019-07-11 2021-02-12 キヤノン株式会社 Robot system, manufacturing method of articles using robot system, control method of robot system, calibration method of robot device, input device, control program and recording medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9889565B2 (en) * 2014-06-23 2018-02-13 Abb Schweiz Ag Method for calibrating a robot and a robot system
DE102015221337A1 (en) * 2015-10-30 2017-05-04 Keba Ag Method and control system for controlling the movements of articulated arms of an industrial robot as well as motion specification means used thereby

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008012604A (en) 2006-07-03 2008-01-24 Fanuc Ltd Measuring apparatus and method of its calibration
JP2021013985A (en) 2019-07-11 2021-02-12 キヤノン株式会社 Robot system, manufacturing method of articles using robot system, control method of robot system, calibration method of robot device, input device, control program and recording medium

Also Published As

Publication number Publication date
JP2025502318A (en) 2025-01-24
CN117715732A (en) 2024-03-15
EP4452569A1 (en) 2024-10-30
WO2023136743A1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
US11396100B2 (en) Robot calibration for AR and digital twin
US9457470B2 (en) Robot system and method for calibration
JP5852364B2 (en) Information processing apparatus, information processing apparatus control method, and program
CN109153125A (en) Method and industrial robot for orienting an industrial robot
WO2018043525A1 (en) Robot system, robot system control device, and robot system control method
KR20140008262A (en) Robot system, robot, robot control device, robot control method, and robot control program
CN114619233B (en) Lock positioning method, screw locking method, lock positioning device and screw machine
WO2018043524A1 (en) Robot system, robot system control device, and robot system control method
CN112743537B (en) Annotating device
JP6410411B2 (en) Pattern matching apparatus and pattern matching method
JP7249221B2 (en) SENSOR POSITION AND POSTURE CALIBRATION DEVICE AND SENSOR POSITION AND POSTURE CALIBRATION METHOD
JP7844771B2 (en) Apparatus and method for determining the location of an object from a camera image of the object.
JP7797664B2 (en) Robot system having a robot and method for calibrating the robot
CN119795170A (en) Robot control method and device
JP7583942B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROL SYSTEM, AND ROBOT CONTROL METHOD
CN119501951A (en) A clamping robot arm based on visual perception and control method thereof
JP7657936B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROL SYSTEM, AND ROBOT CONTROL METHOD
JP7660686B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROL SYSTEM, AND ROBOT CONTROL METHOD
CN119784839A (en) Method, device, storage medium and program product for determining position and posture of a robotic arm
CN116398065B (en) Vision-based positioning method for automatic loading and unloading of drill rods by tunnel drilling robots in coal mines
JP7674501B2 (en) Control device and robot system
JP2005186193A (en) Robot calibration method and three-dimensional position measurement method
EP3738725B1 (en) Measurement system, measurement device, measurement method, and measurement program
JP2019036072A (en) Image processing method, image processing system and manufacturing method
CN119417914A (en) Control device positioning method, device, computer device and storage medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251023

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: 20251216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251224

R150 Certificate of patent or registration of utility model

Ref document number: 7797664

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150