FR3093215A1 - Procédé et dispositif de surveillance de l’environnement d’un robot - Google Patents
Procédé et dispositif de surveillance de l’environnement d’un robot Download PDFInfo
- Publication number
- FR3093215A1 FR3093215A1 FR1901828A FR1901828A FR3093215A1 FR 3093215 A1 FR3093215 A1 FR 3093215A1 FR 1901828 A FR1901828 A FR 1901828A FR 1901828 A FR1901828 A FR 1901828A FR 3093215 A1 FR3093215 A1 FR 3093215A1
- Authority
- FR
- France
- Prior art keywords
- image
- images
- robot
- measurement
- depth
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012544 monitoring process Methods 0.000 title claims abstract description 15
- 238000005259 measurement Methods 0.000 claims abstract description 87
- 238000001514 detection method Methods 0.000 claims abstract description 58
- 230000008859 change Effects 0.000 claims abstract description 20
- 239000002131 composite material Substances 0.000 claims description 48
- 238000010276 construction Methods 0.000 claims description 18
- 230000009466 transformation Effects 0.000 claims description 18
- 238000012806 monitoring device Methods 0.000 claims description 4
- 239000013598 vector Substances 0.000 description 64
- 230000005484 gravity Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 6
- 230000004927 fusion Effects 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008034 disappearance Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/254—Analysis of motion involving subtraction of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/38—Registration of image sequences
-
- 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
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/243—Image signal generators using stereoscopic image cameras using three or more 2D image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/271—Image signal generators wherein the generated image signals comprise depth maps or disparity maps
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Robotics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
L’invention concerne un procédé (200) de surveillance de l’environnement d’un robot comprenant au moins une itération d’une phase de détection (220) comprenant les étapes suivantes : acquisition (222), à un instant de mesure, d’une image de profondeur dudit environnement, dite image de mesure, par ladite au moins une caméra 3D, recalage (228) desdites images de référence et de mesure, et détection (230) d’un changement relatif à un objet dans l’environnement dudit robot par comparaison desdites images de référence et de mesure. Elle concerne également un dispositif mettant en œuvre un tel procédé et un robot équipé d’un tel dispositif. Figure d’abrégé : Fig. 2.
Description
La présente invention concerne un procédé de surveillance de l’environnement d’un robot, en vue de détecter des objets se trouvant dans l’environnement. Elle concerne également un dispositif de surveillance mettant en œuvre un tel procédé, et un robot équipé d’un dispositif de surveillance.
Le domaine de l'invention est, de manière non limitative, celui du domaine de la robotique, en particulier le domaine de la robotique industrielle ou des robots de service, par exemple médical ou domestique, ou encore des robots collaboratifs, également appelés « cobots ».
Etat de la technique
La mise en œuvre de robots, tels que par exemple des bras robotisés, dans un environnement non clos dans lequel des humains/objets sont susceptibles d’évoluer nécessite l’utilisation d’une fonctionnalité de détection desdits objets/humains pour prévenir les collisions.
Il est connu d’équiper des robots de capteurs détectant des objets en contact, ou à proximité immédiate, du robot. Ces solutions ont l’inconvénient qu’elles ne permettent pas de détecter des objets lointains pour anticiper des collisions, ce qui oblige à limiter la vitesse d’évolution du robot pour limiter l’énergie d’un éventuel impact sous un seuil acceptable.
Il est également connu d’utiliser des capteurs 2D ou 3D installés dans l’environnement du robot, afin de pouvoir surveiller des régions prédéfinies autour de ce robot en vue de détecter des objets et anticiper les collisions. Cette solution nécessite d’intervenir sur l’environnement de travail pour définir l’emplacement des capteurs et installer ces capteurs, ce qui est une opération chronophage, complexe et coûteuse. De plus, si l’environnement est changé, ou le robot déplacé, il est nécessaire de réitérer l’intervention. Enfin, en fonction des déplacements du robot, des zones peuvent être masquées, ce qui nécessite la mise en œuvre de plusieurs capteurs dans des configurations parfois complexes.
Un but de la présente invention est de remédier aux inconvénients précités.
Un autre but de la présente invention est de proposer un procédé et un dispositif de surveillance de l’environnement d’un robot moins coûteux, moins complexe et moins chronophage à installer et à utiliser, tout en proposant une détection d’objets lointains pour anticiper des collisions.
Un autre but de la présente invention est de proposer un tel dispositif et un tel procédé qui permette une mise en œuvre rapide et une adaptation aisée aux changements dans l’environnement du robot.
Un autre but de la présente invention est de proposer un tel dispositif et un tel procédé permettant de réaliser une détection d’objets dans un voisinage du robot avec une sûreté de détection suffisante pour pouvoir être utilisé comme dispositif de sécurité anticollision.
Un autre but de la présente invention est de proposer tel dispositif et un tel procédé permettant une adaptation de trajectoire du robot en fonction des évolutions de son environnement.
Un autre but de la présente invention est de proposer tel dispositif et un tel procédé permettant une détection des obstacles à une distance élevée du robot pour permettre une évolution de ce dernier à vitesse élevée.
Au moins un de ces buts est atteint avec un procédé de surveillance de l’environnement d’un robot comprenant :
- une phase d’obtention d’une image de profondeur de l’environnement dudit robot, dite image de référence, par au moins une caméra 3D portée par ledit robot ; et
- au moins une itération d’une phase de détection comprenant les étapes suivantes :
- acquisition, à un instant de mesure, d’une image de profondeur dudit environnement, dite image de mesure, par ladite au moins une caméra 3D,
- recalage desdites images de référence et de mesure, et
- détection d’un changement relatif à un objet dans l’environnement dudit robot par comparaison desdites images de référence et de mesure.
Le procédé selon l’invention propose de réaliser une surveillance de l’environnement d’un robot basée sur des images de profondeur obtenues par des caméras 3D portées par le robot lui-même, et non pas par des caméras 3D installées dans l’environnement du robot. Ainsi, lorsque l’environnement du robot change, ou lorsque le robot est déplacé, aucune intervention n’est nécessaire pour redéfinir, ou modifier, l’emplacement des caméras 3D. Le procédé selon l’invention est donc moins complexe, moins coûteux et moins chronophage à installer et à utiliser.
De plus, le procédé selon l’invention propose de réaliser une surveillance de l’environnement d’un robot par des caméras 3D, de portée plus grande que les capteurs de contact ou de proximité tels que des capteurs capacitifs. Ainsi, en cas de détection d’objets, le procédé selon l’invention permet d’anticiper des collisions sans devoir limiter la vitesse de déplacement du robot.
Par « objet environnant », ou « objet », on entend tout objet fixe, mobile, vivant ou non, pouvant se trouver dans l’environnement d’un robot. Il peut s’agir par exemple d’un objet se trouvant dans l’environnement du robot, tel qu’un opérateur ou une personne, un convoyeur, une table ou une zone de travail, un chariot, …
Par « robot » on entend un robot, sous toutes ses formes, tel qu’un système robotisé, un robot mobile, un véhicule sur roues ou chenilles tel qu’un chariot muni d’un bras ou d’un système manipulateur, ou un robot de type humanoïde, gynoïde ou androïde, éventuellement pourvu d’organes de déplacement tels que des membres, un bras robotisé, etc. En particulier, un robot peut être mobile lorsqu’il est en mesure de se déplacer ou qu’il comprend des parties en mouvement.
Dans le cadre de la présente invention, par « recalage » de deux images de profondeur on entend la détermination du positionnement relatif des deux images, ou le positionnement desdites images dans un référentiel commun. Le référentiel commun peut être le référentiel de l’une des deux images, ou un référentiel de la scène imagée.
Une image de profondeur peut être une image obtenue sous la forme d’un nuage de points ou d’une matrice de pixels, avec pour chaque pixel une information de distance ou de profondeur. Bien entendu, les données des points peuvent également comprendre d’autres informations, telles que des informations d’intensité lumineuse, en niveaux de gris et/ou en couleur.
De manière générale, chaque image est représentée par des données numériques, par exemple des données pour chaque point appartenant au nuage de points. Le traitement de chaque image est réalisé par traitement des données représentant ladite image.
Par « caméra 3D » on entend tout capteur pouvant produire une image de profondeur. Un tel capteur peut être par exemple une caméra à temps de vol, et/ou stéréoscopique, et/ou basée sur une projection de lumière structurée, qui produit une image de son environnement selon un champ de vue sur une pluralité de points ou pixels, avec une information de distance par pixel.
Une caméra 3D peut également comprendre un ou une pluralité de capteurs de distance ponctuels, par exemple optiques ou acoustiques, fixes ou équipés d’un dispositif de balayage, agencés de sorte à acquérir un nuage de points selon un champ de vue.
Un champ de vue peut être défini comme une zone, un secteur angulaire ou une partie d’une scène réelle imagée par une caméra 3D.
Suivant des exemples de réalisation non limitatif, le changement relatif à un objet peut être une apparition dudit objet dans l’environnement du robot, une disparition d’un objet préalablement présent dans l’environnement du robot, une modification de la taille ou de la position d’un objet préalablement présent dans l’environnement du robot, etc.
Suivant un premier mode de réalisation, l’image de référence peut correspondre à une seule image de profondeur, acquise par l’au moins une caméra 3D à un instant d’acquisition.
Dans ce cas, il parait important d’utiliser une caméra 3D avec un champ de vue le plus large possible en vue de capturer une image de profondeur la plus complète possible de l’environnement du robot. En effet, plus large est l’image de référence, plus large sera l’environnement surveillé à proximité du robot.
Suivant un deuxième mode de réalisation nullement limitatif, l’image de référence peut être construite à partir de plusieurs images de profondeur.
Dans ce cas, la phase d’obtention de l’image de référence peut comprendre les étapes suivantes :
- acquisition, de manière séquentielle, d’au moins deux images de profondeur, à différents instants d’acquisition et pour différentes positions de l’au moins une caméra 3D ; et
- construction de l’image de référence à partir desdites images de profondeur séquentielles.
Autrement dit, l’image de référence est construite par combinaison, ou concaténation ou encore fusion, de plusieurs images de profondeur prises à différents instants.
Surtout, les champs imagés par l’au moins une caméra 3D, à deux instants d’acquisition, sont différents car la position et/ou l’orientation de l’au moins une caméra 3D est modifiée entre ces deux instants d’acquisition. Ainsi, il est possible de construire une image de référence qui est plus grande. Il est même possible de construire une image de référence de la totalité de l’environnement du robot, en faisant autant d’acquisitions que nécessaire.
Suivant un exemple de réalisation, au moins une caméra 3D peut être mobile sur le robot. Ainsi, le champ de vue de ladite caméra 3D peut être modifié sans avoir à bouger le robot.
Alternativement ou en plus, au moins une caméra 3D peut être fixée sur le robot. Dans ce cas, le champ de vue de ladite caméra 3D peut être modifié en faisant bouger le robot, ou une partie du robot sur laquelle est fixée la caméra 3D. Le robot, ou la partie du robot, portant la caméra 3D peut être déplacé suivant une trajectoire prédéterminée permettant d’imager la totalité, ou du moins une large partie, de l’environnement du robot en plusieurs acquisitions.
Suivant un mode de réalisation, lorsque les images de profondeur séquentielles comprennent des zones de recouvrement, alors la construction de l’image de référence peut être réalisée en :
- détectant lesdites zones de recouvrement, par exemple par comparaison desdites images de profondeur séquentielles entre elles ; et
- combinant les images séquentielles ensemble, par exemple par concaténation desdites images de profondeur, en fonction desdites zones de recouvrement.
Cette combinaison peut être effectuée notamment en mettant en œuvre des méthodes connues de recherche de corrélation, on de minimisation de fonctions d’erreur, entre images dans les zones de recouvrement.
Alternativement, ou en plus, la construction de l’image de référence peut être réalisée en fonction de la configuration de l’au moins une caméra 3D, à chaque instant d’acquisition.
Cette technique permet de construire l’image de référence, même lorsque les images de profondeur séquentielles ne comportent pas de zones de recouvrement.
La configuration d’une caméra 3D inclut sa position et/ou son orientation dans l’espace, par exemple dans un référentiel ou un repère lié à la scène ou à l’environnement dans lequel se déplace le robot. La connaissance de cette configuration d’une caméra 3D permet de positionner son champ de vue dans le repère de scène.
Suivant un exemple de réalisation, la position, à un instant d’acquisition, de l’au moins une caméra 3D peut être déterminée en fonction d’une configuration géométrique dudit robot audit instant d’acquisition.
La géométrie du robot permet de déterminer la configuration d’une caméra 3D fixée au robot, en particulier sa position et son orientation, dans un repère lié à la scène.
Dans le cas particulier d’un bras robotisé comprenant au moins un segment mobile en rotation, la configuration géométrique du robot est donnée par la dimension de chaque segment et la position angulaire de chaque segment, cette position angulaire étant donnée par le moteur ou l’articulation mettant en mouvement ledit segment. En prenant en compte ces informations de longueur et de positions angulaires des segments, il est possible de déterminer la position et/ou l’orientation exacte(s) de chaque caméra 3D fixée au robot.
Suivant un mode de réalisation, le robot peut être équipé d’une unique caméra 3D.
Dans ce cas, chaque image de profondeur à un instant correspond à une image de profondeur prise par ladite caméra 3D.
Suivant un autre mode de réalisation, le robot peut être équipé de plusieurs caméras 3D, en particulier de champs de vue différents.
Dans ce mode de réalisation, et de manière nullement limitative, chaque image de profondeur à un instant d’acquisition peut être une image de profondeur composite construite à partir de plusieurs images de profondeur acquises chacune par une caméra 3D audit instant donné.
Dans ce cas, l’étape d’acquisition d’une image de profondeur à un instant d’acquisition, peut comprendre les opérations suivantes :
- acquisition, audit instant d’acquisition, par au moins deux desdites caméras 3D, d’images de profondeur individuelles ; et
- construction d’une image de profondeur composite à partir desdites images de profondeur individuelles.
Ainsi, à chaque instant d’acquisition, il est possible d’obtenir une image de profondeur composite correspondant à un plus grand champ de vue, connexe (d’un seul tenant) ou non. Par conséquent, chaque image de profondeur composite représente la scène réelle suivant un champ de vue plus grand comparé au mode de réalisation utilisant une seule caméra. Cela permet de réaliser une surveillance d’une plus grande partie, voire de la totalité, de l’environnement du robot.
Suivant un mode de réalisation, lorsque les images de profondeur individuelles comprennent des zones de recouvrement, alors la construction de l’image de profondeur composite, à partir desdites images de profondeur individuelles, peut être réalisée :
- en détectant lesdites zones de recouvrement, par exemple par comparaison desdites images de profondeur individuelles entre elles ; et
- en combinant lesdites images de profondeur individuelles ensemble, en fonction desdites zones de recouvrement, par exemple par concaténation ou fusion desdites images de profondeur individuelles.
Cette combinaison peut être effectuée notamment en mettant en œuvre des méthodes connues de recherche de corrélation, on de minimisation de fonctions d’erreur, entre images dans les zones de recouvrement.
Alternativement, ou en plus, la construction de l’image de profondeur composite, à partir des images de profondeur individuelles, peut être réalisée en fonction des configurations relatives entre elles des caméras 3D.
Cette technique permet de construire l’image de profondeur composite, même lorsque les champs de vue des caméras 3D ne comportent pas de zones de recouvrement, de sorte que les images de profondeur individuelles acquises à un instant donné par les caméras 3D ne comportent pas de zones de recouvrement.
La configuration relative d’une caméra 3D, par rapport à une autre caméra 3D peut comprendre sa position relative, et/ou son orientation relative, par rapport à la position relative, respectivement à l’orientation relative, de l’autre caméra 3D.
Lorsque le robot est équipé d’une ou de plusieurs caméras 3D de champs de vue différents, la phase de détection peut être réalisée individuellement pour au moins une caméra 3D, en prenant comme image de mesure une image de profondeur individuelle prise par ladite caméra 3D à l’instant de mesure.
Dans ce cas, l’image de profondeur individuelle de la caméra 3D est recalée avec l’image de référence, puis comparée à l’image de référence en vue d’identifier, dans l’image de mesure, un changement relatif à un objet dans l’image de profondeur individuelle.
En particulier, la phase de détection peut être réalisée pour chaque image de profondeur individuelle de chaque caméra 3D, le cas échéant.
La phase de détection peut alors être réalisée en même temps ou à tour de rôle pour chaque caméra 3D.
Suivant un autre mode de réalisation, lorsque le robot est équipé de plusieurs caméras 3D de champs de vue différents, l’image de mesure à un instant de mesure peut être une image de profondeur composite construite à partir de plusieurs images de profondeur individuelles acquises par plusieurs caméras 3D audit instant de mesure.
Dans ce cas, l’étape d’acquisition d’une image de mesure, à un instant de mesure, peut comprendre les opérations suivantes :
- acquisition, à l’instant de mesure, par plusieurs caméras 3D, d’images de profondeur individuelles ; et
- construction d’une image de mesure composite à partir desdites images de profondeur individuelles.
Ainsi, à chaque instant de mesure, il est possible d’obtenir une image de de mesure composite correspondant à un plus grand champ de vue. Par conséquent, chaque image de mesure composite représente l’environnement du robot suivant un plus grand champ de vue, comparé au mode de réalisation utilisant une seule caméra 3D. Cela permet de réaliser une surveillance d’une plus grande partie, voire de la totalité, de l’environnement du robot.
Suivant un exemple de réalisation, lorsque les images de profondeur individuelles comprennent des zones de recouvrement, alors la construction de l’image de mesure composite, à partir desdites images de profondeur individuelles, peut être réalisée :
- en détectant lesdites zones de recouvrement, par exemple par comparaison desdites images de profondeur individuelles entre elles ; et
- en combinant lesdites images de profondeur individuelles ensemble, en fonction desdites zones de recouvrement, par exemple par concaténation ou fusion desdites images de profondeur individuelles.
Alternativement, ou en plus, la construction de l’image de mesure composite, à partir des images de profondeur individuelles, peut être réalisée en fonction des configurations relatives entre elles des caméras 3D.
Cette technique permet de construire l’image de mesure composite, même lorsque les champs de vue des caméras 3D ne comportent pas de zones de recouvrement, de sorte que les images de profondeur individuelles acquises par les caméras 3D, à l’instant de mesure, ne comportent pas de zones de recouvrement.
La configuration relative d’une caméra 3D, par rapport à une autre caméra 3D peut comprendre sa position relative, et/ou son orientation relative, par rapport à la position relative, respectivement à l’orientation relative, de l’autre caméra 3D.
Suivant une caractéristique avantageuse, la détection d’un changement relatif à un objet peut être réalisée en exploitant les informations de distances de l’image de mesure.
En particulier, cette détection peut être effectuée en détectant que des distances mesurées dans au moins une zone de l’image de mesure sont différentes des distances dans la ou les zones correspondantes de l’image de référence.
Bien entendu, la détection d’un changement relatif à un objet peut également être réalisée en exploitant d’autres informations disponibles, telles que par exemple une intensité, un niveau de gris et/ou une couleur, seules ou en combinaison.
Par ailleurs, la nature de l’objet ou au moins sa forme peuvent également être déterminées, notamment à partir des mesures de distance.
Bien entendu, un déplacement ou un retrait d’un objet peuvent également être détectés de la même manière, par comparaison des images de mesure et de référence.
Suivant une caractéristique avantageuse, lorsqu’un changement relatif à un objet est détecté dans l’image de mesure, la phase de détection peut comprendre en outre une étape de détermination d’une distance relative audit objet, par analyse de ladite image de mesure.
Par conséquent, lorsqu’un objet est identifié dans une zone de l’image de mesure (par détection de différences de distances ou d’autres critères), la distance relative de l’objet est déterminée comme étant, par exemple, la distance du point le plus proche appartenant audit objet dans l’image de mesure. Alternativement, la distance relative de l’objet peut correspondre à la distance moyenne des points appartenant audit objet dans l’image de mesure.
Suivant une autre caractéristique particulièrement avantageuse, le procédé selon l’invention peut comprendre une étape de déclenchement d’une commande dudit robot, en cas de détection d’un changement relatif à un objet dans l’image de mesure.
Un tél déclenchement peut être, en outre, fonction d’une caractéristique de l’objet : la distance relative de l’objet, la nature de l’objet, la taille de l’objet, etc.
Des exemples de commandes peuvent comprendre :
- un arrêt d’urgence, en particulier si un objet approchant est identifié comme un opérateur ;
- un changement de vitesse ou un ralentissement ;
- une modification de trajectoire, avec par exemple une génération d’une trajectoire de contournement ;
- un déclanchement d’une tâche spécifique, ou un paramétrage d’une tâche, par exemple en cas de détection d’un chariot avec des objets à manipuler.
Il est également possible de définir des zones dans l’image de référence qui feront l’objet d’un traitement particulier en cas par exemple de détection d’un objet dans ces zones :
- zone proche / lointaine ;
- zone où un opérateur provoque un ralentissement / zone d’exclusion avec arrêt du robot ;
- zone liée à l’exécution d’une tâche (position attendue d’un convoyeur, …).
Par exemple, une commande du robot peut être déclenchée uniquement lorsque la distance relative de l’objet est inférieure ou égale à un seuil de distance prédéterminé.
De plus, la nature de la commande peut être fonction de la distance relative de l’objet. Par exemple, lorsque la distance relative de l’objet est :
- inférieure ou égale à un premier seuil, une première commande du robot peut être déclenchée, tel que par exemple un ralentissement du robot ;
- inférieure ou égale à un deuxième seuil, une deuxième commande du robot peut être déclenchée, tel que par exemple une modification de sa trajectoire de déplacement ; et
- inférieure ou égale à un troisième seuil, une troisième commande du robot peut être déclenchée, tel que par exemple un arrêt d’urgence du robot.
De manière générale, dans la présente demande, chaque image de profondeur est acquise sous la forme d’un nuage de points. Autrement dit, lorsqu’une caméra 3D prend une image, elle fournit un nuage de points représentant l’image de profondeur. Chaque point du nuage de point, est représenté par les coordonnées dudit point, ou par une donnée de distance et un angle solide, dans un référentiel associé à la caméra 3D au moment de l’acquisition de l’image.
Suivant des modes de mise en œuvre de l’invention, les différentes opérations appliquées aux images de profondeur peuvent être effectuées directement sur les nuages de points constituant lesdites images de profondeur. Par exemple, l’image de référence peut être réalisée en fusionnant entre elles des images de nuages de points. De même, une comparaison ou un recalage d’une première image de profondeur par rapport à une deuxième image de profondeur peut être réalisé par une comparaison ou un recalage du nuage de points représentant la première image de profondeur avec le nuage de points représentant la deuxième image de profondeur. Ce mode de mise en œuvre nécessite toutefois des ressources et un temps de calcul non négligeables, qui augmentent avec le nombre de points dans chaque nuage de points.
Suivant d’autres modes de mise en œuvre de l’invention, le nuage de points représentant une image de profondeur peut être préalablement traité ou segmenté pour en déduire un ensemble de formes géométriques simples, telles que des plans, de sorte à réduire la quantité d’information à traiter. Ce traitement préalable peut être réalisé par des techniques connues, par exemple en utilisant des algorithmes de type RANSAC. Ce traitement préalable fournit alors une image représentée ou modélisée par un ensemble de données indiquant la nature des formes géométriques ainsi détectées, leurs dimensions, leur position et leur orientation. Les fonctions appliquées à une image de profondeur, telles que le recalage et éventuellement la comparaison ou la détection d’un changement, peuvent alors être appliquées, non pas au nuage de points initial représentant l’image de profondeur, mais à l’ensemble des données fournies par le traitement préalable. Ce traitement préalable peut être appliqué à tout moment lors de la réalisation du procédé selon l’invention, tel que par exemple :
- directement à chaque image de profondeur acquise par une caméra 3D : dans ce cas aucune étape du procédé n’est appliquée au nuage de points ;
- à chaque image de profondeur composite obtenue, à un instant d’acquisition, pour l’ensemble des caméras 3D : dans ce cas, l’image de profondeur composite est obtenue par traitement des nuages de points représentant les images de profondeur individuelles ;
- à l’image de référence ou aux images utilisées pour construire l’image de référence ;
- à l’image de mesure.
Ainsi, suivant des modes de mise en œuvre, le recalage des images de profondeur de référence et de mesure peut être réalisé par analyse d’images en nuages de points.
Il peut notamment être réalisé par recherche de similitude, ou de corrélation, ou de minimisation de distances entre nuages de points, ou plus généralement par toutes les techniques actuellement connues.
Dans ce cas, l’étape de comparaison pour la détection d’un changement peut être réalisée également sur les nuages de points.
Suivant d’autres modes de mise en œuvre, le recalage des images de profondeur de référence et de mesure peut être réalisé par analyse d’images préalablement modélisées sous la forme de formes géométriques.
Ces formes géométriques peuvent comprendre notamment des plans.
Le recalage des images peut notamment être réalisé par recherche de similitude, ou de corrélation, ou de minimisation de distances entre formes géométriques, ou plus généralement par toutes les techniques actuellement connues.
Dans ce cas, l’étape de comparaison pour la détection d’un changement peut être réalisée :
- entre l’image de référence et une image de mesure préalablement modélisées sous la forme de formes géométriques ; ou
- entre l’image de référence préalablement modélisée sous la forme de formes géométriques, et une image de mesure sous la forme d’un nuage de point.
Le recalage des images de profondeur de référence et de mesure peut également être réalisé avec un procédé de recalage de deux images de profondeur d’une scène réelle comprenant les étapes suivantes :
- pour chacune desdites images de profondeur :
- détection d’une pluralité de plusieurs formes géométriques dans ladite image de profondeur, et
- détermination d’au moins une relation géométrique entre au moins deux formes géométriques de ladite pluralité de formes géométriques ;
- identification de formes géométriques communes auxdites deux images par comparaison des relations géométriques détectées pour l’une des images à celles détectées pour l’autre desdites images ;
- calcul, en fonction desdites formes géométriques communes, d’une transformation géométrique entre lesdites images ; et
- recalage de l’une desdites images, par rapport à l’autre desdites images, en fonction de ladite transformation géométrique.
La transformation géométrique peut être notamment une transformation linéaire ou rigide. Elle peut notamment être déterminée sous la forme d’une matrice de déplacement, représentative par exemple d’une translation et/ou d’une rotation.
Ainsi, le procédé de recalage selon l’invention propose de recaler entre elles, ou localiser entre elles, deux images de profondeur d’une même scène réelle, en utilisant non pas les objets se trouvant dans la scène, mais des relations géométriques entre des formes géométriques identifiées dans chaque image de profondeur.
L’identification, dans chaque image, des formes géométriques et des relations géométriques entre ces formes, nécessite moins de ressources de calcul et moins de temps de calcul, que l’identification des objets réels de la scène dans chaque image.
De plus, la comparaison entre elles des relations géométriques est plus simple et plus rapide, que de comparer les objets réels de la scène entre eux. En effet, les formes géométriques et leurs relations sont représentées par une quantité de données à traiter beaucoup plus faible que la quantité de données représentant les objets réels de la scène.
Les formes géométriques peuvent être des éléments géométriques pouvant être décrits ou modélisés par des équations ou des systèmes d’équations, tels que par exemple : des plans, des lignes, des cylindres, des cubes, …
Suivant des modes de mise en œuvre, le procédé de recalage de l’invention peut comprendre une détection de formes géométriques toutes de même nature (par exemple uniquement des plans).
Suivant d’autres modes de mise en œuvre, le procédé de recalage de l’invention peut comprendre une détection de formes géométriques de nature différente parmi un ensemble fini (par exemple des plans et des cubes).
Avantageusement, les relations géométriques utilisées peuvent être invariantes par la transformation géométrique recherchée.
Ainsi, par exemple, des angles et des distances sont invariantes par les transformations géométriques de type rotation et translation.
Pour chaque image, l’étape de détection peut comprendre une détection d’au moins un groupe de formes géométriques présentant toutes une orientation similaire, ou une même orientation relativement à une direction de référence prédéterminée dans la scène.
Des formes géométriques peuvent être considérée comme présentant une orientation similaire, ou une même orientation relativement à une direction de référence, lorsqu’elles sont toutes orientées selon un angle particulier relativement à cette direction de référence, dans une gamme de tolérances angulaires prédéterminé, par exemple de +/-5 degrés, ou +/- 10 degrés. Cet angle particulier peut être par exemple 0 degré (orientation parallèle), ou 90 degrés (orientation perpendiculaire). Il est bien entendu que les formes géométriques d’un groupe peuvent par ailleurs présenter une orientation non parallèle entres elles.
La détection d’un groupe de formes géométriques peut comprendre une identification, ou une classification dans ce groupe, de formes géométriques dans un ensemble de formes géométriques préalablement détectées dans l’image de profondeur, ou une détection de ces formes géométriques particulières dans l’image de profondeur.
Dans le cas où une forme est une ligne, l’orientation de la forme peut correspondre à l’orientation de ladite ligne par rapport à la direction de référence. Dans le cas où une forme est un plan à deux dimensions, l’orientation de la forme peut correspondre à l’orientation dudit plan, ou de son vecteur normal, par rapport à la direction de référence. Enfin, lorsque une forme est une forme tridimensionnelle (telle qu’un cylindre ou un cube), son orientation peut être donnée par sa direction principale, ou d’extension, ou un axe de symétrie.
Les formes géométriques et leur orientation peuvent être déterminées par les techniques connues.
De manière générale, le nuage de points est segmenté ou regroupé sous formes de zones ou d’ensembles correspondant à, ou pouvant être modélisées ou approximées par, une ou des formes géométriques de nature prédéterminée. Puis les paramètres descriptifs de ces formes géométriques sont calculés par des méthodes de minimisation d’erreurs tels que les moindres carrées, en optimisant par exemple des paramètres d’une équation géométrique pour minimiser des écarts par rapport au nuage de points. L’orientation des formes géométriques peut alors se déduire par exemple des paramètres des équations qui les décrivent.
Préférentiellement, pour chaque image, l’étape de détection peut comprendre une détection :
- d’un premier groupe de formes géométriques, présentant toutes une première orientation relativement à la direction de référence, en particulier une orientation parallèle à la direction de référence ; et
- d’au moins un deuxième groupe de formes géométriques présentant toutes une même deuxième orientation relativement à la direction de référence, différente de la première orientation, en particulier orthogonale à ladite première orientation.
Ainsi, le procédé selon l’invention permet d’obtenir deux groupes de formes d’orientation différentes relativement à la direction de référence, et en particulier perpendiculaires. Les relations géométriques sont déterminées entre les formes appartenant à un même groupe.
La relation géométrique recherchée entre les formes d’un groupe peut être identique, ou différente de la relation géométrique recherchée entre les formes d’un autre groupe. Par exemple, pour l’un des groupes, la relation géométrique recherchée entre les formes peut être une relation de distance, et pour l’autre des groupes la relation géométrique recherchée entre les formes peut être une relation angulaire.
Dans un mode de réalisation particulièrement préféré, la direction de référence peut être la direction du vecteur gravité dans la scène.
La direction du vecteur gravité peut correspondre à l’orientation de la force gravitationnelle.
Dans ce mode de réalisation, l’étape de détection peut comprendre une détection d’un groupe de formes géométriques présentant une orientation horizontale dans la scène, tel que par exemple de formes correspondant à des objets réels horizontaux dans la scène. De telles formes géométriques horizontales peuvent correspondre au sol, au plafond, à une table, etc.
Suivant une caractéristique avantageuse, mais nullement limitative, la relation géométrique entre deux formes géométriques horizontales peut comprendre, ou être, une distance entre lesdites deux formes, dans la direction du vecteur gravité.
Autrement dit, la distance recherchée entre deux formes horizontales est la distance séparant lesdites formes dans la direction verticale.
Toujours dans le mode de réalisation où la direction de référence est la direction du vecteur gravité dans la scène, l’étape de détection peut comprendre une détection d’un groupe de formes géométriques présentant une orientation verticale dans la scène.
De telles formes géométriques verticales peuvent correspondre à des objets verticaux dans la scène, tels que des murs, des portes, des fenêtres, des meubles, etc.
Suivant une caractéristique avantageuse mais nullement limitative, la relation géométrique entre deux formes géométriques verticales peut comprendre au moins un angle entre les deux formes géométriques.
En particulier, la relation géométrique entre deux formes verticales peut comprendre un angle entre lesdites formes dans le plan horizontal.
Suivant un mode de réalisation préféré, mais nullement limitatif, l’étape de détection peut réaliser une détection :
- d’un premier groupe de formes géométriques horizontales, et
- d’un deuxième groupe de formes géométriques verticales ;
par rapport au vecteur gravité.
Dans ce mode de réalisation, l’étape de détermination détermine :
- un ou des angles, mesurés dans le plan horizontal, entre les formes géométriques verticales ; et
- une ou des distances, mesurées dans la direction verticale, entre les formes géométriques horizontales.
La direction de référence peut être représentée par un vecteur de référence qui peut être tout vecteur préalablement déterminé et indiquant une direction et un sens dans la scène réelle.
La direction de référence peut, dans un cas particulier, être est la direction du vecteur gravité dans la scène, ou en d’autres termes le vecteur de référence peut être le vecteur gravité. Ce vecteur peut alors être utilisé, dans chaque image, pour déterminer si une forme de ladite image présente une orientation spécifique, par exemple une orientation verticale ou une orientation horizontale.
Suivant un mode de réalisation, le vecteur de référence, et en particulier le vecteur gravité, peut être détecté et renseigné par un capteur pour chaque image. Un tel capteur peut par exemple être un accéléromètre.
Suivant un autre mode de réalisation, le vecteur de référence, et en particulier le vecteur de gravité, peut être déterminé, dans chaque image, par analyse de ladite image.
Par exemple, dans le cas où le vecteur de référence est le vecteur de gravité, alors chaque image peut être analysée pour détecter un plan correspondant au sol ou au plafond, dans le cas d’une scène d’intérieur : le vecteur gravité correspond alors au vecteur perpendiculaire à ce plan. En général, le sol ou le plafond sont les plus grands plans dans une image de profondeur.
Suivant un autre exemple de réalisation, lorsque l’image de profondeur comprend une composante couleur, alors la composante couleur peut être utilisée pour détecter un plan prédéterminé, et utiliser ce plan pour obtenir le vecteur de référence, et en particulier le vecteur gravité.
Avantageusement, l’étape de détermination de relations géométriques peut comprendre, pour chaque forme géométrique, une détermination d’une relation géométrique entre ladite forme géométrique et chacune des autres formes géométriques, de sorte qu’une relation géométrique est déterminée pour chaque combinaison par paires des formes géométriques.
Lorsque l’étape de détection comprend une détection d’un ou plusieurs groupes de formes géométriques, l’étape de détermination de relations géométriques peut comprendre, pour chaque forme géométrique d’un groupe, une détermination d’une relation géométrique entre ladite forme géométrique et chacune des autres formes géométriques dudit groupe, de sorte qu’une relation géométrique est déterminée pour chaque combinaison par paires des formes géométriques dudit groupe.
Ainsi, pour un groupe comprenant « n » formes géométriques, on obtient de paires de formes géométriques, et donc autant de relations géométriques.
Au moins une forme géométrique peut être une ligne, un plan ou une forme géométrique tridimensionnelle.
En particulier, le cas échéant, toutes les formes géométriques d’un même groupe, et plus généralement de tous les groupes, peuvent être de même nature.
Dans une forme de réalisation particulièrement préférée, toutes les formes géométriques peuvent être des plans.
Dans ce cas, dans chaque image, l’étape de détection peut réaliser une approximation, par des plans, de surfaces de la scène réelle apparaissant dans ladite image. Ainsi, un objet comportant plusieurs faces est approximé par plusieurs plans, sans avoir à détecter l’objet dans son ensemble.
De plus les relations géométriques sont plus simples à déterminer entre des plans.
Dans chaque image, la détection des plans peut être réalisée de manière simple par des algorithmes connus, tels que par exemple l’algorithme RANSAC.
Suivant un exemple de réalisation, la détection de plans dans une image de profondeur peut être réalisée par les étapes suivantes :
- pour chaque point de l’image de profondeur, ou l’image en nuage de points, on calcule des normales (N) de chaque point du nuage à l’aide, par exemple, du gradient de profondeur. Celui-ci est obtenu, en pratique, pour chaque point, en soustrayant la profondeur du point inférieur à celle du point supérieur (gradient vertical) et la profondeur du point de gauche à celle du point de droite (gradient horizontal). La normale au point est alors donnée par le produit vectoriel du vecteur gradient vertical avec le vecteur gradient horizontal.
- au moins une itération d’une étape de calcul de plans dans le nuage de points en utilisant les normales des points dans le nuage de points. Cette étape comprend les opérations suivantes :
- tirer aléatoirement 3 points parmi le nuage de points,
- calculer les paramètres d’un plan passant par ces 3 points, puis
- calculer le nombre de points de P appartenant à ce plan selon des critères tels que des distances inférieures à un seuil ou des normales proches.
Un plan peut être considéré comme identifié si un nombre minimum de points a été identifié comme lui appartenant. Les points appartenant à un plan sont retirés de l’ensemble P pour ne pas être utilisés pour l’identification des plans suivants. L’étape de calcul de plans ci-dessus peut être réitérée autant de fois que souhaité.
Les paramètres descriptifs du plan peuvent ensuite être déterminés à partir des points identifiés comme appartenant à ce plan, en calculant par exemple les paramètres d’une équation de ce plan au sens des moindres carrés.
L’étape de détection de plans fournit ainsi une liste des plans identifiés avec leurs paramètres descriptifs et l’ensemble des points leur appartenant.
L’ensemble des plans peut être traité au sein d’un unique groupe.
Alternativement, parmi tous les plans détectés, les plans verticaux peuvent être regroupés dans un premier groupe et les plans horizontaux peuvent être regroupés au sein d’un deuxième groupe. Les relations géométriques peuvent alors être déterminées entre les plans d’un même groupe, comme décrit plus haut.
Suivant un mode de réalisation, le calcul de la transformation géométrique peut comprendre un calcul d’une matrice de transformation construite à partir :
- d’une différence, au moins dans une direction donnée, entre la position d’au moins une forme géométrique dans l’une desdites images et la position de ladite au moins une forme géométrique dans l’autre desdites images ; et
- d’une différence d’orientation entre au moins un repère orthonormé associé à au moins une forme géométrique dans l’une desdites images et ledit au moins un repère orthonormé associé à ladite au moins une forme géométrique dans l’autre desdites images.
Suivant un mode de réalisation dans lequel toutes les formes géométriques sont des plans, en particulier un groupe de plan horizontaux et un groupe de plans verticaux, le calcul de la transformation géométrique peut comprendre un calcul d’une matrice de transformation peut être construite à partir:
- d’une distance, dans la direction verticale, entre la position d’un plan horizontal dans l’une desdites images et la position dudit plan dans l’autre desdites images ;
- de deux distances, dans des directions horizontales, entre les positions respectives de deux plans verticaux non parallèles ou orthogonaux entre eux dans l’une desdites images et les positions respectives desdits plans dans l’autre desdites images ; et
- d’une différence d’orientation entre un repère orthonormé associé à un plan vertical dans l’une desdites images, et un repère orthonormé associé audit plan vertical dans l’autre desdites images.
Les distances dans les directions horizontales peuvent également être déterminées à partir des positions respectives, dans les deux images, des droites d’intersection de deux plans verticaux non parallèles ou orthogonaux entre eux.
La matrice de transformation ainsi obtenue est complète et permet de recaler complètement deux images de profondeur entre elles.
Suivant un autre aspect de l’invention, il est proposé un dispositif de surveillance de l’environnement d’un robot comprenant :
- au moins une caméra 3D, et
- au moins un moyen de calcul ;
configurés pour mettre en œuvre toutes les étapes du procédé de surveillance de l’environnement d’un robot selon l’invention.
Le moyen de calcul peut être un calculateur, un processeur, un microcontrôleur, une puce électronique, ou tout composant électronique.
Suivant encore un autre aspect de la présente invention, il est proposé un robot équipé d’un dispositif de surveillance selon l’invention.
Le robot selon l’invention peut être un robot, sous toutes ses formes, tel qu’un système robotisé, un robot mobile, un véhicule sur roues ou chenilles tel qu’un chariot muni d’un bras ou d’un système manipulateur, ou un robot de type humanoïde, gynoïde ou androïde, éventuellement pourvu d’organes de déplacement tels que des membres, un bras robotisé, etc. En particulier, un robot peut être mobile lorsqu’il est en mesure de se déplacer ou qu’il comprend des parties en mouvement.
En particulier, le robot selon l’invention peut comprendre :
- au moins un segment mobile, et
- plusieurs caméras 3D distribuées autour d’un des segments mobiles.
Description des figures et modes de réalisation
D’autres avantages et caractéristiques apparaîtront à l’examen de la description détaillée d’exemples nullement limitatifs, et des dessins annexés sur lesquels :
- les FIGURES 1a et 1b sont des représentations schématiques d’un exemple de réalisation non limitatif d’un robot selon l’invention ;
- la FIGURE 2 est une représentation schématique d’un exemple de réalisation non limitatif d’un procédé selon l’invention ;
- la FIGURE 3 est une représentation d’un exemple de réalisation d’un procédé de recalage d’images de profondeur pouvant être mise en œuvre dans la présente invention ; et
- la FIGURE 4 est un exemple d’application non limitatif et très simplifié du procédé de la FIGURE 3.
Il est bien entendu que les modes de réalisation qui seront décrits dans la suite ne sont nullement limitatifs. On pourra notamment imaginer des variantes de l’invention ne comprenant qu’une sélection de caractéristiques décrites par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieur. Cette sélection comprend au moins une caractéristique de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieur.
En particulier toutes les variantes et tous les modes de réalisation décrits sont combinables entre eux si rien ne s’oppose à cette combinaison sur le plan technique.
Sur les figures, les éléments communs à plusieurs figures conservent la même référence.
Les FIGURES 1a et 1b sont des représentations schématiques d’un exemple de réalisation non limitatif d’un robot selon l’invention.
La FIGURE 1a est une représentation schématique du robot vue de profil, et la FIGURE 1b est une représentation, vue de face, du segment distal du robot.
Le robot 100 de la FIGURE 1 est un bras robotisé comprenant plusieurs segments 102-108 : le segment 102 étant le segment de base du robot 100, et le segment 108 étant le segment distal du robot. Les segments 104, 106 et 108 sont mobiles en rotation grâce à des articulations 110-114, et des moteurs (non représentés) au niveau de ces articulations 110-114.
Le segment distal 108 peut être équipé d’un outil, tel qu’une pince 116 par exemple comme représenté sur la FIGURE 1a.
Le segment de base peut être fixe sur un sol 118. Alternativement, le segment de base peut être muni de moyens permettant au robot de se déplacer, telle que par exemple au moins une roue ou une chenille.
Selon l’invention, le robot embarque au moins une caméra 3D.
Dans l’exemple des FIGURES 1a et 1b, le robot 100 est équipé de plusieurs, et exactement huit, caméras 3D 120.
Chaque caméra 3D 120 peut être une caméra temps de vol par exemple.
Les caméras 3D 120 sont disposées autour d’un segment du robot, et en particulier autour du segment distal 108.
Les caméras 120 sont plus particulièrement distribuées suivant un pas angulaire constant.
Chaque caméra 3D 120 permet de réaliser une image en profondeur d’une partie de la scène réelle constituée par l’environnement du robot 100, suivant un champ de vue 122, radial par rapport au segment distal 108. Le champ de vue 122 d’une caméra 3D 120 est différent du champ de vue 122 d’une autre caméra 3D.
Suivant un exemple de réalisation, les champs de vue 122 de deux caméra 3D adjacentes comportent une zone de recouvrement au-delà d’une certaine distance. Bien entendu, les champs de vue 122 de deux caméras 3D adjacentes peuvent ne pas comporter de zone de recouvrement.
Comme montré sur la FIGURE 1b, l’ensemble des champs de vue 122 des caméras 3D 120 couvrent une vue circulaire complète autour du segment distal 108. Il est clair qu’une vue seulement partielle de l’environnement est détectée pour une position du bras robotisé 100. Par contre, lorsque le bras robotisé se déplace d’autres parties de la scène vont être vues et détectées par les caméras 3D.
Bien entendu, dans d’autres exemples de mise en œuvre, le robot 100 peut comprendre des caméras 3D disposées différemment sur un segment, et/ou disposées sur différents segments. Dans d’autres exemples de configuration, les caméras 3D peuvent être disposées de façon à ce que leur champ de vue total combiné permette de saisir la scène réelle autour du robot dans son ensemble, au moins pour une position du robot 100.
Le bras robotisé 100 est en outre muni d’une unité de traitement 124, qui peut être un ordinateur, un calculateur, un processeur ou similaire. L’unité de traitement 124 est reliée à chacune des caméras 120, de manière filaire ou sans fil. Elle reçoit de chaque caméra 3D, chaque image de profondeur acquise par ladite caméra 3D pour traiter ladite image. L’unité de traitement 124 comprend des instructions informatiques pour mettre en œuvre le procédé selon l’invention.
Dans l’exemple représenté, l’unité de traitement 124 est représentée comme un module individuel distinct. Bien entendu, l’unité de traitement 124 peut être combinée, ou intégrée dans, un autre module ou dans un calculateur du bras robotisé 100.
La FIGURE 2 est une représentation schématique d’un exemple de réalisation non limitatif d’un procédé de surveillance de l’environnement d’un robot, selon l’invention.
Le procédé 200, représenté sur la FIGURE 2, peut en particulier être mis en œuvre par le robot 100 des FIGURES 1a et 1b.
Le procédé 200 comprend une phase 202 d’obtention d’une image de profondeur de l’environnement du robot, sans la présence d’opérateurs ou d’objets non prévus. Cette image de l’environnement du robot sera utilisée comme image de référence pour détecter tout changement relatif à un objet dans l’environnement du robot.
La phase 202 comprend une étape 204 d’obtention d’une image de profondeur, à un instant d’acquisition, pour une configuration donnée du bras robotisé. Lorsque le robot est équipé d’une unique caméra 3D, l’image de profondeur correspond à l’image fournie par ladite unique caméra 3D.
Lorsque le robot est équipé de plusieurs caméras 3D, comme par exemple le robot 100 des FIGURES 1a et 1b, alors une image de profondeur composite est construite à partir des images de profondeur individuelles prises par lesdites caméras 3D, audit instant d’acquisition. Dans ce cas, l’étape 204 comprend les étapes suivantes :
- lors d’une étape 206 réalisée audit instant d’acquisition, chaque caméra 3D prend une image de profondeur individuelle ; et
- lors d’une étape 208, les images de profondeur individuelles sont combinées, pour obtenir une image de profondeur composite pour l’ensemble des caméras 3D.
La combinaison des images de profondeur individuelles pour obtenir une seule image de profondeur composite, à un instant d’acquisition, peut être réalisée suivant différentes techniques.
Suivant une première technique, lorsque les images de profondeur individuelles comprennent des zones de recouvrement, c’est-à-dire lorsque les champs de vue des caméras 3D comportent des zones recouvrement, alors la combinaison des images de profondeur individuelles peut être réalisée en détectant ces zones de recouvrement, et en utilisant ces zones de recouvrement pour concaténer les images de profondeur individuelles en vue d’obtenir une image de profondeur composite.
Suivant une deuxième technique, qui peut être utilisée seule ou en combinaison avec la première technique, la combinaison des images de profondeur individuelles peut être réalisée en utilisant les configurations relatives des caméras 3D. En effet, la position et l’orientation de chaque caméra 3D est connue, dans la mesure bien entendu où elle est positionnée de manière connue sur le robot. Par conséquent, en utilisant les positions relatives et les orientations relatives des caméras 3D entre elles, il est possible de positionner entre-elles les images de profondeur individuelles prises par ces caméras 3D. Concrètement, pour chaque image de profondeur individuelle prise par une caméra 3D, la position de la caméra 3D correspond au centre ou au point d’origine de ladite image de profondeur individuelle, et l’orientation de chaque caméra 3D correspond à la direction selon laquelle l’image de profondeur individuelle a été prise. En utilisant ces deux informations, les images de profondeur individuelles peuvent être positionnées les unes par rapport aux autres, pour obtenir une seule image de profondeur composite pour l’ensemble des caméras 3D, à un instant d’acquisition.
L’étape 204 peut être réitérée autant de fois que souhaité, de manière séquentielle, à différents instants d’acquisition, chaque instant d’acquisition correspondant à une configuration différente du robot. Ainsi, pour chaque configuration du robot, une image de profondeur composite est obtenue.
En particulier, l’étape 204 peut être réitérée de manière séquentielle pendant que le robot est mis en mouvement, continu ou non, suivant une trajectoire prédéterminée en vue d’imager l’environnement du robot dans une large mesure, et en particulier dans sa totalité. Chaque itération de l’étape 204 permet d’obtenir une image de profondeur composite.
Lors d’une étape 210, l’image de référence est construite à partir des différentes images de profondeur composites obtenues séquentiellement pour différentes configurations du robot. La construction d’une image de référence à partir de plusieurs images de profondeur composites acquises séquentiellement à différents instants d’acquisition peut être réalisée suivant différentes techniques.
Suivant une première technique, les images de profondeur composites séquentielles peuvent être acquises en s’assurant qu’elles comprennent des zones de recouvrement. Dans ce cas, la construction de l’image de référence peut être réalisée en détectant les zones de recouvrement entre les images de profondeur composites et en utilisant ces zones de recouvrement pour concaténer les images de profondeur composites séquentielles entre elles.
Suivant une deuxième technique, qui peut être utilisée seule ou en combinaison avec la première technique, la construction de l’image de référence à partir des images de profondeur composites séquentielles peut être réalisée en utilisant la configuration géométrique du robot, pour chaque image de profondeur. Dans le cas d’un bras robotisé, la configuration géométrique du robot est donnée par :
- les dimensions des différents segments mobiles du robot : ces dimensions sont connues ; et
- les orientations relatives des segments mobiles : ces orientations peuvent être connues à partir des articulations, ou des moteurs placés dans les articulations.
Ainsi, en connaissant la configuration géométrique du robot à un instant d’acquisition, il est possible de positionner, dans un repère lié à l’environnement, l’image de profondeur obtenue pour cet instant d’acquisition.
L’image de référence ainsi obtenue est mémorisée lors d’une étape 212. Cette image de référence est ainsi constituée de l’ensemble des images de profondeur acquises et fusionnées de sorte à constituer une image représentant tout ou partie de l’environnement du robot.
Dans l’exemple décrit, l’étape 208 de construction d’une image de profondeur composite, à partir de plusieurs images de profondeur individuelles, est réalisée tout de suite après l’acquisition desdites images de profondeur individuelles. Alternativement, cette étape 208 peut être réalisée juste avant l’étape 210 de construction de l’image de référence. Suivant encore une autre alternative, les étapes 208 et 210 peuvent être réalisées en même temps, au sein d’une seule et unique étape, prenant en compte toutes les images de profondeur individuelles acquises pour chacun des instants d’acquisition séquentiels.
Le procédé 200 comprend en outre au moins une itération d’une phase 220 de détection réalisée lorsque le robot est en cours de fonctionnement. Cette phase de détection 220 est réalisée pour détecter, à un instant de mesure, un changement relatif à un objet se trouvant dans l’environnement du robot.
La phase de détection 220 comprend une étape 222 d’acquisition d’une image de profondeur, dite image de mesure, à l’instant de mesure. Cette image de mesure sera ensuite comparée à l’image de référence, mémorisée à l’étape 212, pour détecter un changement relatif à un objet se trouvant dans l’environnement du robot.
L’image de mesure, acquise à un instant de mesure, peut être une image de profondeur individuelle acquise par une caméra 3D. Dans ce cas, la phase de détection peut être réalisée individuellement pour chaque image de profondeur individuelle acquise par chaque caméra 3D, audit instant de mesure.
Alternativement, l’image de mesure acquise à un instant de mesure peut être une image de mesure composite construite à partir des images de profondeur individuelles acquises par toutes les caméras 3D, audit instant de mesure. Dans ce cas, l’étape 222 comprend une étape 224 d’acquisition d’une image de profondeur individuelle par chaque caméra 3D. Puis, lors d’une étape 226, l’image de mesure composite est construite à partir des images de profondeur individuelles acquise par toutes les caméras 3D, par exemple en utilisant l’une des techniques décrites plus haut en référence à l’étape 208.
Lors d’une étape 228, l’image de mesure, ou l’image de mesure composite, est recalée avec l’image de référence. Cette opération de recalage a pour but de localiser ou positionner l’image de mesure dans le repère ou le référentiel de l’image de référence.
Le recalage des images de référence et de mesure peut être réalisé par des techniques connues, telles que des techniques de recalage par recherche de similitude, ou par corrélation, ou par minimisation de distances.
Le recalage des images de référence et de mesure peut aussi être réalisé par un procédé de recalage de vue dont un exemple de réalisation non limitatif est décrit plus loin en référence aux FIGURES 3 et 4.
Une fois que l’image de mesure (composite) est recalée avec l’image de référence, les images recalées sont comparées entre elles, lors d’une étape 230, pour détecter un changement relatif à un objet dans l’image de mesure composite.
Dans le mode de mise en œuvre présenté, la comparaison des images est réalisée à partir des mesures de distance. Elle peut comprendre par exemple une détection de zones de l’image de mesure avec des distances ou des positions différentes à celles dans les zones correspondantes dans l’image de référence. Cette différence peut être due par exemple à l’apparition, à la disparition ou au déplacement d’un objet ou d’un opérateur.
Comme expliqué précédemment, cette comparaison peut être réalisée entre images sous la forme de nuage de points.
Lorsque l’image de référence est modélisée par des éléments géométriques, cette comparaison peut être réalisée, soit avec une image de mesure sous la forme de nuage de points, soit avec une image de mesure également modélisée par des éléments géométriques.
Le choix de la méthode de comparaison peut dépendre des objets ou des éléments recherchés.
Par exemple, dans une situation où l’environnement du robot est constitué par une pièce avec des murs et des éléments de mobilier (convoyeur, baie ou armoire, …) et où on cherche à détecter des objets de forme non déterminée (opérateur, …), il peut être avantageux :
- de modéliser l’image de référence avec des éléments géométriques, et en particulier des plans ;
- de modéliser l’image de mesure avec des éléments géométriques, et en particulier des plans, pour l’opération de recalage ; et
- d’utiliser l’image de mesure sous la forme de nuage de points pour détecter les changements relatifs aux objets.
Ainsi, le recalage peut être effectué d’une manière précise et peu consommatrice de puissance de calcul, et l’opération de comparaison permet d’extraire les points de mesure correspondant aux objets différents, sans hypothèses sur leur forme. On peut ainsi analyser ces objets, par exemple en vue de les identifier.
Lorsqu’aucune différence significative n’est constatée entre l’image de référence et l’image de mesure composite alors il est mis fin à cette itération de la phase de détection 220. Une nouvelle itération de la phase de détection 220 peut être réalisée, à tout moment.
Lorsqu’une différence significative relative à un objet est détectée entre l’image de référence et l’image de mesure composite, cette différence est analysée pour décider si une action est nécessaire. Dans ce cas, une commande du robot est déclenchée lors d’une étape 234.
Par exemple, en cas d’apparition d’un objet, la phase de détection peut en outre comprendre une étape 232 de calcul d’une distance relative dudit objet. Cette distance relative dudit objet est donnée dans l’image de mesure (composite) puisque cette dernière comprend une information de distance pour chaque pixel de ladite image.
Lorsque la distance déterminée à l’étape 232 est inférieure à un seuil prédéterminé alors une commande du robot est déclenchée lors de l’étape 234. Des exemples de commandes peuvent comprendre :
- un arrêt d’urgence, en particulier si un objet approchant est identifié comme un opérateur ;
- un changement de vitesse ou un ralentissement ;
- une modification de trajectoire, avec par exemple une génération d’une trajectoire de contournement ;
- un déclanchement d’une tâche spécifique, ou le paramétrage d’une tâche, par exemple en cas de détection d’un chariot avec des objets à manipuler.
Il est également possible de définir des zones dans la scène de référence qui feront l’objet d’un traitement particulier en cas par exemple de détection d’un élément dans ces zones. Il est par exemple de définir :
- une zone proche, et/ou une zone lointaine ;
- une zone de sécurité où un opérateur provoque un ralentissement, ou une zone d’exclusion avec arrêt du robot ;
- une zone liée à l’exécution d’une tâche (position attendue d’un convoyeur, …).
Nous allons maintenant décrire, en référence aux FIGURES 3 et 4, un exemple de réalisation d’un procédé de recalage d’images de profondeur pouvant être mise en œuvre dans la présente invention, et en particulier lors de l’étape 228.
La FIGURE 3 est une représentation schématique d’un exemple de réalisation non limitatif d’un procédé de recalage d’images de profondeur selon l’invention, en utilisant comme formes géométriques des plans.
Le procédé 300, représenté sur la FIGURE 3 permet de recaler entre elles, ou localiser entre elles, une première image de profondeur d’une scène (telle qu’une image de référence) et une deuxième image de profondeur de la même scène (telle qu’une image de mesure), dans un référentiel commun qui peut être celui d’une des deux images ou un référentiel lié à ladite scène.
Le procédé 300 comprend une phase 3021de traitement de la première image de profondeur.
La phase de traitement 3021comprend une étape 3041de détection de plans dans la première image. Cette étape 3041peut être réalisée par des techniques connues, telles que par exemple une technique utilisant l’algorithme RANSAC. Suivant un exemple de réalisation nullement limitatif, l’étape de détection de plans 3041peut être réalisée de la manière suivante, en considérant que la première image de profondeur est représentée par un nuage de points noté P1. Une première étape calcule les normales (N) de chaque point du nuage de points P à l’aide, par exemple, du gradient de profondeur : celui-ci est obtenu, en pratique, pour chaque point, en soustrayant la profondeur du point inférieur à celle du point supérieur (gradient vertical) et la profondeur du point de gauche à celle du point de droite (gradient horizontal). La normale au point est alors donnée par le produit vectoriel des deux vecteurs gradients. Puis une deuxième étape utilise les normales des points pour le calcul des plans dans le nuage de points. Cette étape consiste à :
- tirer aléatoirement 3 points parmi le nuage de points P1,
- calculer les paramètres d’un plan passant par ces 3 points puis,
- calculer le nombre de points de P1 appartenant à ce plan selon des critères tels que des distances inférieures à un seuil ou des normales proches.
L’étape de détection de plan 3041peut être réitérée un nombre de fois prédéterminé. Un plan peut être considéré comme identifié si un nombre minimum de points a été identifié comme lui appartenant. Les points appartenant à un plan sont retirés de l’ensemble P1 de points, pour ne pas être utilisés pour l’identification des plans suivants.
L’étape 3041de détection de plans fournit une liste des plans identifiés avec leurs paramètres descriptifs et l’ensemble des points de P leur appartenant.
Il est à noter que ce procédé décrit pour l’étape de détection des plans est également applicable pour la modélisation d’images de profondeur sous la forme d’éléments géométriques telle que décrite précédemment.
Ensuite, une étape 3061, optionnelle, permet de détecter le vecteur de gravité dans la première image. Ce vecteur de gravité correspond au vecteur ayant la même direction que la force gravitationnelle, exprimée dans le repère de la caméra 3D qui a pris l’image. Pour obtenir ce vecteur, un plan grossièrement horizontal le plus étendu est recherché. Ce plan est considéré comme étant parfaitement orthogonal à la force gravitationnelle. La normale à ce plan donne le vecteur de gravité. Alternativement, le vecteur de gravité peut être renseigné par un capteur, tel qu’un accéléromètre ou un inclinomètre, détectant ledit vecteur de gravité au moment de la prise de la première image de profondeur.
Ensuite, une étape 3081permet de sélectionner, parmi tous les plans identifiés à l’étape 3041, un premier groupe de plans horizontaux. Chaque plan présentant une normale parallèle (ou sensiblement parallèle avec une tolérance angulaire, par exemple de +/-10 degrés) au vecteur de gravité est considéré comme étant horizontal. L’étape 3081fournit donc un premier groupe de plans horizontaux.
Lors d’une étape 3101, pour chaque plan horizontal du premier groupe, une relation géométrique est détectée entre ce plan horizontal et chacun des autres plans horizontaux faisant partie du premier groupe. En particulier, dans le mode de mise en œuvre présenté, la relation géométrique entre deux plans horizontaux utilisée est la distance entre ces plans dans la direction du vecteur de gravité, c’est-à-dire dans la direction verticale. Les relations géométriques identifiées à l’étape 3101sont mémorisées.
Une étape 3121permet de sélectionner, parmi tous les plans identifiés à l’étape 3041, un deuxième groupe de plans verticaux. Chaque plan présentant une normale perpendiculaire (ou sensiblement perpendiculaire avec une tolérance angulaire, par exemple de +/-10 degrés) au vecteur de gravité est considéré comme étant vertical. L’étape 3121fournit donc un deuxième groupe de plans verticaux.
Lors d’une étape 3141, pour chaque plan vertical du deuxième groupe, une relation géométrique est détectée entre ce plan vertical et chacun des autres plans verticaux faisant partie du deuxième groupe. En particulier, dans le mode de mise en œuvre présenté, la relation géométrique entre deux plans verticaux utilisée est l’angle relatif entre ces plans. Les relations géométriques identifiées à l’étape 3141sont mémorisées.
Une phase de traitement 3022est appliquée à la deuxième image de profondeur, en même temps que la phase de traitement 3021ou après la phase de traitement 3021. Cette phase de traitement 3022est identique à la phase de traitement 3021, et comprend des étapes 3042-3142identiques respectivement aux étapes 3041-3141.
Lors d’une étape 316, chaque relation géométrique entre les plans horizontaux, identifiée pour la première image à l’étape 3101, est comparée à chaque relation géométrique entre les plans horizontaux, identifiée pour la deuxième image à l’étape 3102. Lorsque deux relations géométriques correspondent, alors cela indique que ces relations géométriques concernent les mêmes plans horizontaux sur les deux images. Ainsi, les plans horizontaux communs aux deux images sont identifiés.
Lors d’une étape 318, chaque relation géométrique entre les plans verticaux, identifiée pour la première image à l’étape 3141, est comparée à chaque relation géométrique entre les plans verticaux, identifiée pour la deuxième image à l’étape 3142. Lorsque deux relations géométriques correspondent, alors cela indique que ces relations géométriques concernent les mêmes plans verticaux sur les deux images. Ainsi, les plans verticaux communs aux deux images sont identifiés.
A l’issu de ces étapes, on obtient une mise en correspondance des plans verticaux et horizontaux respectifs des deux images.
Le procédé selon l’invention peut en outre comprendre des étapes supplémentaires de validation de la mise en correspondance des plans des deux images. Il est ainsi notamment possible de vérifier :
- si les vecteurs normaux et les distances à l’origine des plans sont similaires ;
- si les étendues des plans, représentées par leurs enveloppes convexes, se superposent ;
- si les points formant l’enveloppe convexe d’un plan identifié sur la première image sont proches de la surface du plan identifié sur la deuxième image ;
- si leurs distributions de couleurs ou leur apparence, par exemple obtenues à partir des histogrammes de couleur respectifs des deux plans, sont similaires.
Ces étapes supplémentaires de validation peuvent être réalisées, par exemple, par le calcul des heuristiques de comparaison des plans deux à deux, en appliquant au besoin une transformation géométrique (par exemple comme décrite ci-dessous) pour exprimer les plans de la seconde image dans le repère de la première image et ainsi les rendre comparables.
Lors d’une étape 320, une transformation géométrique, sous la forme d’une matrice homogène de déplacement, est calculée en considérant la position et l’orientation des plans communs identifiés dans chacune des images. Cette matrice permet par exemple d’exprimer les plans de la seconde image dans le repère de la première image. Elle permet ainsi de déterminer le déplacement ou la différence de position, dans la scène, du capteur ou de la caméra 3D qui a permis d’acquérir chacune des images.
Dans le mode de mise en œuvre présenté, la rotation de l’une des images, par rapport à l’autre des images, est déterminée à l’aide de plans verticaux communs. En effet, le vecteur de gravité, associé à un vecteur normal de plan vertical, étant orthogonal à la gravité, donne une base orthonormée. Les deux bases orthonormées qui se correspondent dans deux vues donnent directement l’angle de rotation du capteur selon chacun des axes. Les angles de rotation selon les trois axes sont donc calculés pour chaque plan correspondant et moyennés. Ensuite, le vecteur de translation horizontal est calculé en mettant en correspondance les deux droites d’intersection entre deux plans verticaux orthogonaux. A ce stade, on peut également obtenir la translation verticale en définissant la matrice d’erreur quadrique associée aux deux plans pour obtenir le vecteur qui minimise cette matrice.
De plus, les plans horizontaux communs permettent de calculer la translation verticale. En calculant la différence de distance à l’origine de chaque plan dans les deux images, on peut retrouver un vecteur de translation orienté selon la normale des plans horizontaux.
La matrice de déplacement déterminée à l’étape 320 peut ensuite être appliquée à l’une des images pour la recaler sur l’autre des images, lors d’une étape 322.
Les deux images sont alors recalées l’une avec l’autre dans un même repère, ou en d’autres termes, positionnées l’une et l’autre dans un même repère.
Les images ainsi recalées peuvent ensuite être exploitées indépendamment l’une de l’autre.
Elles peuvent également être fusionnées entre elles ou dans une représentation 3D plus large, selon des techniques connues. Cette fusion peut notamment être réalisée entre nuages de points, ou entre formes géométriques identifiées.
La FIGURE 4 est une représentation schématique d’un exemple d’application, très simplifié, d’un procédé de recalage d’images de profondeur selon l’invention, et en particulier du procédé 300 de la FIGURE 3.
La FIGURE 4 représente deux images de profondeur 402 et 404 d’une même scène (par exemple une image de référence et une image de mesure) suivant deux champs de vue différents. Le repère (X,Y,Z) est un repère associé au champ de vue de l’image 402, ou au capteur associé. Il est donc différent d’un repère associé au champ de vue de l’image 404.
Chacune des images 402 et 404 est traitée pour détecter, dans chaque image, des plans verticaux et les plans horizontaux. Le résultat obtenu pour l’image 402 est donné par l’image à base de plan 406, et pour l’image 404 par l’image à base de plan 408. Ainsi, pour chaque image, des plans horizontaux et des plans verticaux sont identifiés. Le vecteur normal de chaque plan est également indiqué.
Dans la première image 402, les plans horizontaux détectés à l’étape 3081sont les suivants :
- un plan horizontal h1 dont :
- le vecteur normal h1 est le vecteur Nh1 = (0, 1, 0)
- le centre de gravité est le point Ch1 = (1, -1, 2)
- un plan horizontal h2 dont :
- le vecteur normal est le vecteur Nh2 = (0, -1, 0)
- le centre de gravité est le point Ch2 = (-2, 2, 1).
Les coordonnées peuvent être par exemple en mètres.
La relation de distance entre ces deux plans horizontaux, détectée à l’étape 3101est donnée par une projection des points Ch1 et Ch2 (ou des vecteurs correspondant depuis l’origine du repère) sur un des vecteurs normaux, par exemple Nh1. Elle est donnée par la relation suivante :
distance(Ch1, Ch2) = abs(Nh1.Ch1-Nh1.Ch2) = 3.
avec « abs » la valeur absolue et « . » le produit scalaire.
Toujours dans la première image 402 les plans verticaux détectés à l’étape 3121sont les suivants :
- un plan vertical v1 dont :
- le vecteur normal est le vecteur Nv1 = (1, 0, 0),
- le centre de gravité, défini comme la moyenne des positions de tous les points 3D appartenant au plan v1, est le point Cv1 = (-2, 1, 1)
- un plan vertical v2 dont :
- le vecteur normal est le vecteur Nv2 = (0, 0, -1)
- le centre de gravité est le point Cv2 = (1, 1, 3)
La relation angulaire entre ces deux plans verticaux, détectée à l’étape 3141, est donnée par la relation suivante : angle(Nv1, Nv2) = 90°.
Dans la deuxième image 404, les plans horizontaux détectés à l’étape 3082sont les suivants :
- un plan horizontal h’1 dont :
- le vecteur normal h1 est le vecteur Nh’1 = (-0.150, 0.985, 0.087)
- le centre de gravité est le point Ch’1 = (2.203, -0.311, 1.203)
- un plan horizontal h’2 dont :
- le vecteur normal est le vecteur Nh’2 = (0.150, -0.985, -0.087)
- le centre de gravité est le point Ch’2 = (-1.306, 2.122, 2.074).
La relation de distance entre ces deux plans horizontaux, détectée à l’étape 3102et calculée comme précédemment, est donnée par la relation suivante :
distance(Ch’1, Ch’2) = abs(Nh’1.Ch’1-Nh’1.Ch’2) = 3.
Toujours dans la deuxième image 404 les plans verticaux détectés à l’étape 3122sont les suivants :
- un plan vertical v’1 dont :
- le vecteur normal est le vecteur Nv’1 = (0.853, 0.174, -0.492),
- le centre de gravité est le point Cv’1 = (-1.156, 1.137, 1.988)
- un plan vertical v’2 dont :
- le vecteur normal est le vecteur Nv’2 = (-0.5, 0, -0.866)
- le centre de gravité est le point Cv’2 = (2.402, 1.658, 2.242).
La relation angulaire entre ces deux plans verticaux, détectée à l’étape 3142, est donnée par la relation suivante : angle(Nv’1, Nv’2) = 90°.
En comparant les relations angulaires angle(Nv1, Nv2) et angle(Nv’1, Nv’2), on détecte une égalité :
angle(Nv1, Nv2)=angle(Nv’1, Nv’2).
Cela permet de confirmer que les plans verticaux (v1,v2) dans la première image 402 sont bien les plans verticaux (v’1,v’2) dans la deuxième image 404.
De plus, en comparant les relations distance(Ch1, Ch2) et distance(Ch’1, Ch’2), on détecte une égalité :
distance(Ch1, Ch2)=distance(Ch’1, Ch’2)
Cela permet de confirmer que les plans horizontaux (h1, h2) dans la première image 402 sont bien les plans horizontaux (h’1, h’2) dans la deuxième image 404.
En utilisant, les caractéristiques des plans verticaux et des plans horizontaux communs aux deux images 402 et 404, une matrice de déplacement homogène est calculée. Dans l’exemple donné, la matrice de déplacement homogène (R, T) est la suivante :
- Rotation R = (0°, 30°, 10°),
- Translation T = (0.20, 0.50, 0.05)
On peut noter qu’il existe une relation entre les différents paramètres définissant les plans et les vecteurs R et T. Par exemple : Nv’1 = R x Nv1 et Cv’1 = R x Cv1 + T.
La rotation R est calculée à l’aide des plans verticaux v1, v2, v’1, v’2 et du vecteur de gravité.
Les composantes de translation horizontale (en x et z) de T sont calculées à l’aide des plans verticaux v1, v2, v’1 et v’2.
La composante de translation verticale (y) de T est calculée à l’aide des plans horizontaux h1, h2, h’1 et h’2.
La transformation T ainsi calculée est appliquée à la deuxième image 404 afin d’exprimer cette image 404 dans le repère (X,Y,Z) de la première image 402.
Bien sûr, l’invention n’est pas limitée aux exemples qui viennent d’être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l’invention.
Dans les exemples décrits, le robot comprend plusieurs caméras 3D. Bien entendu, le nombre de caméras 3D n’est pas limitatif et le robot peut comprendre une ou plusieurs caméras. Lorsque le robot comprend une seule caméra, les étapes 208 et 226 de construction d’images de profondeur composite ne sont pas réalisées.
Claims (17)
- Procédé (200) de surveillance de l’environnement d’un robot (100) comprenant :
- une phase (202) d’obtention d’une image de profondeur de l’environnement dudit robot (100), dite image de référence, par au moins une caméra 3D (120) portée par ledit robot (100) ; et
- au moins une itération d’une phase de détection (220) comprenant les étapes suivantes :
- acquisition (222), à un instant de mesure, d’une image de profondeur dudit environnement, dite image de mesure, par ladite au moins une caméra 3D (120),
- recalage (228) desdites images de référence et de mesure, et
- détection (230) d’un changement relatif à un objet dans l’environnement dudit robot (100) par comparaison desdites images de référence et de mesure.
- Procédé (200) selon la revendication 1, caractérisé en ce que la phase (202) d’obtention de l’image de référence comprend les étapes suivantes :
- acquisition (204), de manière séquentielle, d’au moins deux images de profondeur, à différents instants d’acquisition et pour différentes positions de l’au moins une caméra 3D (120) ; et
- construction (210) de l’image de référence à partir desdites images de profondeur séquentielles.
- Procédé (200) selon la revendication 2, caractérisé en ce que la construction de l’image de référence est réalisée en fonction de la configuration de l’au moins une caméra 3D (120), à chaque instant d’acquisition.
- Procédé (200) selon la revendication 3, caractérisé en ce que la position, à un instant d’acquisition, de l’au moins une caméra 3D (120) est déterminée en fonction d’une configuration géométrique du robot (100) audit instant d’acquisition.
- Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que, lorsque le robot (100) est équipé de plusieurs caméras 3D (120), de champs de vue (122) différents, l’étape (204) d’acquisition d’une image de profondeur, à un instant d’acquisition, comprend les opérations suivantes :
- acquisition (206), audit instant d’acquisition, par au moins deux desdites caméras 3D (120), d’images de profondeur individuelles ; et
- construction (208) d’une image de profondeur composite à partir desdites images de profondeur individuelles.
- Procédé (200) selon la revendication 5, caractérisé en ce que la construction de l’image de profondeur composite, à partir des images de profondeur individuelles, est réalisée en fonction des configurations relatives entre elles des caméras 3D (120).
- Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que la phase de détection (220) est réalisée individuellement pour au moins une caméra 3D, en prenant comme image de mesure, une image de profondeur individuelle prise par ladite caméra 3D (120) à l’instant de mesure.
- Procédé (200) selon l’une quelconque des revendications 1 à 6, caractérisé en ce que, lorsque le robot (100) est équipé de plusieurs caméras 3D (120) de champs de vue (122) différents, l’étape (222) d’acquisition d’une image de mesure comprend les opérations suivantes :
- acquisition (224), à l’instant de mesure, par plusieurs caméras 3D (120), d’images de profondeur individuelles ; et
- construction (226) d’une image de mesure composite à partir desdites images de profondeur individuelles.
- Procédé (200) selon la revendication 8, caractérisé en ce que la construction de l’image de mesure composite est réalisée en fonction des positions relatives entre elles des caméras 3D (120).
- Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que la détection (230) d’un changement relatif à un objet dans l’environnement du robot (100) est réalisée en exploitant des informations de distances de l’image de mesure.
- Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il comprend une étape (234) de déclenchement d’une commande du robot (100), en cas de détection d’un changement relatif à un objet dans l’image de mesure.
- Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que le recalage des images de profondeur de référence et de mesure est réalisé par analyse d’images en nuage de points.
- Procédé (200) selon l’une quelconque des revendications 1 à 11, caractérisé en ce que le recalage des images de profondeur de référence et de mesure est réalisé par analyse d’images préalablement modélisées sous la forme de formes géométriques.
- Procédé (200) selon la revendication précédente, caractérisé en ce que le recalage des images de profondeur de référence et de mesure comprend les étapes suivantes :
- pour chacune desdites images :
- détection (3081,3121,3082,3122) d’une pluralité de formes géométriques dans ladite image (402,404), et
- détermination (3101,3102,3141,3142) d’au moins une relation géométrique entre au moins deux formes géométriques de ladite pluralité de formes géométriques ;
- identification (316,318) de formes géométriques communes auxdites deux images (402,404) par comparaison des relations géométriques détectées pour l’une (402) des images à celles détectées pour l’autre (404) des images ;
- calcul (320), en fonction desdites formes géométriques communes, d’une transformation géométrique entre lesdites images (402,404); et
- recalage (322) de l’une (304) desdites images, par rapport à l’autre (302) desdites images, en fonction de ladite transformation géométrique.
- pour chacune desdites images :
- Dispositif de surveillance de l’environnement d’un robot comprenant :
- au moins une caméra 3D (120), et
- au moins un moyen de calcul (124) ;
- Robot (100) équipé d’un dispositif de surveillance selon la revendication précédente.
- Robot (100) selon la revendication précédente, caractérisé en ce qu’il comprend :
- au moins un segment mobile (104-108), et
- plusieurs caméras 3D (120) distribuées autour d’un des segments mobiles.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1901828A FR3093215B1 (fr) | 2019-02-22 | 2019-02-22 | Procédé et dispositif de surveillance de l’environnement d’un robot |
PCT/EP2020/053273 WO2020169380A1 (fr) | 2019-02-22 | 2020-02-10 | Procede et dispositif de surveillance de l'environnement d'un robot |
US17/310,704 US20220130147A1 (en) | 2019-02-22 | 2020-02-10 | Method and device for monitoring the environment of a robot |
CN202080030497.5A CN113767421A (zh) | 2019-02-22 | 2020-02-10 | 用于监控机器人的环境的方法和设备 |
EP20705316.6A EP3928292A1 (fr) | 2019-02-22 | 2020-02-10 | Procede et dispositif de surveillance de l'environnement d'un robot |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1901828 | 2019-02-22 | ||
FR1901828A FR3093215B1 (fr) | 2019-02-22 | 2019-02-22 | Procédé et dispositif de surveillance de l’environnement d’un robot |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3093215A1 true FR3093215A1 (fr) | 2020-08-28 |
FR3093215B1 FR3093215B1 (fr) | 2021-08-27 |
Family
ID=66867531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1901828A Active FR3093215B1 (fr) | 2019-02-22 | 2019-02-22 | Procédé et dispositif de surveillance de l’environnement d’un robot |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220130147A1 (fr) |
EP (1) | EP3928292A1 (fr) |
CN (1) | CN113767421A (fr) |
FR (1) | FR3093215B1 (fr) |
WO (1) | WO2020169380A1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114049563B (zh) * | 2022-01-12 | 2022-05-03 | 国网瑞嘉(天津)智能机器人有限公司 | 带电作业环境的评估方法、作业环境评估系统及电子设备 |
CN114782438B (zh) * | 2022-06-20 | 2022-09-16 | 深圳市信润富联数字科技有限公司 | 物体点云修正方法、装置、电子设备和存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010023201A1 (en) * | 2000-03-08 | 2001-09-20 | Susumu Takatsuka | Method of replaying game, recording medium, program, and entertainment system |
US6724385B2 (en) * | 2000-03-08 | 2004-04-20 | Sony Computer Entertainment Inc. | Method of replaying game, recording medium, program, and entertainment system |
US7697748B2 (en) * | 2004-07-06 | 2010-04-13 | Dimsdale Engineering, Llc | Method and apparatus for high resolution 3D imaging as a function of camera position, camera trajectory and range |
KR100731979B1 (ko) * | 2005-10-18 | 2007-06-25 | 전자부품연구원 | 다시점 정방향 카메라 구조 기반의 메쉬를 이용한 중간영상 합성 방법 및 장치와 이를 구현하는 기능을실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록 매체 |
KR20080066408A (ko) * | 2007-01-12 | 2008-07-16 | 삼성전자주식회사 | 3차원 영상 처리 장치 및 방법 |
EP2600316A1 (fr) * | 2011-11-29 | 2013-06-05 | Inria Institut National de Recherche en Informatique et en Automatique | Procédé, système et programme logiciel pour enregistrer et éditer un film comprenant au moins une image d'une animation 3D générée par ordinateur |
FR2984057B1 (fr) * | 2011-12-13 | 2014-01-03 | Solidanim | Systeme de tournage de film video |
US9177224B1 (en) * | 2013-03-14 | 2015-11-03 | Amazon Technologies, Inc. | Object recognition and tracking |
US10203762B2 (en) * | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US9299013B1 (en) * | 2014-03-27 | 2016-03-29 | Amazon Technologies, Inc. | Visual task feedback for workstations in materials handling facilities |
US10852838B2 (en) * | 2014-06-14 | 2020-12-01 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US20160048966A1 (en) * | 2014-08-13 | 2016-02-18 | Bendix Commercial Vehicle Systems Llc | Learning the distance between cameras for articulated vehicles |
MA41117A (fr) * | 2014-12-05 | 2017-10-10 | Myfiziq Ltd | Imagerie d'un corps |
US20160188977A1 (en) * | 2014-12-24 | 2016-06-30 | Irobot Corporation | Mobile Security Robot |
US10458990B1 (en) * | 2015-03-06 | 2019-10-29 | Scanit Technologies, Inc. | Spore state discrimination |
WO2016141984A1 (fr) * | 2015-03-11 | 2016-09-15 | Huawei Technologies Co., Ltd. | Dispositif et procédé de traitement d'images pour étalonnage géométrique d'images |
EP3086283B1 (fr) * | 2015-04-21 | 2019-01-16 | Hexagon Technology Center GmbH | Fourniture d'un nuage de points à l'aide d'un instrument de surveillance et un dispositif de caméra |
CA3080399A1 (fr) * | 2017-10-30 | 2019-05-09 | The Research Foundation For The State University Of New York | Systeme et procede associes a une authentification utilisateur basee sur une echo-signature a base acoustique |
JP6936974B2 (ja) * | 2017-12-19 | 2021-09-22 | オムロン株式会社 | 位置姿勢推定装置、位置姿勢推定方法及びプログラム |
AU2019209950A1 (en) * | 2018-01-17 | 2020-07-09 | Magic Leap, Inc. | Display systems and methods for determining registration between a display and a user's eyes |
KR20230004423A (ko) * | 2019-10-07 | 2023-01-06 | 보스턴 폴라리메트릭스, 인크. | 편광을 사용한 표면 법선 감지 시스템 및 방법 |
EP4138703A1 (fr) * | 2020-04-24 | 2023-03-01 | Smith&Nephew, Inc. | Dispositif de suivi optique à module lumineux structuré intégré |
-
2019
- 2019-02-22 FR FR1901828A patent/FR3093215B1/fr active Active
-
2020
- 2020-02-10 CN CN202080030497.5A patent/CN113767421A/zh active Pending
- 2020-02-10 EP EP20705316.6A patent/EP3928292A1/fr not_active Withdrawn
- 2020-02-10 US US17/310,704 patent/US20220130147A1/en not_active Abandoned
- 2020-02-10 WO PCT/EP2020/053273 patent/WO2020169380A1/fr unknown
Non-Patent Citations (3)
Title |
---|
"Thèse de Doctorat", 2 October 2015, Université de Lorraine, article ABDELHAMID BENNIS: "Contribution à la reconstruction 3D de bâtiments à partir de nuage de points de scanner laser terrestre", pages: 1 - 111, XP055632383 * |
DREWS P ET AL: "Fast and adaptive 3D change detection algorithm for autonomous robots based on Gaussian Mixture Models", 2013 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA); 6-10 MAY 2013; KARLSRUHE, GERMANY, IEEE, US, 6 May 2013 (2013-05-06), pages 4685 - 4690, XP032506640, ISSN: 1050-4729, ISBN: 978-1-4673-5641-1, [retrieved on 20131013], DOI: 10.1109/ICRA.2013.6631244 * |
QIN RONGJUN ET AL: "3D change detection - Approaches and applications", ISPRS JOURNAL OF PHOTOGRAMMETRY AND REMOTE SENSING, AMSTERDAM [U.A.] : ELSEVIER, AMSTERDAM, NL, vol. 122, 26 October 2016 (2016-10-26), pages 41 - 56, XP029837652, ISSN: 0924-2716, DOI: 10.1016/J.ISPRSJPRS.2016.09.013 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020169380A1 (fr) | 2020-08-27 |
CN113767421A (zh) | 2021-12-07 |
EP3928292A1 (fr) | 2021-12-29 |
FR3093215B1 (fr) | 2021-08-27 |
US20220130147A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1976671B1 (fr) | Procede et systeme permettant la prehension automatisee de piece(s) | |
Singh et al. | Bigbird: A large-scale 3d database of object instances | |
US10302424B2 (en) | Motion contrast depth scanning | |
FR2760277A1 (fr) | Procede et dispositif de localisation d'un objet dans l'espace | |
CN107077735A (zh) | 三维对象识别 | |
FR3081248A1 (fr) | Systeme et procede de determination d’un emplacement pour le placement d'un paquet | |
WO2020169381A1 (fr) | Procede de recalage d'images de profondeur | |
WO2019091787A1 (fr) | Procédé d'estimation de pose d'une caméra dans le référentiel d'une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d'ordinateur associé | |
EP3144881A1 (fr) | Procede de mosaiquage 3d panoramique d'une scene | |
EP3072108A1 (fr) | Procede d'estimation de la vitesse de deplacement d'une camera | |
FR3025918A1 (fr) | Procede et systeme de modelisation automatisee d'une piece | |
WO2013053701A1 (fr) | Procede d'etalonnage d'un systeme de vision par ordinateur embarque sur un mobile | |
WO2020169380A1 (fr) | Procede et dispositif de surveillance de l'environnement d'un robot | |
EP3614306B1 (fr) | Procédé de localisation et d'identification de visage et de détermination de pose, à partir d'une vue tridimensionnelle | |
WO2015071458A1 (fr) | Procede d'estimation de la vitesse de deplacement d'une camera | |
EP3221660B1 (fr) | Procede et dispositif de caracterisation en trois dimensions d'une surface d'un objet | |
FR3036473A1 (fr) | Procede de mesure de la position d'une structure mobile | |
FR3014229A1 (fr) | Reconnaissance de formes par correction d'image | |
FR3042893A1 (fr) | Procede de detection de fraude par projection d'image pre-enregistree | |
FR3011960A1 (fr) | Procede d'identification a partir d'un modele spatial et spectral d'objet | |
EP2756483B1 (fr) | Procédé et système d'acquisition et de traitement d'images pour la détection du mouvement | |
FR2997492A1 (fr) | Procede d'etablissement d'un plan de recolement geolocalise, produit programme d'ordinateur et moyen de stockage correspondants | |
Walter et al. | Enabling multi-purpose mobile manipulators: Localization of glossy objects using a light-field camera | |
FR3065097A1 (fr) | Procede automatise de reconnaissance d'un objet | |
FR2992415A1 (fr) | Procede d'etablissement d'un plan de recolement geolocalise, produit programme d'ordinateur et moyen de stockage correspondants |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20200828 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
TP | Transmission of property |
Owner name: FOGALE SENSORS, FR Effective date: 20220908 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |