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

Classe support des objets AbstractMoveStrategy. Plus de détails...

#include <PositionController.h>

Est dérivée de PeriodicProcess.

Graphe de collaboration de PositionController:

Fonctions membres publiques

 PositionController ()
 Constructeur de PositionController Initialise les variables de PositionController à des valeurs neutre.
 
void setPosInput (const Position &posInput)
 Charge les nouvelles positions du robot. Charge les nouvelles positions du robot pour les donner à une potentiel AbstractMoveStrategy chargée.
 
void setPosSetpoint (const Position &posSetpoint)
 Charge la position à atteindre.
 
void setThetaSetpoint (float theta)
 Charge l'angle à atteindre.
 
float getLinVelSetpoint () const
 Retourne la vitesse linéaire à atteindre.
 
float getAngVelSetpoint () const
 Retourne la vitesse angulaire à atteindre.
 
void setVelTunings (float linVelKp, float angVelKp)
 Paramètre les coéfficients linéaire.
 
void setVelLimits (float linVelMax, float angVelMax)
 Paramètre les vitesses max.
 
void setPosThresholds (float linPosThreshold, float angPosThreshold)
 Paramètre les précisions en position.
 
void setMoveStrategy (AbstractMoveStrategy &moveStrategy)
 Charge une stratégie de mouvement.
 
bool getPositionReached ()
 Indique si la position est atteinte.
 
float getLinVelKp () const
 Retourne le coef proportionnel de vitesse linéaire.
 
float getAngVelKp () const
 Retourne le coef proportionnel de vitesse angulaire.
 
float getLinVelMax () const
 Retourne la vitesse max linéaire.
 
float getAngVelMax () const
 Retourne la vitesse max angulaire.
 
float getLinPosThreshold () const
 Retourne la précision cartésienne.
 
float getAngPosThreshold () const
 Retourne la précision angulaire.
 
void load (int address)
 Charge les configs.
 
void save (int address) const
 Sauvegarde la configuration actuel.
 
- 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.
 

Amis

class AbstractMoveStrategy
 

Membres hérités additionnels

- Fonctions membres protégées hérités de PeriodicProcess
virtual void onProcessDisabling ()
 Méthode exécutée à la désactivation du PeriodicProcess.
 

Description détaillée

Classe support des objets AbstractMoveStrategy.

PositionController est le support des AbstractMoveStrategy. C'est à dire qu'il permet de charger ou supprimer une stratégie. Quand PositionController execute une stratégie de mouvement, il va l'executé tous les time_steps pour y obtenir de nouvelles vitesses à suivre. PositionConstroller va égalemenr renseigné la position du robot à AbstractMoveStrategy chargée.

Renvoie
class PositionController : public PeriodicProcess { public:

Documentation des fonctions membres

◆ getAngPosThreshold()

float PositionController::getAngPosThreshold ( ) const
inline

Retourne la précision angulaire.

Renvoie
Précision angulaire en rad.

◆ getAngVelKp()

float PositionController::getAngVelKp ( ) const
inline

Retourne le coef proportionnel de vitesse angulaire.

Renvoie
Coefficient proportionnel (sans unité).

◆ getAngVelMax()

float PositionController::getAngVelMax ( ) const
inline

Retourne la vitesse max angulaire.

Renvoie
Vitesse angulaire max en rad/s.

◆ getAngVelSetpoint()

float PositionController::getAngVelSetpoint ( ) const
inline

Retourne la vitesse angulaire à atteindre.

Cette méthode retourne la vitesse angulaire que l'AbstractMoveStrategy souhaite atteindre.

Renvoie
Vitesse angulaire à atteindre en rad/s.

◆ getLinPosThreshold()

float PositionController::getLinPosThreshold ( ) const
inline

Retourne la précision cartésienne.

Renvoie
Précision cartésienne en mm.

◆ getLinVelKp()

float PositionController::getLinVelKp ( ) const
inline

Retourne le coef proportionnel de vitesse linéaire.

Renvoie
Coefficient proportionnel (sans unité).

◆ getLinVelMax()

float PositionController::getLinVelMax ( ) const
inline

Retourne la vitesse max linéaire.

Renvoie
Vitesse max en mm/s.

◆ getLinVelSetpoint()

float PositionController::getLinVelSetpoint ( ) const
inline

Retourne la vitesse linéaire à atteindre.

Cette méthode retourne la vitesse linéaire que l'AbstractMoveStrategy souhaite atteindre.

Renvoie
Vitesse à atteindre en mm/s.

◆ getPositionReached()

bool PositionController::getPositionReached ( )

Indique si la position est atteinte.

Permet de savoir si la position objectif est atteinte avec la précision souhaitée.

Renvoie
true Position atteinte.
false Position non atteinte.
Voici le graphe d'appel pour cette fonction :

◆ load()

void PositionController::load ( int address)

Charge les configs.

Charge les configurations de la mémoire de l'Arduino avec l'adresse indiqué en paramètre.

Paramètres
addressAdresse à utiliser.

◆ save()

void PositionController::save ( int address) const

Sauvegarde la configuration actuel.

Paramètres
addressAdresse à utiliser.

◆ setMoveStrategy()

void PositionController::setMoveStrategy ( AbstractMoveStrategy & moveStrategy)

Charge une stratégie de mouvement.

Charge la stratégie de mouvement (AbstractMoveStrategy) passée en paramètre. Elle sera active après l'activation de PositionController ( PositionController::enable).

Paramètres
moveStrategyAbstractMoveStrategy à utiliser.

◆ setPosInput()

void PositionController::setPosInput ( const Position & posInput)
inline

Charge les nouvelles positions du robot. Charge les nouvelles positions du robot pour les donner à une potentiel AbstractMoveStrategy chargée.

Paramètres
posInputNouvelle objet Position représentant la position du robot.

◆ setPosSetpoint()

void PositionController::setPosSetpoint ( const Position & posSetpoint)
inline

Charge la position à atteindre.

Charge la position à atteindre avec une AbstractMoveStrategy. Cette variable est potentiellement utilisé par l'AbstractMoveStrategy.

Paramètres
posSetpointPosition à atteindre

◆ setPosThresholds()

void PositionController::setPosThresholds ( float linPosThreshold,
float angPosThreshold )

Paramètre les précisions en position.

Paramètre les valeurs de précision pour l'AbstractMoveStrategy. Si l'erreur de position est inférieur, l' AbstractMoveStrategy est arrêté.

Paramètres
linPosThresholdPrécision en coordonnés cartésiens (en mm).
angPosThresholdPrécision d'angle (en rad).

◆ setThetaSetpoint()

void PositionController::setThetaSetpoint ( float theta)
inline

Charge l'angle à atteindre.

Change l'angle objectif de l'objet Position. Remarque : les coordonnées objectif reste les mêmes.

Paramètres
thetaNouvelle angle objectif.

◆ setVelLimits()

void PositionController::setVelLimits ( float linVelMax,
float angVelMax )

Paramètre les vitesses max.

Paramètre des vitesses maximals qui dois être appliquer à l'AbstractMoveStrategy.

Paramètres
linVelMaxVitesse linéaire max.
angVelMaxVitesse angulaire max.

◆ setVelTunings()

void PositionController::setVelTunings ( float linVelKp,
float angVelKp )

Paramètre les coéfficients linéaire.

Paramètre de nouvelles valeurs pour les coefficients linéaire de vitesse et vitesse de rotation. Ces coefficients seront appliqués lors du calcul de vitesses à atteindre.

Paramètres
linVelKpCoefficient proportionnel de vitesse linéaire.
angVelKpCoefficient proportionnel de vitesse angulaire.

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