J’avais déjà vu par le passé une autre approche consistant à ajouter une IMU à un bras robotisé. Combiner deux types de capteurs différents s’appelle de la fusion de capteurs, et il est courant d’utiliser ensemble une IMU et un GPS avec un filtre de Kalman pour obtenir des positions très précises
Ce qui est particulièrement chouette dans cette vidéo, c’est que le nouveau capteur est monté à l’intérieur du moteur, ce qui a permis de rendre l’ensemble beaucoup plus compact et rigide
[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit
[2] https://en.wikipedia.org/wiki/Sensor_fusion
[3] https://en.wikipedia.org/wiki/Kalman_filter
Si vous voulez fabriquer quelque chose comme ça, le nouveau Raspberry Pi Pico 2 est plusieurs ordres de grandeur plus performant que la puce utilisée ici, pour environ moitié prix
À l’heure actuelle, pour un appareil embarqué 32 bits ARM/RISC d’entrée de gamme, le rapport qualité-prix semble imbattable
D’après l’erratum n° 9, il faut savoir qu’il faut ajouter un pull-down externe au lieu d’utiliser le pull-down interne
Même s’il commence à dater, le Teensy 4.1 offre toujours d’excellentes performances. Il est un peu plus cher, autour de 30 dollars, mais tourne sur un Cortex M7 à 600 MHz et fournit largement assez d’E/S et de protocoles
C’est cool, mais quel est le compromis alors ?
Certains grands robots industriels utilisent aussi des encodeurs auxiliaires pour améliorer leur précision « sortie de boîte » sur des tâches plus exigeantes
Ils combinent le retour des articulations auxiliaires avec la structure du robot et un modèle cinématique de la mécanique afin de prédire plus précisément où se trouve réellement l’extrémité de l’outil du robot https://electroimpact.com/Products/Robots/AchievingAccuracy
Dans ce cas, à quoi servent les encodeurs principaux ?
On ne peut pas juger du jeu mécanique d’un robot simplement en le voyant répéter exactement la même série de mouvements. En faisant ça, par définition, on exclut l’hystérésis du problème
Ce ne sont pas les mêmes mouvements, non ? Le deuxième déplacement part dans la direction opposée
C’est bien, mais ce robot ne fait pas vraiment un travail réel, si ?
J’ai du mal à imaginer à quelles applications utiles pourrait mener l’amélioration de la précision de positionnement d’un système avec beaucoup de jeu, à vide. C’est peut-être juste que je manque d’imagination
Il y a aujourd’hui une tendance à dire que si l’on fabrique ou achète du mauvais matériel, le logiciel pourra le corriger, mais je n’ai pas souvent vu ça donner de bons résultats. Je pense à Tesla qui utilise des webcams pour la conduite autonome, ou à Boeing qui a conçu un avion puis utilisé un capteur d’assiette défectueux
Si le robot avait fait quelque chose d’utile, cela aurait été bien plus impressionnant, et je soupçonne que les applications réelles sont assez limitées
Le cas Boeing me semble trop simplifié. L’objectif était de fabriquer un avion efficace pour concurrencer Airbus, tout en évitant les coûts et les délais d’une nouvelle certification de type
Pour cela, il fallait monter des moteurs plus gros sur la même cellule, ce qui a obligé à les placer plus en avant, modifiant les caractéristiques de vol et nécessitant une nouvelle formation. Cette formation aurait été fatale aux ventes, donc ils ont ajouté un système logiciel pour donner l’impression que l’avion se pilotait comme un ancien 737
Les pilotes pouvaient ainsi faire la mise à niveau avec un simple cours sur iPad. Ce système de compensation devait empêcher le pilote de se rendre compte que l’avion était en train de décrocher à forte incidence, et c’est pourquoi le MCAS utilisait un capteur AoA afin de faire piquer le nez en fonction de l’angle d’attaque détecté
Le capteur AoA n’avait pas été conçu à l’origine comme une entrée critique directe dont dépend la survie, et il pouvait parfois se bloquer ou tomber en panne. Le MCAS n’en utilisait qu’un seul comme entrée. Si le MCAS décidait à tort qu’il fallait baisser le nez et que le pilote réagissait comme on l’avait formé sur 737, ce vol devenait son dernier. L’avion s’écrasait
Au final, Boeing a tué des gens pour gagner plus d’argent à chaque étape de ce plan effroyable. Je suis d’accord avec l’argument de départ, mais Boeing relève presque du pire exemple de conception malveillante et devrait être classé à part
Parmi les applications robotiques qui n’ont pas besoin de porter une charge mais doivent se déplacer avec une très grande précision, il existe des systèmes de mesure robotisés comme les machines à mesurer tridimensionnelles : https://en.wikipedia.org/wiki/Coordinate-measuring_machine
Dans les vidéos suivantes, on voit le servo soulever un poids au bout d’un long bras
Question à ceux qui ont déjà utilisé ce genre de comparateur analogique. Avant que la caméra zoome pour lire l’affichage, l’aiguille semble faire un tour complet ; est-ce que cela démontre vraiment la précision annoncée dans la vidéo ?
Je n’ai pas regardé toute la vidéo, mais je pense qu’il a probablement « déplacé x de 0,00 à 10,00 », et que le comparateur montre que la position finale réelle était 10,05
Vu à quel point cet engin est souple, c’est assez impressionnant
Cela dit, pour mesurer un déplacement dans le sens négatif avec ce genre de comparateur, il faut appliquer une précharge afin de le maintenir enfoncé dans sa plage « positive ». On dirait que c’est ce qui a été fait, mais je ne peux pas en être sûr à 100 % sans analyser plus en détail
De plus, le comparateur lui-même fournit une certaine précharge, ce qui a peut-être supprimé une bonne partie du jeu du système et donné une impression de précision meilleure qu’en réalité
Exact. La bille à l’extrémité a un rayon donné, et si cette bille est poussée d’une distance égale à son rayon, c’est-à-dire si le point de contact se trouve exactement sur l’axe central, l’indicateur revient à 0
S’il n’y a plus de contact, cela signifie plutôt qu’elle est décalée d’au moins 1 mm par rapport à l’endroit où elle devrait se trouver
Normalement, il y a une deuxième aiguille qui indique dans laquelle de ces deux situations on se trouve, mais dans le contexte d’utilisation de ce type d’appareil, un écart de 1 mm rend la situation très claire, donc ils ont probablement jugé que ce n’était pas nécessaire
Comment un robot 3 axes qu’on peut acheter pour 100 dollars, autrement dit une imprimante 3D, parvient-il à atteindre une précision statique de 0,05 mm ?
Ce n’est pas une question de théorie du contrôle, mais de structure mécanique et de moteurs pas à pas.
C’est un compromis entre une structure à portique et une structure à bras.
Certes, mais ce n’est pas un bras robotique, donc c’est moins intéressant. La longueur du bras amplifie les erreurs ; pour fabriquer un bras fondé sur une « structure mécanique et des moteurs pas à pas » capable d’atteindre la même précision de positionnement qu’une imprimante, il faudrait des moteurs bien plus précis, ou bien, en cas de réduction, un jeu extrêmement faible, comme sur les bras robotisés industriels.
Je me demande quelle serait la meilleure façon de reproduire un système x/y, et éventuellement z, avec une précision inférieure à 0,05 mm. À condition, bien sûr, de ne pas sacrifier la vitesse.
Je me suis toujours demandé pourquoi on n’utilisait pas davantage de pantographes en robotique quand on a besoin de précision.
C’est une méthode utilisée pour la découpe précise du bois, ou encore la gravure sur bois et sur métal. https://en.wikipedia.org/wiki/Pantograph https://youtu.be/s56J_Rnh_Co
En entraînant le « grand » côté pour déplacer le « petit » côté, on peut obtenir une grande précision.
Les pantographes sont surtout utiles en deux dimensions, et pour un robot qui n’a besoin que de deux dimensions, il est généralement plus précis d’utiliser simplement des rails.
C’est vraiment une excellente astuce d’encodeur. Je ne pensais pas que ce serait aussi bon, mais en vidéo, ça a clairement l’air convaincant.
Ce que montre cette vidéo relève surtout de la répétabilité lorsqu’on répète un mouvement dans la même direction, pas de la précision statique absolue. On peut compenser le jeu de chaque moteur, mais pas le flottement ni la flexion des liaisons.
Ici, ils utilisent des moteurs DC. Avec des servomoteurs triphasés modernes, on peut en savoir beaucoup plus sur ce que le moteur fait réellement.
1 commentaires
Avis sur Hacker News
J’avais déjà vu par le passé une autre approche consistant à ajouter une IMU à un bras robotisé. Combiner deux types de capteurs différents s’appelle de la fusion de capteurs, et il est courant d’utiliser ensemble une IMU et un GPS avec un filtre de Kalman pour obtenir des positions très précises
Ce qui est particulièrement chouette dans cette vidéo, c’est que le nouveau capteur est monté à l’intérieur du moteur, ce qui a permis de rendre l’ensemble beaucoup plus compact et rigide
[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit
[2] https://en.wikipedia.org/wiki/Sensor_fusion
[3] https://en.wikipedia.org/wiki/Kalman_filter
https://github.com/adamb314/ServoProject/blob/main/Doc/Theor...
Si vous voulez fabriquer quelque chose comme ça, le nouveau Raspberry Pi Pico 2 est plusieurs ordres de grandeur plus performant que la puce utilisée ici, pour environ moitié prix
À l’heure actuelle, pour un appareil embarqué 32 bits ARM/RISC d’entrée de gamme, le rapport qualité-prix semble imbattable
Certains grands robots industriels utilisent aussi des encodeurs auxiliaires pour améliorer leur précision « sortie de boîte » sur des tâches plus exigeantes
Ils combinent le retour des articulations auxiliaires avec la structure du robot et un modèle cinématique de la mécanique afin de prédire plus précisément où se trouve réellement l’extrémité de l’outil du robot
https://electroimpact.com/Products/Robots/AchievingAccuracy
On ne peut pas juger du jeu mécanique d’un robot simplement en le voyant répéter exactement la même série de mouvements. En faisant ça, par définition, on exclut l’hystérésis du problème
C’est bien, mais ce robot ne fait pas vraiment un travail réel, si ?
J’ai du mal à imaginer à quelles applications utiles pourrait mener l’amélioration de la précision de positionnement d’un système avec beaucoup de jeu, à vide. C’est peut-être juste que je manque d’imagination
Il y a aujourd’hui une tendance à dire que si l’on fabrique ou achète du mauvais matériel, le logiciel pourra le corriger, mais je n’ai pas souvent vu ça donner de bons résultats. Je pense à Tesla qui utilise des webcams pour la conduite autonome, ou à Boeing qui a conçu un avion puis utilisé un capteur d’assiette défectueux
Si le robot avait fait quelque chose d’utile, cela aurait été bien plus impressionnant, et je soupçonne que les applications réelles sont assez limitées
Pour cela, il fallait monter des moteurs plus gros sur la même cellule, ce qui a obligé à les placer plus en avant, modifiant les caractéristiques de vol et nécessitant une nouvelle formation. Cette formation aurait été fatale aux ventes, donc ils ont ajouté un système logiciel pour donner l’impression que l’avion se pilotait comme un ancien 737
Les pilotes pouvaient ainsi faire la mise à niveau avec un simple cours sur iPad. Ce système de compensation devait empêcher le pilote de se rendre compte que l’avion était en train de décrocher à forte incidence, et c’est pourquoi le MCAS utilisait un capteur AoA afin de faire piquer le nez en fonction de l’angle d’attaque détecté
Le capteur AoA n’avait pas été conçu à l’origine comme une entrée critique directe dont dépend la survie, et il pouvait parfois se bloquer ou tomber en panne. Le MCAS n’en utilisait qu’un seul comme entrée. Si le MCAS décidait à tort qu’il fallait baisser le nez et que le pilote réagissait comme on l’avait formé sur 737, ce vol devenait son dernier. L’avion s’écrasait
Au final, Boeing a tué des gens pour gagner plus d’argent à chaque étape de ce plan effroyable. Je suis d’accord avec l’argument de départ, mais Boeing relève presque du pire exemple de conception malveillante et devrait être classé à part
Question à ceux qui ont déjà utilisé ce genre de comparateur analogique. Avant que la caméra zoome pour lire l’affichage, l’aiguille semble faire un tour complet ; est-ce que cela démontre vraiment la précision annoncée dans la vidéo ?
Vu à quel point cet engin est souple, c’est assez impressionnant
Cela dit, pour mesurer un déplacement dans le sens négatif avec ce genre de comparateur, il faut appliquer une précharge afin de le maintenir enfoncé dans sa plage « positive ». On dirait que c’est ce qui a été fait, mais je ne peux pas en être sûr à 100 % sans analyser plus en détail
De plus, le comparateur lui-même fournit une certaine précharge, ce qui a peut-être supprimé une bonne partie du jeu du système et donné une impression de précision meilleure qu’en réalité
S’il n’y a plus de contact, cela signifie plutôt qu’elle est décalée d’au moins 1 mm par rapport à l’endroit où elle devrait se trouver
Normalement, il y a une deuxième aiguille qui indique dans laquelle de ces deux situations on se trouve, mais dans le contexte d’utilisation de ce type d’appareil, un écart de 1 mm rend la situation très claire, donc ils ont probablement jugé que ce n’était pas nécessaire
Comment un robot 3 axes qu’on peut acheter pour 100 dollars, autrement dit une imprimante 3D, parvient-il à atteindre une précision statique de 0,05 mm ?
Ce n’est pas une question de théorie du contrôle, mais de structure mécanique et de moteurs pas à pas.
Je me suis toujours demandé pourquoi on n’utilisait pas davantage de pantographes en robotique quand on a besoin de précision.
C’est une méthode utilisée pour la découpe précise du bois, ou encore la gravure sur bois et sur métal.
https://en.wikipedia.org/wiki/Pantograph
https://youtu.be/s56J_Rnh_Co
En entraînant le « grand » côté pour déplacer le « petit » côté, on peut obtenir une grande précision.
C’est vraiment une excellente astuce d’encodeur. Je ne pensais pas que ce serait aussi bon, mais en vidéo, ça a clairement l’air convaincant.
Ici, ils utilisent des moteurs DC. Avec des servomoteurs triphasés modernes, on peut en savoir beaucoup plus sur ce que le moteur fait réellement.