Trajectoire en arc de cercle véritable

Le plus célèbre des concours de robotique français dédié à tous les jeunes amateurs de nouvelles technologies.
[EN FRANCAIS UNIQUEMENT - ONLY IN FRENCH]
User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Trajectoire en arc de cercle véritable

Post by sikularobotik » Sat 24 Dec 2016, 14:44

Cette année, il y a des cratères autour desquels il peut être intéressant de tourner, comme en 2013 autour du gâteau d'anniversaire. Or je n'ai pas retrouvé sur le forum les posts qui traitaient de ce sujet, tout juste un post qui parlait de trajectoires courbes mais non circulaires.

À cette époque, notre équipe toute jeune savait tout juste et avec grande peine faire sortir le robot de sa zone.
Il est certain que nous n'avons pas prêté attention aux conseils donnés à ce moment là sur le contournement du gâteau.
Aujourd'hui, l'asservissement est une des choses dont nous sommes particulièrement fiers dans notre robot.

Aussi, nous avons en tête de traiter cette année le cas des trajectoires en arc de cercle.

Attention, je ne parle pas de courbe vaguement circulaires ou de bouts de clothoïdes. Non, je parle du vrai cercle des mathématiques, que la théorie verra juste et que la pratique approchera suffisamment pour faire illusion.
Tel est mon défi intellectuel, telle est ma folie du moment.

J'entends déjà certains esprits rétorquer qu'un cercle a une courbure constante, que pour atteindre cela sans phase de transition il faudrait une accélération infinie, et que ce n'est pas possible.
Oui, mais mon intuition, cette partie de l'intelligence qui échappe à la raison, n'a cure de ces arguments.
Force est de constater qu'elle a fourni à ma conscience une infinité de cas particuliers forts intéressants à examiner.

Je ne suis qu'au début de mes réflexions et je fournirai ici les résultats et équations après la coupe si la mise en pratique est concluante.

Néanmoins à ce jour j'ai de grands espoirs.

Si l'intuition de ceci m'est venue il y a 'longtemps' maintenant, ce n'est qu'il y a quelques semaines que j'ai accepté de l'écouter.
Une nouvelle intuition m'a indiqué comment implémenter la première dans les termes de notre asservissement et après quelques calculs négligeant beaucoup de données nous avons réussi à faire décrire un presque-cercle par le robot, en vrai.
Presque-cercle car les écarts étaient précisément ceux que j'avais volontairement oublié pour simplifier les calculs en vue d'un premier test dont l'issue était très incertaine.
Hier, avec davantage de courage, j'ai poussé mon idée en ne négligeant plus ces détails et je fus encore plus persuadé d'aller dans la bonne direction.

Il y a encore beaucoup de chemin à parcourir avant d'avoir ça en vrai dans notre robot, comme travailler les équations pour qu'elles soient utilisables par un programme, implémenter l'algorithme dans la partie déplacement, rendre accessible ces possibilités à l'intelligence du robot. Mais j'y crois.

Pour vous faire rêver, voici en images le résultat de la simulation.
Il s'agit d'une simulation dynamique qui reproduit le comportement des moteurs et nombreux de leurs défauts, par dessus laquelle tourne exactement le même asservissement que celui du robot. Je me sens obligé de préciser cela car le résultat est tellement beau que je pourrais croire à une simple simulation d'équations cinématiques si je ne le savais pas.

https://youtu.be/YmdL8HQP0_A

Passez de bonnes fêtes,

Florent de Šikula Robotik
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

HalfWolf
Posts: 227
Joined: Fri 26 Nov 2004, 23:17

Re: Trajectoire en arc de cercle véritable

Post by HalfWolf » Thu 29 Dec 2016, 21:11

Salut,

Je n'ai pas bien compris de ce que tu attends comme retour alors je vais juste faire quelques remarques qui me viennent en vrac en lisant ton post :
  • Effectivement l'impossibilité théorique d'enchaîner des trajectoires circulaires est due à la discontinuité de la vitesse angulaire qui demande donc une accélération angulaire infinie.
  • Le résultat présenté par la simulation dynamique n'est qu'une trajectoire circulaire et pas un enchaînement de trajectoire. Il n'y a théoriquement aucun problème à faire une trajectoire circulaire qui commence avec une vitesse nulle et qui se termine par une vitesse nulle.
  • Comment es-tu sûr que le modèle dynamique utilisé pour ta simulation est suffisamment pertinent dans ce cas précis ?
  • La grosse différence entre les trajectoires de rotation sur place + lignes droites et les trajectoires de courbes c'est que ces dernières impliquent une force centrifuge.
  • Cette force centrifuge implique un glissement latéral qui n'est pas mesuré par l'odométrie. Ceci avait été évoqué par Gargamel il y a quelques années (flemme de chercher le post).
  • Cette force centrifuge peut être trop importante si les roues sont montées directement sur les moto-réducteurs (effort axial).
Je pense qu'il n'y a rien d'impossible pratiquement d'enchaîner lignes droites et trajectoires circulaires avec un asservissement en position car de toute façon les lignes droites ne sont pas vraiment droites, les rotations sur place pas vraiment des rotations sur place et donc les trajectoires circulaires ne seront pas vraiment des trajectoires circulaires. Tout ce qui compte c'est d'avoir une précision suffisante. Il te faudra probablement tenir compte du glissement latéral dans ton odométrie.

User avatar
Rejulk
Posts: 73
Joined: Wed 27 May 2009, 11:26
Contact:

Re: Trajectoire en arc de cercle véritable

Post by Rejulk » Mon 02 Jan 2017, 14:30

HalfWolf wrote:Cette force centrifuge implique un glissement latéral qui n'est pas mesuré par l'odométrie. Ceci avait été évoqué par Gargamel il y a quelques années (flemme de chercher le post).
Il me semble qu'il parlait même de tenir compte de la déformation latérale des "pneumatiques" des roues. Enfin vous devez être au courant chez Šikula, de mémoire c'est Valère qui m'avait parlé de ça...
Régis LM - Twitter Perso
Bénévole/Membre du Secteur Robotique de Planète Sciences
2005 à 2008 - Participant avec le Club Sérinus

User avatar
pwet
Posts: 476
Joined: Mon 29 May 2006, 10:33

Re: Trajectoire en arc de cercle véritable

Post by pwet » Mon 02 Jan 2017, 15:50

En fait il y a les deux, à la fois la déformation (mais qui est réversible donc moindre mal ) et surtout le glissement qui lui n'est pas réversible.

Chez Omybot, on sait faire des arc de cercles parfait en théorie mais qui ne le sont pas en vrai. Plutôt que de chercher à compenser les erreurs d'odométrie par anticipation en fonction de certains paramètres (vitesse, accel, ...), on a préféré restreindre au maximum l'utilisation de trajectoires type circulaire ou courbe à des cas bien précis moyennant recalage et/ou acceptation des erreurs d'odométries engendrées. En gros c'est pas forcément super élégant de ne se contenter que des pivots/lignes droites, mais ça reste quand même bien plus efficace quand on regarde globalement la rapidité et la précision de la bête.
Membre de OMyBot : Tant qu'ça roule, c'est cool !
http://www.omybot.com
Ex-membre de l'ISTY2000 (Institut de Science et Technique des Yvelines)
Ex-membre du CRIC (Club de Robotique de l'IUT de Cachan)

User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Re: Trajectoire en arc de cercle véritable

Post by sikularobotik » Sun 08 Jan 2017, 02:11

Je n'attendais pas de retour en particulier ; éventuellement d’agréger quelques informations sur le sujet, et vos compléments vont en ce sens et sont intéressants.

Je parle de trajectoire circulaire, par exemple pour contourner le grand cratère.
Le départ et l'arrivée arrêté sont donc en effet nécessaires. Dans ce cas, la trajectoire circulaire est atteignable (en tout cas de manière théorique comme l'ont confirmé HalfWolf et pwet), même si plusieurs personnes m'ont soutenu le contraire encore récemment.
L'enchaînement de courbes (donc non cercles) n'est pas au programme de cette année.

Concernant la simulation, elle est suffisamment précise pour régler l'asservissement du robot et appliquer les constantes sans avoir besoin de les ajuster. Le comportement est vraiment très proche du robot réel, et je suis assez fier de ce bout de code.
Cependant, la force centrifuge n'est pas prise en compte et donc c'est l'une des grandes incertitudes que j'ai encore.

Nous sommes conscients qu'il y aura des problématiques dans la mise en pratique (dont les glissements et autres effets de la force centrifuge que vous avez évoqué) mais je ne sais pas encore dans quelle mesure ça affectera la précision. Si vous avez de l'expérience sur le sujet, ça m'intéresse.
Avant de passer à la pratique, je voulais une base théorique suffisamment solide et une implémentation fonctionnelle dans le programme du robot. Maintenant que ces ingrédients sont réunis, j'ai hâte de voir ce que ça donne en vrai, encore faut-il que j'arrive à dégager le temps nécessaire.

On est d'accord ("approchera suffisamment pour faire illusion", "Tout ce qui compte c'est d'avoir une précision suffisante") on n'a pas en réalité ce qu'on a en théorie. La question est donc de savoir si on peut se laisser abuser en toute confiance.

Je me souviens qu'on avait fait un test pour se rendre compte de la précision de l'odométrie. Je ne saurais me souvenir des résultats mais on avait déplacé le robot sur la table à la main, et il y avait un écart de, je crois, moins de 1cm latéral et 0mm longitudinal après peut-être 5m de déplacement curviligne contenant plusieurs boucles et arrêts, demi-tours, etc. puis retour au point de départ.
Je ne sais pas à quel point la version motorisée s'éloignera de ce test.
pwet wrote:Chez Omybot, on sait faire des arc de cercles parfait en théorie mais qui ne le sont pas en vrai.
Le retour d'expérience est particulièrement bienvenu. Saurais-tu donner un ordre de grandeur de l'imprécision que vous aviez constaté ? Et donner un ordre de grandeur de la précision habituelle histoire d'avoir une base de comparaison ?
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

User avatar
GARGAMEL
PMI
Posts: 1184
Joined: Tue 14 Jun 2005, 17:16
Location: Ville d'Avray
Contact:

Re: Trajectoire en arc de cercle véritable

Post by GARGAMEL » Sun 08 Jan 2017, 17:33

Décrire une trajectoire circulaire théorique effectivement ça n’est pas un problème. Il suffit à chaque instant que :
w=v/R
w : vitesse angulaire
v : vitesse linéaire
R : rayon du cercle

En réalité :
Si tu es asservi en translation et rotation (Ce que j’espère, sinon ce n’est même pas la peine d’espérer), les variables v et w vont constituer des consignes de déplacement respectivement en translation et rotation. Oui mais voilà ces 2 asservissements ne sont pas parfaits.
Si tu te contentes de déplacements en ligne droite ou de rotations sur place, les erreurs de trainage n’ont aucune importance.
Par contre sur des trajectoires circulaires, ces erreurs de trainage deviennent non négligeables et particulièrement importantes pendant les phases accélération et freinage. En conséquence tes trajectoires ne seront pas circulaires.

(Je dirais même plus: Les clothoïdes ne sont pas des clothoïdes et encore plus comme le dit HalfWolf: les lignes droites ne sont pas droites.)

Maintenant si tu n’as pas la possibilité de mesurer à quel point tes trajectoires ne sont que des semblants d’arc de cercle, t’as raison d’y croire. Et même si tu as tort, c’est sans conséquence car ça n’empêchera pas ton robot de tourner autour du grand cratère.
L’essentiel dans l’histoire est de disposer d’une odométrie précise qui permet au robot de savoir où il est, quelle que soit sa trajectoire, patatoïde ou pas.
En résumé (Sans même ajouter les problèmes de glissements latéraux dus à la force centrifuge), il est impossible d’avoir un asservissement parfait (sauf si tes vitesses tendent vers zéro) et c’est ton odométrie (avec quelques recalages) qui te permettra de sauver les meubles.
RCVA: Robot Concept Ville d'Avray
http://www.rcva.fr

User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Re: Trajectoire en arc de cercle véritable

Post by sikularobotik » Mon 09 Jan 2017, 17:07

GARGAMEL wrote: Par contre sur des trajectoires circulaires, ces erreurs de trainage deviennent non négligeables et particulièrement importantes pendant les phases accélération et freinage. En conséquence tes trajectoires ne seront pas circulaires.
Merci pour tous ces conseils Gargamel, je laisserais Florent poursuivre l'échange sur les courbes avec toi.

Concernant l'erreur de trainage, dans notre cas, elle oscille / se stabilise autour de 0 durant les trajectoires, en l'occurrence de l'ordre de +/- 3 mm en linéaire (mettons +/- 5 mm) et je dirais de tête +/- 1 ou 2°pour la rotation (mais sans les problèmes de force centrifuge liés au déplacement du centre de rotation). Mes collègues te confirmeront que je cherche un réglage... millimétrique de l'asservissement et que je ne suis pas souvent satisfait si le moindre écart apparait sur les courbes.

--
Valère
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

User avatar
GARGAMEL
PMI
Posts: 1184
Joined: Tue 14 Jun 2005, 17:16
Location: Ville d'Avray
Contact:

Re: Trajectoire en arc de cercle véritable

Post by GARGAMEL » Mon 09 Jan 2017, 20:46

sikularobotik wrote: Concernant l'erreur de trainage, dans notre cas, elle oscille / se stabilise autour de 0 durant les trajectoires, en l'occurrence de l'ordre de +/- 3 mm en linéaire (mettons +/- 5 mm) et je dirais de tête +/- 1 ou 2°pour la rotation
Valère
Des erreurs de trainage qui se stabilisent autour du mm et du degré pour des trajectoires curvilignes (circulaires dans ton cas) c'est déjà très bien et il y a de quoi être satisfait. Mais tu es alors en régime établi et pendant les phases accélération et freinage c'est une autre histoire.
Ça me semble difficile de rester sur un cercle pendant ces 2 phases transitoires à moins de limiter carrément les vitesses.
Si tu acceptes des vitesses de l'ordre de 0.1 m/s voir inférieures alors oui tu te rapprocheras de ton cercle idéal, objet de tes convoitises. :D. Peut-être que ton but aura été atteint mais ta satisfaction sera très personnelle et je doute qu'elle soit partagée par le spectateur qui sera incapable d'apprécier le spectacle à sa juste valeur. :D
RCVA: Robot Concept Ville d'Avray
http://www.rcva.fr

RCToulon
Posts: 61
Joined: Thu 05 Nov 2015, 13:04

Re: Trajectoire en arc de cercle véritable

Post by RCToulon » Mon 09 Jan 2017, 23:43

Pour apporter quelques éléments également, la trajectoire circulaire départ arrêté n'a rien d'impossible, bien au contraire.
Il faut seulement s'assurer que les vitesses gauche et droite soient à tout instant dans un rapport égal à (R+D/2)/(R-D/2), avec R le rayon de la trajectoire et D l'entraxe des roues du robot. Pour cela, départ arrêté, il suffit de générer des rampes de vitesse avec des accélérations dans le même rapport que précédemment.

Si tu veux enchaîner les trajectoires circulaires, c'est une autre histoire... Si l'enchaînement se produit avec un arrêt du robot entre les deux mouvements successifs ET que les deux mouvements sont tangents au moment du changement, pas de soucis, on peut décomposer et se ramener au cas précédent. Si tu veux passer à un moment quelconque d'une trajectoire circulaire à un autre (genre pour éviter un adversaire), dans ce cas c'est beaucoup plus compliqué, et pendant un moment la trajectoire ne sera plus circulaire...

Dans ce dernier cas, je suis intéressé de savoir comment font les autres équipes, car nous n'avons pas de réponse définitive... La seule chose que nous avons envisagé est de s'asservir sur le rayon et la vitesse linéaire ou comme le propose Gargamel sur la vitesse linéaire et sur la vitesse angulaire, ce qui est équivalent.

Mais si quelqu'un a une idée sympa ou novatrice, il est le bienvenu :)
Valentin - participant à la Commission Règlement 2018
Robot Club Toulonnais

User avatar
GARGAMEL
PMI
Posts: 1184
Joined: Tue 14 Jun 2005, 17:16
Location: Ville d'Avray
Contact:

Re: Trajectoire en arc de cercle véritable

Post by GARGAMEL » Tue 10 Jan 2017, 13:20

RCToulon wrote:Pour apporter quelques éléments également, la trajectoire circulaire départ arrêté n'a rien d'impossible, bien au contraire.
Il faut seulement s'assurer que les vitesses gauche et droite soient à tout instant dans un rapport égal à (R+D/2)/(R-D/2), avec R le rayon de la trajectoire et D l'entraxe des roues du robot. Pour cela, départ arrêté, il suffit de générer des rampes de vitesse avec des accélérations dans le même rapport que précédemment.
Pour les trajectoires circulaires ou plus généralement les trajectoires courbes, il est plus efficace d’utiliser l’asservissement polaire. Plutôt que d’asservir roue droite et roue gauche, on asservit le robot en translation ½(roue_droite + roue_gauche) et en rotation (roue_droite -roue_gauche).
Ça a l’air de rien mais ça change tout.
Chacun sait que les réglages d’un asservissement dépendent du comportement dynamique du processus commandé.
Le mouvement d’un robot se décompose en translations et rotations et le comportement dynamique du robot n’est évidemment pas le même pour ces 2 mouvements.
Pour simplifier, le comportement en translation dépend de la masse et en rotation dépend du moment d’inertie.
Dans un asservissement polaire tu peux donc adapter tes gains d’asservissements sur ces 2 types de déplacements, ce qui est impossible dans le cas d’un asservissement sur chaque roue.
Pour prendre un exemple de 2 robots de même masse mais de répartition des masses différentes (Donc de moments d’inertie différents), les réglages des asservissements en translation seront identiques sur les 2 robots mais les réglages des asservissements en rotation seront différents.
C’est une des raisons de l’intérêt de l’asservissement polaire, particulièrement utile pour des déplacements curvilignes.

Pour en revenir aux trajectoires circulaires départ arrêté avec freinage en sortie, la difficulté est de rester sur le cercle pendant l’accélération et le freinage. (Ce n’est pas la peine d’avoir piloté pour avoir ressenti la difficulté de rester sur sa trajectoire avec un freinage en courbe un peu musclé.).

Notre solution aux trajectoires circulaires départ arrêté avec sortie en freinage :
Utilisation de l’asservissement polaire.
Pour l’asservissement en translation générer des consignes vitesse « consigne_lin » en forme de rampes (accélération linéaire constante) et pour l’asservissement en rotation: « consigne_rot=consigne_lin/R » tout simplement.

Malgré toutes ces précautions:
Comme il ne s’agit que de consignes et que les asservissements bien qu’optimisés ont leurs propres limites de fonctionnement, on ne peut prétendre que les trajectoires soient circulaires, suffit pour s’en rendre compte de visualiser les erreurs de trainage pendant l’accélération et le freinage.

Conclusion:
On s'en fout de n'être pas purement circulaire, tant que le robot sait ou il est.
RCVA: Robot Concept Ville d'Avray
http://www.rcva.fr

User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Re: Trajectoire en arc de cercle véritable

Post by sikularobotik » Sun 15 Jan 2017, 00:30

Pour les trajectoires circulaires, nous utiliserons bien l'asservissement polaire du robot. Toutefois, la solution que j'ai dégagé s'appuie sur une équation proche de celle de RCToulon (pas tout à fait la même car nous n'avons pas de mesure directe de l'entraxe)
En fait, le robot calcule la vitesse de la roue extérieure (qui est la plus rapide) et limite celle-ci à une valeur atteignable, puis déduit la vitesse de la roue intérieure. À partir de ça, il retrouve la vitesse angulaire et longitudinale qui correspondent pour les consignes de l'asservissement polaire. Bien sûr, ces calculs garantissent w=v/R à la fin.

Ça ne change pas grand chose au Schmilblick, mais ça aide un peu:
- Comme l'a précisé Gargamel, l'asservissement polaire permet de mieux agir sur les composantes inertielles (en effort de translation et en moment) en les découplant ;
- Nous avons déjà un asservissement polaire, et bien réglé en plus, donc nous n'avons rien à coder/régler de ce côté là ;
- Le calcul est valide pour tout rayon et ne diverge pas proche de 0 (contrairement à la division par le rayon) ;
- Comme on ne dépasse pas les capacités de vitesse des roues, il y a plus de chances que ça marche :)

Ensuite, il a été abordé les phases d'accélération et de décélération qui rendent le suivi de la trajectoire difficile. Théoriquement, si les accélérations ont également le même rapport (dw/dt = dv/dt / R), alors le rapport des vitesses est maintenu aussi pendant ces phases.
Là dessus on a un certain avantage : notre asservissement est déjà très bon dans les régimes transitoires (au point qu'on n'est pas capable de différencier une accélération d'une vitesse constante en regardant seulement la courbe d'erreur i.e. les chiffres annoncés plus haut par Valère sont valables dans les phases d'accélération également)
Donc là dessus, je ne suis pas inquiet, surtout après avoir vu ce que la simulation nous prédit.

Par ailleurs j’acquiesce que, d'un point de vue pragmatique, on se contrefiche d'une trajectoire patatoïde vaguement circulaire tant qu'on peut se rattraper après. Mais pour ma part, la participation au projet de robotique n'est pas pour avoir un bon classement à la coupe, mais pour avoir une occasion de mettre en pratique, augmenter et partager des savoirs techniques. En ce sens, l'aspect circulaire de la trajectoire m'importe aussi.

Maintenant, en ce qui concerne l'effet centrifuge, vous m'avez fait quelques frayeurs.
J'ai donc sorti papier et crayon et ai calculé la vitesse angulaire en fonction du rayon.

Plus le rayon est grand, plus l'effet centrifuge est accentué, mais comme la vitesse angulaire diminue aussi (puisque la vitesse de la roue extérieure est limitée), la valeur de la "force" centrifuge en fonction du rayon n'est pas triviale. En prenant les 12kg de notre robot et 90cm/s max pour la roue extérieure, il résulte ceci (ça tend asymptotiquement vers 0 pour une ligne droite [rayon infini]) :

Image

J'en conclue que (dans les conditions de notre robot) la force centrifuge ne devrait pas nous poser de problème. Avec un robot plus lourd ou plus rapide, il aurait certainement fallu limiter la vitesse de la roue extérieure en fonction du rayon visé pour ne pas subir une action latérale trop importante.

Vivement les tests en grandeur réelle. Poussé par la curiosité, j'ai pu dégagé quelques minutes pour faire des tests préliminaires à basse vitesse. Ils sont très encourageants (et me donnent encore plus envie de faire le grand test !)

Florent
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Re: Trajectoire en arc de cercle véritable

Post by sikularobotik » Sun 15 Jan 2017, 00:48

GARGAMEL wrote:Ça me semble difficile de rester sur un cercle pendant ces 2 phases transitoires à moins de limiter carrément les vitesses.
Pour l'exploit, je relèverai ce défi : un cercle convainquant aux vitesse/accélération nominales de notre robot ! 8)
(et si ça rate, on apprendra quand même plein de choses et on partagera)
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

User avatar
wix
PMI
Posts: 509
Joined: Sun 17 Sep 2006, 22:35

Re: Trajectoire en arc de cercle véritable

Post by wix » Mon 23 Jan 2017, 22:18

Si tu veux suivre un vrai cercle il te faut un asservissement de trajectoire et non plus un asservissement de "destination", sinon l'indépendance de traitement de "l'avance" et du cap, produisent des erreurs de trainages évoquées par Gargamel. Dit autrement il faut des étages d'asserv au dessus de l'asserv polaire.

Il y a 2 façons de le faire :
1/ avoir un robot asservi en permanence sur un point (là c'est la couche polaire qui bosse) et déplacer ce point de consigne pour faire une trajectoire (là c'est une couche supérieure). C'est assez proche de la solution d'asserv polaire et surtout ça se met bien "par dessus" en re-calculant régulièrement les consignes de distance/cap en fonction de l'erreur de position. Tu retrouvera le même problème qu'un asserv polaire simpliste : si tu décroches du suivi de point (ex : adversaire ou bordure), alors les intégrateurs se chargent et ça peut poser des soucis, mais c'est simple à mettre en oeuvre.

2/ discrétiser la trajectoire , associer à chaque point de passage une consigne et définir une fonction de rattrapage de trajectoire. Lorsque le robot est arrêté la projection reste sur place et les consignes ne bougent pas tant que la demande d'arrêt du système d'évitement n'est pas levée.

En vrai ça donne ça : https://www.youtube.com/watch?v=qeNZji2Qn84
(faut excuser la qualité, à l'époque on n'avait pas les téléphones d'aujourd'hui ^^)

Cela étant dit, ces solutions sont assez lourdes à mettre (à tel point que certaines implémentations sont sous brevets) en oeuvre et dépendent directement de la précision de la localisation. Donc comme te l'as conseillé Gargamel, si tu sais où tu es précisément, que les solutions "destination" te placent à peu près où tu veux, et que les actionneurs savent compenser, ça ne vaut vraiment pas le coup d'aller là dedans (autrement que pour le fun).
Qui fait le malin............... tombe dans le ravin
(Equipe Ard, suivez nous sur Twitter : )

RCToulon
Posts: 61
Joined: Thu 05 Nov 2015, 13:04

Re: Trajectoire en arc de cercle véritable

Post by RCToulon » Fri 27 Jan 2017, 00:05

Impressionnant ! Bravo à ceux qui l'ont conçu...
Valentin - participant à la Commission Règlement 2018
Robot Club Toulonnais

User avatar
sikularobotik
Posts: 64
Joined: Wed 02 Oct 2013, 00:30
Location: Grand Ouest
Contact:

Re: Trajectoire en arc de cercle véritable

Post by sikularobotik » Sat 11 Feb 2017, 12:39

Impressionnant en effet.

Pour notre part, nous n'avons pas la couche que décrit wix, mais quelque chose qui s'en rapproche un peu.
Pour résumer notre asservissement, je dirais que c'est un asservissement optimiste : des trajectoires réalisables (ie en tenant compte des limites du robot) sont pré-calculées avant le déplacement et nous sommes confiants sur le fait que le robot les suive (et réalistes car il y a un module qui arrête les moteurs si le robot s'éloigne trop de l'idéal).
Ainsi, la consigne de l’asservissement polaire évolue au cours du temps ; et l’asservissement est réglé pour faire du suivi et pas de la simple régulation.
Comparé à ce que décrit wix, les erreurs de trajectoire ne sont pas compensées ; mais comme l'asservissement est assez performant, l'erreur est très faible.

Concernant le fun, c'est évidemment l'option qu'on prend ; et c'est surtout l'option avec laquelle on va apprendre beaucoup de choses.
--
Association Šikula Robotik
2016 Axolotl & Harvé
2015 Aventurier
2014 Australopithèque,Zinjanthrope
2013 Brownie&CrèmeA., Zlabia
2012 Albator, Zabulbo
http://sikula-robotik.desbwa.org
Twitter : @SikulaRobotik
Youtube : SikulaRobotik

Post Reply