Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
Référence de l'espace de nommage Wheeledbase

Fonctions de convénience pour faire les déplacements facilement. Plus de détails...

Classes

struct  WBConstants
 Défini un certain nombre de constantes et paramètres pour la wheeledbase. Plus de détails...
 
struct  WheeledBase
 Représente les divers composants de la base roulante. Plus de détails...
 

Énumérations

enum  WBParameterID : uint8_t {
  WBPID_LEFTWHEEL_RADIUS_ID , WBPID_LEFTWHEEL_CONSTANT_ID , WBPID_LEFTWHEEL_MAXPWM_ID , WBPID_RIGHTWHEEL_RADIUS_ID ,
  WBPID_RIGHTWHEEL_CONSTANT_ID , WBPID_RIGHTWHEEL_MAXPWM_ID , WBPID_LEFTCODEWHEEL_RADIUS_ID , WBPID_LEFTCODEWHEEL_COUNTSPERREV_ID ,
  WBPID_RIGHTCODEWHEEL_RADIUS_ID , WBPID_RIGHTCODEWHEEL_COUNTSPERREV_ID , WBPID_ODOMETRY_AXLETRACK_ID , WBPID_ODOMETRY_SLIPPAGE_ID ,
  WBPID_VELOCITYCONTROL_AXLETRACK_ID , WBPID_VELOCITYCONTROL_MAXLINACC_ID , WBPID_VELOCITYCONTROL_MAXLINDEC_ID , WBPID_VELOCITYCONTROL_MAXANGACC_ID ,
  WBPID_VELOCITYCONTROL_MAXANGDEC_ID , WBPID_VELOCITYCONTROL_SPINSHUTDOWN_ID , WBPID_LINVELPID_KP_ID , WBPID_LINVELPID_KI_ID ,
  WBPID_LINVELPID_KD_ID , WBPID_LINVELPID_MINOUTPUT_ID , WBPID_LINVELPID_MAXOUTPUT_ID , WBPID_ANGVELPID_KP_ID ,
  WBPID_ANGVELPID_KI_ID , WBPID_ANGVELPID_KD_ID , WBPID_ANGVELPID_MINOUTPUT_ID , WBPID_ANGVELPID_MAXOUTPUT_ID ,
  WBPID_POSITIONCONTROL_LINVELKP_ID , WBPID_POSITIONCONTROL_ANGVELKP_ID , WBPID_POSITIONCONTROL_LINVELMAX_ID , WBPID_POSITIONCONTROL_ANGVELMAX_ID ,
  WBPID_POSITIONCONTROL_LINPOSTHRESHOLD_ID , WBPID_POSITIONCONTROL_ANGPOSTHRESHOLD_ID , WBPID_PUREPURSUIT_LOOKAHED_ID , WBPID_PUREPURSUIT_LOOKAHEADBIS_ID
}
 Des identifiants permettant d'accéder à la plupart des paramètres de la base roulante.
 

Fonctions

void run (WheeledBase *wheeledBase, const std::function< void()> &delayFunc)
 
void disable (const WheeledBase *wheeledBase)
 Désactive la base roulante.
 
void gotoDelta (WheeledBase *wheeledBase, PurePursuit *purePursuit, float dx, float dy, bool bloquant=true)
 Déplace la base roulante d'une certaine distance dans le référentiel du robot.
 
void setOpenloopVelocities (WheeledBase *wheeledBase, float leftWheelVel, float rightWheelVel)
 Définit les vitesses en boucle ouverte pour les roues.
 
void getCodewheelsCounters (WheeledBase *wheeledBase, float *leftCodewheelCounter, float *rightCodewheelCounter)
 Récupère les compteurs des roues codeuses.
 
void setVelocities (WheeledBase *wheeledBase, float linVelSetpoint, float angVelSetpoint)
 Fixe une vitesse linéaire et angulaire pour la base roulante.
 
void resetPurepursuit (WheeledBase *wheeledBase, PurePursuit *purePursuit)
 Réinitialise le purepursuit.
 
void addPurepursuitWaypoint (PurePursuit *purePursuit, float x, float y)
 Ajoute un waypoint au purepursuit.
 
void startPurepursuit (WheeledBase *wheeledBase, PurePursuit *purePursuit, PurePursuit::Direction direction, float finalAngle)
 Démarre le purepursuit.
 
void startTurnonthespot (WheeledBase *wheeledBase, TurnOnTheSpot *turnOnTheSpot, bool dir, float theta)
 démarre turn on the spot
 
void startTurnonthespotDir (const WheeledBase *wheeledBase, TurnOnTheSpot *turnOnTheSpot, TurnOnTheSpot::Direction dir, float theta)
 démarre turn on the spot mais avec moins de magie dans la direction de rotation
 
void purepursuit (WheeledBase *wheeledBase, PurePursuit *purePursuit, const Position **waypoints, uint16_t nb_waypoints, PurePursuit::Direction dir, float finalAngle)
 Démarre purepursuit ? honnêtement jsp trop.
 
void wbGoto (WheeledBase *wheeledBase, PurePursuit *purePursuit, Position *pos, bool alignFirst=true, PurePursuit::Direction dir=PurePursuit::NONE, bool bloquant=true)
 Va à un point en utilisant purepursuit.
 
void gotoWaypoints (WheeledBase *wheeledBase, PurePursuit *purePursuit, bool alignFirst=true, PurePursuit::Direction dir=PurePursuit::NONE, int nb_waypoints=1,...)
 Suit une liste de waypoint en utilisant purepursuit.
 
void gotoWaypointsArray (WheeledBase *wheeledBase, PurePursuit *purePursuit, Position *positions[], bool alignFirst=true, PurePursuit::Direction dir=PurePursuit::NONE, int nb_waypoints=1)
 Suit une liste de waypoint en utilisant purepursuit mais sans les varargs.
 
void gotoFunct (WheeledBase *wheeledBase, PurePursuit *purePursuit, TurnOnTheSpot *turnOnTheSpot, Position *pos, void *duringMovingFunct, void *approachFunct, bool alignFirst=true, PurePursuit::Direction dir=PurePursuit::NONE, float finalAngle=MAXFLOAT)
 Honnêtement aucune idée de ce que fait cette fonction.
 
uint8_t positionReached (const WheeledBase *wheeledBase)
 Est-ce que la position est atteinte ?
 
void getVelocitiesWanted (const WheeledBase *wheeledBase, float *linOutput, float *angOutput, bool spin=true)
 Récupère les vitesses linéaire et angulaire souhaitées.
 
void setPosition (WheeledBase *wheeledBase, const Position *pos)
 Met à jour la position de l'odométrie.
 
const PositiongetPosition (const WheeledBase *wheeledBase)
 Récupère la position de l'odométrie.
 
void getVelocities (const WheeledBase *wheeledBase, float *linVel, float *angVel)
 Récupère les vitesses linéaire et angulaire actuelles.
 
void setParameterValue (WheeledBase *wheeledBase, PurePursuit *purePursuit, WBParameterID paramID, float value)
 Met un paramètre de la base roulante à jour.
 
float getParameterValue (const WheeledBase *wheeledBase, const PurePursuit *purePursuit, WBParameterID paramID)
 Récupère la valeur d'un paramètre de la base roulante.
 
void printParams (const WheeledBase *wheeledBase, const PurePursuit *purePursuit)
 Affiche les paramètres de la base roulante.
 
void goto_delta (WheeledBase *wheeledBase, PurePursuit *purePursuit, float dx, float dy, bool bloquant)
 

Variables

auto wb_logger = Logger("WHEELEDBASE")
 Le logger pour la base roulante.
 

Description détaillée

Fonctions de convénience pour faire les déplacements facilement.

Documentation des fonctions

◆ addPurepursuitWaypoint()

void Wheeledbase::addPurepursuitWaypoint ( PurePursuit * purePursuit,
float x,
float y )

Ajoute un waypoint au purepursuit.

Paramètres
purePursuitLe purpursuit
xla position x du waypoint
yla position y du waypoint
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ disable()

void Wheeledbase::disable ( const WheeledBase * wheeledBase)

Désactive la base roulante.

Paramètres
wheeledBaseLa base roulante
Voici le graphe d'appel pour cette fonction :

◆ getCodewheelsCounters()

void Wheeledbase::getCodewheelsCounters ( WheeledBase * wheeledBase,
float * leftCodewheelCounter,
float * rightCodewheelCounter )

Récupère les compteurs des roues codeuses.

Paramètres
wheeledBaseLa base roulante
leftCodewheelCounterLe pointeur vers le compteur de la roue codeuse gauche
rightCodewheelCounterLe pointeur vers le compteur de la roue codeuse droite
Voici le graphe d'appel pour cette fonction :

◆ getParameterValue()

float Wheeledbase::getParameterValue ( const WheeledBase * wheeledBase,
const PurePursuit * purePursuit,
WBParameterID paramID )

Récupère la valeur d'un paramètre de la base roulante.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
paramIDL'ID du paramètre
Renvoie
La valeur du paramètre
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getPosition()

const Position * Wheeledbase::getPosition ( const WheeledBase * wheeledBase)

Récupère la position de l'odométrie.

Paramètres
wheeledBaseLa base roulante
Renvoie
La position de l'odométrie
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getVelocities()

void Wheeledbase::getVelocities ( const WheeledBase * wheeledBase,
float * linVel,
float * angVel )

Récupère les vitesses linéaire et angulaire actuelles.

Paramètres
wheeledBaseLa base roulante
linVelLa variable dans laquelle la vitesse linéaire sera retournée
angVelLa variable dans laquelle la vitesse angulaire sera retournée
Voici le graphe d'appel pour cette fonction :

◆ getVelocitiesWanted()

void Wheeledbase::getVelocitiesWanted ( const WheeledBase * wheeledBase,
float * linOutput,
float * angOutput,
bool spin = true )

Récupère les vitesses linéaire et angulaire souhaitées.

Paramètres
wheeledBaseLa base roulante
linOutputLa variable dans laquelle la vitesse linéaire sera retournée
angOutputLa variable dans laquelle la vitesse angulaire sera retournée
spinEst-ce que les roues patinent ?
Voici le graphe d'appel pour cette fonction :

◆ gotoDelta()

void Wheeledbase::gotoDelta ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
float dx,
float dy,
bool bloquant = true )

Déplace la base roulante d'une certaine distance dans le référentiel du robot.

Paramètres
wheeledBaseLa base roulante
purePursuitLe contrôleur de poursuite pure
dxLa distance à parcourir sur l'axe des x
dyLa distance à parcourir sur l'axe des y
bloquantIndique si l'opération doit être bloquante

◆ gotoWaypoints()

void Wheeledbase::gotoWaypoints ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
bool alignFirst = true,
PurePursuit::Direction dir = PurePursuit::NONE,
int nb_waypoints = 1,
... )

Suit une liste de waypoint en utilisant purepursuit.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
alignFirstOn s'aligne d'abord ?
dirLa direction
nb_waypointsLe nombre de points de passage
...Les points de passage

ON ENREGISTRE LA DERNIERE POS

Voici le graphe d'appel pour cette fonction :

◆ gotoWaypointsArray()

void Wheeledbase::gotoWaypointsArray ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
Position * positions[],
bool alignFirst = true,
PurePursuit::Direction dir = PurePursuit::NONE,
int nb_waypoints = 1 )

Suit une liste de waypoint en utilisant purepursuit mais sans les varargs.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
positionsLes waypoints
alignFirstOn s'aligne d'abord ?
dirLa direction
nb_waypointsLe nombre de points de passage

ON ENREGISTRE LA DERNIERE POS

Voici le graphe d'appel pour cette fonction :

◆ positionReached()

uint8_t Wheeledbase::positionReached ( const WheeledBase * wheeledBase)

Est-ce que la position est atteinte ?

Paramètres
wheeledBaseLa base roulante
Renvoie
0b01 si la position est atteinte, 0b10 si les roues patinent (en théorie, sauf que le code de détection de patinage est désactivé...)
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ printParams()

void Wheeledbase::printParams ( const WheeledBase * wheeledBase,
const PurePursuit * purePursuit )

Affiche les paramètres de la base roulante.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
Voici le graphe d'appel pour cette fonction :

◆ purepursuit()

void Wheeledbase::purepursuit ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
const Position ** waypoints,
uint16_t nb_waypoints,
PurePursuit::Direction dir,
float finalAngle )

Démarre purepursuit ? honnêtement jsp trop.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
waypointsLes points de passage
nb_waypointsLe nombre de points de passage
dirLa direction du mouvement
finalAngleL'angle final
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ resetPurepursuit()

void Wheeledbase::resetPurepursuit ( WheeledBase * wheeledBase,
PurePursuit * purePursuit )

Réinitialise le purepursuit.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit à réinitialiser
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ setOpenloopVelocities()

void Wheeledbase::setOpenloopVelocities ( WheeledBase * wheeledBase,
float leftWheelVel,
float rightWheelVel )

Définit les vitesses en boucle ouverte pour les roues.

Paramètres
wheeledBaseLa base roulante
leftWheelVelLa vitesse de la roue gauche
rightWheelVelLa vitesse de la roue droite
Voici le graphe d'appel pour cette fonction :

◆ setParameterValue()

void Wheeledbase::setParameterValue ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
WBParameterID paramID,
float value )

Met un paramètre de la base roulante à jour.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
paramIDL'ID du paramètre
valueLa nouvelle valeur
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ setPosition()

void Wheeledbase::setPosition ( WheeledBase * wheeledBase,
const Position * pos )

Met à jour la position de l'odométrie.

Paramètres
wheeledBaseLa base roulante
posLa nouvelle position
Voici le graphe d'appel pour cette fonction :

◆ setVelocities()

void Wheeledbase::setVelocities ( WheeledBase * wheeledBase,
float linVelSetpoint,
float angVelSetpoint )

Fixe une vitesse linéaire et angulaire pour la base roulante.

Paramètres
wheeledBaseLa base roulante
linVelSetpointLa consigne de vitesse linéaire
angVelSetpointLa consigne de vitesse angulaire
Voici le graphe d'appel pour cette fonction :

◆ startPurepursuit()

void Wheeledbase::startPurepursuit ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
PurePursuit::Direction direction,
float finalAngle )

Démarre le purepursuit.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
directionLa direction du mouvement
finalAngleL'angle final
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ startTurnonthespot()

void Wheeledbase::startTurnonthespot ( WheeledBase * wheeledBase,
TurnOnTheSpot * turnOnTheSpot,
bool dir,
float theta )

démarre turn on the spot

Paramètres
wheeledBaseLa base roulante
turnOnTheSpotLe contrôleur turn on the spot
dirLa direction du tour
thetaL'angle du tour
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ startTurnonthespotDir()

void Wheeledbase::startTurnonthespotDir ( const WheeledBase * wheeledBase,
TurnOnTheSpot * turnOnTheSpot,
TurnOnTheSpot::Direction dir,
float theta )

démarre turn on the spot mais avec moins de magie dans la direction de rotation

Paramètres
wheeledBaseLa base roulante
turnOnTheSpotLe contrôleur turn on the spot
dirLa direction du tour
thetaL'angle du tour
Voici le graphe d'appel pour cette fonction :

◆ wbGoto()

void Wheeledbase::wbGoto ( WheeledBase * wheeledBase,
PurePursuit * purePursuit,
Position * pos,
bool alignFirst = true,
PurePursuit::Direction dir = PurePursuit::NONE,
bool bloquant = true )

Va à un point en utilisant purepursuit.

Paramètres
wheeledBaseLa base roulante
purePursuitLe purepursuit
posLa destination
alignFirstOn s'aligne d'abord ?
dirLa direction
bloquantEst-ce que la fonction doit bloquer jusqu'à la fin du mouvement
Voici le graphe d'appel pour cette fonction :