FR 2916152 A1 20081121 FR 0755059 A 20070514 ROBOT POLYVALENT La présente invention se rapporte à une plate-forme mobile de type robot comportant une structure lui conférant une grande polyvalence et intégrant un protocole de programmation simplifiant son adaptation à différentes applications. bans le monde de la robotique, de nombreux robots mobiles ont été développés dans les domaines du nettoyage, de la surveillance, du divertissement,.... Cependant, les robots existants ont tous été développés afin de répondre aux contraintes de leurs applications si bien que les robots d'un domaine considéré, par exemple les robots de nettoyage, sont conçus pour leur domaine et peuvent difficilement s'adapter à d'autres domaines. Par ailleurs, même si un robot d'un domaine considéré était modifié pour le rendre compatible avec un autre domaine, sa structure ne serait pas adaptée pour ce domaine rendant le robot moins performant. Le développement des robots domaine par domaine conduit à les produire à l'unité ou en très petites séries ce qui se traduit par des coûts de fabrication relativement élevés. Ce point constitue un frein au développement des robots et restreint fortement leur démocratisation. En terme de conception, les robots actuels sont développés autour de leur fonction principale. Ainsi, dans le cas par exemple du nettoyage, le robot comprend une structure roulante intégrant le ou les outils pour le nettoyage. Afin de le rendre autonome, le robot intègre une commande susceptible de contrôler le déplacement de la structure et le fonctionnement du ou des outils. Cette commande comprend une programmation permettant de rendre le robot plus ou moins autonome, ce dernier étant susceptible de réagir seul à son environnement, notamment à des événements prévisibles. L'autonomie suppose que la programmation prévoit la survenue de certains évènements, puis la ou les réactions appropriées à ceux-ci. Comme pour la structure, même s'il existe un tronc commun à savoir un système d'exploitation similaire à celui d'un ordinateur, assurant le fonctionnement des mémoires et des microprocesseurs, chaque concepteur de robot développe un langage qui lui est propre pour programmer les différentes tâches ou applications du robot, notamment les applications relatives au déplacement. D'autre part, la diversité des types de langages de programmation découle également des constituants utilisés tels que les capteurs, moteurs ou autres qui ont des entrées et des sorties spécifiques et non homogènes d'un constituant à l'autre. Ces coûts de développement de programmation spécifiques à chaque application conduisent là encore à augmenter les coûts des robots. Par ailleurs, ces langages de programmation sont si spécifiques qu'ils ne laissent aucune autonomie à l'utilisateur du robot qui ne peut le programmer pour éventuellement adjoindre une nouvelle fonctionnalité. Aussi, la présente invention vise à pallier les inconvénients de l'art antérieur en proposant une structure d'un robot mobile de conception simple et polyvalente, sur laquelle peuvent s'adapter aisément des modules en fonction des tâches affectées au robot, ladite structure conférant au robot une grande maniabilité. Enfin, selon un autre objectif, l'invention vise à proposer également un protocole de programmation commun à différentes applications, à la majorité des constituants des robots, simplifiant la programmation du robot. A cet effet, l'invention a pour objet un robot comprenant un châssis roulant, des actionneurs assurant le déplacement du châssis roulant, des moyens de contrôle-commande renseignés par des capteurs, caractérisé en ce que le châssis roulant comprend deux roues motrices ayant des axes de rotation dans un plan transversal et deux éléments roulants selon au moins deux axes de rotation et/ou de pivotement ayant chacun un axe de pivotement vertical disposé dans le plan médian longitudinal du robot. D'autres caractéristiques et avantages ressortiront de la description qui va suivre de l'invention, description donnée à titre d'exemple uniquement, en regard des dessins annexés sur lesquels : - la figure 1 est une vue en perspective illustrant la partie avant du robot selon l'invention, - la figure 2 est une vue en perspective illustrant la partie arrière du robot selon l'invention, - la figure 3 est une vue latérale du robot, - la figure 4 est une vue en perspective illustrant le châssis roulant, - la figure 5 est une vue en perspective illustrant l'intérieur du robot, le capotage supérieur étant soulevé, - la figure 6 est une vue de dessus montrant l'angle du dégagement prévu pour le laser, - la figure 7 est une vue en perspective illustrant des accessoires du robot, notamment une station d'accueil pour recharger automatiquement les moyens d'accumulation d'énergie, des rehausses, un bras manipulateur et un mât susceptible de porter une caméra, et - la figure 8 est un schéma illustrant un premier exemple d'une architecture de commande, - la figure 9 est un schéma illustrant l'architecture de commande pour un mode de fonctionnement dit recopie de trajectoire. Sur les différentes figures, on a représenté en 10 un robot selon l'invention, ce dernier étant plus particulièrement adapté pour déambuler dans un environnement domestique ou industriel. Selon l'invention, le robot forme une plate-forme mobile sur laquelle peuvent être rapportés différents éléments afin de configurer le robot selon la ou les tâches qui lui sont affectées. Ce robot comprend en partie inférieure un châssis roulant 12 illustré en détails sur la figure 4. Ce châssis 12 comprend une première poutre 14 disposée dans un plan transversal supportant à chacune de ses extrémités une roue motrice 16 dont l'axe de rotation est sensiblement horizontal et disposé dans un plan transversal. A titre indicatif, l'empattement du robot est de l'ordre de 350 à 400 mm. Pour la suite de la description, on entend par direction transversale, la direction perpendiculaire à la direction longitudinale (matérialisée par la flèche 18 sur les figures) qui correspond au mouvement avant/arrière du robot. En complément, le châssis 12 comprend une seconde poutre 20, perpendiculaire à la première et formant avec cette dernière une croix, à laquelle sont reliées de 15 part et d'autre de la première poutre 14 des roues folles 22. Chaque roue folle comprend un premier axe de rotation horizontal relié à une chape elle-même montée en rotation autour d'un axe de pivotement 24 sensiblement vertical relié à la seconde poutre 20. Avantageusement, la chape d'au moins une des roues folles 22 peut se translater verticalement le long de 20 l'axe de pivotement de l'ordre d'une dizaine de millimètre pour permettre au robot d'accéder à des rampes de l'ordre de 6 . Pour chaque roue folle, des moyens de rappels, un ressort par exemple, tendent à contraindre la roue folle et plus particulièrement la chape en contact avec le sol et à garantir la stabilité horizontale du robot. La force de rappel du ressort est 25 adaptée en fonction de la masse du robot pour obtenir une certaine force d'adhérence au niveau des roues motrices. Ainsi la force d'adhérence au niveau des roues motrices ne doit pas descendre au-dessous d'un seuil prédéterminé de l'ordre de 100N. A titre indicatif, la distance entre les axes de pivotement 24 est de l'ordre de 430 mm. En variante, une roue folle peut être remplacée par un élément roulant selon au moins deux axes de rotation et/ou de pivotement. Cette configuration disposant les roues en losange permet d'obtenir une stabilité accrue, par rapport à une configuration à trois roues et une grande maniabilité le robot pouvant tourner sur lui-même, autour d'un axe vertical passant par son centre. Selon les variantes, les poutres, notamment la seconde poutre, peuvent être 10 réalisées en plusieurs parties. Dans tous les cas, les roues motrices 16 ont des axes de rotation dans un plan transversal alors que les roues folles 22 ont des axes de pivotement verticaux disposés dans le plan médian longitudinal. Ainsi, le châssis peut être remplacé par une coque porteuse. 15 Comme illustré sur la figure 5, le robot comprend d'une part des actionneurs assurant le déplacement du châssis roulant notamment deux motorisations 26, chacune destinée à entrainer en rotation respectivement une roue motrice 16, des moyens 28 d'accumulation d'énergie, et d'autre part des moyens 30 de contrôle-commande assurant la gestion des différents éléments du robot. Selon 20 un mode de réalisation, les motorisations 26 sont de type électrique et les moyens 28 d'accumulation d'énergie des batteries. Avantageusement, les moteurs sont des moteurs sans réducteur à courant continu, la suppression du réducteur permettant un gain de place et contribuant à améliorer la fiabilité mécanique et la limitation des jeux. 25 Avantageusement, les moyens 28 d'accumulation sont disposés en partie centrale, les motorisations 26 et les moyens 30 de contrôle-commande répartis autour afin d'optimiser la répartition des masses et placer le centre de gravité en position centrale, le plus bas possible pour optimiser la stabilité. L'ensemble de ces éléments est protégé par une carrosserie. Cette dernière comprend un premier capotage 32 formant une ceinture et un second capotage 34 formant couvercle. Selon les variantes, les premier et second capotages peuvent être distincts ou réalisés d'un seul tenant. Le premier capotage 32 a une section horizontale sensiblement carrée ou rectangulaire avec des angles arrondis. Les roues 16 sont protégées par le capotage 32, seuls les flancs extérieurs étant visibles et venant affleurer avec la surface extérieure du capotage 32. A titre indicatif, le premier capotage a une larguer de l'ordre de 400 mm, une longueur de l'ordre de 460 mm et une hauteur de l'ordre de 120 mm, et le premier capotage s'inscrit dans un diamètre de l'ordre de 550 mm. La garde au sol est de l'ordre de 80 mm. Le second capotage 34 comprend une plaque supérieure 36 dont le périmètre est sensiblement identique à la section du premier capotage 32, ladite plaque étant décalée vers le haut par rapport au premier capotage 32 d'une distance de l'ordre de 40 mm pour former une fente horizontale 38 dont la fonction sera détaillée par la suite. Une paroi latérale 40 permet de fermer la carrosserie entre le premier capotage et le second capotage et de délimiter le fond de la fente 38. La plaque supérieure 36 comprend des moyens de fixation d'accessoires sur le robot illustrés sur la figure 7, par exemple une caméra dans le cas d'un robot utilisé pour la surveillance ou un bras manipulateur. En variante, une rehausse 41 peut être solidarisée sur la plaque supérieure 36, cette rehausse délimitant une cavité dans laquelle peuvent être disposés différents accessoires, ladite rehausse comprenant en partie supérieure une plaque sensiblement horizontale comprenant des moyens de liaison analogues à ceux de la plaque supérieure 36 de manière à fixer des accessoires ou une autre rehausse. Pour renseigner les moyens 30 de contrôle-commande, le robot comprend des capteurs. Selon l'invention, il comprend au moins deux familles de capteurs, une ceinture 42 de capteurs à ultrasons ainsi qu'un laser ou un radar 44. La ceinture 42 comprend des capteurs à ultrasons prévus au niveau du bord supérieur du premier capotage 32. On privilégie les capteurs à ultrasons pour assurer une détection précise et fiable des objets à une faible distance. Pour assurer un repérage satisfaisant la ceinture 42 comprend des capteurs à ultrasons 42.1 au niveau des angles du premier capotage, un capteur à ultrasons 42.2 au niveau de chaque face latérale du robot, un capteur à ultrasons 42.3 sur la face arrière, et deux capteurs à ultrasons 42.4 disposés de manière symétrique sur la face avant du robot. Avantageusement, les capteurs 42.2 sont décalés vers l'avant par rapport à l'axe de rotation des roues motrices 16. Cette configuration permet de privilégier le 15 repérage vers l'avant du robot. Dans tous les cas, les capteurs sont affleurants avec les éléments de carrosserie afin de ne pas perturber les ondes émises ou reçues. Le robot comprend un laser 44 disposé au-dessus de la ceinture 42, dans la fente 38 dont le fond constitué par la paroi 40 comprend deux pans orientés vers 20 l'arrière disposés de manière symétrique et formant un angle de l'ordre de 240 . Selon l'invention, le laser 44 est protégé par le second capotage 34. Ce laser qui peut être remplacé par un radar permet de détecter les ob jets à une plus grande distance, mais aussi construire des cartes de l'environnement. Le dégagement 38 permet d'optimiser le champ de vision du laser, ce dernier 25 étant toutefois protégé par le capotage supérieur. Cette détection d'éléments disposés vers l'arrière permet lors d'un passage de porte de toujours visualiser le cadre de la porte et de continuer à renseigner les services gérant les déplacements du robot pendant un instant après le franchissement de ladite porte. En complément de la ceinture 42 de capteurs à ultrasons et du laser 44, le robot comprend un système odométrique permettant de mesurer les déplacements du robot. En complément, le robot peut comprendre en partie inférieure du premier capotage 32 des capteurs de choc, par exemple des pare-chocs sensibles 46, et/ou au moins un capteur vidéo 48 ou une caméra (visible sur la figure 7). Le capteur 48 complète avantageusement l'odométrie, les capteurs ultrasons et le laser ou le radar, dans les fonctions de détection d'obstacle, de localisation du robot dans son environnement, ou de reconstruction 2D et 3D de son environnement. Sur la figure 7, on a représenté une station d'accueil 50 utilisée notamment pour recharger les batteries 28. A cet effet, au moins une des faces latérales du robot comprend des moyens de connexion 52 pour assurer le transfert d'énergie. Comme illustré en figure 2, la face arrière comprend au moins un logement 54, de préférence deux dans lesquels sont placés des prises, des voyants et/ou des moyens de contrôle ou de réglage. Avantageusement, les moyens 30 de contrôle-commande comprennent des moyens pour communiquer avec d'autres robots, des ordinateurs ou des terminaux tels qu'un téléphone mobile ou un assistant personnel par exemple, la transmission pouvant s'opérer par un raccordement de type filaire ou par ondes électromagnétiques utilisant différents protocoles de communication, voire par Internet. Concernant la partie programmation, le robot comprend un protocole de programmation particulier. Le fondement de la programmation est une architecture orientée services, chaque fonction étant encapsulée dans un service (ou sous-programme) autonome fonctionnellement. Les services communiquent entre eux par transmission de messages de différents types. Chaque service comprend un contrat définissant les types de message qu'il peut recevoir, le format des données d'entrée et le format des données de sortie qui sont le résultat du traitement des données d'entrée par la fonction ou l'algorithme implémenté dans le service. La programmation du robot revient ainsi à définir une architecture de commande dont un exemple est illustré en figure 8, qui définit les services qui doivent être exécutés ainsi que les contrats et messages qui définissent les relations entre les services. Selon une caractéristique de l'invention, les services 60 sont divisés en deux catégories appelées par la suite couches, comme illustré sur la figure 8 une première couche 62 correspondant aux services relatifs à l'interfaçage avec les périphériques matériels, tels que les capteurs et les actionneurs, et une seconde couche 64 correspondant aux services de traitement algorithmiques et de robotique. Certains services de la seconde couche 64 ont une fonction spécifique visant à assurer la sécurité de l'application robotique et/ou la gestion dynamique de l'architecture en permettant entre autre de surveiller le bon fonctionnement des services en temps-réel et de permettre d'éventuelles modifications dynamiques de l'architecture de commande. Cette architecture orientée services permet de constituer une bibliothèque de services génériques qui peuvent être utilisés sur plusieurs robots et pour plusieurs applications. Cette configuration permet de rendre la programmation générique, réutilisable et simple. Cette bibliothèque comprend une première famille de services correspondant à l'interfaçage avec le matériel, notamment avec les capteurs ou les actionneurs, une seconde famille de services de traitements d'algorithmes déterminant le comportement du robot ainsi que la définition de contrats génériques permettant de standardiser les échanges entre les services de même type : tous les services rendant une fonction identique doivent publier le même contrat générique. L'utilisation de contrats génériques permet d'interchanger très facilement soit les services matériels et donc de remplacer aisément un capteur par un autre, soit les services algorithmiques pour s'adapter aux besoins des applications découlant des tâches affectées au robot. Un autre avantage découlant de l'invention réside dans la capacité d'exécuter l'architecture de commande indifféremment sur un robot réel ou de manière virtuelle lors d'une simulation dynamique et graphique qui reproduit fidèlement le comportement du robot réel. Selon l'invention, l'architecture de commande comprend un ensemble de matériels (notamment les capteurs et les actionneurs) et d'algorithmes assurant des fonctions identifiées et qui communiquent entre eux via des contrats génériques. Ainsi, même si les caractéristiques techniques et les technologies d'un type de matériel ou d'algorithmes sont différentes, les contrats génériques permettant de les faire communiquer sont identiques. Selon une caractéristique de l'invention, l'architecture de commande comprend un service appelé beviceManager qui permet de lancer l'application en deux phases. Ainsi, ce service lance les services de la première couche 62, notamment en vérifiant leur état de fonctionnement, puis les services de la seconde couche 64. En entrée, ce service reçoit un contrat générique qui comprend la liste des services qui doivent être utilisés et l'ordre de lancement. Concernant la gestion des déplacements, le robot dispose de cinq modes de 25 fonctionnement : - le mode télé-opéré selon lequel il est possible de piloter le robot à distance à partir des données transmises par les capteurs, - le mode recopie de trajectoires pré-enregistrées selon lequel il est possible d'apprendre au robot les déplacements pour qu'il les répète par la suite, - le mode supervisé selon lequel on coordonne les déplacements d'une flotte de robots en temps réel, - le mode explorateur selon lequel le robot génère automatiquement des mouvements afin d'explorer son environnement, d'en créer une carte, ou de se rendre à une destination quelconque, et - le mode programmé selon lequel l'utilisateur télécharge des nouveaux services et/ou une nouvelle architecture de commande pour donner au robot un comportement spécifique. Pour mieux préciser l'invention, l'architecture de commande du mode de recopie de trajectoire est détaillée au regard de la figure 9. La première couche comprend trois services - un châssis robotique qui publie deux contrats génériques, le premier contrat appelé odometry qui fournit une information relative au déplacement et un second contrat appelé DifferentialDrive qui attend au moins une donnée relative à la vitesse d'avance ; - un capteur ultrasons qui permet de détecter des obstacles et publie un contrat générique appelé UltraSoundSensor ; - un capteur laser qui publie un contrat générique LaserSensor . La seconde couche comprend six services : - un premier service appelé Collisionbetection qui traite les données des contrats UltraSoundSensor et LaserSensor et permet de déterminer si un obstacle est dans l'environnement du robot pour adapter la vitesse et corrige le contrat DifferentialDrive transmis au châssis du robot pour réduire ou non la vitesse en fonction de l'obstacle ; - un deuxième service appelé Odometry2Localization qui reçoit le contrat Odometry et détermine la position courante du robot à partir des données de déplacement et publie un contrat générique Localization ; - un troisième service appelé Local isationRecorder qui reçoit le contrat générique Localization l'informant sur la position du robot, ledit service enregistrant les positions du robot dans le temps, notamment lors d'une phase d'apprentissage, afin de définir une trajectoire qui est transmise à un service TrajectoryManager ; - un quatrième service appelé TrajectoryManager utilisé comme base de données de trajectoires stockant de nouvelles trajectoires en mode apprentissage ou fournissant des trajectoires apprises en mode répétition de trajectoire, - un cinquième service appelé RobuLabManager ayant pour fonction en mode recopie de trajectoire de sélectionner une trajectoire, de la demander au service TrajectoryManager et de la transmettre au service ProportionalTrajectorybifferentialControl ; un sixième service appelé ProportionalTrajectorybifferentialControl utilisé pour les robots de type différentiel et susceptible de suivre une trajectoire en utilisant un algorithme de commande proportionnelle à l'erreur latérale, ce service recevant un premier contrat générique en provenance du service RobuLabManager lui indiquant la trajectoire à suivre ainsi qu'un second contrat générique Localization provenant du service Odometry2Localization lui indiquant la position du robot. En fonction de la position du robot et de la position théorique définie par la trajectoire, ce service calcule les vitesses d'avance et de rotation pour ramener le robot sur la trajectoire et transmet un contrat générique bifferentialbrive au châssis du robot. Le contrat générique LaserSensor permet de fournir des données relatives à une liste d'échos comportant pour chaque écho la distance d'impact, l'angle d'impact et la présence ou non d'une surface de réflexion. A titre d'exemple, il est défini de la manière suivante : [DataContract] public class Echo { [DataMember] public double Distance; [DataMember] public double Angle; [DataMember] 15 public bool Overflow; [DataMember] public bool Reflector; 20 Le contrat générique UltraSoundSensor permet de fournir une mesure de distance par un ou plusieurs capteurs à ultrasons. A titre d'exemple, il est défini de la manière suivante : [DataContract] 25 public class UltraSoundMeasurement { [DataMember] public Pose Pose; } [DataMember] public double MaxDistance; [DataMember] public double MinDistance; [DataMember] public double Distance; [DataMember] public double Resolution; } 15 Le contrat générique Odometry comprend des données relatives au déplacement incrémentai AX, AY, ATeta du robot. A titre d'exemple, il est défini de la manière suivante : [DataContractO] public class OdometryState 20 { [DataMember] public string Description; [DataMember] 25 public int Identifier; [DataMember] public DateTime TimeStamp; 1410 [DataMember] public TimeSpan Duration; [DataMember] public double DeltaX; [DataMember] public double DeltaY; [DataMember] public double DeltaTheta; } Le contrat DifferentialDrive permet de commander la motorisation afin d'imposer une vitesse de translation, une vitesse de rotation, le différentiel étant obtenu par la différence de vitesses entre les deux roues. A titre d'exemple, il est défini de la manière suivante : [DataContractO] public class DifferentialDriveState { [DataMember] public string Description; [DataMember] public int Identifier; [DataMember] public double LinearSpeed; 15 [bataMember] public double AngularSpeed; [bataMember] public bifferentialbriveProperties Properties; } Un contrat générique Carbrive permet de commander un robot dont le changement de direction découle du braquage de roues en lui imposant une vitesse d'avance et l'angle de braquage. A titre d'exemple, il est défini de la manière suivante : [bataContract] public class CarbriveProperties { [bataMember] public double MaxSpeed; [bataMember] 20 public double MinSpeed; [bataMember] public double MaxSteer; 25 [bataMember] public double MinSteer; [bataMember]15 public double VehicleLength; } REVENDICATIONS 1. Robot comprenant un châssis roulant (12), des actionneurs (26) assurant le déplacement du châssis roulant (12), des moyens (30) de contrôle-commande renseignés par des capteurs, caractérisé en ce que le châssis roulant (12) comprend deux roues motrices (16) ayant des axes de rotation dans un plan transversal et deux éléments roulants (22) selon au moins deux axes de rotation et/ou de pivotement ayant chacun un axe de pivotement vertical (24) disposé dans le plan médian longitudinal du robot. 2. Robot selon la revendication 1, caractérisé en ce qu'au moins un des éléments roulants (22) selon au moins deux axes de rotation et/ou de pivotement peut se translater selon son axe de pivotement (24) pour permettre au robot l'accès à des plans inclinés. 3. Robot selon la revendication 2, caractérisé en ce que des moyens de rappels sont prévus pour maintenir l'élément roulant (22) selon au moins deux axes de rotation et/ou de pivotement en contact avec le sol. 4. Robot selon la revendication 3, caractérisé en ce que les moyens de rappel exercent un effort permettant d'obtenir au niveau des roues motrices (16) une adhérence au sol ne descendant pas au-dessous d'un seuil déterminé. 5. Robot selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une barrière (42) de capteurs à ultrasons et un laser ou radar (44). 6. Robot comprenant un capotage selon la revendication 5, caractérisé en ce que le laser (44) est disposé dans une fente (38) horizontale ménagée dans le capotage du robot dont le fond comprend deux pans disposés de manière symétrique et formant un angle de l'ordre de 240 . 7. Robot selon la revendication 5 ou 6, caractérisé en ce qu'il comprend un capotage ayant une section horizontale sensiblement carrée ou rectangulaire avec des angles arrondis et en ce que la ceinture de capteurs à ultrasons comprend des capteurs à ultrasons (42.1) au niveau des angles du capotage, un capteur à ultrasons (42.2) au niveau de chaque face latérale du robot, un capteur à ultrasons (42.3) sur la face arrière, et deux capteurs à ultrasons (42.4) disposés de manière symétrique sur la face avant du robot. 8. Robot selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend un capotage avec une plaque supérieure (36) sensiblement 10 horizontale comportant des moyens de fixation d'accessoires. 9. Robot selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens (30) de contrôle-commande comprennent une bibliothèque de services autonomes fonctionnellement encapsulant une fonction et de contrats génériques assurant les échanges entre les services. 15 10. Robot selon l'une quelconque des revendications précédentes, caractérisé en ce que les services comprennent des premiers services dédiés à l'interfaçage avec le matériel, notamment les capteurs et les actionneurs et des seconds services de traitement d'algorithme déterminant le comportement du robot.