Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
Référence du fichier Wheeledbase.h

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

#include <functional>
#include "WheelMotor.h"
#include "Components/Codewheel.h"
#include "Components/Odometry.h"
#include "Controller/PID.h"
#include "Controller/VelocityController.h"
#include "Controller/PositionController.h"
#include "MoveStrategy/PurePursuit.h"
#include "MoveStrategy/TurnOnTheSpot.h"
#include <memory>
#include "DRV8844.h"
#include "Logger.h"
Graphe des dépendances par inclusion de Wheeledbase.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

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

Espaces de nommage

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

Macros

#define SLOWDOWN_FACTOR   0.5
 
#define SLOWDOWN_DISTANCE   0
 
#define ALIGN_DISTANCE   130
 

Énumérations

enum  Wheeledbase::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 Wheeledbase::run (WheeledBase *wheeledBase, const std::function< void()> &delayFunc)
 
void Wheeledbase::disable (const WheeledBase *wheeledBase)
 Désactive la base roulante.
 
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.
 
void Wheeledbase::setOpenloopVelocities (WheeledBase *wheeledBase, float leftWheelVel, float rightWheelVel)
 Définit les vitesses en boucle ouverte pour les roues.
 
void Wheeledbase::getCodewheelsCounters (WheeledBase *wheeledBase, float *leftCodewheelCounter, float *rightCodewheelCounter)
 Récupère les compteurs des roues codeuses.
 
void Wheeledbase::setVelocities (WheeledBase *wheeledBase, float linVelSetpoint, float angVelSetpoint)
 Fixe une vitesse linéaire et angulaire pour la base roulante.
 
void Wheeledbase::resetPurepursuit (WheeledBase *wheeledBase, PurePursuit *purePursuit)
 Réinitialise le purepursuit.
 
void Wheeledbase::addPurepursuitWaypoint (PurePursuit *purePursuit, float x, float y)
 Ajoute un waypoint au purepursuit.
 
void Wheeledbase::startPurepursuit (WheeledBase *wheeledBase, PurePursuit *purePursuit, PurePursuit::Direction direction, float finalAngle)
 Démarre le purepursuit.
 
void Wheeledbase::startTurnonthespot (WheeledBase *wheeledBase, TurnOnTheSpot *turnOnTheSpot, bool dir, float theta)
 démarre turn on the spot
 
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
 
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.
 
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.
 
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.
 
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.
 
void Wheeledbase::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 Wheeledbase::positionReached (const WheeledBase *wheeledBase)
 Est-ce que la position est atteinte ?
 
void Wheeledbase::getVelocitiesWanted (const WheeledBase *wheeledBase, float *linOutput, float *angOutput, bool spin=true)
 Récupère les vitesses linéaire et angulaire souhaitées.
 
void Wheeledbase::setPosition (WheeledBase *wheeledBase, const Position *pos)
 Met à jour la position de l'odométrie.
 
const PositionWheeledbase::getPosition (const WheeledBase *wheeledBase)
 Récupère la position de l'odométrie.
 
void Wheeledbase::getVelocities (const WheeledBase *wheeledBase, float *linVel, float *angVel)
 Récupère les vitesses linéaire et angulaire actuelles.
 
void Wheeledbase::setParameterValue (WheeledBase *wheeledBase, PurePursuit *purePursuit, WBParameterID paramID, float value)
 Met un paramètre de la base roulante à jour.
 
float Wheeledbase::getParameterValue (const WheeledBase *wheeledBase, const PurePursuit *purePursuit, WBParameterID paramID)
 Récupère la valeur d'un paramètre de la base roulante.
 
void Wheeledbase::printParams (const WheeledBase *wheeledBase, const PurePursuit *purePursuit)
 Affiche les paramètres de la base roulante.
 

Variables

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

Description détaillée

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