# Ballbot

Un robot en équilibre sur boule, plus connu sous le nom de ballbot, est un robot mobile dynamiquement stable conçu pour s'équilibrer sur une seule roue sphérique (c'est-à-dire une boule). Grâce à son point de contact unique avec le sol, un ballbot est omnidirectionnel et donc exceptionnellement agile, maniable et organique en mouvement par rapport aux autres véhicules terrestres. Sa stabilité dynamique permet une navigabilité améliorée dans des environnements étroits, encombrés et dynamiques. Les ballbots fonctionnent sur le même principe que celui d'un pendule inversé.

## Historique

Le premier ballbot fonctionnel est développé en 2005$^,$$^,$ par le P$^r$ Ralph Hollis du Robotics Institute de l'Université Carnegie Mellon (CMU), et est breveté en 2010. Le Ballbot CMU$^,$$^,$$^,$ est construit pour être à échelle humaine, à la fois en taille et en encombrement. Le P$^r$ Hollis et son groupe à la CMU ont démontré que le ballbot peut être résistant aux perturbations, y compris les coups de pied et les bousculades, et peut également gérer les collisions avec les meubles et les murs$^,$$^,$. Ils ont montré qu'une variété de comportements d'interactions humain-robot physiques peuvent être développés avec le ballbot$^,$, et ont présenté des algorithmes de planification et de contrôle pour obtenir des mouvements rapides, dynamiques et gracieux à l'aide du ballbot$^,$$^,$. Ils ont également démontré la capacité du ballbot à naviguer de manière autonome dans des environnements humains pour réaliser des tâches de surveillance$^,$$^,$. Une paire de bras à deux degrés de liberté est ajoutée au Ballbot CMU en 2011, ce qui en fait le premier ballbot au monde doté de bras$^,$$^,$.
En 2005, à peu près au même moment où CMU Ballbot est présenté, un groupe de chercheurs de l'Université de Tokyo présente la conception d'un fauteuil roulant ballbot, qui s'équilibre sur un ballon de basket et nommé "BB Rider". Cependant, ils n'en rapportent que la conception et ne présenteront jamais de résultats expérimentaux.
Depuis l'introduction du Ballbot CMU en 2005, plusieurs autres groupes à travers le monde ont développé des ballbots. P$^r$ Masaaki Kumagai a développé BallIP en 2008 à l'Université Tohoku Gakuin, au Japon. Kumagai et son groupe ont démontré la capacité des ballbots à transporter des charges et à être utilisés pour le transport coopératif. Ils ont développé un certain nombre de petits ballbots et ont fait la démonstration du transport coopératif en les utilisant$^,$. Un groupe d'étudiants en génie mécanique de l'ETH Zurich, en Suisse, a développé Rezero en 2010. Rezero a de nouveau souligné les mouvements rapides et gracieux qui peuvent être réalisés sur les ballbots.
Tomás Arribas (Espagne) a développé en 2008 le premier ballbot utilisant des LEGO Mindstorms NXT, dans le cadre de son projet de Master à l'Université d'Alcala$^,$. Il a développé un projet de simulation avec Microsoft Excel pour simuler facilement le système. Dans le cadre des recherches menées au sein du Groupe de recherche spatiale de l'Université d'Alcalá (SRG-UAH), en Espagne, l'équipe de travail, spécialisée dans le contrôle optimal et la planification appliqués aux systèmes dynamiques non linéaires, a publié en 2012 l'article intitulé "A Monoball Robot Based on LEGO Mindstorms". Cet article décrit le modèle mathématique et le contrôle de trajectoire comme base pour les systèmes de contrôle instables et non linéaires.
Yorihisa Yamamoto (Japon), s'inspirant du projet de Tomás Arribas, a également développé un ballbot en utilisant LEGO Mindstorms NXT en 2009$^,$. Il a créé une démonstration détaillée pour construire, modéliser et créer des contrôleurs à l'aide de MATLAB.
Un groupe d'étudiants en génie mécanique de l'Université d'Adélaïde (Australie) a développé à la fois un ballbot LEGO et un ballbot à grande échelle en 2009. Un groupe d'étudiants de l'Université ITMO (Russie) a introduit un algorithme et construit un ballbot basé sur le kit robotique LegoNXT qui a atteint la stabilité avec seulement deux actionneurs utilisés. Des vidéos sur YouTube présentent des ballbots développés dans le monde entier. Certains d'entre eux ont été développés à l'aide de LEGO Mindstorms NXT$^,$$^,$$^,$$^,$.
D'autres conceptions utilisent des roues omnidirectionnelles pour actionner la balle$^,$$^,$$^,$.
Thomas Kølbæk Jespersen (Danemark) a développé le ballbot Kugle dans le cadre de son mémoire de fin d'études à l'Université d'Aalborg en 2019. Équipé de trois moteurs et de roues omnidirectionnelles, d'un Intel NUC embarqué, de deux Lidars SICK, d'un microprocesseur ARM et d'une tablette sur le dessus, le robot est capable de manœuvrer de manière autonome dans des environnements intérieurs et de guider les personnes. Son mémoire de Master et tout le matériel, y compris le code source MATLAB et les implémentations de contrôleur C++ sont accessibles publiquement sur GitHub.
Les ballbots apparaissent également dans le monde de la science-fiction. Le film Wall-E de Pixar en 2008 présente "MO" (Microbe Obliterator), un ballbot de nettoyage. La série télévisée Caprica de Syfy en 2010 présentait "Serge", un ballbot majordome.

## Motivation et caractéristiques

Historiquement, les robots mobiles ont été conçus pour être statiquement stables, ce qui signifie que le robot n'a pas besoin de dépenser d'énergie lorsqu'il est immobile. Ceci est généralement réalisé grâce à l'utilisation de trois roues ou plus sur une base. Afin d'éviter le basculement, ces robots mobiles statiquement stables ont le plus souvent une large base, pour un grand polygone de sustentation, et beaucoup de poids mort dans la base pour abaisser le centre de gravité. Ils ont également tendance à avoir une faible accélération ou décélération pour éviter le basculement. Les larges bases des robots mobiles statiquement stables compliquent leur navigation dans des environnements humains encombrés. De plus, ces robots ne sont souvent pas holonomes ce qui les rend peu adaptés aux environnements humains.
Le désir de construire des robots mobiles hauts et étroits qui ne basculent pas a conduit au développement de robots mobiles dynamiquement stables comme les ballbots. Un ballbot a généralement un corps qui s'équilibre au-dessus d'une seule roue sphérique (boule). Il forme un système sous-actionné, c'est-à-dire qu'il possède plus de degrés de liberté (DOF) que d'entrées de contrôle indépendantes. La boule est directement contrôlée à l'aide d'actionneurs, alors que le corps n'a pas de contrôle direct pour l'équilibre et la navigation. Le corps est maintenu debout autour de son point d'équilibre instable en contrôlant la boule, de façon comparable au contrôle d'un pendule inversé. Ceci conduit à des déplacements de position limités mais perpétuels du ballbot. L'aspect contre-intuitif du mouvement du ballbot est que pour avancer, le corps doit se pencher vers l'avant, et pour se pencher vers l'avant, la balle doit rouler vers l'arrière. Toutes ces caractéristiques font de la planification des mouvements souhaités du ballbot une tâche difficile. Afin d'obtenir un mouvement en ligne droite vers l'avant, le ballbot doit se pencher en avant pour accélérer et se pencher en arrière pour décélérer$^,$$^,$$^,$. De plus, le ballbot doit se pencher dans les courbes afin de compenser les forces centripètes, ce qui se traduit par des mouvements élégants et gracieux$^,$$^,$$^,$.
Contrairement aux robots mobiles d'équilibrage à deux roues comme le Segway, qui s'équilibrent dans une direction, mais qui ne peuvent pas se déplacer dans la direction latérale, les ballbots sont omnidirectionnels. Ils n'ont pas de rayon de braquage minimal et n'ont pas besoin de l'angle lacet (yaw) pour changer de direction.

## Description du système
### Principaux paramètres de conception

Les paramètres de conception les plus fondamentaux d'un ballbot sont sa hauteur, sa masse, son centre de gravité et le couple maximal que ses actionneurs peuvent fournir. Le choix de ces paramètres détermine le moment d'inertie du robot, l'angle de tangage (pitch) maximal et donc ses performances dynamiques et d'accélération et son agilité. La vitesse maximale est fonction de la puissance de l'actionneur et de ses caractéristiques. Outre le couple maximal, l'angle de tangage est en outre limité par la force maximale qui peut être transmise au sol par les actionneurs. Par conséquent, les coefficients de frottement de toutes les pièces impliquées dans la transmission de la force jouent également un rôle majeur dans la conception du système. De plus, une attention particulière doit être portée au rapport du moment d'inertie du corps du robot et de sa boule afin d'éviter une rotation indésirable de la boule, en particulier lors du lacet (yaw).

### Boule et actionnement

La boule est l'élément central d'un ballbot puisqu'elle doit transmettre et supporter toutes les forces générées et résister à l'usure mécanique causée par des surfaces de contact rugueuses. Un coefficient de frottement élevé de sa surface et une faible inertie sont indispensables. Le Ballbot CMU utilisent tous les trois une sphère métallique creuse avec un revêtement en polyuréthane. BB Rider utilise un ballon de basket, tandis que BallIP utilisent des boules de bowling recouvertes d'une fine couche de caoutchouc.
Afin de résoudre le problème assez complexe de l'actionnement d'une sphère, une variété de mécanismes d'actionnement différents ont été introduits. Le Ballbot CMU a utilisé un mécanisme de boule de souris inversé. Contrairement à la boule de souris traditionnelle qui entraîne les rouleaux de la souris pour fournir une entrée informatique, l'entraînement par boule de souris inversée utilise quatre rouleaux pour entraîner la boule, chaque rouleau étant actionné par un moteur électrique indépendant. Afin d'obtenir un mouvement de lacet (yaw), le Ballbot CMU utilise un assemblage de roulement et de collecteur tournant et un moteur séparé pour faire tourner le corps sur le dessus de la balle. Le Ballbot Lego a également utilisé une boule de souris inversée, mais utilisait des roues normales pour entraîner la balle au lieu de rouleaux.
Contrairement au Ballbot CMU, BallIP, Rezero et Kugle utilisent tous les trois des roues omnidirectionnelles pour entraîner la boule. Ce mécanisme d'entraînement ne nécessite pas de mécanisme d'entraînement séparé pour le lacet (yaw), et permet un contrôle direct de la rotation en lacet de la balle. Contrairement au Ballbot CMU qui utilise quatre moteurs pour entraîner la boule et un moteur pour la rotation en lacet, BallIP, Rezero et Kugle n'utilisent que trois moteurs pour les deux opérations. De plus, ils n'ont que trois points de transmission de force contre quatre points sur le Ballbot CMU. Étant donné que le contact entre une omni-roue et la boule doit être réduit à un seul point, la plupart des omni-roues disponibles ne conviennent pas correctement à cette tâche, en raison des écarts entre les roues individuelles plus petites qui entraînent un mouvement de roulement instable. Par conséquent, le projet BallIP a introduit une roue omnidirectionnelle plus complexe, avec une ligne de contact circonférentielle continue. L'équipe Rezero a équipé cette conception à roues omnidirectionnelles de roulements à rouleaux et d'un revêtement haute friction. Ils ont également installé un système mécanique qui presse la boule contre les actionneurs afin d'augmenter encore les forces de friction, et une suspension pour amortir les vibrations. Le robot Kugle est équipé d'une jupe qui maintient la boule en place pour éviter qu'elle ne soit repoussée lors de fortes inclinaisons. Le Ballbot de l'université d'Adélaïde utilise des roues pour sa version LEGO et des roues omnidirectionnelles traditionnelles pour sa version grandeur nature.
Masaaki Kumagai, qui a développé BallIP$^,$. L'objectif de cette conception était de développer un actionnement à 3 degrés de liberté sur la boule, en utilisant un mécanisme à faible coût.

### Capteurs

Afin de contrôler activement la position et l'orientation du corps d'un ballbot par un framework capteur-ordinateur-actionneur, en plus d'un microprocesseur approprié ou d'une autre sorte d'unité informatique pour exécuter les boucles de contrôle nécessaires, un ballbot nécessite fondamentalement une série de capteurs qui permettent de mesurer l'orientation de la balle et du corps du ballbot en fonction du temps. Pour suivre les mouvements de la boule, des encodeurs rotatifs (CMU Ballbot) sont généralement utilisés. La mesure de l'orientation du corps est plus compliquée et se fait souvent à l'aide de gyroscopes (NXT Ballbots$^,$ ) ou, plus généralement, d'une centrale inertielle (CMU Ballbot, BallIP, Rezero, Kugle ) qui comprend un accéléromètre, un gyroscope et éventuellement un magnétomètre dont les mesures sont fusionnées dans l'orientation du corps grâce à des algorithmes AHRS.
Le Ballbot CMU utilise un télémètre laser Hokuyo URG-04LX pour se localiser sur une carte 2D de l'environnement$^,$. Il utilise également le télémètre laser pour détecter les obstacles et les éviter$^,$. À l'inverse, le robot Kugle utilise deux LiDAR 2D SICK TiM571 pour se localiser, éviter les obstacles et détecter les personnes.

### Bras

Le Ballbot CMU est le premier ballbot à être doté de bras$^,$$^,$. Il possède une paire de bras à 2 degrés de liberté entraînés par des actionneurs élastiques en série. Ses bras sont des tubes creux en aluminium et l'on peut ajouter des poids à leurs extrémités. En raison de cette simplicité, les bras ne peuvent être utilisés pour aucune manipulation significative, mais sont utilisés pour étudier leurs effets sur la dynamique du ballbot$^,$$^,$.

### Dispositifs de sécurité

La plus grande préoccupation avec un ballbot est sa sécurité en cas de panne du système. Plusieurs tentatives ont été émises pour répondre à cette préoccupation. Le CMU Ballbot a introduit trois pieds d'atterrissage rétractables qui permettent au robot de rester debout (statiquement stable) après avoir été mis hors tension. Il est également capable de passer automatiquement de cet état statiquement stable à son état d'équilibrage dynamiquement stable, et vice versa$^,$. Rezero comporte un mécanisme de sécurité en cas de renversement, afin d'éviter les gros dommages en cas de défaillance du système.

## Applications possibles

Grâce à sa stabilité dynamique, un ballbot peut être grand et étroit, et peut également être physiquement interactif, ce qui en fait un candidat idéal pour un robot mobile personnel. Il peut agir comme un robot de service dans les maisons et les bureaux et offrir des conseils aux personnes, par exemple dans les centres commerciaux et les aéroports. Les ballbots actuels$^,$$^,$$^,$$^,$$^,$$^,$, et plusieurs personnages ballbots sont apparus dans des films hollywoodiens$^,$. Par conséquent, le ballbot a aussi des applications possibles dans l'industrie du divertissement, y compris les jouets.

## Projets de ballbots notables

* Projets académiques :
** Plateforme de recherche "Ballbot" à l'Université Carnegie Mellon (CMU) (2005)
** BallIP à l'Université Tohoku Gakuin (2007)
** Rezero à l'ETH Zurich (2010)
** Kugle à l'Université d'Aalborg (2018)
** Prototype de fauteuil roulant sur ballbot, par l'Université de l'Illinois à Urbana-Champaign (2023)
* Projets industriels :
** Le ballbot mObi, par Bossa Nova Robotics (2012)
** Le BionicMobileAssistant de l'entreprise Festo (2015)
** Miroki, prototype de l'entreprise Enchanted Tools (2022)