JP2022078979A - 種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法 - Google Patents
種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法 Download PDFInfo
- Publication number
- JP2022078979A JP2022078979A JP2021184781A JP2021184781A JP2022078979A JP 2022078979 A JP2022078979 A JP 2022078979A JP 2021184781 A JP2021184781 A JP 2021184781A JP 2021184781 A JP2021184781 A JP 2021184781A JP 2022078979 A JP2022078979 A JP 2022078979A
- Authority
- JP
- Japan
- Prior art keywords
- image
- descriptor
- reference point
- pose
- vertex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000012549 training Methods 0.000 claims description 64
- 230000036544 posture Effects 0.000 claims description 37
- 238000010801 machine learning Methods 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 239000013598 vector Substances 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 10
- 239000012636 effector Substances 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000011960 computer-aided design Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001144 postural effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
- G06F18/21375—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps involving differential geometry, e.g. embedding of pattern manifold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/772—Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40584—Camera, non-contact sensor mounted on wrist, indep from gripper
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Medical Informatics (AREA)
- Geometry (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Image Analysis (AREA)
- Manipulator (AREA)
Abstract
【課題】種々の実施形態により、種々の姿勢状況の物体をピックアップするロボットを制御するための方法が記載される。
【解決手段】この方法は、物体上において複数の基準点を確定するステップと、既知の姿勢状況の物体の第1のカメラ画像を、第1の記述子画像にマッピングするステップと、基準点の記述子を、第1の記述子画像から識別するステップと、未知の姿勢状況の物体の第2のカメラ画像を、第2の記述子画像にマッピングするステップと、識別された基準点の記述子を第2の記述子画像内において探索するステップと、未知の姿勢状況の3次元空間内の基準点の位置を、検出された位置から求めるステップと、未知の姿勢状況に対する物体のピックアップポーズを、求められた基準点の位置から求めるステップと、を含む。
【選択図】図5
【解決手段】この方法は、物体上において複数の基準点を確定するステップと、既知の姿勢状況の物体の第1のカメラ画像を、第1の記述子画像にマッピングするステップと、基準点の記述子を、第1の記述子画像から識別するステップと、未知の姿勢状況の物体の第2のカメラ画像を、第2の記述子画像にマッピングするステップと、識別された基準点の記述子を第2の記述子画像内において探索するステップと、未知の姿勢状況の3次元空間内の基準点の位置を、検出された位置から求めるステップと、未知の姿勢状況に対する物体のピックアップポーズを、求められた基準点の位置から求めるステップと、を含む。
【選択図】図5
Description
本発明は、種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法に関する。
ロボットによる物体の柔軟な製造又は加工を可能にするためには、ロボットが、この物体を、当該物体が置かれているロボットの作業空間内の状況にかかわらず、取り扱うことができるようにすることが望ましい。それゆえ、ロボットは、少なくとも物体をピックアップする(例えば、把持する)方法に関係する限りにおいては、物体がどのような姿勢状況にあるのかを認識することができるようにする必要があり、即ち、ロボットには、姿勢状況に応じて自身のエンドエフェクタ(例えば、グリッパ付き)を適正に配向し、それを適正な位置に移動させることができるようにするために、物体のピックアップポーズ(例えば、把持ポーズ)を求める能力が必要である。それに対応する、種々の姿勢状況の物体をピックアップするロボットデバイスのための制御方法が望まれている。
種々の実施形態によれば、種々の姿勢状況の物体をピックアップするロボットを制御するための方法であって、物体上において複数の基準点を確定し、それによって、3次元空間における基準点の姿勢状況が物体のピックアップポーズを定めるステップと、物体の既知の位置における物体の第1のカメラ画像を受信し、それによって、第1のカメラ画像内の基準点の位置を既知にするステップと、第1のカメラ画像を、カメラ画像内において可視の物体点をカメラ画像内のそれらの位置に依存することなく記述子に割り当てるように訓練された機械学習モデルを用いて、第1の記述子画像にマッピングするステップと、基準点の記述子を、基準点の既知の位置における第1の記述子画像の読出しにより、第1の記述子画像から識別するステップと、物体がピックアップされる未知の姿勢状況の物体の第2のカメラ画像を受信するステップと、第2のカメラ画像を、機械学習モデルを用いて、第2の記述子画像にマッピングするステップと、識別された基準点の記述子を、第2の記述子画像内において探索するステップと、未知の姿勢状況の3次元空間内の基準点の位置を、記述子画像内において検出された基準点の記述子の位置から求めるステップと、未知の姿勢状況に対する物体のピックアップポーズを、3次元空間内において求められた基準点の位置から求めるステップと、物体をピックアップするロボットデバイスを、求められたピックアップポーズに応じて制御するステップと、を含む方法が提供される。
上述の方法は、物体の任意の姿勢状況について、物体の安全なピックアップ(例えば、把持)を可能にする。未知の姿勢状況にある物体のカメラ画像は、物体のピックアップポーズを求めるのに十分である。特に、複数の視野を包含する複数のカメラによる配置構成は不要である。機械学習モデルは、種々の物体に使用し得るように柔軟に訓練することができる。その場合に必要なのは、各物体について複数の基準点を確定し、それらの基準点の記述子を求めることだけである。
以下においては、種々の実施例が提示される。
実施例1は、上述のように種々の位置にある物体をピックアップするロボットを制御するための方法である。
実施例2は、実施例1の方法であって、未知の姿勢状況における3次元空間内の基準点の位置は、第2の記述子画像における基準点の位置に対応する、第2のカメラ画像における基準点の位置についての深度情報を3次元空間に投影することによって、第2の記述子画像における基準点の記述子の検出された位置から求められる。
これにより、個々のカメラ画像と、関連する深度情報(例えば、RGBD画像)とを用いてピックアップポーズを求めることが可能である。
実施例3は、実施例1又は2の方法であって、基準点は、物体の細長い部分区間に沿って配置されるように確定される少なくとも2つの基準点を有し、未知の姿勢状況についての物体のピックアップポーズは、基準点を通って延在する軸線を求めることによって求められる。
このようにして、細長い部分区間を把持するためのロボットの制御を可能にするピックアップポーズを求めることができる。例えば、ロボットのエンドエフェクタにおけるグリッパは、グリッパはさみが基準点を通って延在する軸線に対して垂直な平面内にあるように制御され、次いで、グリッパが閉じられる。
実施例4は、実施例1乃至3のいずれか1つの方法であって、基準点は、物体の平面上に配置されるように確定される少なくとも3つの基準点を有し、未知の姿勢状況についての物体のピックアップポーズは、基準点を通って延在する平面を求めることによって求められる。
このようにして、表面をつかむための(例えば、吸引する又は持ち上げるための)ロボットの制御を可能にするピックアップポーズを求めることができる。例えば、ロボットのエンドエフェクタにおける吸引装置は、吸引装置の吸引開口部又は吸引ノズルが、基準点を通って延在する平面に対して垂直になるように制御され、次いで、起動される。
実施例5は、実施例1乃至4のいずれか1つの方法であって、機械学習モデルを訓練するステップは、頂点のグリッドを含む、物体の3Dモデルを取得するステップと、グリッドの各頂点に対する記述子を決定するステップと、各訓練データ画像対が、物体を示す訓練入力画像と目標画像とを含む、訓練データ画像対を生成するステップであって、目標画像を生成することは、訓練入力画像内の頂点を有する、物体の物体モデルの頂点の頂点位置を決定するサブステップと、訓練入力画像内の各特定の頂点位置について、当該頂点位置における頂点に対して決定された記述子を、目標画像内の位置に割り当てるサブステップと、を含む、ステップと、機械学習モデルを、訓練データとして訓練データ画像対を使用した教師あり学習により訓練するステップと、を含む。
この訓練方法は、自己教師あり学習を使用する場合よりも正確な予測(即ち、記述子の決定)を実施するために、機械学習モデル(ニューラルネットワークなど)を訓練することを可能にする(即ち、ネットワークの多様な適用を可能にする)。さらに、機械学習モデルの適合化のためのより大きい柔軟性を提供し、それによって、種々の問題における適用が可能になり、訓練データの要件(例えば、所要の訓練データ量など)が縮小される。
実施例6は、実施例5の方法であって、訓練データ画像対を生成するステップは、異なる姿勢の物体の複数の画像を取得するステップと、取得された各画像のための目標画像を生成することによって、取得された各画像から訓練データ画像対を生成するステップと、を含む。
これにより、(例えば、機械学習モデルを実装したロボット制御装置を有するロボットの)機械学習モデルを、例えば、ロボットの作業空間内において物体の姿勢に関係なく、物体のトポロジを認識するために訓練することが可能になる。
実施例7は、実施例5又は6の方法であって、訓練入力画像内の頂点を有する、物体の物体モデルの頂点の頂点位置を、訓練入力画像内において(例えば、カメラ座標系内において)物体が有するそれぞれの姿勢から決定するステップを含む。
これにより、頂点位置の正確な決定が可能になり、このことは、その代わりに教師あり訓練用の正確な目標画像を可能にする。
実施例8は、実施例5乃至7のいずれか1つの方法であって、3Dモデルの頂点が縁部によって結合され、各縁部は、物体内の縁部によって結合された2つの頂点の近接度を特定する重みを有し、グリッドの各頂点に対する記述子を決定するステップは、頂点対の記述子間の距離の結合された頂点対にわたる合計を、頂点対間の縁部の重みによって重み付けして最小化する、頂点に対する記述子の探索によって行われる。
分かり易くいえば、記述子は、最適な手法により求められる。これにより、記述子の高い一貫性が達成される。その他に、記述子マッピングの良好な表明性が達成される。
実施例9は、実施例1乃至8のいずれか1つによる方法を実施するように構成されたロボット制御装置である。
実施例10は、命令がプロセッサによって実行されるときに、プロセッサに実施例1乃至8のいずれか1つによる方法を実施させるための命令を含むコンピュータプログラムである。
実施例11は、命令がプロセッサによって実行されるときに、プロセッサに実施例1乃至8のいずれか1つによる方法を実施させるための命令を記憶しているコンピュータ可読記憶媒体である。
図面において、一般に、種々の図面全体を通して、同一の参照符号は、同一の部品を表している。これらの図面は、必ずしも縮尺通りではないが、その代わりにここでは、本発明の原理を一般的に表すことに重点が置かれている。以下の明細書においては、種々の態様を以下の図面を参照して説明する。
以下の詳細な説明は、説明のための特定の詳細及び本発明を実施することができる本開示の態様を示す添付の図面を参照している。また、本発明の保護範囲から逸脱することなく、他の態様を使用したり、構造的、論理的及び電気的な変更を行ったりすることができる。本開示のいくつかの態様は、新たな態様を構成するために本開示の1つ以上の他の態様と組み合わせることができるので、本開示の種々の態様は、必ずしも相互に排他的なものではない。
以下においては、種々の例をより詳細に説明する。
図1は、ロボット100を示している。
ロボット100は、ロボットアーム101、例えば、作業ワーク(又は1つ以上の他の物体)を操作したり、取り付けたりするための産業用ロボットアームを含む。このロボットアーム101は、マニピュレータ102,103,104と、これらのマニピュレータ102,103,104が支持されている基台(又は支持台)105とを含む。「マニピュレータ」という用語は、それらの操作が例えばタスクを実行するために周辺環境との物理的な相互作用を可能にするロボットアーム101の可動部品に関連する。制御のために、ロボット100は、周辺環境との相互作用を制御プログラムに従って実施するように設計された(ロボット)制御装置106を含む。マニピュレータ102,103,104の最後の要素104(これは、支持台105から最も遠く離隔している)は、エンドエフェクタ104とも称され、例えば、溶接トーチ、把持具、塗装具などの1つ以上のツールを含み得る。
(支持台105の近傍に存在する)他のマニピュレータ102,103は、位置決め装置を構成し得るものであり、それにより、エンドエフェクタ104と合わせて、ロボットアーム101は、その端部にエンドエフェクタ104を備えている。ロボットアーム101は、人間の腕と同様の機能を提供することができる機械的なアームである(場合によっては、その端部にツールを備える)。
ロボットアーム101は、マニピュレータ102,103,104を相互に接続し、さらに支持台105に接続する関節要素107,108,109を含み得る。関節要素107,108,109は、1つ以上の関節を含み得るものであり、それらの各々は、関連するマニピュレータの相互に対する回転可能な運動(即ち、回転運動)及び/又は並進運動(即ち、移動運動)を提供することができる。マニピュレータ102,103,104の運動は、制御装置106によって制御されるアクチュエータを用いて開始することができる。
「アクチュエータ」という用語は、その駆動に応じて機構やプロセスに作用を与えるように設計された構成要素として理解することができる。アクチュエータは、制御装置106によって作成された命令(いわゆる起動)を機械的な運動に置き換えることができる。例えば、電気機械式変換器などのアクチュエータは、その駆動に応じて電気エネルギーを機械エネルギーに変換するように構成されるものとしてもよい。
「制御部」という用語は、論理実装された項目の任意のタイプとして理解することができ、これは、例えば、記憶媒体に格納されたソフトウェア、ファームウェア又はそれらの組合せを実行することができ、例えば、本実施例においては、アクチュエータに命令を出力することが可能な回路及び/又はプロセッサを含み得る。制御部は、例えば、システム(本例においてはロボット)の動作を制御するためにプログラムコード(例えば、ソフトウェア)によって構成されるものとしてもよい。
本例においては、制御装置106は、1つ以上のプロセッサ110と、コード及びデータを格納したメモリ111とを含み、これらのコード及びデータに基づいて、プロセッサ110はロボットアーム101を制御する。種々の実施形態によれば、制御装置106は、メモリ111に格納された機械学習モデル112に基づいて、ロボットアーム101を制御する。
種々の実施形態によれば、機械学習モデル112は、ロボット100が、例えば、ロボットアーム101の作業空間内に配置される物体113のピックアップポーズを認識することができるように設計及び訓練されている。これは、ロボット100が、物体113をどのようにピックアップすることができるか、即ち、自身のエンドエフェクタ104をどのように配向しなければならないか、及び、物体113をピックアップする(例えば、把持する)ためには自身のエンドエフェクタ104をどこへ移動させなければならないかを認識することを意味する。ピックアップポーズとは、ピックアップのための十分な情報を含むもの、即ち、そこから物体113をどのように把持することができるのかを求めるのに十分となる、物体113の向き及び位置に関する情報を含むものと理解される。ピックアップポーズには、物体113に関する完全な配向情報が必ずしも含まれていなければならないわけではない。なぜなら、回転対称部分を有する物体113の場合、把持することに、例えば、回転対称部分がその回転軸線周りにおいてどのように回転しているかは無関係である可能性があるからである。
ロボット100は、例えば、自身の作業空間の画像を撮像することを可能にする1つ以上のカメラ114を備えるものとしてもよい。このカメラ114は、例えば、ロボットアーム101に取り付けられており、そのため、ロボットは、ロボットアーム101を動かし回すことにより、種々の視点からの物体113の画像を撮ることができる。
種々の実施形態によれば、制御装置106は、物体認識のための機械学習モデル112を実装し、その出力は、物体113のピックアップポーズを求めるために使用される。
物体認識のためのそのような機械学習モデル112の例は、密な物体ネットワークである。この密な物体ネットワークは、画像(例えば、カメラ114によって提供されるRGB画像)を任意の次元(次元D)記述子空間画像にマッピングする。
密な物体ネットワークは、画像の入力画像について記述子空間画像を出力するために自己教師あり学習を使用して訓練されたニューラルネットワークである。ただし、このアプローチの有効性は、収集された訓練データ及び関与するセンサ(例えば、カメラ114)の品質に大きく依存している。さらに、ネットワーク予測の解釈が困難な場合もある。
種々の実施形態によれば、産業用の組み立てや機械加工のタスクにとって典型的なケースである、物体の3Dモデル(例えば、CAD(Computer Aided Design)モデル)が既知であることを想定して、物体と、その位置とを認識するためのアプローチが使用される。種々の実施形態によれば、ニューラルネットワーク用の入力画像を訓練する最適な目標画像を計算するために、非線形次元を低減させる技術が使用される。従って、ニューラルネットワークの自己教師あり訓練を使用する代わりに、種々の実施形態によれば、ニューラルネットワークの教師あり訓練が使用される。また、物体のRGBD画像(RGB+深度情報)を撮像することも可能であり、そこからも物体の3Dモデルを決定することができる。
一実施形態によれば、機械学習モデル112を訓練するための訓練データを生成するために、最初にデータ収集が実施される。特に、例えば、登録されているRGB(赤-緑-青)画像が収集される。登録されている画像とは、本明細書においては、既知の内在的及び外在的カメラ値を有するRGB画像を意味する。例えば、現実世界のシナリオにおいては、ロボット(例えば、ロボットアーム101)が動き回っている間に、例えば、ロボットに取り付けられたカメラ114(例えば、ロボットの手首に取り付けられたカメラ)が物体を走査するために使用される。他の外在的推定手法、例えば、ChArUcoマーカーも使用することができる。即ち、物体は、ChArUcoボードに対して種々の位置及び姿勢で配置することができ、(ChArUcoボード及び物体の)配置構成の画像が撮像可能である。シミュレートされたシナリオにおいては、既知の物体姿勢を用いて写真のようにリアルに生成されたRGB画像が使用される。
RGB画像を収集した後、ニューラルネットワークの教師あり訓練のためにRGB画像の目標画像がレンダリングされる。
収集された各RGB画像のワールド座標における各物体の姿勢は既知であることが想定される。このことは、シミュレートされたシナリオにおいては簡単であるが、現実世界のシナリオにおいては、例えば、物体を予め定められた位置に配置するなど、マニュアル(手動)調整が必要である。物体の位置を決定するために、RGBD画像を使用することもできる。
これらの情報とともに、例えば、以下において説明するような頂点記述子計算手法を使用して、各RGB画像(即ち、訓練入力画像)について、記述子画像(即ち、訓練出力画像、これは目標画像又はGround-Truth画像とも称される)がレンダリングされる。
各RGB画像について目標画像が生成された場合、即ち、RGB画像及び目標画像の対が形成された場合、これらの訓練入力画像及び関連する目標画像の対は、図2に示すように、ニューラルネットワークを訓練するための訓練データとして使用することができる。
図2は、一実施形態によるニューラルネットワーク200の訓練を示している。
ニューラルネットワーク200は、h×w×3テンソル(入力画像)をh×w×Dテンソル(出力画像)にマッピングする完全畳み込みネットワーク(fully convolutional network)である。
これには、畳み込み層の複数のステージ204、続いてプーリング層、アップサンプリング層205、及び、異なる層の出力を組み合わせるスキップ結合層206が含まれる。
訓練のために、ニューラルネットワーク200は、訓練入力画像201を受信し、記述子空間内の画素値(例えば、記述子ベクトル成分による色成分)を有する出力画像202を出力する。訓練損失は、出力画像202と、訓練入力画像に関連付けられた目標画像203との間において計算される。これは、訓練入力画像のバッチに対して行うことができ、訓練損失は、訓練入力画像にわたって平均化することができ、ニューラルネットワーク200の重みは、訓練損失を用いた確率的勾配降下法を使用して訓練される。出力画像202と目標画像203との間において計算された訓練損失は、例えば、(目標画像203と出力画像202との間の画素ごとの最小二乗誤差を最小化するための)L2損失関数である。
訓練入力画像201は、物体及び目標画像、並びに、複数の出力画像を含む記述子空間内のベクトルを示している。これらの記述子空間内のベクトルは、出力画像202(及び目標画像203)が物体のヒートマップに類似するような色にマッピングすることができる。
記述子空間内のベクトル((密な)記述子とも称される)は、それぞれの画像内の各画素(例えば、入力画像201と出力画像202とが同一の次元を有すると想定した場合、入力画像201の各画素)に割り当てられたd次元ベクトルである(dは、例えば、1、2、又は、3である)。密な記述子は、入力画像201内に示される物体の表面トポロジをその姿勢又はカメラ位置に対して不変に暗黙的に符号化する。
物体の3Dモデルが与えられた場合、物体の3Dモデルの各頂点に対する(リーマンの意味における)最適で一義的な記述子ベクトルを分析的に決定することができる。種々の実施形態によれば、これらの最適な記述子(又は最適化によって決定されるこれらの記述子の推定値)を使用して、登録されたRGB画像に対する目標画像が生成され、これは、ニューラルネットワーク200の完全な教師あり訓練につながる。付加的に、記述子空間は、選択された記述子の次元dに関係なく、説明可能で最適になる。
以下においては、3Dモデルを、
に埋め込まれたリーマン多様体
とみなす。これにより、ジオメトリに留意しながら測地距離(頂点間の最短経路)の計算が引き起こされる。最適な表面トポロジは、3Dモデルをd次元のユークリッド記述子空間に埋め込むことにより明示的に符号化することができ、そのため、隣接する頂点間の測地距離は、可能な限り保持される。このユークリッド空間は、記述子空間とみなされ、最適なマッピング
による探索が実施される。一実施形態によれば、記述子空間内の頂点の最適な埋め込みを決定する(又は少なくとも推定する)ために、グリッドに対するラプラス演算子計算及びそれらの固有値分解が使用される。従って、測地距離計算とマッピング最適化とを分離する代わりに、3Dモデルのラプラス演算子を計算することにより、記述子が単一のフレームワークにおいて抽出される。
以下に説明するアプローチによれば、頂点間の距離(例えば、測地距離など)を保持するために、記述子空間へのユークリッド空間内の3D物体モデルの埋め込みが決定される。
ラプラス演算子を介した次元低減については、点のセット
が無指向グラフのノードに対応する必要がある。wij≧0である場合には、2つのノードxiとxjとの間の結合強度又は近接度は、例えば、次のように表すべきである。
wij=exp(-||xi-xj||2)
wij=exp(-||xi-xj||2)
この目標は、d次元の埋め込み
を見出すことにあり(典型的にはd<D)、そのため、xiとxjとが近接して存在する場合、それらの埋め込みも近接するはずである。即ち、
ここで、Y=[y1,…yN]d×Nである。
最適化問題(1)は
に対して等価的である。ここで、LN×Nは、は正の半確定ラプラシアン行列である。Aは、要素を有する隣接行列、Aij=Aji=wij及びDii=ΣjAijである。最適解Y*は、任意のスケーリング及び傾向を有し得る点に留意されたい。このランダム性を除去するために、重み付けされた2次モーメントを、YTDY=Iで正規化することも可能である。これにより、単位分散が種々の次元で強いられる。結果として生じる最適化問題は、以下の通りである。
ラグランジュパラメータ
を用いた制約付き最適化を使用すれば、
であり、これは、標準的な線形代数ライブラリで解くことができる一般化された固有値問題である。LとDは正(半)定値行列であるため、固有値は、λ0=≦λ1≦…≦λN-1として記述することができる。
さらに、第1の固有ベクトル(YTの第1の列)は1(1だけのベクトル)に等しく、各頂点を点にマッピングする自明な解である。付加的に、任意の2つの固有ベクトルは互いに直交している。固有値問題の解からは、N個の固有値とそれに対応する次元Nの固有ベクトルとが得られる。ただし、実際には、(自明な解を除いて)最も低い固有値に対応する最初のd個の固有ベクトルのみが使用される。
従って、Yのi番目の列はRdへのノードiの埋め込みであり、それに対して、各行は、種々の直交次元における各点の埋め込みを表す。
図3は、4ノードグラフの例示的な埋め込みを示している。
固有値は、埋め込みの最適性に関して重要な意味を持っている。最適な埋め込みY*の場合、以下の制約、
が満たされ、その結果、
が成り立つ。即ち、固有値は、種々の次元における埋め込みエラーに対応する。簡素化のために、d=1とするならば、この場合、各xは、点y=1にマッピングされ、式(5)は、以下のように簡略化される。
λ0=0なので、即ち、物体のすべての頂点が1つの点にマッピングされている場合、埋め込みエラーは0になる。なぜなら、すべての点間の距離yが0になるからである。これは、実用的な目的には有用ではなく、従って、第1の固有値及び固有ベクトルは、省略される。d=2を使用することは、各点xを線にマッピングすることに対応し、λ1は、対応する埋め込みエラーとなり、以下同様である。固有ベクトルは互いに直交しているため、dの増加は、新たな次元を埋め込みに付加する。これは、新たな直交次元の誤差を最小化することを目的としている。同様の効果は、式(3)においても見て取ることができる。ここで、
であるので、元の目的設定は、各次元の埋め込みエラーを最小化することに変更することができる。従って、選択したdにかかわらず、結果として生じる記述子ベクトルは、最適となる。
場合によっては、後続の固有値が同一となる。即ち、λi=λi+1=λi+2=…(d=2及びd=3の固有値が同様である図3の例参照)。これは、対称性に関するいくつかの情報につながり、ここでは、同一の埋め込みエラーを有する複数の直交次元が存在する。実際に、図3の4ノードグラフの例においては、グラフが完全に結合されている場合、各次元の埋め込みは対称であり、自明な解を除いてすべての固有値は同一である。
上記のグラフ埋め込みアプローチは、グリッドや点群などに直接適用することができる。例えば、頂点間の局所的な結合を形成し、隣接行列を作成するために、K最近傍法(KNN)アルゴリズムを使用することができる。このアプローチは、グラフラプラシアンを構築し、各頂点の埋め込みを計算するのに十分である。それにもかかわらず、このアプローチは、内在的にユークリッド距離関数と発見法とに基づいており、これは3D物体モデルの基礎となるリーマン幾何学を必ずしも考慮していない。例えば、一部の縁部は、物体を通って延在したり、隣接していないグリッドの頂点を結合したりすることができる。隣接行列に不適正な項目がいくつかあるだけでも、埋め込み能力の低下を引き起こす可能性がある。それゆえ、一実施形態によれば、モデルを処理する場合、任意の2つの頂点間の測地距離が適正であること、又は、最小の近似誤差を有することが保証される。
一般に、グリッドや点群などの物体モデルは、
に埋め込まれたリーマン多様体として表すことができる。距離関数gが均一に変化するリーマン多様体Mは、「局所的ユークリッド」とみなすことができ、これは、実世界の物体の局所的な滑らかさの特性を捉えている。ラプラス演算子のリーマン多様体への一般化は、ラプラスベルトラミ(LB)演算子Δである。ユークリッド空間のラプラス演算子と同様に、関数に適用されるLB演算子は、関数の勾配の発散である。ラプラス演算子は、グラフやユークリッド空間については(隣接情報又は有限差分から)容易に計算することができるのに対して、微分幾何学のLB演算子は、外部計算(Exterior Calculus)に基づいており、一般に多様体に対しては直ちに利用することができるものではない。
ただし、グリッドなどの既知の離散多様体については、LB演算子は近似させることができる。これは、グリッドや点群などを処理する場合、非常に効率的で簡素な計算フレームワークを提供する。ラプラス演算子のリーマン等価物は、ラプラスベルトラミであるため、上述の埋め込みアプローチは、Δの場合にも直接適用可能である。Δの固有ベクトルYは、グリッドの頂点の最適なd次元ユークリッド埋め込みを表す。
Δは、グリッドの場合、以下のように効率的に計算することができる。ここでは、N個の頂点V、平面F及び縁部Eを有するグリッドが与えられていることを想定する。この場合、Δのサイズは、N×Nである。Δのi番目の行は、その結合頂点に対するi番目の頂点の隣接情報を記述する。φをグリッド上の任意の関数とし、次いで、この関数における離散LB演算子の適用がΔφにマッピングされる。この関数のi番目の要素は、次のように記述することができる。即ち、
余接式の合計
は、結合重みwijとして機能する。式(7)にも現れるこれらの重み、即ち、LB演算子の重みは、グリッドにおいて適用される場合、一実施形態によれば、式(2)のD及びAを決定するための重みとして使用される。
α>π/2⇒cot(α)<0では、負の結合重みwijが発生する可能性があるため、とりわけ、特に1つの角度が他の角度よりも著しく大きい場合(良好な平面ではない場合)には、注意が必要である。この問題を克服するために、結合重みは、エッジフリッピング(Edge Flipping)によって近似することができる。
上述した記述子生成アプローチは、各頂点を一義的に扱っている。即ち、各頂点には1つの一義的な記述子が割り当てられる。ただし、物体は、対称であるものとしてもよく、その場合、一義的な記述子を外見上同一の頂点に割り当てることは、非対称の埋め込みとなる。
この問題に対処するために、種々の実施形態によれば、形状の内在的対称性が検出され、対称性の埋め込みが圧縮されると、対称的な頂点は、同一の記述子にマッピングされる。ラプラスベルトラミ演算子の固有関数が、ユークリッド空間において対称的に見える場合、その形状は内在的対称性を持つことが示される。換言すれば、グリッドや点群などの対称的な特徴は、それらの測地線を保持するユークリッド埋め込み(記述子空間)がユークリッド対称性を示す場合に検出される。コンパクト多様体は、多様体の各頂点間の測地距離を保持する同相写像Tがある場合、内在的対称性を示す。
対称性記述子の圧縮については、いわゆるグローバルな内在的対称性不変関数(GISIF)を使用することができる。グローバルな内在的対称性同相写像を以下のように想定し、
ただし、gは測地距離を表す、さらに多様体の関数fに、多様体上の各点pについての場合として以下の式、
foT(p)=f(T(p))=f(p) (8)
が成り立つ場合には、fは、GISIFである。例えば、トーラス上においては、この同相写像は、z軸周りの任意の回転であるものとしてもよい。これは、fがGISIFの場合、この回転に対して不変でなければならないことを意味する。
foT(p)=f(T(p))=f(p) (8)
が成り立つ場合には、fは、GISIFである。例えば、トーラス上においては、この同相写像は、z軸周りの任意の回転であるものとしてもよい。これは、fがGISIFの場合、この回転に対して不変でなければならないことを意味する。
これは、対称的埋め込みの必要条件である、上記の同一の固有値の分析と一致する。実際には、数値的な制約に基づいて稀に同一の固有値が生じるため、それらが同一のε球内にある場合(εが小さい場合)、即ち、それらの差が予め定められた閾値、例えば、0.1%又は0.01%未満である場合に、固有値が同一とみなされるところでは発見法を使用することができる。対称的な次元は、所与の物体に対して1回だけしか検出する必要がないので、これは、マニュアル(手動)により実施することができる。
例えば、トーラスの固有値分解の最初の7つの固有値は以下のようになる。
λ0-6=[0.0,0.0175,0.0175,0.069,0.069,0.1525,0.1525]
λ0-6=[0.0,0.0175,0.0175,0.069,0.069,0.1525,0.1525]
複数の物体の場合、このことは、個別に接続された複数のグラフとして表すことができる。この場合、隣接行列は、ブロック対角である。対称正定ラプラス演算子は、再び直交固有ベクトルを有する。単一グラフ埋め込みの場合と比較して、固有値分解の結果には2つの違いがある。第1は、減少しない固有値は、順序のないすべての物体の埋め込みエラーになり得ることであり、第2は、対応する固有値が直交のままであるため、固有ベクトルはゼロの項目を有することである。このことは、記述子空間の各次元が1つの物体埋め込みにのみ対応することを意味する。さらに、次元は、対応する物体の埋め込みエラーを参照して順序付けられる。従って、2つの物体の3次元の埋め込みを生成すべき場合には、d=8が使用される。なぜなら、λ=0に対応する2つの自明な解が存在するからである。
この単純なアプローチは、複数の物体を独立して取り扱うが、それに対して、物体間の相関関係を利用する、より低いdで適度に良好な埋め込みを提供する準最適の方法が存在する場合がある。
物体の姿勢を鑑みて、目標画像は、記述子を画像平面に投影することによって生成することができる。非物体(背景)として、記述子空間のランダムな画像ノイズや記述子空間内の最も遠い点にマッピングされる個々の記述子を使用することができる。
訓練されたネットワーク200の堅牢性を改善するために、ドメインランダム化などの画像拡大法、又は、ガウシアンぼかし、トリミング若しくはドロップアウトなどの外乱を適用することができる。
ここで、機械学習モデル112、例えばニューラルネットワーク200が、物体113のカメラ画像を記述子画像にマッピングするように訓練されている場合、未知の姿勢状況の物体113のピックアップポーズを求めるために以下の措置を取ることができる。
最初に、物体上において、物体113上の複数の基準点pi、i=1,…Nが選択され、これらの基準点の記述子が求められる。このことは、物体113のカメラ画像が撮像され、物体上の基準画素(ui,vi)(従って、物体の対応する基準点)が選択され、カメラ画像が、ニューラルネットワーク200によって記述子画像にマッピングされることによって行うことができる。次いで、基準画素の位置によって与えられる記述子画像内の位置における記述子は、基準点の記述子としてみなすことができる。即ち、基準点の記述子は、di=Id(ui,vi)であり、ここで、Id=f(I;θ)は、記述子画像であり、fは、ニューラルネットワークによって実装される(カメラ画像から記述子画像への)マッピングであり、Iは、カメラ画像、θは、機械学習モデル200の重みである。
ここで、物体113が、未知の姿勢状況にある場合、再びカメラ画像Ineuが撮像され、機械学習モデルを用いて関連する記述子画像Id
neu=f(Ineu;θ)が求められる。この新たな記述子画像において、ここでは、基準画像のdiの記述子に可及的に近接する記述子が、例えば、以下の式、
(ui,vi)*=argminui,vi||Id neu(ui,vi)-di||2 2、ただし、すべてのi=1,…N
によって探索される。
(ui,vi)*=argminui,vi||Id neu(ui,vi)-di||2 2、ただし、すべてのi=1,…N
によって探索される。
3次元空間内の基準点の位置は、記述子画像Id
neu内の(従って、対応する新たなカメラ画像Ineu内の)基準点のそのように求められた又は推定された位置(ui,vi)*から求められる。例えば、カメラ画像Ineuと共に深度画像が撮像され(又はカメラ画像Ineuは深度チャネル、例えば、RGBD画像などを有し)、そのため、(ui,vi)*からは、(当該位置(ui,vi)*における深度値を、それぞれの作業領域座標系に投影することによって)i番目の基準点piの3次元位置を求めることができる。
複数の基準点の空間内の位置が既知である場合、そこからは、図5に示されているようにピックアップポーズを求めることができる。
例えば、空間内の物体500上の2つの基準点p1及びp2の位置が求められ、この2つは、線形に組み合わせられ、例えば、それらの平均値が、アンカー点504を確定するために取られる。把持向きを定義するために、第1の軸線501は、p1及びp2方向によって確定され、第2の軸線502は、アンカー点504によって、例えば、カメラ114のz軸線方向又は作業領域座標系の軸線方向において任意に確定される。アンカー点504を通る第3の軸線503は、第1の軸線501の方向ベクトルと、第2の軸線502の方向ベクトルとからのベクトル積によって計算することができる。これらの3つの軸線501乃至503及びアンカー点504は、物体500に対するピックアップポーズを定義する。次いで、ロボットは、第1の軸線方向に延在する物体500の軸を包含するように制御することができる。基準点p1及びp2は、例えば、図示のように、軸に沿って、即ち、物体の把持に適した細長い部分区間に沿って延在するように確定される。
同様に、3つ以上の基準点を、物体の把持面上に配置することができ、そのため、それらの位置からは、物体の完全な6Dピックアップポーズ又は物体を把持し得る把持面の向きも求めることができる。
グリッパは、必ずしもはさみ形である必要はなく、例えば、物体を適当な表面により吸引することによってピックアップするために、吸引装置を有することもできる点に留意されたい。吸引装置を適正な姿勢に移行させるために、例えば、この場合、吸引に適している物体の表面の向きと位置とを示すピックアップポーズを求めることが望ましい場合もある。これは、例えば、アンカー点とアンカー点内の平面法線ベクトルとを求めることによって行うことができる。
ピックアップポーズを求めるために、例えば、平均化によりエラーを低減するために、3つ以上の基準点を使用することも可能である。
要約すると、種々の実施形態によれば、図6に示されるような方法が提供される。
図6は、種々の姿勢状況の物体をピックアップするロボットを制御するための方法を示している。
601においては、物体上において複数の基準点が確定され、それによって、3次元空間内の基準点の姿勢状況が物体のピックアップポーズを定める。
602においては、物体の既知の姿勢状況の物体の第1のカメラ画像が受信され、それによって、第1のカメラ画像内の基準点の位置が既知になる。
603においては、第1のカメラ画像が、カメラ画像内において可視の物体点をカメラ画像内のそれらの位置に依存することなく記述子に割り当てるように訓練された機械学習モデルを用いて、第1の記述子画像にマッピングされる。
604においては、基準点の記述子が、基準点の既知の位置における第1の記述子画像の読出しにより、第1の記述子画像から識別される。
605においては、物体がピックアップされる未知の姿勢状況の物体の第2のカメラ画像が受信される。
606においては、第2のカメラ画像が、機械学習モデルを用いて第2の記述子画像にマッピングされる。
607においては、識別された基準点の記述子が、第2の記述子画像内において探索される。
608においては、未知の姿勢状況の3次元空間内の基準点の位置が、記述子画像内において検出された基準点の記述子の位置から求められる。
609においては、未知の姿勢状況に対する物体のピックアップポーズが、3次元空間内において求められた基準点の位置から求められる。
610においては、物体をピックアップするためのロボット装置が、求められたピックアップポーズに応じて制御される。
種々の実施形態によれば、換言すれば、複数の基準点の位置が、未知の姿勢状況の物体を示すカメラ画像内のそれらの記述子に基づいて識別され、カメラ画像内のそれらの位置から3次元空間内のそれらの位置が決定される。次いで、3次元空間内の複数の基準点の位置から、ピックアップポーズ(例えば、物体を把持するための1つ以上の軸線の向き)が決定される。
「ピックアップする」とは、例えば、グリッパで把持することを意味するものと理解されたい。ただし、他のタイプの保持機構も使用することが可能であり、例えば、物体を吸引するための吸引器も使用可能である。その他に、「ピックアップする」とは、必ずしも物体が単独で移動することを意味するものではないことを理解されたい。例えば、より大きい構造体における構成要素を取り上げ、それを、より大きい構造体から分離することなく曲げることも可能である。
機械学習モデルは、例えば、ニューラルネットワークである。ただし、相応に訓練された他の機械学習モデルを使用することも可能である。
種々の実施形態によれば、機械学習モデルは、(それぞれのカメラ画像の画像平面内の)物体の画素に記述子を割り当てる。このことは、物体の表面トポロジの間接的な符号化とみなすことができる。記述子と表面トポロジとの間のこの接続は、記述子を画像平面にマッピングするためのレンダリングによって明示的に行うことができる。物体モデルの平面(即ち、頂点以外の点)の記述子値は、補間を用いて決定することができる点に留意されたい。例えば、1つの面が、物体モデルの3つの頂点によってそれぞれの記述子値y1,y2,y3で与えられている場合、この面の任意の点において、記述子値yは、これらの値の加重和w1・y1+w2・y2+w3・y3として計算することができる。換言すれば、記述子値は、頂点において補間される。
機械学習モデルのための訓練データ用画像対を生成するために、例えば、物体の画像(例えば、RGB画像)が、既知の3D(例えば、CAD)モデル及び既知の姿勢座標系(グローバル(即ち、ワールド)座標系)を有する物体(又は複数の物体)を含めて(密な)記述子画像にマッピングされ、これは、物体モデルとその記述子空間における表現(埋め込み)との間の幾何学的特性(特に、物体の点の近接度)の偏差を最小にする記述子による探索によって生成されるという意味で最適なものである。実際の使用においては、探索が特定の探索空間に限定されるため、最小化のための理論上の最適解は、一般的には見つからない。それにもかかわらず、最小値の推定は、(利用可能な計算精度、最大反復回数など)実際の適用の制約内において決定される。
従って、頂点に対する記述子は、頂点対の記述子間の距離の、結合された頂点対にわたる合計を、頂点対間の縁部の重みによって重み付けして最小化プロセスを実施することによって探索され、ここでは、頂点のそれぞれの頂点に対する各記述子が探索される。
各訓練データ画像対は、物体の訓練入力画像と目標画像とを含み、目標画像は、訓練入力画像内において可視の頂点の記述子を、訓練入力画像内において物体が有する姿勢に従って、訓練入力画像平面に投影することによって生成される。
これらの画像は、それらに関連する目標画像とともに機械学習モデルの教師あり訓練に使用される。
従って、機械学習モデルは、物体(又は複数の物体)の一義的な特徴を認識するように訓練される。これらの情報は、機械学習モデルのリアルタイムの評価を用いたロボット制御の種々の用途に、例えば、組み立てのための物体把持姿勢の予測に使用することができる。教師あり訓練アプローチでは、対称性情報の明示的な符号化が可能である点に留意されたい。
図6の方法は、1つ以上のデータ処理ユニットを含む1つ以上のコンピュータによって実施され得る。「データ処理ユニット」という用語は、データや信号の処理を可能にする任意のタイプの項目を意味するものと理解することができる。例えば、これらのデータや信号は、データ処理ユニットによって実施される少なくとも1つの(即ち、1つ以上の)特定の機能に従って処理可能である。データ処理ユニットは、アナログ回路、デジタル回路、複合信号回路、論理回路、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、プログラマブルゲートアレイ(FPGA)、集積回路、又は、それらの任意の組合せを含み得るものであり又はそれらから構成し得るものである。また、以下においてより詳細に説明する各機能を実装するための任意の他の手法も、データ処理ユニットや論理回路ユニットとして理解することができる。もちろん、本明細書において詳細に説明されている1つ以上の方法ステップは、データ処理ユニットによって実施される1つ以上の特定の機能を介して、データ処理ユニットによって実行(例えば、実装)することができる。
種々の実施形態は、例えば、物体を示すセンサデータを取得するために、種々のセンサ、例えば、(RGB)カメラ、ビデオ、レーダ、LiDAR、超音波、サーマルイメージング製品などからのセンサ信号を受信して使用することができる。これらの実施形態は、訓練データを生成し、機械学習システムを訓練するために使用することができ、例えば、ロボット、例えばロボットマニピュレータを自律的に制御するために、又は、種々のシナリオの下において種々の操作タスクを達成するために使用することができる。特に、これらの実施形態は、例えば、組み立てラインにおける操作タスクの実行の制御及び監視の際に適用可能である。
本明細書においては、特定の実施形態を示して説明してきたが、当業者が、図示され説明されてきたこれらの特定の実施形態を、本発明の保護範囲から逸脱することなく、種々の代替的及び/又は同等の実施形態に置き換えることが可能であることは、明らかであろう。本出願は、本明細書において論じられる特定の実施形態のあらゆる適合化又は変化形態を包含するものである。それゆえ、本発明は、特許請求の範囲及びそれらの等価物によってのみ限定されることが意図される。
Claims (11)
- 種々の姿勢状況の物体をピックアップするロボットを制御するための方法であって、
前記物体上において複数の基準点を確定し、それによって、3次元空間内の前記基準点の状況が前記物体のピックアップポーズを定めるステップと、
前記物体の既知の姿勢状況の前記物体の第1のカメラ画像を受信し、それによって、前記第1のカメラ画像内の基準点の位置を既知にするステップと、
前記第1のカメラ画像を、前記カメラ画像内において可視の物体点を前記カメラ画像内のそれらの位置に依存することなく記述子に割り当てるように訓練された機械学習モデルを用いて、第1の記述子画像にマッピングするステップと、
前記基準点の記述子を、前記基準点の前記既知の位置における前記第1の記述子画像の読出しにより、前記第1の記述子画像から識別するステップと、
前記物体がピックアップされる未知の姿勢状況の前記物体の第2のカメラ画像を受信するステップと、
前記第2のカメラ画像を、前記機械学習モデルを用いて第2の記述子画像にマッピングするステップと、
識別された前記基準点の記述子を、前記第2の記述子画像内において探索するステップと、
前記未知の姿勢状況の3次元空間内の前記基準点の位置を、前記記述子画像内において検出された前記基準点の前記記述子の位置から求めるステップと、
前記未知の姿勢状況に対する前記物体のピックアップポーズを、前記3次元空間内において求められた前記基準点の位置から求めるステップと、
前記物体をピックアップするロボットデバイスを、前記求められた前記ピックアップポーズに応じて制御するステップと、
を含む方法。 - 前記未知の姿勢状況における3次元空間内の前記基準点の位置は、前記第2の記述子画像における前記基準点の位置に対応する、前記第2のカメラ画像における前記基準点の位置についての深度情報を3次元空間に投影することによって、前記第2の記述子画像における前記基準点の前記記述子の検出された位置から求められる、請求項1に記載の方法。
- 前記基準点は、前記物体の細長い部分区間に沿って配置されるように確定される少なくとも2つの基準点を有し、前記未知の姿勢状況についての前記物体のピックアップポーズは、前記基準点を通って延在する軸線を求めることによって求められる、請求項1又は2に記載の方法。
- 前記基準点は、前記物体の平面上に配置されるように確定される少なくとも3つの基準点を有し、前記未知の姿勢状況についての前記物体のピックアップポーズは、前記基準点を通って延在する平面を求めることによって求められる、請求項1乃至3のいずれか一項に記載の方法。
- 前記機械学習モデルを訓練するステップは、
頂点のグリッドを含む、前記物体の3Dモデルを取得するステップと、
前記グリッドの各頂点に対する記述子を決定するステップと、
各訓練データ画像対が、物体を示す訓練入力画像と目標画像とを含む、訓練データ画像対を生成するステップであって、前記目標画像を生成することは、
前記訓練入力画像内の頂点を有する、前記物体の物体モデルの頂点の頂点位置を決定するサブステップと、
前記訓練入力画像内の各特定の頂点位置について、当該頂点位置における頂点に対して決定された記述子を、前記目標画像内の位置に割り当てるサブステップと、を含む、ステップと、
前記機械学習モデルを、訓練データとして前記訓練データ画像対を使用した教師あり学習により訓練するステップと、
を含む、請求項1乃至4のいずれか一項に記載の方法。 - 前記訓練データ画像対を生成するステップは、異なる姿勢の物体の複数の画像を取得するステップと、取得された各画像のための目標画像の生成により、取得された各画像から訓練データ画像対を生成するステップと、を含む、請求項5に記載の方法。
- 前記訓練入力画像内の頂点を有する、前記物体の物体モデルの頂点の頂点位置を、前記訓練入力画像内において前記物体が有するそれぞれの姿勢から決定するステップを含む、請求項5又は6に記載の方法。
- 3Dモデルの頂点が縁部によって結合され、各縁部は、前記物体内の縁部によって結合された2つの頂点の近接度を特定する重みを有し、前記グリッドの各頂点に対する記述子を決定するステップは、頂点対の記述子間の距離の結合された頂点対にわたる合計を、頂点対間の縁部の重みによって重み付けして最小化する、頂点に対する記述子の探索によって行われる、請求項5乃至7のいずれか一項に記載の方法。
- 請求項1乃至8のいずれか一項に記載の方法を実施するように構成されたロボット制御装置。
- 命令がプロセッサによって実行されるときに、前記プロセッサに請求項1乃至8のいずれか一項に記載の方法を実施させるための命令を含むコンピュータプログラム。
- 命令がプロセッサによって実行されるときに、前記プロセッサに請求項1乃至8のいずれか一項に記載の方法を実施させるための命令を記憶しているコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020214301.3 | 2020-11-13 | ||
DE102020214301.3A DE102020214301A1 (de) | 2020-11-13 | 2020-11-13 | Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022078979A true JP2022078979A (ja) | 2022-05-25 |
Family
ID=81345850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021184781A Pending JP2022078979A (ja) | 2020-11-13 | 2021-11-12 | 種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11964400B2 (ja) |
JP (1) | JP2022078979A (ja) |
CN (1) | CN114494426A (ja) |
DE (1) | DE102020214301A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022206274A1 (de) | 2022-06-22 | 2023-12-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2385483B1 (en) * | 2010-05-07 | 2012-11-21 | MVTec Software GmbH | Recognition and pose determination of 3D objects in 3D scenes using geometric point pair descriptors and the generalized Hough Transform |
DK2447884T3 (en) * | 2010-10-28 | 2015-03-30 | Cyclomedia Technology B V | A method for the detection and recognition of an object in an image and an apparatus and a computer program therefor |
KR101791590B1 (ko) * | 2010-11-05 | 2017-10-30 | 삼성전자주식회사 | 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법 |
US9280827B2 (en) * | 2013-07-03 | 2016-03-08 | Mitsubishi Electric Research Laboratories, Inc. | Method for determining object poses using weighted features |
US9259844B2 (en) * | 2014-02-12 | 2016-02-16 | General Electric Company | Vision-guided electromagnetic robotic system |
US20150294496A1 (en) | 2014-04-14 | 2015-10-15 | GM Global Technology Operations LLC | Probabilistic person-tracking using multi-view fusion |
US9868212B1 (en) * | 2016-02-18 | 2018-01-16 | X Development Llc | Methods and apparatus for determining the pose of an object based on point cloud data |
DE112017002156B4 (de) | 2016-04-25 | 2020-11-26 | Lg Electronics Inc. | Beweglicher roboter, system für mehrere bewegliche roboter, und kartenlernverfahren für bewegliche roboter |
US9972067B2 (en) * | 2016-10-11 | 2018-05-15 | The Boeing Company | System and method for upsampling of sparse point cloud for 3D registration |
DE202017001227U1 (de) | 2017-03-07 | 2018-06-08 | Kuka Deutschland Gmbh | Objekterkennungssystem mit einem 2D-Farbbildsensor und einem 3D-Bildsensor |
US10761541B2 (en) * | 2017-04-21 | 2020-09-01 | X Development Llc | Localization with negative mapping |
DE102017108727B4 (de) | 2017-04-24 | 2021-08-12 | Roboception Gmbh | Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem |
US11694072B2 (en) * | 2017-05-19 | 2023-07-04 | Nvidia Corporation | Machine learning technique for automatic modeling of multiple-valued outputs |
KR102314539B1 (ko) | 2017-06-09 | 2021-10-18 | 엘지전자 주식회사 | 인공지능 이동 로봇의 제어 방법 |
WO2019028075A1 (en) * | 2017-08-01 | 2019-02-07 | Enova Technology, Inc. | INTELLIGENT ROBOTS |
US10766149B2 (en) | 2018-03-23 | 2020-09-08 | Amazon Technologies, Inc. | Optimization-based spring lattice deformation model for soft materials |
US20200311855A1 (en) * | 2018-05-17 | 2020-10-01 | Nvidia Corporation | Object-to-robot pose estimation from a single rgb image |
DE102019122790B4 (de) | 2018-08-24 | 2021-03-25 | Nvidia Corp. | Robotersteuerungssystem |
EP3702108A1 (de) | 2019-02-27 | 2020-09-02 | GILDEMEISTER Drehmaschinen GmbH | Verfahren zum ermitteln einer greifposition zum ergreifen eines werkstücks |
DE102019206444A1 (de) | 2019-05-06 | 2020-11-12 | Kuka Deutschland Gmbh | Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera |
JP7337617B2 (ja) * | 2019-09-17 | 2023-09-04 | 株式会社東芝 | 推定装置、推定方法及びプログラム |
US20210122045A1 (en) * | 2019-10-24 | 2021-04-29 | Nvidia Corporation | In-hand object pose tracking |
US11430151B2 (en) * | 2019-11-06 | 2022-08-30 | Seiko Epson Corporation | Online learning for 3D pose estimation using simplified constellations |
DE102020114362A1 (de) * | 2020-05-28 | 2021-12-02 | Illinois Tool Works Inc. | System zum beladen einer spülmaschine, greifersystem für eine beladeanordnung zum beladen einer spülmaschine sowie spülmaschine |
US11436755B2 (en) * | 2020-08-09 | 2022-09-06 | Google Llc | Real-time pose estimation for unseen objects |
-
2020
- 2020-11-13 DE DE102020214301.3A patent/DE102020214301A1/de active Pending
-
2021
- 2021-11-08 US US17/453,920 patent/US11964400B2/en active Active
- 2021-11-12 CN CN202111339958.XA patent/CN114494426A/zh active Pending
- 2021-11-12 JP JP2021184781A patent/JP2022078979A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114494426A (zh) | 2022-05-13 |
US20220152834A1 (en) | 2022-05-19 |
DE102020214301A1 (de) | 2022-05-19 |
US11964400B2 (en) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6546618B2 (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
JP5835926B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
Song et al. | CAD-based pose estimation design for random bin picking using a RGB-D camera | |
JP2011175477A (ja) | 3次元計測装置、処理方法及びプログラム | |
Lin et al. | Robotic grasping with multi-view image acquisition and model-based pose estimation | |
Schröder et al. | Real-time hand tracking with a color glove for the actuation of anthropomorphic robot hands | |
Liu et al. | Nothing but geometric constraints: A model-free method for articulated object pose estimation | |
Zhi et al. | Simultaneous hand-eye calibration and reconstruction | |
US11986960B2 (en) | Apparatus and method for training a machine learning model to recognize an object topology of an object from an image of the object | |
US20230115521A1 (en) | Device and method for training a machine learning model for recognizing an object topology of an object from an image of the object | |
Chen et al. | Random bin picking with multi-view image acquisition and cad-based pose estimation | |
JP7051751B2 (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
Van Tran et al. | BiLuNetICP: A deep neural network for object semantic segmentation and 6D pose recognition | |
JP2022078979A (ja) | 種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法 | |
JP2017042897A (ja) | ロボットシステム、ロボット、及びロボット制御装置 | |
CN115082554A (zh) | 用于控制机器人来拿起对象的装置和方法 | |
JP2022142773A (ja) | オブジェクトのカメラ画像からオブジェクトの場所を位置特定するための装置及び方法 | |
Wang et al. | Q-pointnet: Intelligent stacked-objects grasping using a rgbd sensor and a dexterous hand | |
CN115194774A (zh) | 一种基于多目视觉的双机械臂抓握系统控制方法 | |
JP7349423B2 (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
CN116635194A (zh) | 干扰确定装置、机器人控制系统以及干扰确定方法 | |
Liang et al. | Visual reconstruction and localization-based robust robotic 6-DoF grasping in the wild | |
CN115205371A (zh) | 用于根据对象的摄像机图像定位对象的部位的设备和方法 | |
Han et al. | Mobile Grabbing Robot with Target Detection Using Quadric Fitting | |
Wang et al. | Recognition and grasping of target position and pose of manipulator based on vision |