![]() |
Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
|
Tout le code lié au déplacement du robot. Plus de détails...

Topics | |
| Moteurs | |
| Différentes interface permettant de manipuler des moteurs. | |
| Paramètres de ralentissement du robot | |
| Les paramètres de ralentissement du robot à la fin de goto. | |
| Codewheel_hardware_timers | |
Fichiers | |
| fichier | AbstractTimer.h |
| Un timer abstrait pour que Codewheel ne dépende pas directement du hardware. | |
| fichier | VelocityController.h |
| Contrôleur de vitesse pour un robot à base différentielle. | |
| fichier | TurnOnTheSpot.h |
| Implémentation d'AbstractMoveStrategy qui fait tourner le robot sur lui-même. | |
| fichier | Wheeledbase.h |
| Fonctions de convénience pour faire les déplacements facilement. | |
| fichier | wb_const.h |
| Diverses constantes concernant la base roulante. | |
| fichier | wb_thread.h |
| Contient les fonctions et variables nécessaires pour gérer le thread de base roulante. | |
Espaces de nommage | |
| namespace | Wheeledbase |
| Fonctions de convénience pour faire les déplacements facilement. | |
Classes | |
| struct | Position |
| Structure de position. Plus de détails... | |
| class | Codewheel |
| Fait la passerelle entre les roues codeuses et le stm32. Plus de détails... | |
| class | DifferentialController |
| Controle les moteurs. Plus de détails... | |
| class | PID |
| Classe d'asservissement. Plus de détails... | |
| class | PositionController |
| Classe support des objets AbstractMoveStrategy. Plus de détails... | |
| class | AbstractMoveStrategy |
| Interface de Stratégie de mouvement. Plus de détails... | |
| class | BasicMoveStrategy |
| Stratégie de mouvement basique. Plus de détails... | |
| class | BasicTurnStrategy |
| Stratégie de mouvement basique. Plus de détails... | |
Tout le code lié au déplacement du robot.
Dans cette section, nous allons aborder le schéma compliqué qu'entretiennent les différents composants de la base roulante du robot.
PeriodicProcess::update() qui est appelée tous les PeriodicProcess::m_timestep ms.À chaque itération de la boucle de la base roulante, gardez en tête que ça ne se produit que s'il est possible de le faire, c'est-à-dire que le timestep du PeriodicProcess est écoulé. Dans l'ordre, l'odométrie est mise à jour, ce qui permet de déterminer la position actuelle du robot. Ensuite, le PositionController appelle la stratégie de mouvement pour déterminer la consigne en vitesse du robot. Il transmet ensuite cette consigne au VelocityController. Celui-ci applique des traitements (notamment des rampes) à la consigne de vitesse. Une fois que la consigne est prête, le VelocityController va la transmettre au DifferentialController, qui va appliquer le PID et déterminer la vitesse de rotation de chaque roue. Enfin le DC va transmettre ces consignes directement aux drivers.
Ce système permet à la fois une grande flexibilité (possibilité d'implémenter plusieurs MoveStrategy), mais aussi une grande robustesse. Toutefois, il est à noter qu'il y a beaucoup de constantes à régler (constantes du PID, rayon des roues, écart entre les roues, etc.), et que les systèmes sont difficilement découplable, aussi, il faut s'y prendre à l'avance dans le réglage de ces constantes.
TODO