CRINSA-team2024 2024
Documentation du Club Robot INSA Rennes 2024
Chargement...
Recherche...
Aucune correspondance
Référence de la classe VelocityController

Objet de controle de la vitesse. Plus de détails...

#include <VelocityController.h>

Est dérivée de DifferentialController.

Graphe de collaboration de VelocityController:

Fonctions membres publiques

 VelocityController ()
 Constructeur de VelocityController.
 
void setMaxAngAcc (float maxAngAcc)
 Paramètre les accélérations max.
 
void setMaxLinDec (float maxLinDec)
 Paramètre les décéleration max.
 
void setSpinShutdown (bool spinShutdown)
 Change l'état de l'arret d'urgence.
 
float getMaxLinAcc () const
 Retourne l'accélération max linéaire.
 
float getMaxAngAcc () const
 Retourne l'accélération max angulaire.
 
float getMaxLinDec () const
 Retourne la décélération max linéaire.
 
float getMaxAngDec () const
 Retourne la décélération max angulaire.
 
bool getSpinShutdown () const
 Retourne l'état de spinShutDown.
 
void load (int address)
 Charge les paramètres.
 
void save (int address) const
 Sauvegarde les paramètres.
 
- Fonctions membres publiques hérités de DifferentialController
 DifferentialController ()
 Constructeur de DifferentialController Constructeur de DifferentialController qui initialise les variables à des valeurs neutres.
 
void setInputs (float linInput, float angInput)
 Charge les vitesses actuel.
 
void setSetpoints (float linSetpoint, float angSetpoint)
 Charge les vitesses désirées.
 
void setAxleTrack (float axleTrack)
 Charge l'entraxe.
 
void setWheels (AbstractMotor &leftWheel, AbstractMotor &rightWheel)
 Charge les moteurs.
 
void setPID (PID &linPID, PID &angPID)
 Charge l'asservissement.
 
float getLinSetpoint () const
 Retourne la vitesse demandée.
 
float getAngSetpoint () const
 Retourne la vitesse demandée.
 
float getLinOutput () const
 Retour la commande linéaire actuel.
 
float getAngOutput () const
 Retour la commande angulaire actuel.
 
float getAxleTrack () const
 Retourne l'entraxe.
 
void load (int address)
 Charge les paramètres.
 
void save (int address) const
 Sauvegarde les paramètres.
 
- Fonctions membres publiques hérités de PeriodicProcess
virtual ~PeriodicProcess ()
 Constructeur de PeriodicProcess.
 
void enable ()
 Active le PeriodicProcess.
 
void disable ()
 Désactive le PeriodicProcess.
 
void setTimestep (float timestep)
 Sélectionne une nouvelle valeur pour timestep.
 
bool update ()
 Execute la méthode process.
 
bool isEnabled () const
 Vérifie si le PeriodicProcess est activé.
 
float getTimestep () const
 Retourne la valeur de m_timestep.
 

Fonctions membres protégées

float genRampSetpoint (float stepSetpoint, float input, float rampSetpoint, float maxAcc, float maxDec, float timestep)
 Calcul la vitesse à atteindre.
 
virtual void process (float timestep)
 Calcul l'asservissement.
 
virtual void onProcessEnabling ()
 Initialisation de l'asservissement.
 
- Fonctions membres protégées hérités de PeriodicProcess
virtual void onProcessDisabling ()
 Méthode exécutée à la désactivation du PeriodicProcess.
 

Attributs protégés

float m_rampLinVelSetpoint
 
float m_rampAngVelSetpoint
 
float m_maxLinAcc
 
float m_maxLinDec
 
float m_maxAngAcc
 
float m_maxAngDec
 
bool m_spinShutdown
 
- Attributs protégés hérités de DifferentialController
float m_linInput
 
float m_angInput
 
float m_linSetpoint
 
float m_angSetpoint
 
float m_axleTrack
 
float m_linVelOutput
 
float m_angVelOutput
 
AbstractMotorm_leftWheel
 
AbstractMotorm_rightWheel
 
PIDm_linPID
 
PIDm_angPID
 

Description détaillée

Objet de controle de la vitesse.

VelocityController est une version améliorée de DifferentialController car il rajoute la gestion de Spin et les accélérations capées.

Documentation des constructeurs et destructeur

◆ VelocityController()

VelocityController::VelocityController ( )
inline

Constructeur de VelocityController.

Construteur de VelocityController qui initialise ces vairables sur des valeurs neutres.

Documentation des fonctions membres

◆ genRampSetpoint()

float VelocityController::genRampSetpoint ( float stepSetpoint,
float input,
float rampSetpoint,
float maxAcc,
float maxDec,
float timestep )
protected

Calcul la vitesse à atteindre.

Calcul les nouvelles vitesse à atteindre pour respecter les contraites d'accélérations.

Paramètres
stepSetpointVitesse demandé.
inputVitesse actuel
rampSetpointAncienne vitesse intermédiaire calculée.
maxAccAccélération max.
maxDecAccélération min.
timestepTemps depuis le dernier appel.
Renvoie
float Nouvelle vitesse intermédiaire.
Voici le graphe des appelants de cette fonction :

◆ getMaxAngAcc()

float VelocityController::getMaxAngAcc ( ) const
inline

Retourne l'accélération max angulaire.

Renvoie
Accélération en rad/s².

◆ getMaxAngDec()

float VelocityController::getMaxAngDec ( ) const
inline

Retourne la décélération max angulaire.

Renvoie
Décélération en rad/s².

◆ getMaxLinAcc()

float VelocityController::getMaxLinAcc ( ) const
inline

Retourne l'accélération max linéaire.

Renvoie
Accélération en mm/s².

◆ getMaxLinDec()

float VelocityController::getMaxLinDec ( ) const
inline

Retourne la décélération max linéaire.

Renvoie
Décélération en mm/s².

◆ getSpinShutdown()

bool VelocityController::getSpinShutdown ( ) const
inline

Retourne l'état de spinShutDown.

Renvoie
true Si le robot est bloqué par un obstacle.
false Si le robot n'est pas bloqué.

◆ load()

void VelocityController::load ( int address)

Charge les paramètres.

Charge les derniers paramètres sauvegarder (les acc et dec) dans l'Arduino.

Paramètres
addressAdresse à utiliser.

◆ process()

void VelocityController::process ( float timestep)
protectedvirtual

Calcul l'asservissement.

Paramètres
timesteptemps depuis le dernier appel.

Réimplémentée à partir de DifferentialController.

Voici le graphe d'appel pour cette fonction :

◆ save()

void VelocityController::save ( int address) const

Sauvegarde les paramètres.

Sauvegarde les paramètres actuellement chargés.

Paramètres
addressAdresse à utiliser.

◆ setMaxAngAcc()

void VelocityController::setMaxAngAcc ( float maxAngAcc)

Paramètre les accélérations max.

Paramètres
maxLinAccAccélération linéaire en mm/s².
maxAngAccAccélération angulaire en rad/s².
Voici le graphe d'appel pour cette fonction :

◆ setMaxLinDec()

void VelocityController::setMaxLinDec ( float maxLinDec)

Paramètre les décéleration max.

Paramètres
maxLinDecDécélération linéaire en mm/s².
maxAngDecDécélération angulaire en rad/s².
Voici le graphe d'appel pour cette fonction :

◆ setSpinShutdown()

void VelocityController::setSpinShutdown ( bool spinShutdown)

Change l'état de l'arret d'urgence.

Paramètres
spinShutdownEtat à appliquer à la variable spinShutdown.
Voici le graphe d'appel pour cette fonction :

Documentation des données membres

◆ m_maxAngAcc

float VelocityController::m_maxAngAcc
protected

Décélération max linéaire en mm/s². Toujours positif.

◆ m_maxAngDec

float VelocityController::m_maxAngDec
protected

Décélération max angulaire en rad/s². Toujours positif.

◆ m_maxLinAcc

float VelocityController::m_maxLinAcc
protected

Accélération max linéaire en mm/s². Toujours positif.

◆ m_maxLinDec

float VelocityController::m_maxLinDec
protected

Accélération max angulaire en rad/s². Toujours positif.

◆ m_rampAngVelSetpoint

float VelocityController::m_rampAngVelSetpoint
protected

Vitesse angulaire intermédiaire en rad/s.

◆ m_rampLinVelSetpoint

float VelocityController::m_rampLinVelSetpoint
protected

Vitesse linéaire intermédiaire en mm/s.

◆ m_spinShutdown

bool VelocityController::m_spinShutdown
protected

Etat de la sécurité de patinage.


La documentation de cette classe a été générée à partir des fichiers suivants :