Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
DifferentialController.h
1#ifndef __DIFFERENTIALCONTROLLER_H__
2#define __DIFFERENTIALCONTROLLER_H__
3
4#include <memory>
5
6#include "../lib/PeriodicProcess/PeriodicProcess.h"
7#include "AbstractMotors.h"
8#include "PID.h"
9
20{
21public:
27
36 void setInputs (float linInput, float angInput) {m_linInput = linInput; m_angInput = angInput;}
45 void setSetpoints(float linSetpoint, float angSetpoint){m_linSetpoint = linSetpoint; m_angSetpoint = angSetpoint;}
53 void setAxleTrack(float axleTrack);
54
63 void setWheels(AbstractMotor& leftWheel, AbstractMotor& rightWheel){m_leftWheel = &leftWheel; m_rightWheel = &rightWheel;}
72 void setPID(std::unique_ptr<PID> linPID, std::unique_ptr<PID> angPID){m_linPID = std::move(linPID); m_angPID = std::move(angPID);}
73
74
75
82 float getLinSetpoint() const {return m_linSetpoint;}
89 float getAngSetpoint() const {return m_angSetpoint;}
90
96 float getLinOutput() const {return m_linVelOutput;}
102 float getAngOutput() const {return m_angVelOutput;}
103
108 float getAxleTrack() const {return m_axleTrack;}
109
110 std::unique_ptr<PID> m_linPID;
111 std::unique_ptr<PID> m_angPID;
112protected:
117 virtual void process(float timestep);
121 virtual void onProcessEnabling();
122 virtual void onProcessDisabling();
123
129
132
135};
136
137#endif // __DIFFERENTIALCONTROLLER_H__
Definition motors/include/AbstractMotors.h:14
float getAngOutput() const
Retour la commande angulaire actuel.
Definition DifferentialController.h:102
float m_axleTrack
Definition DifferentialController.h:128
float getLinSetpoint() const
Retourne la vitesse demandée.
Definition DifferentialController.h:82
AbstractMotor * m_rightWheel
Definition DifferentialController.h:134
std::unique_ptr< PID > m_angPID
Definition DifferentialController.h:111
void setWheels(AbstractMotor &leftWheel, AbstractMotor &rightWheel)
Charge les moteurs.
Definition DifferentialController.h:63
float m_linInput
Definition DifferentialController.h:124
std::unique_ptr< PID > m_linPID
Definition DifferentialController.h:110
void setInputs(float linInput, float angInput)
Charge les vitesses actuel.
Definition DifferentialController.h:36
virtual void onProcessEnabling()
Reset les accumulateurs des asserv.
Definition DifferentialController.cpp:14
float m_angInput
Definition DifferentialController.h:125
AbstractMotor * m_leftWheel
Definition DifferentialController.h:133
void setSetpoints(float linSetpoint, float angSetpoint)
Charge les vitesses désirées.
Definition DifferentialController.h:45
float getAngSetpoint() const
Retourne la vitesse demandée.
Definition DifferentialController.h:89
virtual void process(float timestep)
Calcul l'asservissement.
Definition DifferentialController.cpp:3
virtual void onProcessDisabling()
Méthode exécutée à la désactivation du PeriodicProcess.
Definition DifferentialController.cpp:20
float m_linVelOutput
Definition DifferentialController.h:130
float getAxleTrack() const
Retourne l'entraxe.
Definition DifferentialController.h:108
float getLinOutput() const
Retour la commande linéaire actuel.
Definition DifferentialController.h:96
DifferentialController()
Constructeur de DifferentialController Constructeur de DifferentialController qui initialise les vari...
Definition DifferentialController.h:26
float m_linSetpoint
Definition DifferentialController.h:126
float m_angSetpoint
Definition DifferentialController.h:127
float m_angVelOutput
Definition DifferentialController.h:131
void setAxleTrack(float axleTrack)
Charge l'entraxe.
Definition DifferentialController.cpp:26
void setPID(std::unique_ptr< PID > linPID, std::unique_ptr< PID > angPID)
Charge l'asservissement.
Definition DifferentialController.h:72
Classe à implémenter pour gérer les appels dans la loop.
Definition PeriodicProcess/PeriodicProcess.h:17