[−][src]Struct librobot::navigation::RealWorldPid
Le module central de la navigation, qui permet de controller le robot avec les unités du monde physique, et d'avoir un retour sur la position du robot. Il contient:
- un PID basé sur la distance parcourue par le robot en millimètres
- un module d'odométrie capable de retrouver la position et l'angle du robot
- les informations nécessaires pour passer du monde des ticks de roue codeuses au monde physique
- les qei gauche et droite correspondant aux deux roues codeuses
- la commande à appliquer aux moteurs gauche et droit
Methods
impl<L, R> RealWorldPid<L, R> where
L: Qei<Count = u16>,
R: Qei<Count = u16>,
[src]
L: Qei<Count = u16>,
R: Qei<Count = u16>,
pub fn new(
qei_left: QeiManager<L>,
qei_right: QeiManager<R>,
params: &PIDParameters
) -> Self
[src]
qei_left: QeiManager<L>,
qei_right: QeiManager<R>,
params: &PIDParameters
) -> Self
Crée un nouveau PID à partir de :
- 2 struct de
embedded_hal
wrappés dans desQeiManager
représentant les encodeurs quadratiques gauche et droite - les coefficients de l'asservissement,
- la valeur maximale de la consigne en sortie,
- les valeurs physiques du robot :
- distance interaxe en mm
- rayon d'une roue codeuse en mm
pub fn get_params(&self) -> &PIDParameters
[src]
Renvoie les paramètres actuels du déplacement.
pub fn set_params(&mut self, params: &PIDParameters)
[src]
Met à jour les paramètres du déplacement.
pub fn update(&mut self)
[src]
Mets à jour le PID et la position du robot
pub fn enable_asserv(&mut self, lin_ctrl: bool, ang_ctrl: bool)
[src]
Active ou désactive l'asservissement longitudinal et / ou l'asservissement angulaire.
pub fn get_command(&self) -> (Command, Command)
[src]
Renvoie la commande courante
pub fn get_position(&self) -> Coord
[src]
Renvoie la position
pub fn get_angle(&self) -> i64
[src]
Renvoie l'angle en milliradians
pub fn get_qei_ticks(&self) -> (i64, i64)
[src]
Renvoie les ticks comptés par les roues codeuses
pub fn get_wheel_dist(&self) -> (f32, f32)
[src]
Renvoie la distance parcourue par les roues codeuses à gauche et à droite, en millimètres.
pub fn set_position_and_angle(&mut self, position: Coord, angle: i64)
[src]
Définit la position actuelle de l'odométrie
pub fn forward(&mut self, distance: f32)
[src]
Ordonne au robot d'avancer de distance
(en mm)
pub fn backward(&mut self, distance: f32)
[src]
Ordonne au robot de reculer de distance
(en mm)
pub fn rotate(&mut self, angle: f32)
[src]
Ordonne au robot de tourner de angle
(en milliradians)
pub fn rotate_absolute(&mut self, angle: f32)
[src]
Ordonne au robot de tourner de façon à s'orienter vers l'angle angle
(en milliradians). Le robot détermine sa position initiale grâce à
l'odométrie.
pub fn stop(&mut self)
[src]
Ordonne au robot de rester là où il est actuellement
pub fn is_robot_blocked(&self) -> bool
[src]
Retourne true
si le robot est bloqué, c'est à dire s'il reçoit une
commande mais ne change pas de position.
pub fn update_blocking(&mut self)
[src]
Met à jour la detection du bloquage du robot.
pub fn is_goal_reached(&self, lin_accuracy: f32, ang_accuracy: f32) -> bool
[src]
Retourne true
si le pid a atteind sa consigne en position et angle
lin_accuracy
: L'erreur autorisée sur la position du robot en millimètres.
ang_accuracy
: L'erreur autorisée sur l'angle du robot en milliradians.
Trait Implementations
impl<L, R> Debug for RealWorldPid<L, R> where
L: Qei<Count = u16>,
R: Qei<Count = u16>,
[src]
L: Qei<Count = u16>,
R: Qei<Count = u16>,
Auto Trait Implementations
impl<L, R> Send for RealWorldPid<L, R> where
L: Send,
R: Send,
L: Send,
R: Send,
impl<L, R> Sync for RealWorldPid<L, R> where
L: Sync,
R: Sync,
L: Sync,
R: Sync,
Blanket Implementations
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self