[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CA3146577A1 - Mobile collaborative robot with obstacle avoidance - Google Patents

Mobile collaborative robot with obstacle avoidance

Info

Publication number
CA3146577A1
CA3146577A1 CA3146577A CA3146577A CA3146577A1 CA 3146577 A1 CA3146577 A1 CA 3146577A1 CA 3146577 A CA3146577 A CA 3146577A CA 3146577 A CA3146577 A CA 3146577A CA 3146577 A1 CA3146577 A1 CA 3146577A1
Authority
CA
Canada
Prior art keywords
robot
router
sensors
read
mobile robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CA3146577A
Other languages
French (fr)
Inventor
Niculae M. N. Mihai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CA3146577A priority Critical patent/CA3146577A1/en
Publication of CA3146577A1 publication Critical patent/CA3146577A1/en
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/022Optical sensing devices using lasers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/026Acoustical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40298Manipulator on vehicle, wheels, mobile

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

Ce produit a été conçu pour scanner et inspecter le sol d'un espace prédéfini. Essentiellement, une caméra au bout d'un bras montée sur une base mobile scanne l'environnement au fur et à mesure que le robot se déplace. Ce robot mobile est autonome, capable d'éviter les obstacles. L'autonomie de ce robot est assurée simultanément par 4 processus de contrôle : 1. par la méthode de triangulation à l'aide de 4 défonceuses placées aux 4 coins de la surface mobile du robot ; 2. Par des capteurs de proximité disposés circulairement autour du robot ; 3. En scannant la surface où le mouvement est effectué 4. Grâce à des capteurs d'encodeur de positionnement précis placés sur les moteurs d'entraînement. Parce que les quatre types de capteurs fonctionnent simultanément en temps réel, le positionnement est précis.est précis.This product was designed to scan and inspect the floor of a predefined space. Essentially, a camera at the end of an arm mounted on a mobile base scans the environment as the robot moves. This mobile robot is autonomous, able to avoid obstacles. The autonomy of this robot is ensured simultaneously by 4 control processes: 1. by the triangulation method using 4 routers placed at the 4 corners of the mobile surface of the robot; 2. By proximity sensors arranged circularly around the robot; 3. By scanning the surface where the movement is performed 4. By precise positioning encoder sensors placed on the drive motors. Because the four types of sensors work simultaneously in real time, the positioning is accurate.

Description

Robot colla boratif mobile avec évitement d'obstacles INTRODUCTION
Dans le monde de la robotique d'aujourd'hui, les robots entièrement autonomes n'ont pas encore été
créés, car même les robots avancés n'ont pas encore été mis à niveau pour une autonomie complète.
Comme solution potentielle, ce système de robot mobile est présenté. Ce système se démarque des autres robots haut de gamme par ses caractéristiques révolutionnaires.
Contrairement à d'autres robots, qui utilisent 2-3 capteurs, ce système utilise 8 capteurs à ultrasons et un module LiDAR, qui assurent tous une couverture à 360 et un évitement d'obstacles de haute précision (Fig. 1). De plus, une caméra est équipée du système, servant à balayer l'environnement, à
envoyer un flux vidéo en direct à un serveur Web et à capturer des images individuelles (images) lorsqu'elles sont invitées par un programme répondant aux besoins de l'utilisateur. Toutes les entrées sont envoyées à un serveur Web à
partir duquel un algorithme d'IA de conception complexe traite les données et commande avec précision la direction. Malgré la réception de données provenant de plusieurs sources, l'IA traite les instructions instantanément.Avec 100% d'autonomie, ce système ouvre plusieurs applications pratiques et il peut également collaborer avec d'autres robots afin de diversifier ses fonctionnalités à travers un réseau d'appareils orientés vers un objectif commun.Par exemple, le réservoir de carburéacteur d'un avion est normalement examiné par des êtres humains, et ils sont tenus de travailler dans des espaces restreints et d'inspecter toute la portée du réservoir, ce qui peut représenter un travail ardu (Fig.2).Ce robot se présente comme une solution adaptée à l'inspection des réservoirs de carburant, car il peut détecter avec précision tout défaut dans les rivets du réservoir ou vérifier d'éventuelles traces de corrosion. De plus, il peut être combiné avec un autre robot afin de pouvoir être transporté dans différentes sections du réservoir.
'Ll'44' 44-FIGUE. 1. Produit final avec bras en érection Date Reçue/Date Received 2022-01-24 LU*
. .
I - \
-\\
-r-s . =
FIGUE. 2. Inspection du réservoir de carburant de l'avion effectuée par les membres d'équipage TABLE I: BILL OF MATERIALS
No. Part Name Quantity CHAPEAU ROBOT FONDATEUR

DE SOLEIL
Mobile collaborative robot with obstacle avoidance INTRODUCTION
In today's world of robotics, fully autonomous robots have not yet been created, because even advanced robots have not yet been upgraded for a complete autonomy.
As a potential solution, this mobile robot system is presented. This system stands out from other high-end robots with its revolutionary characteristics.
Unlike other robots, which use 2-3 sensors, this system uses 8 ultrasonic sensors and a LiDAR module, which all provide 360 coverage and high obstacle avoidance precision (Fig. 1). Moreover, a camera is equipped with the system, serving to scan the environment, to send a video stream direct to a web server and capture individual frames (images) when invited by a program that meets the needs of the user. All entries are sent to a web server at from which a complexly designed AI algorithm processes the data and command with steering precision. Despite receiving data from several sources, the AI processes the instructions instantly. With 100% autonomy, this system opens several practical applications and it can also collaborate with other robots in order to diversify its features through a network of devices oriented towards a common goal. For example, the tank of jet fuel from a aircraft is normally examined by human beings, and they are required to work in spaces restricted and to inspect the full range of the tank, which may represent hard work (Fig.2).
robot presents itself as a solution adapted to the inspection of the tanks of fuel, because it can accurately detect any faults in the tank rivets or check any traces of corrosion. In addition, it can be combined with another robot in order to be able to to be transported in different sections of the reservoir.
'Ll'44' 44-FIG. 1. Final product with erect arm Date Received/Date Received 2022-01-24 READ*
. .
I-\
-\\
-rs . =
FIG. 2. Aircraft fuel tank inspection performed by crew members TABLE I: BILL OF MATERIALS
No. Part Name Quantity ROBOT FOUNDER HAT

OF SUN

2 Fondateur de Sun PCA9865 1 Module de pilote de moteur Sun 2 Founder of Sun PCA9865 1 Sun Engine Driver Module

3 1 Founder 3 1 Founder

4 SF-5R02 8 Sun Fondateur SFOO6CServo 1 6 Moteur à engrenages CC 2 7 Framboise Pi 4 1 8 myCobot-Pi 1 9 Support en aluminium SF-5R02 1 Support en aluminium myCobot-Pi 11 Caméra USB 1 Capteur de distance laser TF

Mini LiDAR (ToF) Il. MOBILITÉ
Le produit est construit à l'aide d'une machine 4 roues robotisée, contrôlée au moyen d'un Raspberry Pi 4 exécutant des scripts Python, qui exécutent des instructions directionnelles basées sur les données reçues des huit capteurs à ultrasons entourant le robot (Fig. 3 et Fig. 4), ainsi que à partir d'un module LiDAR (Fig. 19) pour une vue complète.
Date Reçue/Date Received 2022-01-24 õµ re ("4, , ^ 15tt 40 ae, ,.. ' . "1.; \ ,Ii'et4 e 4-4)11.:÷ 1 '' 4à t' Ye.u.Le 7:1,",, õbile ' ~ JI ,, efr re.
FIGUE. 3. Base mobile équipée de capteurs à ultrasons, vue de côté
Le mobile robotique est composé de trois modules, ainsi que d'un servomoteur et de deux motoréducteurs à courant continu. Les modules sont tous des modules Sun Founder, à savoir Robot HATS, PCA9865 et le module Motor Driver. Le servo utilisé est le SFOO6C de Sun Founder, et les deux moteurs à courant continu : F130SA-11200-38V.Le servo est utilisé pour contrôler la direction du robot au moyen de l'axe des roues avant, tandis que les moteurs à courant continu contrôlent la direction linéaire du robot via les roues arrière.Le robot HATS est directement connecté
au Raspberry Pi via des broches d'entrée-sortie à usage général (GP10). En recevant les données traitées via des scripts Python, il relaie les données au pilote de modulation de largeur d'impulsion (PCA9865), qui à son tour transmet les données directement au servo. De plus, le PWM envoie des données au module de commande de moteur qui, à son tour, contrôle la vitesse et la direction des moteurs à
courant continu.
Date Reçue/Date Received 2022-01-24 , -, -f , L
FIGUE 4 Base mobile équipée de capteurs à ultrasons, vue de dessus Les capteurs à ultrasons couplés au Raspberry Pi envoient des données à un algorithme artificiellement intelligent via des scripts Python, qui à leur tour appellent l'adresse IP d'un serveur Web basé sur Flask lié à l'IA. Une fois que l'algorithme a traité les données, il les renvoie au Raspberry Pi sous forme d'instructions directionnelles pour les moteurs.
III. CAPTEURS ULTONIQUES
Les capteurs à ultrasons utilisés sont du modèle SF-5R02 de Sun Founder (Fig.
4 SF-5R02 8 Sun Founder SFOO6CServo 1 6 DC gear motor 2 7 Raspberry Pi 4 1 8 myCobot-Pi 1 9 Aluminum bracket SF-5R02 1 myCobot Aluminum Stand -Pi 11 USB Camera 1 TF laser distance sensor Mini-LiDAR (ToF) He. MOBILITY
The product is built using a robotic 4-wheel machine, controlled using a Raspberry Pi 4 running Python scripts, which execute instructions data-driven directional received from the eight ultrasonic sensors surrounding the robot (Fig. 3 and Fig. 4), as well as from a module LiDAR (Fig. 19) for a complete view.
Date Received/Date Received 2022-01-24 õµ re ("4, , ^15tt 40 ae, ,..' . "1.; \ ,Ii'et4 e 4-4)11.:÷ 1 '' 4à t' Ye.u.Le 7:1,",, õbile ' ~JI,, efr D.
FIG. 3. Mobile base equipped with ultrasonic sensors, side view The robotic mobile is composed of three modules, as well as a servomotor and two DC geared motors. The modules are all Sun modules Founder, namely Robot HATS, PCA9865 and the Motor Driver module. The servo used is Sun's SFOO6C
Founder, and both DC motors: F130SA-11200-38V. The servo is used for control the direction of the robot by means of the axle of the front wheels, while the DC motors control the direction of the robot via the rear wheels. The HATS robot is directly connected to the Raspberry Pi via general-purpose input-output pins (GP10). By receiving the data processed via Python scripts, it relays the data to the pulse width modulation driver (PCA9865), which in turn transmits the data directly to the servo. In addition, the PWM sends data to the module order of motor which, in turn, controls the speed and direction of the motors to direct current.
Date Received/Date Received 2022-01-24 , -, -f, I
FIGURE 4 Mobile base equipped with ultrasonic sensors, top view Ultrasonic sensors coupled to the Raspberry Pi send data to a algorithm artificially intelligent via Python scripts, which in turn call the IP address of a web server based on Flask linked to AI. Once the algorithm has processed the data, it returns them to the Raspberry Pi under form of directional instructions for motors.
III. ULTONIC SENSORS
The ultrasonic sensors used are model SF-5R02 from Sun Founder (Fig.

5), et huit d'entre eux sont employés. Le but des capteurs à ultrasons est de calculer les distances des objets proches afin de les éviter en conséquence. Les capteurs sont connectés au Raspberry Pi via les ports GPIO de l'ordinateur. Ces capteurs sont uniques, par rapport aux capteurs à ultrasons conventionnels, car il y a normalement deux connexions physiques distinctes à établir : l'une pour envoyer des ondes ultrasonores (déclenchement), et l'autre pour les recevoir après qu'elles rebondissent sur un objet (écho). Les capteurs SF-5R02, cependant, implémentent cette fonction sous une seule connexion, simplifiant ainsi le câblage.
TABLE II SPECIFICATIONS OF SF-SR02 SENSOR[2]
Tension de fonctionnement Courant de travail 16mA

Fréquence de travail 40Hz Portée maximale 700 cm, stable 500 cm Portée minimale 2 cm Signal d'entrée de déclenchement Impulsion TTL 10p.S
Signal d'entrée d'écho Signal Dimensions 46x20,5x15mm de levage TTL d'entrée Date Reçue/Date Received 2022-01-24 Tension de fonctionnement Courant de travail 16mA

Fréquence de travail 40Hz Portée maximale 700 cm, stable 500 cm Portée minimale 2 cm Signal d'entrée de déclenchement Impulsion TTL 101.15 Signal d'entrée d'écho Signal Dimensions 46x20,5x15mm de levage TTL d'entrée Les capteurs à ultrasons sont largement utilisés dans les industries de l'automatisation ainsi que dans les cabinets médicaux. Ils sont couramment utilisés comme capteurs de proximité ou capteurs de niveau.
Les capteurs de proximité sont souvent utilisés dans l'industrie automobile pour les systèmes d'auto-stationnement et anti-collision, ainsi que dans la robotique pour les systèmes de détection/évitement d'obstacles. Les capteurs de niveau détectent, surveillent et régulent les niveaux de liquide.
En général, un capteur à ultrasons contient deux composants principaux : un émetteur et un récepteur. Un émetteur émet des ultrasons à l'aide de cristaux piézo et un récepteur rencontre le son après qu'il a voyagé vers et depuis l'objet cible.
tir ;=,,,,, //,',itta,',,e_ ,, ,, .. ._..."e ' =' ,' il --,----,.,-- , -__ mio 1111 , .-...õ,..-II
romei ,/
, .7....._ ..

FIGUE 5 Capteur à ultrasons SF-SR02 [2]
Un capteur à ultrasons fonctionne en transmettant une impulsion ultrasonore à
40 kHz, ce qui est supérieur à la fréquence du son audible pour les êtres humains (20 Hz à 20 kHz). Cette impulsion se déplace dans l'air et rebondit vers le capteur s'il y a un obstacle ou un objet dans sa plage de fonctionnement. Le temps mis par l'impulsion pour être émise et reçue est enregistré, et la distance de l'objet par rapport au capteur est ensuite trouvée à travers le temps enregistré en se référant à la vitesse du son dans l'air. Ce type de mesure est communément appelé mesure du temps de vol (Fig.6).
Date Reçue/Date Received 2022-01-24 EIVIITTED SOUND WAVES
VOMIR -DETECIOR = õfr-', FIGUE. 6. Mesure du temps de deplacement IV. SCRIPTS PYTHON
Ce système utilise 3 scripts python qui s'exécutent sur le Raspberry Pi. Afin d'obtenir les distances lues par les 8 capteurs (Fig.7), 2 programmes python ont été créés. Le premier programme lit les données des capteurs 1 à 4 et le second programme lit les données des capteurs 5 à 8, et les deux programmes s'exécutent de manière récursive pratiquement sans délai.
Sensor 4 Sensor 3 Sensor 5 From Sensor 2 Sensor 6 Rea Sensor I Sensor 7 Sensor 8 FIGUE. 7. Configuration à huit capteurs pour l'algorithme AI
Deux programmes ont été utilisés au lieu d'un programme pour les 8 capteurs afin que les données soient lues plus rapidement à partir des capteurs. En effet, avec un programme, chaque capteur doit attendre 7 autres capteurs avant de pouvoir lire à nouveau des valeurs, alors qu'avec deux programmes, chaque capteur n'attend que 3 autres capteurs. Ces programmes sont presque identiques les uns aux autres, et ils servent chacun à lire la valeur de leurs capteurs respectifs avant d'envoyer les données à
leurs propres fichiers texte, sous forme de valeurs de chaîne. Chaque fichier texte contient des données Date Reçue/Date Received 2022-01-24 lues par 4 capteurs (le premier fichier texte est pour les capteurs 1-4, et le second, 5-8), et les fichiers texte sont écrasés à chaque itération du programme.
Al server Flask web server Raspberry Pi Robot HAT
14 \
Ultrasonic PWM
sensors ________________________ Motor Servo drive driver ______________________________ (front) DC motors (rear) Figure 8 : Organigramme de communication du robot mobile et du serveur d'IA
Les programmes utilisent le module "Ultrasonic Avoidance", qui est un module par défaut fourni par SunFounder qui calcule la distance des objets lus par le capteur. Ceci est accompli en calculant le temps nécessaire pour recevoir un signal d'impulsion une fois émis.
La distance est d'abord lue par le capteur puis affectée à une variable.
Ensuite, afin d'éviter les erreurs logiques, les distances lues par les capteurs ne sont considérées que si elles sont positives. Une fois les valeurs positives prises, elles sont ensuite vérifiées si elles se situent dans la plage de 0 à 80 centimètres.
Toute valeur supérieure à 80 centimètres est ramenée à 80 centimètres, qui est la limite supérieure définie dans le système. Si la valeur se situe dans la plage définie, elle est convertie en une valeur de chaîne avec un espace ( ) et une virgule ( , ) ajoutés. Si elle a été
convertie en 80, la variable prend 80 comme valeur et est ensuite convertie en une valeur de chaîne avec l'espace et la virgule suffixés.
Une fois que les quatre capteurs ont lu une valeur et ont une chaîne qui représente la valeur lue, ils sont ensuite concaténés et envoyés au fichier texte.
Date Reçue/Date Received 2022-01-24 Pendant que les capteurs lisent les données et les envoient dans des fichiers texte sous forme de valeurs de chaîne, un troisième script s'exécutera également simultanément et servira de moyen de communication entre les scripts du robot mobile et le serveur Web. Ce programme lit d'abord les deux fichiers texte et stocke chaque valeur sous forme de chaîne. La chaîne sera au format "12,34,56,78,90,12,34,56". Il est ensuite concaténé à une chaîne contenant l'URL du serveur Web. La chaîne finale après concaténation ressemblera à : "IP_address: 9999 / predict /? Sonar =
12,34,56,78,90,12,34,56". La valeur renvoyée par cette URL détermine la direction dans laquelle le robot se déplacera en réponse aux lectures de son environnement (voir l'organigramme présenté à la Fig.8). Le programme exécute les commandes susmentionnées de manière récursive.
V. SERVEUR WEB ET IA
Le serveur Web est créé avec un script Python qui utilise le framework Flask.
Le script serveur reçoit les données que les scripts Python du Raspberry Pi lui envoient en appelant son adresse IP. Le serveur Web est codé pour ensuite relayer les données vers un serveur AI, qui traite les données pour calculer les commandes directionnelles. Les commandes sont ensuite renvoyées via le serveur Web au Raspberry Pi (envoyées à son adresse IP), où elles sont reçues par un script Python qui indique la sortie directionnelle des moteurs (reportez-vous à l'organigramme de la Fig.8). Les données directionnelles renvoyées au module se présentent sous la forme de chaînes, et les trois valeurs possibles sont "0", "1"
et "2". Le "0" indique au module d'avancer, tandis que "1" et "2" indiquent au module de se déplacer respectivement vers la gauche et vers la droite.
Les détails explicites des mathématiques et du code derrière l'algorithme d'IA
ne peuvent pas être entièrement divulgués en raison de problèmes de droits d'auteur.
Essentiellement, le serveur Web reçoit les données envoyées par les huit capteurs à ultrasons, le LiDAR et la caméra montée sur le cobot.
Il convertit ensuite lesdites données en valeurs de chaîne, puis les envoie au serveur AI. Le serveur Al traite les données et les renvoie au serveur sous forme de commandes directionnelles.
VI. LIDAR
Une fois que le robot mobile équipé d'un capteur à ultrasons est capable d'éviter les obstacles de manière autonome en communiquant avec le serveur Web et l'IA, un capteur de détection et de télémétrie de la lumière (LiDAR) est ajouté au modèle. Les capteurs à
ultrasons sont utiles pour détecter des objets de bas niveau plus près du sol, mais ne détectent pas à une hauteur suffisante pour un évitement optimal des objets. Un LiDAR monté au sommet du robot mobile répond à cette exigence (comme visible sur la Fig. 9 à droite de la caméra).
Les capteurs LiDAR sont utilisés pour fournir une télédétection et des distances d'objets plus précises tout en étant capables de cartographier visuellement un environnement au moyen d'un logiciel de détection d'images.
En plus des capteurs à ultrasons, les capteurs LiDAR sont une autre source d'informations pour l'algorithme d'IA qui rendrait la détection d'obstacles plus précise.
Date Reçue/Date Received 2022-01-24 e -nu 4ieetILM.;"
4.µ
,---FIGUE. 9. Robot complet avec TF Min' LiDAR monté en haut à droite de la dalle de support Les capteurs LiDAR sont similaires aux capteurs à ultrasons, sauf que les capteurs LiDAR utilisent des impulsions d'un laser pour collecter des mesures.
Les capteurs LiDar ont également un émetteur et un récepteur. L'émetteur envoie normalement plusieurs impulsions par seconde et le récepteur lit les ondes lumineuses qui rebondissent sur un objet.
Les capteurs LiDAR, comme les capteurs à ultrasons, utilisent également des mesures de temps de vol, sauf que la vitesse du son dans l'air est remplacée par la vitesse de la lumière dans l'air, puisque des lasers sont utilisés (Fig.11).Le système utilise actuellement le capteur laser unidirectionnel TF Mini LiDAR
(Fig.10) comme prototype afin de tester la fonctionnalité de l'algorithme Al.
Il ressemble aux capteurs à
ultrasons utilisés dans le système, mais il est beaucoup plus petit.
4 , ree, = ='`),1 : e' r e&V-e=====e à y = ' = =
= r =
) , e FIGUE 10 Capteur de distance laser TF Man LiDAR (ToF) Date Reçue/Date Received 2022-01-24 TABLE III : SPÉCIFICATIONS DU MINI LiDAR TF
Tension de travail 4.5-6V
Puissance moyenne 0.6W
Interface de Communication UART(TTL) Fréquence de 100Hz rafraîchissement Portée maximale 12m Plage minimale 0.3m Angle de champ de vision 2.3 Précision allant 1%(<6m), 2%(6-12m) Dimension 42x15x16 mm e, 0 0.3111 e. 3m 7m 12m g FIGUE. 11. Diagramme de la gamme TF Mini LiDAR
VII. MYCO BOT-PI
Le myCobot-Pi est un robot collaboratif 6 axes (Fig.12). Il adopte un microprocesseur Raspberry Pi 4 avec Raspbian en l'intégrant à sa base, et il sert à programmer le mouvement du cobot. Afin de commander le mouvement du cobot, du code Python est utilisé. Le cobot permet également la programmation via le système d'exploitation robotique (ROS) qui est intégré à
son microprocesseur Raspberry Pi.
Le cobot sert de bras au système de robot mobile et est monté sur la base mobile. Pour les besoins de ce produit, le cobot est programmé pour s'étendre horizontalement avec son effecteur final dirigé vers le bas. Il tourne dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre entre deux positions définies par l'utilisateur, semblable à un pendule se balançant vers une attraction gravitationnelle latérale. Une caméra est montée à l'extrémité du cobot, ce qui permet une analyse de l'environnement.
Date Reçue/Date Received 2022-01-24 Fig. 12. myCobot-Pi VIII. LA CAMERA
La caméra utilisée pour scanner l'environnement est une webcam USB Raspberry Pi (sur le côté
gauche de la Fig. 13). Le câble de la caméra est branché sur l'un des ports USB du Raspberry Pi à la base du myCobot-Pi. La lentille elle-même est montée au-dessus de l'effecteur terminal du cobot, de telle manière qu'elle pointe dans la même direction qu'une pince faisant saillie vers l'extérieur à partir de l'effecteur terminal.
La caméra diffuse des données visuelles vers un serveur Web local configuré
via le logiciel Motion, exécuté sur le Raspberry Pi du cobot. Le serveur Web peut être rendu accessible au public via la redirection de port, dont la configuration dépend de la configuration du routeur de l'utilisateur et des besoins de sécurité.
11111111111.151PINMIMO e,19 =
ddi ko=;
01111111lb Fig. 13. Caméra (à u.uche) et mmt-test LIDAR (à droite) attachés eeffeMeur terminal de myCobot-Pi La caméra peut être programmée pour diffuser des données en continu pendant que le script du mouvement du robot s'exécute. Il peut en outre être programmé pour prendre une photo lors d'un Date Reçue/Date Received 2022-01-24 événement déclencheur prédéfini (comme un changement soudain de couleur) et pour stocker les images dans un répertoire local au sein du système Raspbian du cobot, ou même l'envoyer à un serveur via le Raspberry Pi.
IX. POSITIONNEMENT PAR TRIANGULATION
Le robot mobile dispose d'au moins 2 microprocesseurs Raspberry Pi, chacun avec sa propre adresse IP. Afin de localiser avec précision la position du robot à tout moment, le positionnement Wi-Fi peut être utilisé.
Ce système de géolocalisation fonctionne en lisant la puissance du signal du robot mobile via des routeurs placés de manière appropriée.
La première étape de la triangulation consiste à trouver la position horizontale du robot mobile. Ceci est réalisé en considérant deux points et en formant un triangle avec le robot mobile comme troisième point. Cela servira à trouver la position du robot mobile entre deux routeurs.
En comparant la force du signal du robot mobile sur les deux routeurs, nous pouvons trouver la proximité du robot mobile par rapport à chaque routeur. La distance peut alors être approximée à partir de la puissance du signal. Par exemple, sur la Fig. 14, le robot mobile est plus proche du routeur 1 que du routeur 2, comme indiqué
par l'opacité des couleurs représentant la force de la connexion.
Le problème avec l'utilisation de seulement deux routeurs est que le robot mobile peut se trouver de chaque côté
de la ligne qui relie le routeur 1 et le routeur 2 (comme illustré à la Fig.14). Par conséquent, un autre routeur est utilisé et la force du signal du robot mobile avec le routeur 3 indique la position par rapport à la ligne commune entre le routeur 1 et le routeur 2.
=
End point of Router 1 workspace (xi y1 z1) , , g '-Mobile õ
Robot (x0,y0,z0) =
=
Router 2 (x2,y2,z2) di> Origin (0,0,0) Fig. 14. Triangulation avec 2 routeurs wifi. La couleur de la connexion représente la force du signal (vert-bon, orange-ok, rouge-faible) Date Reçue/Date Received 2022-01-24 La deuxième étape consiste à trouver la hauteur du robot et elle est calculée de la même manière que la distance horizontale, en utilisant les trois routeurs et leur approximation de la force du signal de distance. Un quatrième routeur Router 4 (Fig.15) est utilisé pour une approximation plus précise de la distance horizontale et verticale, comme avec trois routeurs, l'approximation de l'emplacement n'est que de 4 à 5 pieds (1,2 à 1,5 m).
Fig. 15. Triangulation avec quatre routeurs wifi. La couleur des connexions représente la puissance du signal (vert : bon, orange : ok, rouge : faible) Afin de calculer avec précision la distance entre le robot et le routeur, la force du signal en dBm ou RSSI
du routeur est utilisée. Tout d'abord, une valeur fixe de l'intensité du signal est supposée qui sera utilisée pour interpoler la distance. Ensuite, le robot est déplacé de sorte que les routeurs fournissent la même lecture. Enfin, la distance du robot à la puissance de signal spécifiée de chaque routeur est mesurée. Par exemple, considérons une intensité fixe de - 50 dBm. Le robot est ensuite déplacé vers une position où le routeur 1 lit - 50 dBm. La distance entre le robot et le routeur 1 est maintenant mesurée et notée. Le même processus est répété avec le routeur 2, le routeur 3 et le routeur 4.
X. BALAYAGE DE L'ENVIRONNEMENT A L'AIDE D'UN CAPTEUR LIDAR 2D
Une autre raison de l'utilisation des capteurs LiDAR (Fig.16) est leur capacité à émettre des impulsions à 3600, ce qui signifie qu'il peut balayer tout l'environnement entourant le robot mobile, y compris les angles morts potentiels que les capteurs à ultrasons peuvent ne pas détecter ( Fig.19).
Avant de se voir confier des tâches performatives, le LiDAR doit d'abord se familiariser avec son environnement. Il le fait en cartographiant l'environnement. Le robot mobile est programmé pour suivre une trajectoire suivant approximativement le périmètre de l'espace de travail ciblé, ainsi qu'à travers le centre de la pièce, la trajectoire spécifique de celui-ci dépendant de la taille et de la forme de l'espace de travail. Cela permet au LiDAR d'être exposé à tout l'environnement et d'enregistrer tous les obstacles qu'il détecte, y compris les murs et les limites de la pièce (Fig.17 et Fig.18).
Date Reçue/Date Received 2022-01-24 7' =
µ.410 =
. , fl tri Fig. 16. YDLiDAR X4 Une fois la carte enregistrée, le dispositif LiDAR peut se voir attribuer des points de trajectoire cible, qu'il communique aux moteurs au moyen du serveur AI. L'algorithme AI collabore avec le dispositif LiDAR pour trouver le chemin optimal vers la destination à partir de son emplacement actuel. Le long du chemin, le LiDAR analyse son environnement et envoie des données au serveur en temps réel. Lorsqu'il rencontre un objet obstruant son chemin, le serveur AI calcule le chemin le plus efficace pour éviter l'objet tout en se dirigeant vers la cible, puis renvoie des commandes directionnelles.
I iii ) I ;
ïiï = , ' 1 Fig. 17. Exemple de carte de l'espace de travail enregistrée par un module LiDAR, env. 40m2 Date Reçue/Date Received 2022-01-24 IO.
3.15, AV
= 1.
...
Le .
/ = . .
. =
...
14 4.b.. 8:1 If , 1,1P
Fig. 18. Exemple de carte de l'espace de travail enregistrée par le module LiDAR, env. 40m2 r 1 #4,e4,1 rti,,-,, ' i I
I ;
:
Fig. 19. Vue complète du robot avec un LiDAR à 360 dirigé vers l'avant TABLE IV: SPÉCIFICATIONS DU YDLiDAR X4 Tension de travail 4.8-5.2V
Courant de travail 330-380 mA
Débit en bauds 128000 bps Gamme Fréquence 5000 Hz Date Reçue/Date Received 2022-01-24 Résolution de plage <0.5 mm(for Range<2m) <1% of distance(Range>2m) Fréquence de
5), and eight of them are employed. The purpose of ultrasonic sensors is to calculate distances nearby objects in order to avoid them accordingly. The sensors are connected to the Raspberry Pi via the GPIO ports the computer. These sensors are unique, compared to ultrasonic sensors conventional, because there are normally two separate physical connections to be established: one for send waves ultrasound (triggering), and the other to receive them after they bounce off an object (echo). The SF-5R02 sensors, however, implement this function in a single connection, thus simplifying the wiring.
TABLE II SPECIFICATIONS OF SF-SR02 SENSOR[2]
Operating voltage Working current 16mA

Working frequency 40Hz Maximum range 700 cm, stable 500 cm Minimum range 2 cm Trigger input signal TTL pulse 10p.S
Echo Input Signal Signal Dimensions 46x20.5x15mm lifting TTL input Date Received/Date Received 2022-01-24 Operating voltage Working current 16mA

Working frequency 40Hz Maximum range 700 cm, stable 500 cm Minimum range 2 cm Trigger input signal TTL pulse 101.15 Echo Input Signal Signal Dimensions 46x20.5x15mm lifting TTL input Ultrasonic sensors are widely used in the industries of automation as well as in medical offices. They are commonly used as proximity sensors or level sensors.
Proximity sensors are often used in the automotive industry for self-driving systems parking and anti-collision, as well as in robotics for systems detection/avoidance obstacles. Level sensors detect, monitor and regulate liquid levels.
In general, an ultrasonic sensor contains two main components: a transmitter and a receiver. A transmitter emits ultrasound using piezo crystals and a receiver meets sound after it has traveled to and from the target object.
shot ;=,,,,, //,',itta,',,e_ ,, ,, .. ._..."e '=',' he --,----,.,-- , -__ million 1111 , .-...õ,..-II
romei,/
, .7....._ ..

FIGURE 5 SF-SR02 Ultrasonic Sensor [2]
An ultrasonic sensor works by transmitting an ultrasonic pulse to 40 kHz, which is higher than the frequency of sound audible to humans (20 Hz to 20 kHz). This impulse moves through the air and bounces back to the sensor if there is an obstacle or object within its range functioning. The time taken by the pulse to be emitted and received is recorded, and the distance from the object relative to the sensor is then found through time registered with reference to the speed of sound in air. This type of measurement is commonly called measurement of the flight time (Fig.6).
Date Received/Date Received 2022-01-24 EIVIITTED SOUND WAVES
TO VOMIT -DETECIOR = õfr-', FIG. 6. Travel time measurement IV. PYTHON SCRIPTS
This system uses 3 python scripts that run on the Raspberry Pi. In order to obtain the distances read by the 8 sensors (Fig.7), 2 python programs were created. The first program reads data sensors 1 to 4 and the second program reads data from sensors 5 to 8, and the two programs run recursively with virtually no delay.
Sensor 4 Sensor 3 Sensor 5 From Sensor 2 Sensor 6 Rea Sensor I Sensor 7 Sensor 8 FIG. 7. Eight-sensor configuration for the AI algorithm Two programs were used instead of one program for the 8 sensors so that the data are read faster from the sensors. Indeed, with a program, each sensor must wait for 7 more sensors before you can read values again, then that with two programs, each sensor only waits for 3 other sensors. These programs are almost identical to each other others, and they each serve to read the value of their respective sensors before sending the data to their own text files, as string values. Each file text contains data Date Received/Date Received 2022-01-24 read by 4 sensors (the first text file is for sensors 1-4, and the second, 5-8), and the files text are overwritten with each iteration of the program.
Al server Flask webserver raspberry-pi Robot HAT
14 \
Ultrasonic PWM
sensors ________________________ Engine Servo drives driver ______________________________ (forehead) DC motors (back) Figure 8: Communication flowchart of mobile robot and AI server The programs use the "Ultrasonic Avoidance" module, which is a module default provided by SunFounder which calculates the distance of objects read by the sensor. this is accomplished by calculating the time necessary to receive a pulse signal once emitted.
The distance is first read by the sensor and then assigned to a variable.
Then, in order to avoid errors logical, the distances read by the sensors are only considered if they are positive. Once the positive values taken, they are then checked if they are within in the range from 0 to 80 centimeters.
Any value greater than 80 centimeters is reduced to 80 centimeters, which is the upper limit defined in the system. If the value is within the defined range, it is converted to a value of string with a space ( ) and a comma ( , ) appended. If she was converted to 80, the variable takes 80 as value and is then converted to a string value with space and the comma suffixed.
Once all four sensors have read a value and have a string that represents the read value, they are then concatenated and sent to the text file.
Date Received/Date Received 2022-01-24 While the sensors read the data and send it to files text as values chain, a third script will also run concurrently and serve means of communication between mobile robot scripts and web server. This program first reads both text files and stores each value as a string. The chain will be at format "12,34,56,78,90,12,34,56". It is then concatenated to a string containing the URL of the web server. There final string after concatenation will look like: "IP_address: 9999 / predict /? Sonar =
12,34,56,78,90,12,34,56". The value returned by this URL determines the direction in which the robot will move in response to readings from its environment (see flowchart shown in Fig.8). THE
program executes the aforementioned commands recursively.
V. WEB SERVER AND AI
The web server is created with a Python script that uses the Flask framework.
The server script receives the data that the Python scripts of the Raspberry Pi send to it by calling its IP address. The server web is coded to then relay the data to an AI server, which processes the data to calculate directional controls. Orders are then sent back via the raspberry web server Pi (sent to its IP address), where they are received by a Python script that indicates the exit direction of the motors (refer to the flowchart in Fig.8). THE
directional data returned to the module are in the form of strings, and the three possible values are "0", "1"
and "2". The "0" tells the module to move forward, while "1" and "2" tell the move module left and right respectively.
Explicit details of the math and code behind the AI algorithm can not be fully disclosed due to copyright issues.
Essentially the web server receives the data sent by the eight ultrasonic sensors, the LiDAR and the camera mounted on the cobot.
It then converts said data into string values and then sends it to the AI server. Al server processes the data and sends it back to the server as commands directional.
VI. LIDAR
Once the mobile robot equipped with an ultrasonic sensor is able to avoid the obstacles of autonomously by communicating with the web server and the AI, a sensor of detection and Light ranging (LiDAR) is added to the model. The sensors at ultrasounds are useful for detecting low-level objects closer to the ground, but do not detect at a height enough for a optimum object avoidance. A LiDAR mounted on top of the mobile robot responds to this requirement (as seen in Fig. 9 to the right of the camera).
LiDAR sensors are used to provide remote sensing and more accurate object distances while being able to visually map an environment using of a software image detection.
In addition to ultrasonic sensors, LiDAR sensors are another source information for the AI algorithm that would make obstacle detection more accurate.
Date Received/Date Received 2022-01-24 e -naked 4ieetILM.;"
4.µ
,---FIG. 9. Full robot with TF Min' LiDAR mounted top right support slab LiDAR sensors are similar to ultrasonic sensors, except that the LiDAR sensors use pulses from a laser to collect measurements.
LiDar sensors also have a transmitter and a receiver. The transmitter normally send several pulses per second and the receiver reads the light waves that bounce off an object.
LiDAR sensors, like ultrasonic sensors, also use flight time measurements, except that the speed of sound in air is replaced by the speed of light in the air, since lasers are used (Fig.11). The system currently uses the laser sensor unidirectional TF Mini LiDAR
(Fig.10) as a prototype to test the functionality of Al algorithm.
It looks like the sensors to ultrasound used in the system, but it is much smaller.
4 , ree, =='`),1 : e' r e&V-e=====e to there = ' ==
=r=
) , e FIGURE 10 TF Man LiDAR (ToF) Laser Distance Sensor Date Received/Date Received 2022-01-24 TABLE III: TF MINI LiDAR SPECIFICATIONS
Working voltage 4.5-6V
Average power 0.6W
UART(TTL) Communication Interface Frequency of 100Hz refreshment Maximum range 12m Minimum range 0.3m Field of view angle 2.3 Accuracy ranging 1%(<6m), 2%(6-12m) Size 42x15x16mm e, 0 0.3111 e. 3m 7m 12m g FIG. 11. TF Mini LiDAR Series Diagram VII. MYCO BOT-PI
The myCobot-Pi is a 6-axis collaborative robot (Fig.12). He adopts a Raspberry Pi 4 microprocessor with Raspbian by integrating it into its base, and it is used to program the movement of the cobot. In order to control the movement of the cobot, Python code is used. The robot allows also the programming via the Robotic Operating System (ROS) which is built into its microprocessor RaspberryPi.
The cobot serves as the arm of the mobile robot system and is mounted on the base mobile. For the needs of this product, the cobot is programmed to expand horizontally with its end effector directed towards the bottom. It rotates clockwise and anti-clockwise.
counter clockwise shows between two user-defined positions, similar to a pendulum swinging towards a lateral gravitational attraction. A camera is mounted at the end of the cobot, which allows a environment analysis.
Date Received/Date Received 2022-01-24 Fig. 12. myCobot-Pi VIII. THE CAMERA
The camera used to scan the environment is a Raspberry USB webcam Pi (on the side left of Fig. 13). The camera cable is plugged into one of the ports USB from the Raspberry Pi to the base of the myCobot-Pi. The lens itself is mounted above the effector cobot terminal, so so that it points in the same direction as a protruding clamp outward from the end effector.
The camera streams visual data to a configured local web server through Motion software, running on the cobot's Raspberry Pi. The web server can be rendered accessible to the public through the port forwarding, the configuration of which depends on the configuration of the user's router and security needs.
11111111111.151PINMIMO e,19 =
ddi ko=;
01111111lb Fig. 13. Camera (at u.uche) and mmt-test LIDAR (at right) attached eeffeMeur myCobot-Pi terminal The camera can be programmed to stream data for that the script of robot movement runs. It can also be programmed to take a picture during a Date Received/Date Received 2022-01-24 predefined trigger event (such as a sudden color change) and to store the images in a local directory within the cobot's Raspbian system, or even send it to a server through the Raspberry Pi.
IX. POSITIONING BY TRIANGULATION
The mobile robot has at least 2 Raspberry Pi microprocessors, each with own address IP. In order to accurately locate the position of the robot at all times, the Wi-Fi positioning can to be used.
This geolocation system works by reading the signal strength of the mobile robot via appropriately placed routers.
The first step in triangulation is to find the position horizontal of the mobile robot. This is made by considering two points and forming a triangle with the robot mobile as third point. This will be used to find the position of the mobile robot between two routers.
By comparing the strength of mobile robot signal on both routers, we can find the proximity of the mobile robot by relative to each router. The distance can then be approximated from signal strength. By example, in Fig. 14, the mobile robot is closer to Router 1 than to router 2 as shown by the opacity of the colors representing the strength of the connection.
The problem with using only two routers is that the mobile robot can be on either side of the line that connects the Router 1 and Router 2 (as shown in Fig.14). Therefore, a another router is used and the signal strength of the mobile robot with the router 3 indicates the position by relative to the common line between Router 1 and Router 2.
=
End point of Router 1 work space (xi y1 z1) , , g '-Mobile where Robot (x0,y0,z0) =
=
Router 2 (x2,y2,z2) di>Origin(0,0,0) Fig. 14. Triangulation with 2 wifi routers. The color of the connection represents signal strength (green-good, orange-ok, red-weak) Date Received/Date Received 2022-01-24 The second step is to find the height of the robot and it is calculated of the same way than the horizontal distance, using the three routers and their approximation of the strength of the distance signal. A fourth router Router 4 (Fig.15) is used to a closer approximation accurate horizontal and vertical distance, as with three routers, the approximation of the location is only 4 to 5 feet (1.2 to 1.5 m).
Fig. 15. Triangulation with four wifi routers. The color of the connections represents the power of signal (green: good, orange: ok, red: weak) In order to accurately calculate the distance between the robot and the router, the signal strength in dBm or RSSI
of the router is used. First, a fixed value of the intensity of the signal is assumed which will be used to interpolate the distance. Then the robot is moved so that routers provide the same reading. Finally, the distance from the robot to the specified signal strength of each router is measured. For example, consider a fixed intensity of -50 dBm. The robot is then moved to a position where Router 1 reads - 50 dBm. The distance between the robot and the router 1 is now measured and noted. The same process is repeated with Router 2, Router 3, and Router 3.
router 4.
X. SCANNING THE ENVIRONMENT USING A 2D LIDAR SENSOR
Another reason for the use of LiDAR sensors (Fig.16) is their ability to emit impulses at 3600, which means it can scan the entire environment surrounding the mobile robot, including potential blind spots that ultrasonic sensors may not detect ( Fig.19).
Before being entrusted with performative tasks, the LiDAR must first familiar with his environment. It does this by mapping the environment. The moving robot is programmed to follow a path approximately following the perimeter of the workspace targeted, as well as through the center of the workpiece, the specific trajectory of which depends on the size and shape of space of work. This allows the LiDAR to be exposed to the whole environment and to record all obstacles it detects, including walls and room boundaries (Fig.17 and Fig.18).
Date Received/Date Received 2022-01-24 7' =
µ.410 =
. , fl sorting Fig. 16.YDLiDAR X4 Once the map is registered, the LiDAR device can be assigned target trajectory points, whether communicates to the engines through the AI server. The AI algorithm collaborates with the LiDAR device to find the optimal path to the destination from its current location. THE
along the way, the LiDAR analyzes its environment and sends data to the server in real time. When he encounters an object obstructing its path, the AI server calculates the most efficient path to avoid the object while still directing to the target, then returns directional controls.
I iii ) I;
ïiï = , ' 1 Fig. 17. Example of a map of the workspace recorded by a module LiDAR, approx. 40m2 Date Received/Date Received 2022-01-24 IO.
3.15, front = 1.
...
THE .
/ = . .
. =
...
14 4.b.. 8:1 If , 1.1P
Fig. 18. Example of workspace map recorded by the module LiDAR, approx. 40m2 r 1 #4,e4,1 rti,,-,, ' I
I
I;
:
Fig. 19. Full view of the robot with a 360 LiDAR facing forward TABLE IV: YDLiDAR X4 SPECIFICATIONS
Working voltage 4.8-5.2V
Working current 330-380mA
Baud rate 128000 bps Frequency range 5000 Hz Date Received/Date Received 2022-01-24 Range Resolution <0.5mm(for Range<2m) <1% of distance(Range>2m) Frequency of

6-12 Hz balayage Fréquence PWM 10 kHz Angle de balayage 0-360 Portée maximale 10m Plage minimale 0.12m Résolution angulaire 0.48 -0.52 Précision allant 1%(<6m), 2%(6-12m) Longueur d'onde 775-795 nm laser Puissance laser 3 mW
Dimension 102x71x63 mm XI. TRAVAUX FUTURS
Le robot est d'une conception très unique et innovante, mais a encore beaucoup de place pour l'amélioration. Par exemple, la caméra actuellement utilisée dans le système est très basique et ne produit pas d'images de haute qualité ni de flux en direct qui pourraient être essentiels au serveur AI.
Par conséquent, l'utilisation de meilleures caméras qui capturent des images de bonne qualité et des flux vidéo en direct est nécessaire.
La structure mécanique actuellement utilisée n'est pas entièrement capable de supporter le myCobot Pi au sommet, et le mouvement du robot mobile n'est pas fluide. De plus, certaines parties de la structure utilisent du plastique, qui n'est pas durable. Par conséquent, une mise à niveau doit être apportée à la structure qui utilisera de l'aluminium ou de l'acier afin de pouvoir supporter des charges utiles plus importantes tout en ne gênant pas le mouvement du robot.
Bien que les capteurs actuellement utilisés pour le système soient efficaces, ils ne sont pas durables et ont un champ de vision plus petit, ce qui peut augmenter la sensibilité aux angles morts pendant le mouvement. Par conséquent, des capteurs plus grands et meilleurs seront utilisés afin d'envoyer des données au serveur d'IA de manière plus efficace et plus précise.
Pour que le robot mobile inspecte les réservoirs de carburant, il nécessite l'aide d'un autre robot capable d'escalader les murs, car les réservoirs de carburéacteur sont cloisonnés et le robot doit se déplacer sans effort à travers les ouvertures de chaque cloison.
Le temps nécessaire au robot mobile pour communiquer avec le serveur Web et IA
est minime pour le moment. Cependant, il peut être beaucoup plus faible. L'utilisation de meilleurs capteurs et moteurs capables d'envoyer et de recevoir des commandes beaucoup plus rapidement que ceux actuellement utilisés, et une meilleure connectivité Internet sont des moyens de minimiser la latence.
Date Reçue/Date Received 2022-01-24 Le modèle d'IA qui calcule la direction en fonction de l'entrée des capteurs est toujours en cours de développement et d'optimisation pour garantir que le traitement des données prend moins de temps et que les commandes de direction sont plus précises et instantanées.
XII. ÉQUATIONS
La formule mathématique utilisée par les capteurs à ultrasons pour calculer la distance d'une cible est la suivante :
La distance est le produit de la durée de l'impulsion, qui est le temps mis par l'impulsion pour être transmise et reçue, et la vitesse du son. Cette équation est multipliée par 0,5 car la durée de l'impulsion fournit le temps total de vol, tandis que la distance ne donne que la longueur d'un objet depuis le capteur.
La formule utilisée pour calculer la distance d'un objet cible à un capteur LiDAR est la suivante :
La distance dans cette équation est trouvée de la même manière que dans l'équation précédente, mais dans ce cas, la distance d'un objet par rapport au capteur LiDAR est mesurée en utilisant la vitesse de la lumière.
Date Reçue/Date Received 2022-01-24
6-12Hz scanning PWM frequency 10kHz Scan angle 0-360 Maximum range 10m Minimum range 0.12m Angular resolution 0.48 -0.52 Accuracy ranging 1%(<6m), 2%(6-12m) Wave length 775-795nm laser 3mW laser power Size 102x71x63mm XI. FUTURE WORK
The robot is a very unique and innovative design, but still has a lot room for improvement. For example, the camera currently used in the system is very basic and does not produce high quality images or live streams that could be essential to the AI server.
Therefore, the use of better cameras that capture images of good quality and live video stream is required.
The mechanical structure currently in use is not fully capable of support myCobot Pi at the top, and the movement of the mobile robot is not smooth. Moreover, some parts of the structure use plastic, which is not durable. Therefore, a upgrade should be brought to the structure which will use aluminum or steel in order to be able to bear loads useful while not impeding the movement of the robot.
Although the sensors currently used for the system are efficient, they are not durable and have a smaller field of vision, which may increase sensitivity to blind spots during movement. Therefore, bigger and better sensors will be used to send data to the AI server more efficiently and accurately.
For the mobile robot to inspect the fuel tanks, it requires the help of another robot able to scale walls, as jet fuel tanks are partitioned and the robot must move effortlessly through the openings in each partition.
The time it takes for the mobile robot to communicate with the web and AI server is minimal for moment. However, it can be much lower. The use of best sensors and motors capable of sending and receiving commands much faster than those currently used, and better internet connectivity are ways to minimize the latency.
Date Received/Date Received 2022-01-24 The AI model that calculates direction based on sensor input is still in progress development and optimization to ensure that data processing takes less time and that steering commands are more precise and instantaneous.
XII. EQUATIONS
The mathematical formula used by ultrasonic sensors to calculate the distance from a target is the next one :
The distance is the product of the duration of the pulse, which is the time taken by the impulse to be transmitted and received, and the speed of sound. This equation is multiplied by 0.5 because the duration of the pulse provides total flight time, while distance only provides length of an object from the sensor.
The formula used to calculate the distance from a target object to a sensor LiDAR is as follows:
The distance in this equation is found in the same way as in the previous equation, but in this case, the distance of an object from the LiDAR sensor is measured using the speed of the light.
Date Received/Date Received 2022-01-24

Claims

Robot colla boratif mobile avec évitement d'obstacles Revendications 1. La conception mécanique du robot mobile, en utilisant une structure mécanique originale, en utilisant les transmissions par courroie crantée et les moteurs à driver intégré, avec le mouvement avant-arrière indépendant des deux moteurs.
2. Méthode d'utilisation de 4 types de capteurs de contrôle simultanés et en temps réel, avec correction de position en temps réel :
2.1 positionnement d'encodage Les codeurs incrémentaux optiques sont situés sur les moteurs d'entraînement électriques. Ils mesurent le mouvement de manière très précise et déplacent le robot avec plus de précision, après qu'il a été
positionné moins précisément par les autres méthodes : triangulation, Lidar et détecteurs de proximité.
2.2 positionnement par détecteurs de proximités Ce système utilise 3 scripts python qui s'exécutent sur le Raspberry Pi. Afin d'obtenir les distances lues par les 8 capteurs (voir les details dans le fichier description ou dans le point 3 de ce document).
2.3 positionnement par triangulation Le robot mobile dispose d'au moins 2 microprocesseurs Raspberry Pi, chacun avec sa propre adresse IP. Afin de localiser avec précision la position du robot à tout moment, le positionnement Wi-Fi peut être utilisé.
Ce système de géo localisation fonctionne en lisant la puissance du signal du robot mobile via des routeurs placés de manière appropriée.
La première étape de la triangulation consiste à trouver la position horizontale du robot mobile. Ceci est réalisé en considérant deux points et en formant un triangle avec le robot mobile comme troisième point. Cela servira à trouver la position du robot mobile entre deux routeurs.
En comparant la force du signal du robot mobile sur les deux routeurs, nous pouvons trouver la proximité du robot mobile par rapport à chaque routeur. La distance peut alors être approximée à partir de la puissance du signal. Par exemple, sur la Fig. 14, le robot mobile est plus proche du routeur 1 que du routeur 2, comme indiqué
par l'opacité des couleurs représentant la force de la connexion.
Le problème avec l'utilisation de seulement deux routeurs est que le robot mobile peut se trouver de chaque côté
de la ligne qui relie le routeur 1 et le routeur 2 (comme illustré à la Fig.14). Par conséquent, un autre routeur est utilisé et la force du signal du robot mobile avec le routeur 3 indique la position par rapport à la ligne commune entre le routeur 1 et le routeur 2.

End point of Router 1 workspace (xl ,y1 ,z1 ) , 111>
, rrror rvlobile Robot e (xo,yo,zo) f Router 2 (x2,y2,z2) = Origin (0,0,0) Fig. 14. Triangulation avec 2 routeurs wifi. La couleur de la connexion représente la force du signal (vert-bon, orange-ok, rouge-faible) La deuxième étape consiste à trouver la hauteur du robot et elle est calculée de la même manière que la distance horizontale, en utilisant les trois routeurs et leur approximation de la force du signal de distance. Un quatrième routeur Router 4 (Fig.15) est utilisé pour une approximation plus précise de la distance horizontale et verticale, comme avec trois routeurs, l'approximation de l'emplacement n'est que de 4 à 5 pieds (1,2 à 1,5 m).
Fig. 15. Triangulation avec quatre routeurs wifi. La couleur des connexions représente la puissance du signal (vert : bon, orange : ok, rouge : faible) Afin de calculer avec précision la distance entre le robot et le routeur, la force du signal en dBm ou RSSI
du routeur est utilisée. Tout d'abord, une valeur fixe de l'intensité du signal est supposée qui sera utilisée pour interpoler la distance. Ensuite, le robot est déplacé de sorte que les routeurs fournissent la même lecture. Enfin, la distance du robot à la puissance de signal spécifiée de chaque routeur est mesurée. Par exemple, considérons une intensité fixe de - 50 dBm. Le robot est ensuite déplacé vers une position où le routeur 1 lit - 50 dBm. La distance entre le robot et le routeur 1 est maintenant mesurée et notée. Le même processus est répété avec le routeur 2, le routeur 3 et le routeur 4.
2.4 Positionnement par balayage de l'environnement à l'aide d'un capteur lidar Une autre raison de l'utilisation des capteurs LiDAR (Fig.16) est leur capacité à émettre des impulsions à 360 , ce qui signifie qu'il peut balayer tout l'environnement entourant le robot mobile, y compris les angles morts potentiels que les capteurs à ultrasons peuvent ne pas détecter ( Fig.19).

Avant de se voir confier des tâches performatives, le LiDAR doit d'abord se familiariser avec son environnement. Il le fait en cartographiant l'environnement. Le robot mobile est programmé pour suivre une trajectoire suivant approximativement le périmètre de l'espace de travail ciblé, ainsi qu'à travers le centre de la pièce, la trajectoire spécifique de celui-ci dépendant de la taille et de la forme de l'espace de travail. Cela permet au LiDAR d'être exposé à tout l'environnement et d'enregistrer tous les obstacles qu'il détecte, y compris les murs et les limites de la pièce (Fig.17 et Fig.18).
Une fois la carte enregistrée, le dispositif LiDAR peut se voir attribuer des points de trajectoire cible, qu'il communique aux moteurs au moyen du serveur AI. L'algorithme Al collabore avec le dispositif LiDAR
pour trouver le chemin optimal vers la destination à partir de son emplacement actuel. Le long du chemin, le LiDAR analyse son environnement et envoie des données au serveur en temps réel. Lorsqu'il rencontre un objet obstruant son chemin, le serveur Al calcule le chemin le plus efficace pour éviter l'objet tout en se dirigeant vers la cible, puis renvoie des commandes directionnelles.
3. La manière de détecter et contourner les obstacles, par le robot mobile, avec un modèle qui utilise 8 capteurs de proximité
Ce système utilise 3 scripts python qui s'exécutent sur le Raspberry Pi. Afin d'obtenir les distances lues par les 8 capteurs (Fig.7), 2 programmes python ont été créés. Le premier programme lit les données des capteurs 1 à 4 et le second programme lit les données des capteurs 5 à 8, et les deux programmes s'exécutent de manière récursive pratiquement sans délai.
Deux programmes ont été utilisés au lieu d'un programme pour les 8 capteurs afin que les données soient lues plus rapidement à partir des capteurs. En effet, avec un programme, chaque capteur doit attendre 7 autres capteurs avant de pouvoir lire à nouveau des valeurs, alors qu'avec deux programmes, chaque capteur n'attend que 3 autres capteurs. Ces programmes sont presque identiques les uns aux autres, et ils servent chacun à lire la valeur de leurs capteurs respectifs avant d'envoyer les données à
leurs propres fichiers texte, sous forme de valeurs de chaîne. Chaque fichier texte contient des données lues par 4 capteurs (le premier fichier texte est pour les capteurs 1-4, et le second, 5-8), et les fichiers texte sont écrasés à chaque itération du programme.

Les programmes utilisent le module "Ultrasonic Avoidance", qui est un module par défaut fourni par SunFounder qui calcule la distance des objets lus par le capteur. Ceci est accompli en calculant le temps nécessaire pour recevoir un signal d'impulsion une fois émis.
La distance est d'abord lue par le capteur puis affectée à une variable.
Ensuite, afin d'éviter les erreurs logiques, les distances lues par les capteurs ne sont considérées que si elles sont positives. Une fois les valeurs positives prises, elles sont ensuite vérifiées si elles se situent dans la plage de 0 à 80 centimètres.
Toute valeur supérieure à 80 centimètres est ramenée à 80 centimètres, qui est la limite supérieure définie dans le système. Si la valeur se situe dans la plage définie, elle est convertie en une valeur de chaîne avec un espace ( ) et une virgule ( , ) ajoutés. Si elle a été
convertie en 80, la variable prend 80 comme valeur et est ensuite convertie en une valeur de chaîne avec l'espace et la virgule suffixés.
Une fois que les quatre capteurs ont lu une valeur et ont une chaîne qui représente la valeur lue, ils sont ensuite concaténés et envoyés au fichier texte.
Pendant que les capteurs lisent les données et les envoient dans des fichiers texte sous forme de valeurs de chaîne, un troisième script s'exécutera également simultanément et servira de moyen de communication entre les scripts du robot mobile et le serveur Web. Ce programme lit d'abord les deux fichiers texte et stocke chaque valeur sous forme de chaîne. La chaîne sera au format "12,34,56,78,90,12,34,56". Il est ensuite concaténé à une chaîne contenant l'URL du serveur Web. La chaîne finale après concaténation ressemblera à : "IP_address: 9999 / predict /? Sonar =
12,34,56,78,90,12,34,56". La valeur renvoyée par cette URL détermine la direction dans laquelle le robot se déplacera en réponse aux lectures de son environnement (voir l'organigramme présenté à la Fig.8). Le programme exécute les commandes susmentionnées de manière récursive.
5. le modèle d'intelligence artificielle pour contourner les obstacles basé
sur 8 capteurs de proximité
disposés symétriquement autour de la structure mécanique. Leur rôle est de détecter les obstacles en temps réel et de modifier, en temps réel, la trajectoire du robot, afin qu'il ne heurte pas les objets autour de lui, lorsqu'il se déplace. Plusieurs modèles ont été testés auparavant, mais celui-ci a donné les meilleurs résultats.
Mobile collaborative robot with obstacle avoidance Claims 1. The mechanical design of the mobile robot, using a structure original mechanics, using toothed belt transmissions and motors with integrated driver, with forward-backward movement independent of the two motors.
2. Method of using 4 kinds of control sensors simultaneously and in real time, with correction real-time position:
2.1 encoding positioning Optical incremental encoders are located on the drive motors electrical. They measure the movement in a very precise way and move the robot with more precision, after it has been positioned less precisely by the other methods: triangulation, Lidar and proximity detectors.
2.2 positioning by proximity detectors This system uses 3 python scripts that run on the Raspberry Pi. In order to get the distances read by the 8 sensors (see details in the file description or in point 3 of this document).
2.3 positioning by triangulation The mobile robot has at least 2 Raspberry Pi microprocessors, each with own address IP. In order to accurately locate the position of the robot at all times, the Wi-Fi positioning can to be used.
This geo-location system works by reading the signal strength of the mobile robot via appropriately placed routers.
The first step in triangulation is to find the position horizontal of the mobile robot. This is made by considering two points and forming a triangle with the robot mobile as third point. This will be used to find the position of the mobile robot between two routers.
By comparing the strength of mobile robot signal on both routers, we can find the proximity of the mobile robot by relative to each router. The distance can then be approximated from signal strength. By example, in Fig. 14, the mobile robot is closer to Router 1 than to router 2 as shown by the opacity of the colors representing the strength of the connection.
The problem with using only two routers is that the mobile robot can be on either side of the line that connects the Router 1 and Router 2 (as shown in Fig.14). Therefore, a another router is used and the signal strength of the mobile robot with the router 3 indicates the position by relative to the common line between Router 1 and Router 2.

End point of Router 1 work space (xl ,y1 ,z1 ) , 111>
, rrror rvmobile Robot e (xo,yo,zo) f Router 2 (x2,y2,z2) =Origin(0,0,0) Fig. 14. Triangulation with 2 wifi routers. The color of the connection represents signal strength (green-good, orange-ok, red-weak) The second step is to find the height of the robot and it is calculated of the same way than the horizontal distance, using the three routers and their approximation of the strength of the distance signal. A fourth router Router 4 (Fig.15) is used to a closer approximation accurate horizontal and vertical distance, as with three routers, the approximation of the location is only 4 to 5 feet (1.2 to 1.5 m).
Fig. 15. Triangulation with four wifi routers. The color of the connections represents the power of signal (green: good, orange: ok, red: weak) In order to accurately calculate the distance between the robot and the router, the signal strength in dBm or RSSI
of the router is used. First, a fixed value of the intensity of the signal is assumed which will be used to interpolate the distance. Then the robot is moved so that routers provide the same reading. Finally, the distance from the robot to the specified signal strength of each router is measured. For example, consider a fixed intensity of -50 dBm. The robot is then moved to a position where Router 1 reads - 50 dBm. The distance between the robot and the router 1 is now measured and noted. The same process is repeated with Router 2, Router 3, and Router 3.
router 4.
2.4 Positioning by scanning the environment using a lidar sensor Another reason for the use of LiDAR sensors (Fig.16) is their ability to emit impulses at 360, which means it can scan the entire environment surrounding the mobile robot, including potential blind spots that ultrasonic sensors may not detect ( Fig.19).

Before being entrusted with performative tasks, the LiDAR must first familiar with his environment. It does this by mapping the environment. The moving robot is programmed to follow a path approximately following the perimeter of the workspace targeted, as well as through the center of the workpiece, the specific trajectory of which depends on the size and shape of space of work. This allows the LiDAR to be exposed to the whole environment and to record all obstacles it detects, including walls and room boundaries (Fig.17 and Fig.18).
Once the map is registered, the LiDAR device can be assigned target trajectory points, whether communicates to the engines through the AI server. The Al algorithm collaborates with the LiDAR device to find the optimal path to the destination from its location current. Along the path, the LiDAR analyzes its environment and sends data to the server by real time. When he encounters an object obstructing its path, the Al server calculates the path more effective in preventing the object while moving towards the target, then returns commands directional.
3. The way of detecting and circumventing obstacles, by the mobile robot, with a model that uses 8 proximity sensors This system uses 3 python scripts that run on the Raspberry Pi. In order to obtain the distances read by the 8 sensors (Fig.7), 2 python programs were created. The first program reads data sensors 1 to 4 and the second program reads data from sensors 5 to 8, and the two programs run recursively with virtually no delay.
Two programs were used instead of one program for the 8 sensors so that the data are read faster from the sensors. Indeed, with a program, each sensor must wait for 7 more sensors before you can read values again, then that with two programs, each sensor only waits for 3 other sensors. These programs are almost identical to each other others, and they each serve to read the value of their respective sensors before sending the data to their own text files, as string values. Each file text contains data read by 4 sensors (the first text file is for sensors 1-4, and the second, 5-8), and the files text are overwritten with each iteration of the program.

The programs use the "Ultrasonic Avoidance" module, which is a module default provided by SunFounder which calculates the distance of objects read by the sensor. this is accomplished by calculating the time necessary to receive a pulse signal once emitted.
The distance is first read by the sensor and then assigned to a variable.
Then, in order to avoid errors logical, the distances read by the sensors are only considered if they are positive. Once the positive values taken, they are then checked if they are within in the range from 0 to 80 centimeters.
Any value greater than 80 centimeters is reduced to 80 centimeters, which is the upper limit defined in the system. If the value is within the defined range, it is converted to a value of string with a space ( ) and a comma ( , ) appended. If she was converted to 80, the variable takes 80 as value and is then converted to a string value with space and the comma suffixed.
Once all four sensors have read a value and have a string that represents the read value, they are then concatenated and sent to the text file.
While the sensors read the data and send it to files text as values chain, a third script will also run concurrently and serve means of communication between mobile robot scripts and web server. This program first reads both text files and stores each value as a string. The chain will be at format "12,34,56,78,90,12,34,56". It is then concatenated to a string containing the URL of the web server. There final string after concatenation will look like: "IP_address: 9999 / predict /? Sonar =
12,34,56,78,90,12,34,56". The value returned by this URL determines the direction in which the robot will move in response to readings from its environment (see flowchart shown in Fig.8). THE
program executes the aforementioned commands recursively.
5. the artificial intelligence model to circumvent obstacles based on 8 proximity sensors arranged symmetrically around the mechanical structure. Their role is to detect obstacles real time and to modify, in real time, the trajectory of the robot, so that it do not hit objects around him as he moves. Several models have been tested before, but this one gave the best results.
CA3146577A 2022-01-24 2022-01-24 Mobile collaborative robot with obstacle avoidance Pending CA3146577A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA3146577A CA3146577A1 (en) 2022-01-24 2022-01-24 Mobile collaborative robot with obstacle avoidance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA3146577A CA3146577A1 (en) 2022-01-24 2022-01-24 Mobile collaborative robot with obstacle avoidance

Publications (1)

Publication Number Publication Date
CA3146577A1 true CA3146577A1 (en) 2023-07-24

Family

ID=87424041

Family Applications (1)

Application Number Title Priority Date Filing Date
CA3146577A Pending CA3146577A1 (en) 2022-01-24 2022-01-24 Mobile collaborative robot with obstacle avoidance

Country Status (1)

Country Link
CA (1) CA3146577A1 (en)

Similar Documents

Publication Publication Date Title
US11470284B2 (en) Rotating LIDAR with co-aligned imager
JP7237024B2 (en) a detector for determining the position of at least one object
US11067388B2 (en) 3D asset inspection
CN105100638B (en) The optical region of point of use matrix lighting monitors
EP2155443B1 (en) Domestic robot assistant having a rolling chassis
US20200326717A1 (en) Transferring synthetic lidar system data to real world domain for autonomous vehicle training applications
EP2824418A1 (en) Surround sensing system
CN105723239A (en) Distance measurement and imaging system
KR20100019576A (en) Distance sensor system and method
US11887278B2 (en) System and method for training a neural network to fill gaps between scan points in images and to de-noise point cloud images
WO2009046519A1 (en) System and method for the three-dimensional mapping of a structural surface
US20200278532A1 (en) Mems package with double-sided mirror
US11493609B2 (en) MEMS device with integrated mirror position sensor
WO2020151429A1 (en) Robot dog system and implementation method therefor
CA3146577A1 (en) Mobile collaborative robot with obstacle avoidance
US20240244330A1 (en) Systems and methods for capturing and generating panoramic three-dimensional models and images
CN106382920A (en) Multifunctional visual sensor, mobile robot and control method of mobile robot
WO2016097609A1 (en) System for three-dimensional image capture while moving
CN106199618A (en) A kind of electronic equipment and localization method
KR102431452B1 (en) Underwater survey system using under water drone
KR102506812B1 (en) Autonomous vehicle
US20240219542A1 (en) Auto-level step for extrinsic calibration
US12149868B2 (en) Rotating LIDAR with co-aligned imager
EP4180837A1 (en) Removing reflection from scanned data
CN118984417A (en) Space perception dynamic camera, detection method and image establishment method